/*L字型領域 $\Omega$ では、凹部の角に $r^{2/3}$ の特異性が現れる。 $$-\Delta u = 1\quad \textrm{in }\Omega; \qquad u=0 \quad \textrm{on }\partial\Omega$$ $$\textrm{Poisson(u,v)}=\int_{\Omega} \{\nabla u\cdot\nabla v - fv\}$$ */ //境界を定義します。 border aaa(t=0,1){x=t;y=0;}; border bbb(t=0,0.5){x=1;y=t;}; border ccc(t=0,0.5){x=1-t;y=0.5;}; border ddd(t=0.5,1){x=0.5;y=t;}; border eee(t=0.5,1){x=1-t;y=1;}; border fff(t=0,1){x=0;y=1-t;}; mesh Th = buildmesh (aaa(6) + bbb(4) + ccc(4) +ddd(4) + eee(4) + fff(6)); plot(Th,wait=1); fespace Vh(Th,P1); // 1次要素近似空間 Vh u,v; problem Poisson(u,v) = int2d(Th)( dx(u)*dx(v) + dy(u)*dy(v)) - int2d(Th) ( 1*v ) + on(aaa,bbb,ccc,ddd,eee,fff,u=0) ; Poisson; plot(u,wait=1); for (int i=0;i< 5;i++) { // 適合メッシュを作成する Th=adaptmesh(Th,u); plot(Th,wait=1); Poisson; plot(u,wait=1); } ;