PDE Toolbox - Convection in Diffusion Equation
이전 댓글 표시
I'm trying to add a convection term to solve a diffusion PDE using the PDE Toolbox. I'm defining the PDE as:
specifyCoefficients(model,'Face',2,'m',0,'d',1,'c',Da,'a',0,'f',@fcoeff);
and have the following at the end of my code:
function f = fcoeff(location,state)
y = location.y./h;
x = location.x./L;
v = va;
f = -(v.*state.ux.*state.time + v.*state.uy.*state.time);
end
However, whenever I try to run the code I get the following error:
Error using pde.CoefficientAssignment/checkCoefFcnHdlArgCounts (line 499)
Function specifying a coefficient must accept two
input arguments and return one output argument.
Error in pde.CoefficientAssignment/checkFcnHdlArgCounts (line 272)
self.checkCoefFcnHdlArgCounts(self.f, systemsize, ndims);
Error in pde.CoefficientAssignment (line 104)
obj.checkFcnHdlArgCounts(systemsize, numdims);
Error in pde.PDEModel/specifyCoefficients (line 143)
coef = pde.CoefficientAssignment(self.EquationCoefficients,argsToPass{:});
Error in Dry_Air (line 49)
specifyCoefficients(model,'Face',2,'m',0,'d',1,'c',Da,'a',0,'f',@fcoeff);
I don't understand the error because as I see it I am ipnuting two arguments and am returning one output. Whenever I take away the function for 'f' on the RHS of the PDE my code works perfectly. Any help would be much appreciated!
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Electromagnetics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!