📄 convect2.edp
字号:
// This a the rotating hill problem with one turn.// First 1/2 turn is a convection equation and second 1/2 a convection diffusionborder a(t=0, 2*pi) { x = cos(t); y = sin(t); }; // the unit circlemesh th2 = buildmesh(a(35)); // triangulates the diskmesh th= trunc(th2,1,split=2);fespace Vh(th,P1);fespace Vh2(th2,P2);Vh2 v = exp(-10*((x-0.3)^2 +(y-0.3)^2)); // initial conditionplot(v);real dt = 0.17,t=0; // time stepVh u1 = y, u2 = -x; // rotation velocityint i;Vh2 vv,vo; // work Finite element function for ( i=0; i< 20 ; i++) { t += dt; vo=v; v=convect([u1,u2],-dt,vo); // convect v by u1,u2, dt seconds, results in f // convec(u1,u2,dt,v,v) won't work plot(v,cmm="convection: t="+t + ", min=" + v[].min + ", max=" + v[].max,wait=0);};problem A(v,vv,solver=CG) = int2d(th2)(v*vv/dt + 0.01*(dx(v)*dx(vv)+dy(v)*dy(vv)) ) + int2d(th2)(-vv*convect([u1,u2],-dt,vo)/dt) + on(a,v=0); for ( i=0; i< 20 ; i++) { t += dt; vo=v; A; // solve le problem A plot(v,cmm="convection& diffusive: t="+t + ", min=" + v[].min + ", max=" + v[].max);}; plot(v,wait=1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -