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 twoinput 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!
Best Answer