準備

これは,このマニュアルで使用されている用語の簡単な要約です.有限要素に慣れていない場合であれば便利です(但し,どんな場合でも プロジェクトの説明 は読みましょう).

meshconvexes から構成されます.凸と呼ばれるものは,単純な線分,角柱,四面体,曲三角形であり,(幾何学的な意味で)凸でないものであってもかまいません.これらはすべて関連する reference convex: セグメントの場合は \([0,1]\) セグメント,三角形の場合は正準三角形 \((0,0)-(0,1)-(1,0)\) などになります.メッシュのすべての凸は,参照凸から geometric transformation を介して構築されます.単純な場合(例えば凸が単純な場合),この変換は(簡単に逆変換できることが大きな利点となる)線形になります.幾何学的変換を定義するために,基準凸上に geometrical nodes を定義します.幾何変換はこれらのノードを mesh nodes にマップします.

メッシュ上で,基底関数の集合 FEM を定義します.FEMを各凸に関連付けます.基底関数は,一部の(自由に選ぶことができる)形状点にもアタッチされます.これらの点はメッシュノードに似ていますが, 同じである必要はありません (これは,古典的な \(P_1\) 三角形メッシュ有限要素法のような非常に単純な場合にのみ発生します).メッシュ上のすべての基底関数の集合は,偏微分方程式が解かれるベクトル空間の基底を形成します.これらの基底関数(および関連する形状点)は 自由度 ( dof に関連)します.FEMは各基底関数が積分された形状点で1に等しく,他の基底関数の形状点でnullであるとき, Lagrangian であるといいます.有限要素空間上の任意の関数を 補間 することが非常に簡単になるため,これは重要な特性です.

有限要素法は凸(の面)上のこれらの基底関数(基本関数などの積)の積分の評価を含みます.(多項式基底関数や線形幾何変換などの)単純な場合では,これらの積分を解析的に評価することができます.他の場合には,以下を用いて近似しなければなりません.したがって,各凸にはFEMとともに 積分法求積公式 の式が付加されます .近似積分法を使用する必要がある場合は,常にその次数(すなわち,方法と正確に積分された多項式の最高次数)を慎重に選択してください.FEMの次数,幾何変換の多項式次数,および基本行列の性質を考慮する必要があります.適切な次数がわからない場合は,不要な線形システムを生成する低次積分法よりも,(アセンブリが遅くなりますが)常に高次積分法を選択します.

各凸の基底関数の積分から全体線形システムを構築するプロセスは assembly です.

一連のFEMが凸に接続されたメッシュは GetFEMmesh_fem オブジェクトと呼ばれます.

一連の積分法が接続されたメッシュは GetFEMmesh_im オブジェクトと呼ばれます.

mesh_fem を使用してスカラーフィールド(熱,圧力,...)またはベクトルフィールド(変位,電場,...)を近似できます. mesh_im はこれらのフィールドで数値積分を実行するために使用されます. GetFEM に実装されているほとんどの有限要素はスカラー(ただし \(TR_0\) とedges要素も利用可能)です.もちろん,これらのスカラーFEMを使用して,ベクトル場の各成分を近似することができます.これを行うには,mesh_fem\(Qdim\) をベクトルフィールドの次元に設定します(例えば \(Qdim=1\) \(\rm I\hspace{-0.15em}Rightarrow\) スカラーフィールド, \(Qdim=2\) \(\rm I\hspace{-0.15em}Rightarrow\) ベクトルフィールドなど).

偏微分方程式を解く場合,多くの場合,複数のFEMを使用する必要があります.もちろん偏微分方程式の解が定義されている問題は最も重要です.ただし,ほとんどの偏微分方程式にはさまざまな係数が含まれます.たとえば,次のような場合です.

\[\nabla\cdot(\lambda(x)\nabla u) = f(x).\]

したがって,メインの未知数の \(u\) に対してFEMを定義する必要もありますが,定数でない場合 \(\lambda(x)\)\(f(x)\) に対しても定義が必要になります.これらの係数を有限要素空間で容易に補間するためにLagrange 有限要素法を選択することが多いです.

凸,メッシュ節点,および自由度にはすべて番号が付けられます.凸に関連する数をその数 凸id ( cvid とします) で参照することがあります.メッシュ節点番号は 点id ( pid とします)とも呼ばれます.凸面にはグローバルな番号付けはなく,各凸のローカルな番号のみが付けられます.したがって,面のリストを必要とする関数や返す関数は,常に2行の行列を使用します.最初の行列には凸idが含まれ,2番目の行列にはローカル面番号が含まれます.

自由度は常に連続した番号が付けられますが, 点のIDと凸のIDに対しては常に成り立つわけではありません .特に,メッシュから点や凸を削除した場合は成り立ちません.これらが連続した配列(1から開始)を形成することを保証するためには,次のように実行する必要があります.

>> gf_mesh_set(m,'optimize structure')