10.6 ベクトル場の矢印を間引いて描く

ポテンシャル phi のgradient (勾配ベクトル場) $ \bm{v}=\grad \phi$ を描くには
Vh v1,v2;
v1=dx(phi);
v2=dy(phi);
plot([v1,v2]
とするのが良く使われる安直な手順であるが、領域の三角形分割が細かいと、 矢印が密集して潰れてしまってとても見にくくなる。

適当に矢印を間引いて表示するオプションとかあれば良いと考えるが、 どうもないみたいだ。

分割の粗い有限要素空間を用意して、 表示するときはそちらの変数に代入して使うとか。
int m=50;
mesh Th=buildmesh(Gamma1(m)+Gamma2(m)+Gamma3(m)+Gamma4(m));
fespace Vh(Th,P1);
Vh phi;

int mp=15;
mesh Thp=buildmesh(Gamma1(mp)+Gamma2(mp)+Gamma3(mp)+Gamma4(mp));
fespace Vhp(Thp,P1);
Vhp v1p,v2p;

...

v1p=dx(phi);
v2p=dy(phi);
plot([v1p,v2p],wait=1);



桂田 祐史