필터 지우기
필터 지우기

PDE toolbox coefficients in functional form

조회 수: 4 (최근 30일)
Ollie A
Ollie A 2020년 9월 22일
댓글: Vimal Rathod 2020년 9월 30일
I am using PDE toolbox to simulate current flow through a 2D conductive medium.
I want to use my results from this model as a functional coefficient value for a second model, which simulates Joule heating due to the current flow. My code is as follows:
% First model to simulate current flow in conductive medium.
model = createpde(); % Create model.
geometryFromEdges(model,dl); % Assign model geometry.
generateMesh(model,'Hmax',1e-7); % Generate mesh.
% Apply Neumann boundary conditions. Set 2 edges to have current flow in and out of the geometry.
applyBoundaryCondition(model,'neumann','Edge',1:model.Geometry.NumEdges,'q',0,'g',0);
applyBoundaryCondition(model,'neumann','Edge',8,'q',0,'g',1);
applyBoundaryCondition(model,'neumann','Edge',7,'q',0,'g',-1);
% Specify differential coefficients. In this case the Laplace equation.
specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',0);
results = solvepde(model); % Model solutions.
% Second model to simulate Joule heating.
% Same model geometry and mesh conditions.
model2 = createpde();
geometryFromEdges(model2,dl);
generateMesh(model2,'Hmax',1e-7);
% Boundary conditions set to only consider heating within the geometry.
applyBoundaryCondition(model2,'neumann','Edge',1:model2.Geometry.NumEdges,'q',0,'g',0);
% Call my function to use as coefficient f.
f = @(region,state)myfun(region,state,c,results);
specifyCoefficients(model2,'m',0,'d',0,'c',1,'a',0,'f',f);
results2 = solvepde(model2); % Model 2 solutions.
% Define function for coefficient f.
function f = myfun(region,state,results) % Inputs are region, state, and results from first model.
[gradx,grady] = evaluateGradient(results,region.x,region.y); % Evaluate gradient solution at region.x and region.y.
f = (gradx.^2 + grady.^2)'; % Functional form of coefficient f.
end
My issue is model 2 cannot produce a usable function for coefficient f. The error I am currently given is:
Error using pde.EquationModel/solveStationaryNonlinear (line 32)
Unsuitable initial guess U0 (default: U0=0).
Any suggestions on how to fix this issue are appreciated. Thanks!
  댓글 수: 1
Vimal Rathod
Vimal Rathod 2020년 9월 30일
You haven't given the variable dl for us to debug it. It would be better if you provided that.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 General PDEs에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by