有限要素空間 Vh の変数 u に 記録されているデータをファイル (ファイル名を “u.dat” と する) に出力するには、
mesh Th; ... fespace Vh(Th,何か); Vh u; ... savemesh(Th,"Th.msh"); ofstream f("u.dat"); ... f << u[]; |
読むときは
mesh Th=readmesh("Th.msh"); fespace Vh(Th,何か); Vh u; ifstream f("output.dat"); f >> u[]; |
// 境界の定義 (単位円), いわゆる正の向き border Gamma(t=0,2*pi) { x=cos(t); y=sin(t); } // 三角形要素分割を生成 (境界を50に分割) mesh Th = buildmesh(Gamma(50)); savemesh(Th,"poisson.msh"); plot(Th,wait=1,ps="poisson-mesh.eps"); // 有限要素空間は P1 (区分的1次多項式) 要素 fespace Vh(Th,P1); Vh u,v; // Poisson 方程式 -△u=f の右辺 func f = x*y; // 現在時刻をメモ real start = clock(); // 問題を解く solve Poisson(u,v) = int2d(Th)(dx(u)*dx(v)+dy(u)*dy(v))-int2d(Th)(f*v) +on(Gamma,u=0); // 可視化 plot(u,ps="poisson.eps"); ofstream f("poisson.dat"); f << u[]; // 計算時間を表示 cout << " CPU time= " << clock() - start << endl; |
mesh Th=readmesh("poisson.msh"); fespace Vh(Th,P1); Vh u; ifstream f("poisson.dat"); f >> u[]; plot(u,ps="poisson2.eps"); |