⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 laplace3d.edp

📁 FreeFem++可以生成高质量的有限元网格。可以用于流体力学
💻 EDP
字号:
load "msh3"load "medit"int nn=8;mesh Th2=square(nn,nn);fespace Vh2(Th2,P2);Vh2 ux,uz,p2;int[int] rup=[0,2],  rdown=[0,1], rmid=[1,1,2,1,3,1,4,1];real zmin=0,zmax=1;mesh3 Th=buildlayers(Th2,nn,  zbound=[zmin,zmax],  reffacemid=rmid,   reffaceup = rup,  reffacelow = rdown);fespace Vh(Th,P23d);func ue =   2*x*x + 3*y*y + 4*z*z + 5*x*y+6*x*z+1;func uex=   4*x+  5*y+6*z;func uey=   6*y + 5*x;func uez=   8*z +6*x;func f= -18. ;Vh uhe = ue; // bug ..cout << " uhe min:  " << uhe[].min << " max:" << uhe[].max << endl;Vh u,v;macro Grad3(u) [dx(u),dy(u),dz(u)]  // EOMproblem Lap3d(u,v,solver=CG)  =  int3d(Th)(Grad3(v)' *Grad3(u))    +int2d(Th)(u*v)  - int3d(Th)(f*v) //  + int2d(Th,2) (ue + uez*v ) //(uex*N.x +uey*N.y +uez*N.z)*v )  + int2d(Th,2) ( ue*v+ (uex*N.x +uey*N.y +uez*N.z)*v )  + on(1,2,u=ue);Lap3d;cout << " u min::   " << u[]. min << "  max: " << u[].max << endl;real err= int3d(Th)( square(u-ue) );cout << int3d(Th)(1.) << " = " << Th.mesure << endl;Vh d= ue-u;cout <<  " err = " << err <<  " diff l^\intfy = " << d[].linfty << endl;real  aire2=int2d(Th,2)(1.); // bug correct in version 3.0-4 cout << " aire2 = " << aire2 << endl;func uuu= 2.+x;cout << uuu(1,1,1) << endl;assert( abs(aire2-1.) < 1e-6);assert(err < 1e-9);medit(" Sol ", Th, u ,order=1);//  to see the sol in P1 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -