Additional Inputs PDE Toolbox f coefficient

19 vues (au cours des 30 derniers jours)
ADSW121365
ADSW121365 le 4 Mar 2020
Modifié(e) : ADSW121365 le 22 Avr 2020
My code below is generating some sort of error, however I'm not sure the error message is consistent with the problem which is actually occuring. The aim is to input additional parameters to the f-coefficient in the PDEToolbox:
function f = f_coeffunction_3v(location,~,N_w,mag)
N = 3; % Number of equations
nr = length(location.x); % Number of columns
f = zeros(N,nr); % Allocate f
Quad = zeros(1,nr);
Quad(1:10) = 1;
Quad(12:end) = 2;
jo = N_w.*mag ./ 2; %Current Density Magnitude
f(1,Quad == 1) = jo; f(2,Quad == 1) = 0 ; f(3,Quad == 1) = 0 ;
f(1,Quad == 2) = 0 ; f(2,Quad == 2) = jo; f(3,Quad == 2) = 0 ;
end
N_w = 4; mag = 1;
f_fun = @(location,state)f_coeffunction_3v(location,state,N_w,mag); %Assign handle with correct functional form
f_vals = f_fun(location,[]); %Test values - identical to those from _2v.
specifyCoefficients(model,'m',0,'d',0,'c',c_coeff,'a',0,'f',@f_fun,'Cell',1);
Error using pde.CoefficientAssignment/checkCoefFcnHdlArgCounts (line 499)
Function specifying a coefficient must accept two
input arguments and return one output argument.

Réponse acceptée

Ravi Kumar
Ravi Kumar le 4 Mar 2020
Change to:
specifyCoefficients(model,'m',0,'d',0,'c',c_coeff,'a',0,'f',f_fun,'Cell',1);
Remove the @ symbol in front of f_fun, because you already created f_fun as function_handle when you defined it.
Regards,
Ravi
  1 commentaire
ADSW121365
ADSW121365 le 4 Mar 2020
I knew it was something dumb! Thanks.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by