function ped1
sol =pdepe(m,@pdefun,@pdeic,@pdebc,xmesh,tspan);
u=sol(:,:,1);
function [c,f,s]= pdefun(x,t,u,DuDx)
c = V/D;
f = DuDx;
s=0;
end
ped1
Undefined function or variable 'V'.
Error in pdefun (line 2)
c = V/D;
Error in pdepe (line 246)
[c,f,s] = feval(pde,xi(1),t(1),U,Ux,varargin{:});
Error in ped1 (line 27)
sol =pdepe(m,@pdefun,@pdeic,@pdebc,xmesh,tspan);

2 comentarios

Stephen23
Stephen23 el 3 de Dic. de 2018
Before this line:
c = V/D;
Where are V and D defined?
I have defined in ped1
function ped1
m=1;
R=2.2e-4; %radius of lumen (m)
dm = 13.04e-6; % TM thickness (m)
r1 =R + dm; %radius of outer surface of membrane (m)
L=1; %height of the membrane (m)
Q = 6.5e-9; %volumetric flow rate
D=1.76e-9;
RT = 2477.6;
H = 1.62; %Henry's law constant Pam^3/mol
u0= 285.1;
xn = 10; % grid-steps channel x-axis(radius side)
xmesh = linspace(0,R,xn);
tspan =linspace(0,L,10); %counter point of length% spatial solution domain (m)
dx = 1/(xn-1);
x = [xmesh];
V = Q/3.14/R^2;
%U_z =zeros(1,xn);
%for ii=1:xn
%U_z(ii) =2*U_a *(1- x(ii)^2/R^2);
%end
sol =pdepe(m,@pdefun,@pdeic,@pdebc,xmesh,tspan);
u=sol(:,:,1);
surf(x,t,u)
xlabel('radi')
ylabel('height')
figure
plot(x,u(end,:))
xlabel('radi')
ylabel('concentration')
end
function [c,f,s]= pdefun(x,t,u,DuDx)
c = V/D;
f = DuDx;
s=0;
end
function [pl,ql,pr,qr] = pdebc(xl,ul,xr,ur,t)
pl=0;
ql=1;
pr= u0 *(1-0.6*x/R)* H / RT / x / log (r1/R);
qr=1;
end
function u0 = pdeic(x)
u0 =285.1;
end

Iniciar sesión para comentar.

 Respuesta aceptada

Stephen23
Stephen23 el 3 de Dic. de 2018
Editada: Stephen23 el 3 de Dic. de 2018

0 votos

Make pdefun and pdebc nested functions by defining them inside of ped1:
function ped1()
...
V = ...
D = ...
R = ...
...
function [...]= pdefun(...)
...
V/D
...
end
function [...] = pdebc(...)
...
end
end

5 comentarios

Shangeetha Mahendran
Shangeetha Mahendran el 3 de Dic. de 2018
Hello stephan, thank you for your answer. but still i am getting error
Error using surf (line 71)
Data dimensions must agree.
Error in ped1 (line 30)
surf(x,t,u)
Stephen23
Stephen23 el 3 de Dic. de 2018
That is a totally different error.
Check the sizes of x, t, and u. Read the surf documentation to see if that size combination is permitted.
Shangeetha Mahendran
Shangeetha Mahendran el 4 de Dic. de 2018
I found the mistake. I didn't defined the term t.
one more question
in pdefun; is that possible to use array for the term "c" nstead of constant?
Stephen23
Stephen23 el 4 de Dic. de 2018
Editada: Stephen23 el 4 de Dic. de 2018
"in pdefun; is that possible to use array for the term "c" nstead of constant?"
MATLAB does not have any "constant" class, so it is not clear what you mean. Perhaps you mean that c is scalar?
In any case, the pdepe help states the the first output c should be a column vector. Given that both V and D are scalars, it is not clear what you expect c to be. Please show an example.
function [c,f,s]= pdefun(x,t,u,DuDx)
c = V/D;
f = DuDx;
s=0;
end
"c" is from this function.
if v is a column vector and t is the raw matrix is that possible to solve with pdepe

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by