gf_mesh_fem_get

概要

n = gf_mesh_fem_get(mesh_fem MF, 'nbdof')
n = gf_mesh_fem_get(mesh_fem MF, 'nb basic dof')
DOF = gf_mesh_fem_get(mesh_fem MF, 'dof from cv',mat CVids)
DOF = gf_mesh_fem_get(mesh_fem MF, 'basic dof from cv',mat CVids)
{DOFs, IDx} = gf_mesh_fem_get(mesh_fem MF, 'dof from cvid'[, mat CVids])
{DOFs, IDx} = gf_mesh_fem_get(mesh_fem MF, 'basic dof from cvid'[, mat CVids])
gf_mesh_fem_get(mesh_fem MF, 'non conformal dof'[, mat CVids])
gf_mesh_fem_get(mesh_fem MF, 'non conformal basic dof'[, mat CVids])
gf_mesh_fem_get(mesh_fem MF, 'qdim')
{FEMs, CV2F} = gf_mesh_fem_get(mesh_fem MF, 'fem'[, mat CVids])
CVs = gf_mesh_fem_get(mesh_fem MF, 'convex_index')
bB = gf_mesh_fem_get(mesh_fem MF, 'is_lagrangian'[, mat CVids])
bB = gf_mesh_fem_get(mesh_fem MF, 'is_equivalent'[, mat CVids])
bB = gf_mesh_fem_get(mesh_fem MF, 'is_polynomial'[, mat CVids])
bB = gf_mesh_fem_get(mesh_fem MF, 'is_reduced')
bB = gf_mesh_fem_get(mesh_fem MF, 'reduction matrix')
bB = gf_mesh_fem_get(mesh_fem MF, 'extension matrix')
Vr = gf_mesh_fem_get(mesh_fem MF, 'reduce vector', vec V)
Ve = gf_mesh_fem_get(mesh_fem MF, 'extend vector', vec V)
DOFs = gf_mesh_fem_get(mesh_fem MF, 'basic dof on region',mat Rs)
DOFs = gf_mesh_fem_get(mesh_fem MF, 'dof on region',mat Rs)
DOFpts = gf_mesh_fem_get(mesh_fem MF, 'dof nodes'[, mat DOFids])
DOFpts = gf_mesh_fem_get(mesh_fem MF, 'basic dof nodes'[, mat DOFids])
DOFP = gf_mesh_fem_get(mesh_fem MF, 'dof partition')
gf_mesh_fem_get(mesh_fem MF, 'save',string filename[, string opt])
gf_mesh_fem_get(mesh_fem MF, 'char'[, string opt])
gf_mesh_fem_get(mesh_fem MF, 'display')
m = gf_mesh_fem_get(mesh_fem MF, 'linked mesh')
m = gf_mesh_fem_get(mesh_fem MF, 'mesh')
gf_mesh_fem_get(mesh_fem MF, 'export to vtk',string filename, ... ['ascii'], U, 'name'...)
gf_mesh_fem_get(mesh_fem MF, 'export to vtu',string filename, ... ['ascii'], U, 'name'...)
gf_mesh_fem_get(mesh_fem MF, 'export to dx',string filename, ...['as', string mesh_name][,'edges']['serie',string serie_name][,'ascii'][,'append'], U, 'name'...)
gf_mesh_fem_get(mesh_fem MF, 'export to pos',string filename[, string name][[,mesh_fem mf1], mat U1, string nameU1[[,mesh_fem mf2], mat U2, string nameU2,...]])
gf_mesh_fem_get(mesh_fem MF, 'dof_from_im',mesh_im mim[, int p])
U = gf_mesh_fem_get(mesh_fem MF, 'interpolate_convex_data',mat Ucv)
z = gf_mesh_fem_get(mesh_fem MF, 'memsize')
gf_mesh_fem_get(mesh_fem MF, 'has_linked_mesh_levelset')
gf_mesh_fem_get(mesh_fem MF, 'linked_mesh_levelset')
U = gf_mesh_fem_get(mesh_fem MF, 'eval', expr [, DOFLST])

説明 :

mesh_femオブジェクトに関する汎用的な参照関数.

コマンドリスト

n = gf_mesh_fem_get(mesh_fem MF, 'nbdof')

mesh_femの自由度(dof)の数を返します.

n = gf_mesh_fem_get(mesh_fem MF, 'nb basic dof')

mesh_femの基本自由度(dof)の数を返します.

DOF = gf_mesh_fem_get(mesh_fem MF, 'dof from cv',mat CVids)

非推奨の機能です.代わりに gf_mesh_fem_get(mesh_fem MF, 'basic dof from cv') を使用します.

DOF = gf_mesh_fem_get(mesh_fem MF, 'basic dof from cv',mat CVids)

CVids にリストされている凸の自由度を返します.

警告: 自由度は任意の順序で返される可能性があります.アセンブリルーチンではこの関数を使用しないでください.凸値に関連する自由度をマップする場合は,代わりに 'basic dof from cvid' を使用します.

また,(最初の行の凸数に関して)2列目に面番号を表示することで,凸面上の集合の基本的な自由度のリストを得ることができます.

{DOFs, IDx} = gf_mesh_fem_get(mesh_fem MF, 'dof from cvid'[, mat CVids])

非推奨の機能です.代わりに gf_mesh_fem_get(mesh_fem MF, 'basic dof from cvid') を使用します.

{DOFs, IDx} = gf_mesh_fem_get(mesh_fem MF, 'basic dof from cvid'[, mat CVids])

メッシュの各凸にアタッチされた自由度を返します.

CVids を省略すると,すべての凸が考慮されます( CVids = 1 ... gf_mesh_get(mesh M, 'max cvid') と同じです).

IDx は行ベクトルであり, length(IDx) = length(CVids)+1 です. DOFsCVids の各凸の自由度の連結リストを含む行ベクトルです. IDx の各エントリは DOFs における対応する凸点リストの位置です.従って,例えば,第2凸の点のリストは DOFs(IDx(2):IDx(3)-1)です.

CVids にメッシュに存在しない凸の #id が含まれている場合,点リストは空になります.

gf_mesh_fem_get(mesh_fem MF, 'non conformal dof'[, mat CVids])

非推奨の機能です.代わりに gf_mesh_fem_get(mesh_fem MF, 'non conformal basic dof') を使用します.

gf_mesh_fem_get(mesh_fem MF, 'non conformal basic dof'[, mat CVids])

部分的にリンクされた自由度を返します.

メッシュの境界上にあるものを除き,1つの凸にのみ属する凸の境界上にある基本自由度を返します.たとえば,凸の 'a' と 'b' が共通の面を共有し, 'a' にP1 FEMがあり, 'b' にP2 FEMがある場合,面の中央の基本自由度がこの関数によって返されます(これは,古典的FEMと階層的FEMの間のインターフェースを探索するときに有用です).

gf_mesh_fem_get(mesh_fem MF, 'qdim')

mesh_femによって補間されたフィールドの次元Qを返します.

デフォルトでは,Q=1(スカラー場)です.これは,自由度の番号付けに影響します.

{FEMs, CV2F} = gf_mesh_fem_get(mesh_fem MF, 'fem'[, mat CVids])

mesh_femで使用されるFEMのリストを返します.

FEMsCVids で与えられた凸にあるすべてのfemオブジェクトの配列です. CV2F が出力引数として指定された場合 CVids にリストされている各凸に対し, FEMs 内の対応するFEMのインデックスが含まれます.

メッシュの一部でない凸,またはFEMを持たない凸については CV2F の対応エントリを-1に設定します.

cvid=gf_mesh_get(mf,'cvid');
[f,c2f]=gf_mesh_fem_get(mf, 'fem');
for i=1:size(f), sf{i}=gf_fem_get('char',f(i)); end;
for i=1:size(c2f),
   disp(sprintf('the fem of convex %d is %s',...
      cvid(i),sf{i}));
end;

CVs = gf_mesh_fem_get(mesh_fem MF, 'convex_index')

FEMを持つ凸のリストを返します.

bB = gf_mesh_fem_get(mesh_fem MF, 'is_lagrangian'[, mat CVids])

mesh_femがLagrangianであるかどうかをテストします.

Lagrangianとは,各基底関数 Phi[i] が, Phi[i](P[j]) = delta(i,j) となることを意味します.ここで P[j] は,j番目の基底関数の自由度位置であり,i==jなら delta(i,j) = 1 であり,そうでなければ0です.

CVids を省略すると,メッシュ内のすべての凸状がLagrangianの場合に1を返します. CVids を使用すると,Lagrangianである( CVids に関する)凸インデックスを返します.

bB = gf_mesh_fem_get(mesh_fem MF, 'is_equivalent'[, mat CVids])

mesh_femが等価かどうかをテストします.

gf_mesh_fem_get(mesh_fem MF, 'is_lagrangian') を参照してください.

bB = gf_mesh_fem_get(mesh_fem MF, 'is_polynomial'[, mat CVids])

すべての基本関数が多項式であるかどうかをテストします.

gf_mesh_fem_get(mesh_fem MF, 'is_lagrangian') を参照してください.

bB = gf_mesh_fem_get(mesh_fem MF, 'is_reduced')

オプションの縮約マトリックスが自由度に適用される場合は1を返します.

bB = gf_mesh_fem_get(mesh_fem MF, 'reduction matrix')

オプションの縮約行列を返します.

bB = gf_mesh_fem_get(mesh_fem MF, 'extension matrix')

オプションの拡張行列を返します.

Vr = gf_mesh_fem_get(mesh_fem MF, 'reduce vector', vec V)

提供されたベクトルVにmesh_femの拡張行列を乗算します.

Ve = gf_mesh_fem_get(mesh_fem MF, 'extend vector', vec V)

与えられたベクトルVにmesh_femの縮約行列を乗算します.

DOFs = gf_mesh_fem_get(mesh_fem MF, 'basic dof on region',mat Rs)

Rs にリストされているメッシュ領域のいずれかにある基本自由度(任意削減前)のリストを返します.

より正確には,この関数は Rs (境界領域の場合,一部の節点自由度は正確に境界上に存在しない場合があります.たとえば, Pk(n,0) の自由度は凸の中心に存在しますが,基底関数は凸境界上でnullではありません)に #ids がリストされている領域のいずれかにおいて,サポートが非NULLである基本的な自由度を返します.

DOFs = gf_mesh_fem_get(mesh_fem MF, 'dof on region',mat Rs)

Rs にリストされたメッシュ領域のいずれかに存在する自由度(任意削減後)のリストを返します.

より正確には,この関数は Rs (境界領域の場合,一部の節点自由度は正確に境界上に存在しない場合があります.たとえば, Pk(n,0) の自由度は凸の中心に存在しますが,基底関数は凸境界上でnullではありません)に #ids がリストされている領域のいずれかにおいて,サポートが非NULLである基本的な自由度を返します.

縮約されたmesh_femの場合,自由度は対応する形状関数のポテンシャルがこの領域でゼロでない場合に領域上にあります.拡張行列を使用して,基本自由度と縮約自由度間の対応を作ります.

DOFpts = gf_mesh_fem_get(mesh_fem MF, 'dof nodes'[, mat DOFids])

非推奨の機能です.代わりに gf_mesh_fem_get(mesh_fem MF, 'basic dof nodes') を使用します.

DOFpts = gf_mesh_fem_get(mesh_fem MF, 'basic dof nodes'[, mat DOFids])

基本自由度の位置を取得します.

指定した DOFids ( DOFids を省略すると,すべての基本自由度が考慮されます)の自由度 #IDs の補間点のリストを返します.

DOFP = gf_mesh_fem_get(mesh_fem MF, 'dof partition')

'dof_partition' 配列を取得します.

mesh_femの各凸に整数(パーティション番号)を関連付ける配列を返します.既定では,配列はすべてゼロです.mesh_femの各凸の自由度は,同じパーティション番号を持つ隣接する凸の自由度にのみ接続されるため,部分的に不連続なmesh_femを非常に簡単に作成することができます.

gf_mesh_fem_get(mesh_fem MF, 'save',string filename[, string opt])

mesh_femをテキストファイル(オプションで opt が文字列 'with_mesh' の場合はリンクされたメッシュオブジェクト)に保存します.

gf_mesh_fem_get(mesh_fem MF, 'char'[, string opt])

mesh_femの string description を出力します.

デフォルトでは, opt が 'with_mesh' の場合を除き,リンクされたメッシュオブジェクトの説明は含まれません.

gf_mesh_fem_get(mesh_fem MF, 'display')

mesh_femオブジェクトの簡単な概要が表示されます.

m = gf_mesh_fem_get(mesh_fem MF, 'linked mesh')

mf にリンクされたmeshオブジェクトへの参照を返します.

m = gf_mesh_fem_get(mesh_fem MF, 'mesh')

mf にリンクされたメッシュオブジェクトへの参照を返します( gf_mesh_get(mesh M, 'linked mesh') と同一です).

gf_mesh_fem_get(mesh_fem MF, 'export to vtk',string filename, ... ['ascii'], U, 'name'...)

mesh_femと一部のフィールドをvtkファイルに書き出します.

FEMおよび幾何変換は,次数1または2のアイソパラメトリックPk(またはQk)FEM(VTKでは上位の要素を処理できないため)にマッピングされます.高次FEMまたは高次幾何変換を表す必要がある場合は gf_slice_get(slice S, 'export to vtk') を考慮する必要があります.

gf_mesh_fem_get(mesh_fem MF, 'export to vtu',string filename, ... ['ascii'], U, 'name'...)

mesh_femおよび一部のフィールドをvtuファイルにエクスポートします.

FEMおよび幾何変換は,次数1または2のアイソパラメトリックPk(またはQk)FEM(VTK(XML)では上位の要素を処理できないため)にマッピングされます.高次FEMまたは高次幾何変換を表す必要がある場合は gf_slice_get(slice S, 'export to vtu') を考慮する必要があります.

gf_mesh_fem_get(mesh_fem MF, 'export to dx',string filename, ...['as', string mesh_name][,'edges']['serie',string serie_name][,'ascii'][,'append'], U, 'name'...)

mesh_femと一部のフィールドをOpenDXファイルに書き出します.

mesh_femでさまざまな凸が混在する場合(つまり,四角形と三角形),またはOpenDXで特定の要素型が処理されない(つまり,プリズム接続はOpenDXでは認識されない)場合,この関数は失敗します.

FEMは次数1のPk(またはQk)FEMにマップされます.高次FEMまたは高次幾何変換を表す必要がある場合は,gf_slice_get(slice S, 'export to dx') を使用する必要があります.

gf_mesh_fem_get(mesh_fem MF, 'export to pos',string filename[, string name][[,mesh_fem mf1], mat U1, string nameU1[[,mesh_fem mf2], mat U2, string nameU2,...]])

mesh_femと一部のフィールドをposファイルに書き出します.

FEMおよび幾何学的変換は,1次アイソパラメトリックPk(またはQk)FEM(GMSHはより高次の要素を処理しないため)にマッピングされます.

gf_mesh_fem_get(mesh_fem MF, 'dof_from_im',mesh_im mim[, int p])

mf と積分法 mim で計算される質量行列に大きく寄与する自由度を選択し返します.

p は積分法が作用する次元(デフォルトは p = メッシュの次元 )を表します.

重要:levelsetと交差しない凸には,有効な積分法を設定する必要があります!

U = gf_mesh_fem_get(mesh_fem MF, 'interpolate_convex_data',mat Ucv)

メッシュの各凸で指定されたデータをmesh_femの自由度に補間します.mesh_femはlagrangianである必要があり,不連続である必要があります(通常は FEM_PK(N,0) または FEM_QK(N,0) を使用する必要があります).

入力ベクトルUcvの最後の次元には gf_mesh_get(mesh M, 'max cvid') の要素が必要です.

使用例: gf_mesh_fem_get(mesh_fem MF, 'interpolate_convex_data', gf_mesh_get(mesh M, 'quality'))

z = gf_mesh_fem_get(mesh_fem MF, 'memsize')

mesh_fem オブジェクトが使用するメモリ量(バイト単位)を返します.

この結果では,リンクされたメッシュオブジェクトは考慮されません.

gf_mesh_fem_get(mesh_fem MF, 'has_linked_mesh_levelset')

mesh_fem_level_setかどうかを確認します.

gf_mesh_fem_get(mesh_fem MF, 'linked_mesh_levelset')

mesh_fem_level_set の場合はリンクされた mesh_level_set を返します.

U = gf_mesh_fem_get(mesh_fem MF, 'eval', expr [, DOFLST])

gf_mesh_fem_get_evalを呼び出します.lagrangian mesh_fem(DOFLSTが指定されている場合を除くすべてのdof)の式を補間します.式には,数値定数,または数値定数,文字列式,関数ハンドルを含むセル配列を指定できます.次に例を示します.

U1=gf_mesh_fem_get(mf,'eval',1)
U2=gf_mesh_fem_get(mf,'eval',[1;0]) % output has two rows
U3=gf_mesh_fem_get(mf,'eval',[1 0]) % output has one row, only valid if qdim(mf)==2
U4=gf_mesh_fem_get(mf,'eval',{'x';'y.*z';4;@myfunctionofxyz})