15.2 いわゆる普通の関数

func real f(real x, real y)
{
  if (x<y)
    return x;
  else
    return y;
}

こういう関数は普通のプログラマーにとってわかりやすいが、 例えば弱形式の中の式に (1行関数のように) f*v のように直接使えない。 その代わりに f(x,y)*v とする必要がある。

同様に、次のようにして有限要素空間の変数に代入することができる。
fespace(Th,P1) Vh;
Vh ff;
ff=f(x,y);
あるいは
fespace(Th,P2) Vh2;
Vh2 ff;
ff=f(x,y);
こうして代入したものは (当たり前であるが fespace である Vh, Vh2 の変数なので) 例えば plot() で描画したり、 弱形式の中の int2d(), int1d() のカッコ内や、 +on() のカッコ内で使える。
plot(ff, wait=1);

... int1d(Th,Gamma1)(ff*v) ...
... +on(Gamma2,u=ff)...

もっとも int1d()+on() の中では、 境界上の値しか必要にならないので、 ff に代入して使うのはバカバカしいかもしれない。 plot(ff) は意味があるけど。



桂田 祐史