汎用的な楕円ブリック

この要素は,モデルの変数に楕円項を追加します.楕円項の形状は,変数と与えられた係数の両方に依存します.これは次の項に対応します.

\[-\text{div}(a\nabla u),\]

ここで, \(a\) は係数であり, \(u\) は変数です.係数は,スカラー,行列またはテンソル4次のオーダです.変数はベクトル値でも,そうでなくてもかまいません.これは,ブリック要素がいくつかの異なる状況を扱うことを意味します.係数がスカラーまたは行列で,変数がベクトル値の場合,その項は成分ごとに加算されます.4つのテンソル係数はベクトル値の変数にのみ使用できます.係数は一定であってもFEMで記述されてもよいです.もちろん,係数が有限要素法(テンソル場)上に記述されたテンソルである場合,対応するデータは巨大ベクトルとなり得ます.行列/テンソルの成分は,係数(BLASとの適合性)に対応するデータベクトルにFortran次数(列方向)で格納しなければなりません.与えられた行列/テンソルの対称性と保磁力は検証されません(しかし仮定されます).

このブリックをモデル md に追加する関数は2つあります.最初の関数は次の通りです.

size_type getfem::add_Laplacian_brick(md, mim, varname, region = -1);

それは \(1\) (Laplacian項)に等しい定数係数を持つモデルの変数 varname に対して相対的に楕円形の項を加えます.これは,Laplace演算子に対応します. mim はその項を計算するために使用される積分法です. region はオプションの領域番号です.省略されている場合,項はメッシュ全体で計算されるものとみなされます.関数の結果は,モデルのブリック要素のインデックスです.

2番目の関数は次の通りです.

size_type getfem::add_generic_elliptic_brick(md, mim, varname, dataexpr, region = -1);

モデル変数に依存したとしても(例えば "1", "sin(X[0])" or "Norm(u)" のような)GWFL,汎用弱形式言語の正規表現でなければならない式 dataexpr によって与えられた任意の係数が項に加えられます.(モデルの宣言されたデータでなければならない複素数バージョンを除く).

このブリック要素では非常に汎用的な方程式が得られることに注意してください.例えば,テンソルデータを用いて線形異方性弾性を得ることができます.テンソル4次を使用する場合,対応する弱定式化項は次のようになります.

\[\int_{\Omega} \sum_{i,j,k,l} a_{i,j,k,l}\partial_i u_j \partial_k v_l dx\]

ここで,次のようになります. \(a_{i,j,k,l}\) はテンソル4次の次数であり,未知数 \(k\)\(j\) 成分の \(\partial_i u_j\) は次の \(i\) 次変数の偏微分です. \(v\) は試験関数です.しかし,線形等方性弾性の場合,より適合したブリック要素が利用可能です(下記参照).

ブリック要素は作業する複素数バージョンを持っています.