10 plot()

メッシュを描く
Th = buildmesh(..);
...

plot(Th);

有限要素空間の元 (メッシュ上の数値ベクトル) の等高線を描く
Vh f;
...
plot(f);

等高線の高さを指定したい場合は、viso= オプションを用いる (等高線の高さを収めた配列の名前を指定する)。

コメントを書きたい場合は cmm= オプションを用いる。
Vh f;
real [int]level = [0.0];     // 高さ 0 の等高線のみ
real [int]levels = -1.0:0.1:1.0; // -1 から 0.1 刻みで 1 まで
...
plot(f, viso=level, wait=true, cmm="nodal line");
plot(f, viso=levels, value=true, wait=true, cmm="contour lines");

$ [0,1]\times[0,1]$ 上の関数 $ x^2-y^2$ を描く

mesh Th=square(20,20);
plot(Th,wait=1);
fespace Vh(Th,P1);
Vh u=x*x-y*y;
plot (u,wait=1);

wait= で一時停止するかどうかをコントロール
debug=true; // debug=1; でも可
...
plot(f,wait=debug)

ps=ファイル名 で描画と同時に PostScript ファイルも出力
plot(f,ps="graph.eps");

,dim=3 で3次元の鳥瞰図表示
plot(f,dim=3);

,fill=true で色を塗る
plot(f,fill=true);

関数のレベル0の等高線を描きたいのに、 なぜか等高線が見えなくなるケースに遭遇した。 0の近くのレベルの範囲 $ [-w,w]$ を塗りつぶすことで安直に回避した。
real haba=0.0001;
real [int] viso=(-haba:haba:haba);
plot(u,viso=viso,fill=true,grey=true);



Subsections

桂田 祐史