PDEPE function
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello everyone, I would like to use pdepe for solving a heat equation 1D space, so it looks good. But I don't really understand where the diffusion coefficient is ?
I would like to solve : (1)--> du/dt = d/dx(D(u) du/dx) with D(u) the non linear diffusion coefficient function of u. Is it possible to put D(u) at this location in the equation (1)?
Thanks to the community. :)
0 commentaires
Réponse acceptée
Grzegorz Knor
le 23 Sep 2011
Yes it is possible in pdefun :)
Look at example:
function diffusion
m = 0;
x = linspace(0,1,20);
t = linspace(0,2,5);
sol = pdepe(m,@eqtn,@ic,@bc,x,t);
u = sol(:,:,1);
figure;
surf(x,t,u);
xlabel('Distance x');
ylabel('Time t');
% --------------------------------------------------------------------------
function [c,f,s] = eqtn(x,t,u,DuDx)
c = 1;
f = Dfsn(u)*DuDx;
s = 0;
% --------------------------------------------------------------------------
function u0 = ic(x)
u0 = 1:length(x);
% --------------------------------------------------------------------------
function [pl,ql,pr,qr] = bc(xl,ul,xr,ur,t)
pl = ul;
ql = 2;
pr = ur;
qr = 2;
% --------------------------------------------------------------------------
function d = Dfsn(u)
d = sqrt(u+1);
Where Dfsn is your non linear diffusion coefficient function.
5 commentaires
Mohammed Thaiki
le 1 Déc 2016
Hello ; I have a problem with a heat transfer script, below the script:
clear all; x=linspace(0,.01,50);%We use 50 values from 0 to 0.01 t=linspace(0,1,60);%We used 60 points from 0 to 1 m=0; sol=pdepe(m,@ecuation,@initialcond,@boundary,x,t) u=sol(:,:,1); % Surface plot command and data surf(x,t,u) colormap([gray]) xlabel('\delta (m)') ylabel('L (m)') zlabel('C_a (M)') shading interp figure for j=1:length(t) plot(x,u(j,:),'k') xlabel('\delta (m)') ylabel('C_a (M)') hold on end
and the three files :
1. @ecuation function [c,f,s]=ecuation(x,t,u,DuDx) c=2*0.5*((x/0.01)-0.5*(x/0.01)^2)/2.1e-5;%term (C) f=DuDx;%Flow term (F) s=0;%source term (S)
2. @initialcond %Initial conditions. function u0=initialcond(x) u0=0;
3. @boundary %Boundary conditions. function [pl,ql,pd,qd]=boundary(xl,ul,xd,ud,t) %for y = 0 pl=0; ql=1; %%for y = δ pd=ur-.1; qd=0;
MATLAB gives error in line :
sol=pdepe(m,@ecuation,@initialcond,@boundary,x,t)
I am waiting for your ideas to solve this problem thank you
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Computations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!