Fem

class Fem(*args)

GetFEM Femオブジェクト

このオブジェクトは,参照要素の有限要素法を表します.

Femオブジェクトの汎用的なコンストラクタです.

  • F = Fem('interpolated_fem', MeshFem mf_source, MeshIm mim_target, [ivec blocked_dofs[, bool caching]]) 別のMeshFemから補間された特別なFemを構築します.

    この特殊な有限要素を使用すると,このメッシュで使用される積分法 mim_target が指定されている場合に,別のメッシュ上の所定のMeshFem mf_source を補間できます.

    この有限要素は,キャッシュが使用されているかどうかに応じて,非常に低速であったり,大量のメモリを消費したりする可能性があることに注意してください.デフォルトでは caching はTrueです.

  • F = Fem('projected_fem', MeshFem mf_source, MeshIm mim_target, int rg_source, int rg_target[, ivec blocked_dofs[, bool caching]]) 別のMeshFemから補間された特別なFemを構築します.

    この特殊な有限要素を使用すると,このメッシュで使用される積分法 mim_target が指定されている場合に,別のメッシュ上の所定のMeshFem mf_source を補間できます.

    この有限要素は,キャッシュが使用されているかどうかに応じて,非常に低速であったり,大量のメモリを消費したりする可能性があることに注意してください.デフォルトでは caching はTrueです.

  • F = Fem(string fem_name) fem_name には,有限要素法の記述を入力する必要があります.詳細はGetFEMのマニュアル(特に有限要素法と積分法の記述)を参照してください.その一部を次に示します.

    • FEM_PK(n,k) : 次元 n の単体上の古典的Lagrange要素Pk.

    • FEM_PK_DISCONTINUOUS(n,k[,alpha]) : 次元 n の単体上の不連続 Lagrange 要素Pk.

    • FEM_QK(n,k) : 四辺形,六面体などの古典的な Lagrange 要素Qk.

    • FEM_QK_DISCONTINUOUS(n,k[,alpha]) : 四辺形,六面体などの不適合Lagrange 要素Qk.

    • FEM_Q2_INCOMPLETE (n): 8および20自由度(セレンディピティQuad8とHexa20の要素)の不完全Q2要素.

    • FEM_PK_PRISM(n,k) : 次元 n のプリズム上の古典的 Lagrange 要素Pk.

    • FEM_PK_PRISM_DISCONTINUOUS(n,k[,alpha]) : プリズム上の古典的な不連続 Lagrange 要素Pk.

    • FEM_PK_WITH_CUBIC_BUBBLE(n,k) : 追加の体積気泡関数を持つ単体上の従来のLagrange要素Pk.

    • FEM_P1_NONCONFORMING : 三角形の不適合P1法.

    • FEM_P1_BUBBLE_FACE (n):面0に追加の気泡関数を持つ単体上のP1法.

    • FEM_P1_BUBBLE_FACE_LAG : 面0に追加の Lagrange 自由度を持つ単体上のP1法.

    • FEM_PK_HIERARCHICAL(n,k) : 階層基準のPK要素.

    • FEM_QK_HIERARCHICAL(n,k) : 階層基底のQK要素

    • FEM_PK_PRISM_HIERARCHICAL(n,k) : 階層基準のプリズム上のPK要素.

    • FEM_STRUCTURED_COMPOSITE(Fem f,k) : k 分割されたグリッド上の複合Fem f

    • FEM_PK_HIERARCHICAL_COMPOSITE(n,k,s) : 細分割および階層ベースを使用したグリッド上のPk複合要素.

    • FEM_PK_FULL_HIERARCHICAL_COMPOSITE(n,k,s) : s サブ分割および次数とサブ分割の両方に基づく階層ベースのPk複合要素.

    • FEM_PRODUCT(A,B) : 2つの多項式要素のテンソル積.

    • FEM_HERMITE(n) : 次元 n = 1, 2, 3 の単体上のHermite要素P3.

    • FEM_ARGYRIS : 三角形のArgyris要素P5.

    • FEM_HCT_TRIANGLE : 三角形のHsieh-Clouh-Tocher要素(C1の複合P3要素)は IM_HCT_COMPOSITE() 積分法で使用します.

    • FEM_QUADC1_COMPOSITE : 四角形要素,複合P3要素およびC1(16自由度).

    • FEM_REDUCED_QUADC1_COMPOSITE : 四辺形要素,複合P3要素およびC1(12自由度).

    • FEM_RT0(n) : 次元 n の単体上の次数0のRaviart-Thomas要素.

    • FEM_NEDELEC(n) : 次元 n の単体上の次数0のNedelecエッジ要素.

    もちろん,選択した有限要素法が幾何変換と互換性があることを確認する必要があります.つまり,四角形ではPk 有限要素法は意味を持ちません.

base_value(p)

p におけるFEMのすべての基底関数を評価します.

p は参照凸の中にあるはずです!

char()

Femの(ユニークな)文字列表現を出力します.

これを使用して,2つの異なるFemオブジェクトの比較ができます.

dim()

Femの次数(参照凸の次数)を返します.

display()

Femオブジェクトの概要が表示されます.

estimated_degree()

Femの多項式次数の推定値を返します.

これは多項式ではない有限要素法に対する推定です.

grad_base_value(p)

点pにおけるFemのすべての基本関数の勾配を評価します.

p は参照凸の中にあるはずです!

hess_base_value(p)

点pにおけるFemのすべての基底関数のHessianを評価します.

p は参照凸の中にあるはずです!

index_of_global_dof(cv)

補間された有限要素法など,特殊な有限要素法の全体自由度のインデックスを返します.

is_equivalent()

Femが等価でない場合は0を返します.

等価Femは参照凸上で評価されます.これはほとんどの古典的なFemの場合でそうです.

is_lagrange()

FemがLagrange型でない場合は0を返します.

is_polynomial()

基底関数が多項式でない場合は0を返します.

nbdof(cv=None)

Femの自由度を返します.

特定のFem(例えば 'interpolated_fem' )の中には,その結果を得るために凸番号 cv を必要とするものがあります.ほとんどの場合,この凸番号は省略できます.

poly_str()

参照凸の基底関数の多項式を返します.

結果は文字列のタプルとして表現されます.もちろん,これは多項式でないFemでは失敗します.

pts(cv=None)

基準エレメント上の自由度の位置を取得します.

ある特定のFemは,その結果を与えるために凸の数 cv を必要とします(例えば 'interpolated_fem' ).ほとんどの場合,この凸の数は省略できます.

target_dim()

ターゲット空間の次元を返します.

ベクトルFemを除き,ターゲット空間の次元は通常1です.