FlexPDEによって生成されるメッシュ中のセル密度を制御する方法にはいくつかあります。
暗黙の密度
生成されるメッシュのセル密度は境界セグメント上での節点の間隔に従います。非常に小さなセグメントの場合、その近傍には小さなセルが生成されることになります。
最大密度
グローバルコマンド
SELECT NGRID = <number>
によって最大セルサイズを制御することができます。最も大きな次元に対しては概ねNGRID個のセルとなるよう、そしてより小さな次元に対しては対応するサイズでメッシュが生成されます(他の条件によってサイズは変わる可能性があります)。
明示的な密度制御
最初に生成されるメッシュのセル密度はパラメータ MESH_SPACING, MESH_DENSITY によって制御できます。MESH_SPACINGは最大セルの大きさを制御するのに対し、MESH_DENSITYはその逆で単位長当りの最小セル数を制御します。メッシュジェネレータはセルサイズに影響を及ぼす多くの要請をチェックし、その中での最小値に基づきセルサイズを決定します。従って MESH_SPACING, MESH_DENSITY による制御はそれらが他の要請に比べて最小の値を与える場合にのみ効果を発揮するので、大きな間隔を要求しても実質的に無視されます。
MESH_SPACING, MESH_DENSITY による制御は定義パラメータとして、あるいは境界条件として使用できます。
定義パラメータとしての用法の場合、それらは DEFINITONS セクションに置くこともできますが、リージョンごとの再定義セクション中で使用することもできます。これによってドメイン全体に対するメッシュ密度(2次元/3次元)の他に、リージョン対応のメッシュ密度(2次元/3次元)も制御できるようになります。
境界セグメントに沿った形でセル密度を制御したい場合には、MESH_SPACING, MESH_DENSITY による制御を境界条件に関する構文中で使用します。この場合、これらの制御は境界線、あるいは境界面上でのセル間隔を規定することになります。
MESH_SPACING, MESH_DENSITY で指定する値は空間座標変数の関数でも構いません。“メッシュの生成”セクションで説明した例において次のような指定を行うことも可能です。
REGION 2 'blob' { the embedded 'blob' }
MESH_DENSITY = 50*EXP(-50*(x^2+y^2))
START(1/2,0)
ARC(CENTER=0,0) ANGLE=360
この場合、最初に生成されるメッシュは次のようになります。

他の用例については "Samples | Misc | Mesh_Control | Mesh_Spacing.pde" と "Samples | Misc | Mesh_Control | Mesh_Density.pde" を参照ください。
動的調整(Adaptive Refinement)
一旦最初のメッシュが生成されると、FlexPDEは誤差の推定を続け、目標の演算精度を達成できるよう必要に応じてメッシュの調整を行います。時間依存型の問題の場合には、変数の初期値に対しても動的調整機能が適用され、変数に急激な変化が生じたときにメッシュの調整が行われます。この動的調整プロセスによって生成されたセルはその後併合されることもありますが、明示的な密度制御によって初期設定されたセルは恒久的なものです。
Note:
|
動的調整のプロセスは既存メッシュ内部の離散点での種々の値の評価に依存しています。熱源等のソースの広がりが極端に小さかった場合(例えば薄膜状、あるいは点状の関数だった場合)、それらは見落とされる可能性があります。それらの効果に対しては、該当する位置に明示的にグリッドフィーチャを配置する等の措置が必要になります。REGIONS あるいは FEATURES の機能を使用してください。
|
他の制御機能については FRONT, RESOLVE ステートメントも参考にしてください。
|