필터 지우기
필터 지우기

How to write a functional coefficient f in Parabolic function

조회 수: 1 (최근 30일)
Fehaid Alshammari
Fehaid Alshammari 2015년 2월 6일
편집: Fehaid Alshammari 2015년 2월 6일
I'm solvig a system of 3 nonlinear parabolic PDEs (u1, u2, and u3) on rectangular domain using the parabolic function in matlab. I have some difficulties writing the nonlinear interaction terms. How can I write a function of this form u3/(u2+u1) to be my f1? Any hep is appreciated
xmin=0;xmax=20;ymin=0;ymax=1;
gd = [3;4;xmin;xmax;xmax;xmin;ymax;ymax;ymin;ymin];
sf = 'R1';
ns = [82; 49];
[dl, bt] = decsg(gd, sf, ns);
fig1=figure(1);clf
axis([xmin xmax ymin ymax]);
pdegplot(dl, 'edgeLabels', 'on');
axis equal
title 'Domain With Edge Labels Displayed'
pg = pdeGeometryFromEdges(dl);
es = pg.Edges([1,2,3,4]);
bc1 = pdeBoundaryConditions(es(1),'q',[0;1;1],'g',[1;20;155]);
bc2 = pdeBoundaryConditions(es(2),'q',[0;0;1],'g',[1;1;48]);
bc3 = pdeBoundaryConditions(es(3),'q',[0;0;1],'g',[1;1;24]);
bc4 = pdeBoundaryConditions(es(4),'q',[0;0;0],'g',[1;1;1]);
[p,e,t] = initmesh(dl,'hmax',0.2); % hmax gives max length of an edge
[p,e,t] = refinemesh(dl,p,e,t);
fig2=figure(2);clf
pdemesh(p,e,t);
axis equal
title 'Domain With Mesh Displayed'
np=size(p,2);
u0s=zeros(np,numberOfPDE);
u0s(:,1) = ones(np,1);
ix = find(and(and(and(p(1,:)>5,p(1,:)<8),p(2,:)>0.2),p(2,:)<=1))
u0s(ix,1) = zeros(size(ix));
u0s(:,2) = 1*ones(size(np));
u0s(:,3) = 1*ones(size(np));
u0=zeros(np*numberOfPDE,1);
u0(1:np)=u0s(:,1);
u0(np+1:np+np)=u0s(:,1);
u0(np+1+np:np+np+np)=u0s(:,1);
tmin=0;tmax=0.1;nframes = 20;
tlist = linspace(tmin,tmax,nframes);
numberOfPDE =3;
pb = pde(numberOfPDE);
c1 = 1.6;
c2 = 10.01;
c3 = 0.1;
%--------------
a1 = 0;
a2 = 0;
a3 = 0;
%--------------
d1 = 0.6;
d2 = 0.6;
d3 = 0.1;
%--------------
f1 = ??;
f2 = 0.6;
f3 = 0.1;
u1 = parabolic(u0,tlist,pb,p,e,t,c1,a1,f1,d1);
u2 = parabolic(u0,tlist,pb,p,e,t,c2,a2,f2,d2);
u3 = parabolic(u0,tlist,pb,p,e,t,c3,a3,f3,d3);
fig3=figure(3);clf
colormap(cool);
for j = 1:nframes,
pdesurf(p,t,u1(1:np,j));
axis([xmin xmax ymin ymax 0 1.1]);
shading interp;
Mv(j) = getframe;
end

답변 (0개)

카테고리

Help CenterFile Exchange에서 Geometry and Mesh에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by