//境界はEpicycloid曲線 for (int k=1; k<10; k++) { real r = 1; border C(t=0,2*pi) { x=r*(k+1)*(cos(t)-cos((k+1)*t)/(k+1)); y=r*(k+1)*(sin(t)-sin((k+1)*t)/(k+1)); } border Cc(t=0,2*pi) { x=r*cos(t); y=r*sin(t); } mesh Th = buildmesh(C(50)+Cc(10)); plot(Th, wait=1); //三角形分割を見る // ここからは hello.edp と同じ fespace Vh(Th,P1); // 1次要素有限要素空間 Vh u,v; // $u,v\in V_h(\Omega)$ solve Poisson(u,v) = int2d(Th)( dx(u)*dx(v) + dy(u)*dy(v)) - int2d(Th) ( 1*v ) + on(1,2,3,4,u=0) ; //$u$ の等高線を描き、Postscriptファイルで保存 plot(u,wait=1); }