gf_model_set

概要

gf_model_set(model M, 'clear')
gf_model_set(model M, 'add fem variable', string name, mesh_fem mf)
gf_model_set(model M, 'add filtered fem variable', string name, mesh_fem mf, int region)
gf_model_set(model M, 'add im variable', string name, mesh_imd mimd)
gf_model_set(model M, 'add internal im variable', string name, mesh_imd mimd)
gf_model_set(model M, 'add variable', string name, sizes)
gf_model_set(model M, 'delete variable', string name)
gf_model_set(model M, 'resize variable', string name, sizes)
gf_model_set(model M, 'add multiplier', string name, mesh_fem mf, string primalname[, mesh_im mim, int region])
gf_model_set(model M, 'add im data', string name, mesh_imd mimd)
gf_model_set(model M, 'add fem data', string name, mesh_fem mf[, sizes])
gf_model_set(model M, 'add initialized fem data', string name, mesh_fem mf, vec V[, sizes])
gf_model_set(model M, 'add data', string name, int size)
gf_model_set(model M, 'add macro', string name, string expr)
gf_model_set(model M, 'del macro', string name)
gf_model_set(model M, 'add initialized data', string name, vec V[, sizes])
gf_model_set(model M, 'variable', string name, vec V)
gf_model_set(model M, 'to variables', vec V[, bool with_internal])
gf_model_set(model M, 'delete brick', int ind_brick)
gf_model_set(model M, 'define variable group', string name[, string varname, ...])
gf_model_set(model M, 'add elementary rotated RT0 projection', string transname)
gf_model_set(model M, 'add elementary P0 projection', string transname)
gf_model_set(model M, 'add HHO reconstructed gradient', string transname)
gf_model_set(model M, 'add HHO reconstructed symmetrized gradient', string transname)
gf_model_set(model M, 'add HHO reconstructed value', string transname)
gf_model_set(model M, 'add HHO reconstructed symmetrized value', string transname)
gf_model_set(model M, 'add HHO stabilization', string transname)
gf_model_set(model M, 'add HHO symmetrized stabilization', string transname)
gf_model_set(model M, 'add interpolate transformation from expression', string transname, mesh source_mesh, mesh target_mesh, string expr)
gf_model_set(model M, 'add element extrapolation transformation', string transname, mesh source_mesh, mat elt_corr)
gf_model_set(model M, 'add standard secondary domain', string name, mesh_im mim, int region = -1)
gf_model_set(model M, 'set element extrapolation correspondence', string transname, mat elt_corr)
gf_model_set(model M, 'add raytracing transformation', string transname, scalar release_distance)
gf_model_set(model M, 'add master contact boundary to raytracing transformation', string transname, mesh m, string dispname, int region)
gf_model_set(model M, 'add slave contact boundary to raytracing transformation', string transname, mesh m, string dispname, int region)
gf_model_set(model M, 'add rigid obstacle to raytracing transformation', string transname, string expr, int N)
gf_model_set(model M, 'add projection transformation', string transname, scalar release_distance)
gf_model_set(model M, 'add master contact boundary to projection transformation', string transname, mesh m, string dispname, int region)
gf_model_set(model M, 'add slave contact boundary to projection transformation', string transname, mesh m, string dispname, int region)
gf_model_set(model M, 'add rigid obstacle to projection transformation', string transname, string expr, int N)
ind = gf_model_set(model M, 'add linear term', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])
ind = gf_model_set(model M, 'add linear twodomain term', mesh_im mim, string expression, int region, string secondary_domain[, int is_symmetric[, int is_coercive]])
ind = gf_model_set(model M, 'add linear generic assembly brick', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])
ind = gf_model_set(model M, 'add nonlinear term', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])
ind = gf_model_set(model M, 'add nonlinear twodomain term', mesh_im mim, string expression, int region, string secondary_domain[, int is_symmetric[, int is_coercive]])
ind = gf_model_set(model M, 'add nonlinear generic assembly brick', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])
ind = gf_model_set(model M, 'add source term', mesh_im mim, string expression[, int region])
ind = gf_model_set(model M, 'add twodomain source term', mesh_im mim, string expression, int region, string secondary_domain)
ind = gf_model_set(model M, 'add source term generic assembly brick', mesh_im mim, string expression[, int region])
gf_model_set(model M, 'add assembly assignment', string dataname, string expression[, int region[, int order[, int before]]])
gf_model_set(model M, 'clear assembly assignment')
ind = gf_model_set(model M, 'add Laplacian brick', mesh_im mim, string varname[, int region])
ind = gf_model_set(model M, 'add generic elliptic brick', mesh_im mim, string varname, string dataname[, int region])
ind = gf_model_set(model M, 'add source term brick', mesh_im mim, string varname, string dataexpr[, int region[, string directdataname]])
ind = gf_model_set(model M, 'add normal source term brick', mesh_im mim, string varname, string dataname, int region)
ind = gf_model_set(model M, 'add Dirichlet condition with simplification', string varname, int region[, string dataname])
ind = gf_model_set(model M, 'add Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region[, string dataname])
ind = gf_model_set(model M, 'add Dirichlet condition with Nitsche method', mesh_im mim, string varname, string Neumannterm, string datagamma0, int region[, scalar theta][, string dataname])
ind = gf_model_set(model M, 'add Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region[, string dataname, mesh_fem mf_mult])
ind = gf_model_set(model M, 'add normal Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region[, string dataname])
ind = gf_model_set(model M, 'add normal Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region[, string dataname, mesh_fem mf_mult])
ind = gf_model_set(model M, 'add normal Dirichlet condition with Nitsche method', mesh_im mim, string varname, string Neumannterm, string gamma0name, int region[, scalar theta][, string dataname])
ind = gf_model_set(model M, 'add generalized Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region, string dataname, string Hname)
ind = gf_model_set(model M, 'add generalized Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region, string dataname, string Hname[, mesh_fem mf_mult])
ind = gf_model_set(model M, 'add generalized Dirichlet condition with Nitsche method', mesh_im mim, string varname, string Neumannterm, string gamma0name, int region[, scalar theta], string dataname, string Hname)
ind = gf_model_set(model M, 'add pointwise constraints with multipliers', string varname, string dataname_pt[, string dataname_unitv] [, string dataname_val])
ind = gf_model_set(model M, 'add pointwise constraints with given multipliers', string varname, string multname, string dataname_pt[, string dataname_unitv] [, string dataname_val])
ind = gf_model_set(model M, 'add pointwise constraints with penalization', string varname, scalar coeff, string dataname_pt[, string dataname_unitv] [, string dataname_val])
gf_model_set(model M, 'change penalization coeff', int ind_brick, scalar coeff)
ind = gf_model_set(model M, 'add Helmholtz brick', mesh_im mim, string varname, string dataexpr[, int region])
ind = gf_model_set(model M, 'add Fourier Robin brick', mesh_im mim, string varname, string dataexpr, int region)
ind = gf_model_set(model M, 'add constraint with multipliers', string varname, string multname, spmat B, {vec L | string dataname})
ind = gf_model_set(model M, 'add constraint with penalization', string varname, scalar coeff, spmat B, {vec L | string dataname})
ind = gf_model_set(model M, 'add explicit matrix', string varname1, string varname2, spmat B[, int issymmetric[, int iscoercive]])
ind = gf_model_set(model M, 'add explicit rhs', string varname, vec L)
gf_model_set(model M, 'set private matrix', int indbrick, spmat B)
gf_model_set(model M, 'set private rhs', int indbrick, vec B)
ind = gf_model_set(model M, 'add isotropic linearized elasticity brick', mesh_im mim, string varname, string dataname_lambda, string dataname_mu[, int region])
ind = gf_model_set(model M, 'add isotropic linearized elasticity pstrain brick', mesh_im mim, string varname, string data_E, string data_nu[, int region])
ind = gf_model_set(model M, 'add isotropic linearized elasticity pstress brick', mesh_im mim, string varname, string data_E, string data_nu[, int region])
ind = gf_model_set(model M, 'add linear incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region[, string dataexpr_coeff]])
ind = gf_model_set(model M, 'add nonlinear elasticity brick', mesh_im mim, string varname, string constitutive_law, string dataname[, int region])
ind = gf_model_set(model M, 'add finite strain elasticity brick', mesh_im mim, string constitutive_law, string varname, string params[, int region])
ind = gf_model_set(model M, 'add small strain elastoplasticity brick', mesh_im mim,  string lawname, string unknowns_type [, string varnames, ...] [, string params, ...] [, string theta = '1' [, string dt = 'timestep']] [, int region = -1])
ind = gf_model_set(model M, 'add elastoplasticity brick', mesh_im mim ,string projname, string varname, string previous_dep_name, string datalambda, string datamu, string datathreshold, string datasigma[, int region])
ind = gf_model_set(model M, 'add finite strain elastoplasticity brick', mesh_im mim , string lawname, string unknowns_type [, string varnames, ...] [, string params, ...] [, int region = -1])
ind = gf_model_set(model M, 'add nonlinear incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region])
ind = gf_model_set(model M, 'add finite strain incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region])
ind = gf_model_set(model M, 'add bilaplacian brick', mesh_im mim, string varname, string dataname [, int region])
ind = gf_model_set(model M, 'add Kirchhoff-Love plate brick', mesh_im mim, string varname, string dataname_D, string dataname_nu [, int region])
ind = gf_model_set(model M, 'add normal derivative source term brick', mesh_im mim, string varname, string dataname, int region)
ind = gf_model_set(model M, 'add Kirchhoff-Love Neumann term brick', mesh_im mim, string varname, string dataname_M, string dataname_divM, int region)
ind = gf_model_set(model M, 'add normal derivative Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region [, string dataname, int R_must_be_derivated])
ind = gf_model_set(model M, 'add normal derivative Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region [, string dataname, int R_must_be_derivated])
ind = gf_model_set(model M, 'add Mindlin Reissner plate brick', mesh_im mim, mesh_im mim_reduced, string varname_u3, string varname_theta , string param_E, string param_nu, string param_epsilon, string param_kappa [,int variant [, int region]])
ind = gf_model_set(model M, 'add enriched Mindlin Reissner plate brick', mesh_im mim, mesh_im mim_reduced1, mesh_im mim_reduced2, string varname_ua, string varname_theta,string varname_u3, string varname_theta3 , string param_E, string param_nu, string param_epsilon [,int variant [, int region]])
ind = gf_model_set(model M, 'add mass brick', mesh_im mim, string varname[, string dataexpr_rho[, int region]])
ind = gf_model_set(model M, 'add lumped mass for first order brick', mesh_im mim, string varname[, string dataexpr_rho[, int region]])
gf_model_set(model M, 'shift variables for time integration')
gf_model_set(model M, 'perform init time derivative', scalar ddt)
gf_model_set(model M, 'set time step', scalar dt)
gf_model_set(model M, 'set time', scalar t)
gf_model_set(model M, 'add theta method for first order', string varname, scalar theta)
gf_model_set(model M, 'add theta method for second order', string varname, scalar theta)
gf_model_set(model M, 'add Newmark scheme', string varname, scalar beta, scalar gamma)
gf_model_set(model M, 'add_Houbolt_scheme', string varname)
gf_model_set(model M, 'disable bricks', ivec bricks_indices)
gf_model_set(model M, 'enable bricks', ivec bricks_indices)
gf_model_set(model M, 'disable variable', string varname)
gf_model_set(model M, 'enable variable', string varname)
gf_model_set(model M, 'first iter')
gf_model_set(model M, 'next iter')
ind = gf_model_set(model M, 'add basic contact brick', string varname_u, string multname_n[, string multname_t], string dataname_r, spmat BN[, spmat BT, string dataname_friction_coeff][, string dataname_gap[, string dataname_alpha[, int augmented_version[, string dataname_gamma, string dataname_wt]]])
ind = gf_model_set(model M, 'add basic contact brick two deformable bodies', string varname_u1, string varname_u2, string multname_n, string dataname_r, spmat BN1, spmat BN2[, string dataname_gap[, string dataname_alpha[, int augmented_version]]])
gf_model_set(model M, 'contact brick set BN', int indbrick, spmat BN)
gf_model_set(model M, 'contact brick set BT', int indbrick, spmat BT)
ind = gf_model_set(model M, 'add nodal contact with rigid obstacle brick',  mesh_im mim, string varname_u, string multname_n[, string multname_t], string dataname_r[, string dataname_friction_coeff], int region, string obstacle[,  int augmented_version])
ind = gf_model_set(model M, 'add contact with rigid obstacle brick',  mesh_im mim, string varname_u, string multname_n[, string multname_t], string dataname_r[, string dataname_friction_coeff], int region, string obstacle[,  int augmented_version])
ind = gf_model_set(model M, 'add integral contact with rigid obstacle brick',  mesh_im mim, string varname_u, string multname, string dataname_obstacle, string dataname_r [, string dataname_friction_coeff], int region [, int option [, string dataname_alpha [, string dataname_wt [, string dataname_gamma [, string dataname_vt]]]]])
ind = gf_model_set(model M, 'add penalized contact with rigid obstacle brick',  mesh_im mim, string varname_u, string dataname_obstacle, string dataname_r [, string dataname_coeff], int region [, int option, string dataname_lambda, [, string dataname_alpha [, string dataname_wt]]])
ind = gf_model_set(model M, 'add Nitsche contact with rigid obstacle brick', mesh_im mim, string varname, string Neumannterm, string dataname_obstacle, string gamma0name,  int region[, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt]]])
ind = gf_model_set(model M, 'add Nitsche midpoint contact with rigid obstacle brick', mesh_im mim, string varname, string Neumannterm, string Neumannterm_wt, string dataname_obstacle, string gamma0name,  int region, scalar theta, string dataname_friction_coeff, string dataname_alpha, string dataname_wt)
ind = gf_model_set(model M, 'add Nitsche fictitious domain contact brick', mesh_im mim, string varname1, string varname2, string dataname_d1, string dataname_d2, string gamma0name [, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt1,string dataname_wt2]]])
ind = gf_model_set(model M, 'add nodal contact between nonmatching meshes brick',  mesh_im mim1[, mesh_im mim2], string varname_u1[, string varname_u2], string multname_n[, string multname_t], string dataname_r[, string dataname_fr], int rg1, int rg2[, int slave1, int slave2,  int augmented_version])
ind = gf_model_set(model M, 'add nonmatching meshes contact brick',  mesh_im mim1[, mesh_im mim2], string varname_u1[, string varname_u2], string multname_n[, string multname_t], string dataname_r[, string dataname_fr], int rg1, int rg2[, int slave1, int slave2,  int augmented_version])
ind = gf_model_set(model M, 'add integral contact between nonmatching meshes brick',  mesh_im mim, string varname_u1, string varname_u2, string multname, string dataname_r [, string dataname_friction_coeff], int region1, int region2 [, int option [, string dataname_alpha [, string dataname_wt1 , string dataname_wt2]]])
ind = gf_model_set(model M, 'add penalized contact between nonmatching meshes brick',  mesh_im mim, string varname_u1, string varname_u2, string dataname_r [, string dataname_coeff], int region1, int region2 [, int option [, string dataname_lambda, [, string dataname_alpha [, string dataname_wt1, string dataname_wt2]]]])
ind = gf_model_set(model M, 'add integral large sliding contact brick raytracing', string dataname_r, scalar release_distance, [, string dataname_fr[, string dataname_alpha[, int version]]])
gf_model_set(model M, 'add rigid obstacle to large sliding contact brick', int indbrick, string expr, int N)
gf_model_set(model M, 'add master contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname[, string wname])
gf_model_set(model M, 'add slave contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])
gf_model_set(model M, 'add master slave contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])
ind = gf_model_set(model M, 'add Nitsche large sliding contact brick raytracing', bool unbiased_version, string dataname_r, scalar release_distance[, string dataname_fr[, string dataname_alpha[, int version]]])
gf_model_set(model M, 'add rigid obstacle to Nitsche large sliding contact brick', int indbrick, string expr, int N)
gf_model_set(model M, 'add master contact boundary to biased Nitsche large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname[, string wname])
gf_model_set(model M, 'add slave contact boundary to biased Nitsche large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])
gf_model_set(model M, 'add contact boundary to unbiased Nitsche large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])

説明 :

モデルオブジェクトを変更します.

コマンドリスト

gf_model_set(model M, 'clear')

モデルをクリアします.

gf_model_set(model M, 'add fem variable', string name, mesh_fem mf)

mesh_femにリンクされたモデルに変数を追加します. name は変数名です.

gf_model_set(model M, 'add filtered fem variable', string name, mesh_fem mf, int region)

mesh_femにリンクされたモデルに変数を追加します.変数は,領域上の自由度のみが考慮されるという意味でフィルタリングされます. name は変数名です.

gf_model_set(model M, 'add im variable', string name, mesh_imd mimd)

mesh_imdにリンクされたモデルに変数を追加します. name は変数名です.

gf_model_set(model M, 'add internal im variable', string name, mesh_imd mimd)

モデルに変数を追加します.この変数はmesh_imdにリンクされており,接線行列のアセンブリ中に縮約されます. name は変数名です.

gf_model_set(model M, 'add variable', string name, sizes)

一定サイズのモデルに変数を追加します. sizes は整数(スカラー変数またはベクトル変数の場合)かテンソル変数の次元のベクトルです. name は変数名です.

gf_model_set(model M, 'delete variable', string name)

モデルから変数またはデータを削除します.

gf_model_set(model M, 'resize variable', string name, sizes)

モデルの一定サイズ変数のサイズを変更します. sizes は(スカラー変数またはベクトル変数の場合)整数かテンソル変数の次元のベクトルです. name は変数名です.

gf_model_set(model M, 'add multiplier', string name, mesh_fem mf, string primalname[, mesh_im mim, int region])

有限要素法にリンクされた特定の変数を,原始変数に対する乗数として追加します.自由度は gmm::range_basis 関数でフィルタリングされ,乗数と原始変数をリンクするモデルの項に適用されます.これは,主変数に対する線形独立制約のみを保持するためです.境界乗数用に最適化されています.

gf_model_set(model M, 'add im data', string name, mesh_imd mimd)

mesh_imdにリンクされたモデルにデータセットを追加します. name はデータ名です.

gf_model_set(model M, 'add fem data', string name, mesh_fem mf[, sizes])

mesh_femにリンクされたモデルにデータを追加します. name はデータ名であり, sizes はオプションのパラメータであり, mf に関して補間的な次元の整数またはベクトルです.

gf_model_set(model M, 'add initialized fem data', string name, mesh_fem mf, vec V[, sizes])

mesh_femにリンクされたモデルにデータを追加します. name はデータ名です.データは V で初期化されます.データはスカラーまたはベクトルフィールドです. sizes はオプションのパラメータであり, `mf`に対する補完次元の整数またはベクトルです.

gf_model_set(model M, 'add data', string name, int size)

固定サイズのデータをモデルに追加します. sizes は整数(スカラーまたはベクトルデータ用)かテンソルデータの次元のベクトルです. name はデータ名です.

gf_model_set(model M, 'add macro', string name, string expr)

汎用アセンブリ言語の新しいマクロを定義します.名前にはパラメータが含まれます.例えば, name='sp(a,b)' , expr='a.b' は有効な定義です.パラメータのないマクロも定義できます.たとえば, name='x1', expr='X[1]' は有効です. name='grad(u)', expr='Grad_u' という形式も使用できますが,この場合,パラメータ 'u' はマクロの使用時にのみ変数名として許可されます.マクロは,キーワード 'Def' を使用してアセンブリ文字列内に直接定義できます.

gf_model_set(model M, 'del macro', string name)

汎用アセンブリ言語用に定義済みのマクロを削除します.

gf_model_set(model M, 'add initialized data', string name, vec V[, sizes])

初期化された固定サイズデータをモデルに追加します. sizes はオプションのパラメータで,データのフォーマットを記述する整数またはベクトルの次元です.デフォルトでは,データはベクトルフィールドbとみなされます. name はデータ名で, V はデータの値です.

gf_model_set(model M, 'variable', string name, vec V)

変数またはデータの値を設定します. name はデータ名です.

gf_model_set(model M, 'to variables', vec V[, bool with_internal])

ベクトル V でモデルの変数の値を設定します.通常,ベクトル V は接線線形システム(独自のソルバを使用して問題を解決するのに便利)のソルバの結果です.

gf_model_set(model M, 'delete brick', int ind_brick)

モデルから変数またはデータを削除します.

gf_model_set(model M, 'define variable group', string name[, string varname, ...])

補間 (主にレイトレーシング補間変換の変数のグループを定義します.

gf_model_set(model M, 'add elementary rotated RT0 projection', string transname)

2次元エレメントの回転RT0エレメント上の投影に対応する基本変換をモデルに追加します.名前は,基本変換に付けられた名前です.

gf_model_set(model M, 'add elementary P0 projection', string transname)

投影P0要素に対応する基本変換を追加します.名前は,基本変換に付けられた名前です.

gf_model_set(model M, 'add HHO reconstructed gradient', string transname)

このモデルにHHO法に対する勾配の再構成に対応する基本変換を加えました.名前は基本変換に付けられた名前です.

gf_model_set(model M, 'add HHO reconstructed symmetrized gradient', string transname)

このモデルにHHO法に対する勾配の再構成に対応する基本変換を加えました.名前は基本変換に付けられた名前です.

gf_model_set(model M, 'add HHO reconstructed value', string transname)

このモデルにHHO法に対する変数の再構成に対応する基本変換を加えました.名前は基本変換に付けられた名前です.

gf_model_set(model M, 'add HHO reconstructed symmetrized value', string transname)

対称化勾配を用いたHHO法に対する変数の再構成に対応する素変換をモデルに加えます.名前は基本変換に付けられた名前です.

gf_model_set(model M, 'add HHO stabilization', string transname)

このモデルにHHO安定化演算子に対応する素変換を加えます.名前は,基本変換に付けられた名前です.

gf_model_set(model M, 'add HHO symmetrized stabilization', string transname)

対称化勾配を用いたHHO安定化演算子に対応する素変換をモデルに加えます.名前は,基本変換に付けられた名前です.

gf_model_set(model M, 'add interpolate transformation from expression', string transname, mesh source_mesh, mesh target_mesh, string expr)

メッシュ source_mesh から式 expr で指定されるメッシュ target_mesh への変換をモデルに追加します.この式は,モデルの変数を含む高水準汎用アセンブリ式に対応します.注意:接線システムの計算では,使用した変数による変換の導関数が考慮されます.ただし,2次微分は実装されていないため,ポテンシャルの定義ではこのような変換は許されていません.

gf_model_set(model M, 'add element extrapolation transformation', string transname, mesh source_mesh, mat elt_corr)

恒等変換を表すが,多項式外挿によって現在の要素以外の別の要素で式を評価できる特別な補間変換を追加します.仮想領域応用における安定化項に使用されます.配列elt_corは2つのエントリからなる配列で,最初の行は変換に関係する要素を含み,2番目の行は外挿が必要なそれぞれの要素を含みます.要素がelt_corにリストされていない場合,評価は現在の要素に対してのみ行われます.

gf_model_set(model M, 'add standard secondary domain', string name, mesh_im mim, int region = -1)

2つのドメインの積を統合するために,弱形式言語の表現で使用できるセカンダリドメインをモデルに追加します. name はセカンダリドメインの名前であり, mim はこのドメイン上の積分法であり, region は積分が実行される領域です.

gf_model_set(model M, 'set element extrapolation correspondence', string transname, mat elt_corr)

要素外挿補間変換の対応マップを変更します.

gf_model_set(model M, 'add raytracing transformation', string transname, scalar release_distance)

汎用アセンブリブリックで使用されるモデルに transname というレイトレーシング補間変換を追加します.注意: 現時点ではモデルの計算で変換の導関数は考慮されません.

gf_model_set(model M, 'add master contact boundary to raytracing transformation', string transname, mesh m, string dispname, int region)

特定の境界 region 上の対応する変位変数 dispname を持つマスター接触境界を transname という既存のレイトレーシング補間変換に追加します.

gf_model_set(model M, 'add slave contact boundary to raytracing transformation', string transname, mesh m, string dispname, int region)

特定の境界 region 上の対応するディスプレイスメント変数 dispname を持つスレーブコンタクト境界を, transname という既存のレイトレーシング補間変換に追加します.

gf_model_set(model M, 'add rigid obstacle to raytracing transformation', string transname, string expr, int N)

ジオメトリが上位レベルの汎用アセンブリ式 expr の0レベルセットに対応する剛体な障害物を `transname`という既存のレイトレーシング補間変換に追加します.

gf_model_set(model M, 'add projection transformation', string transname, scalar release_distance)

transname という名前の投影補間変換を,汎用アセンブリブリックで使用するモデルに追加します.注意: 現時点では,モデルの計算で変換の導関数は考慮されません.

gf_model_set(model M, 'add master contact boundary to projection transformation', string transname, mesh m, string dispname, int region)

特定の境界 region 上に対応する変位変数 dispname を持つマスター接触境界を,`transname`という既存の投影補間変換に追加します.

gf_model_set(model M, 'add slave contact boundary to projection transformation', string transname, mesh m, string dispname, int region)

特定の境界 region 上の対応する変位変数 dispname を持つスレーブ接触境界を `transname`という既存の投影補間変換に追加します.

gf_model_set(model M, 'add rigid obstacle to projection transformation', string transname, string expr, int N)

ジオメトリが高水準汎用アセンブリ式 expr の0レベルセットに対応する剛体障害を transname という既存の投影補間変換に追加します.

ind = gf_model_set(model M, 'add linear term', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])

アセンブリ文字列 expr で指定された行列項を追加します.この行列は,領域 region で積分法 mim を使用して組み立てられます.線形であると仮定すると,行列項のみが考慮されます.項を非線形ではなく線形と宣言する利点は,項が1回だけ組み立てられ,残差にアセンブリが必要ないことです.式にいくつかの変数が含まれ,式がポテンシャルまたは一次(すなわち,弱形式の微分ではなく,弱形式を記述する)場合,式はすべての変数に関して微分することに注意してください.項が対称か,強制でないかどうかを指定できます.よくわからない場合は,対称ではなく,強制的ではないと宣言した方がよいでしょう.しかし,一部のソルバー(例えば共役勾配)は非強制問題には使用できません. brickname はブリックのオプション名です.

ind = gf_model_set(model M, 'add linear twodomain term', mesh_im mim, string expression, int region, string secondary_domain[, int is_symmetric[, int is_coercive]])

Modelのような弱形式言語式で与えられる線形項を追加します. gf_model_set(model M, 'add linear term') ではなく,二つのドメインの直積上での積分の場合には,最初に``mim''と``region''で指定されたものと``secondary_domain''で指定されたものを最初にモデルに宣言しなければなりません.

ind = gf_model_set(model M, 'add linear generic assembly brick', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])

非推奨.代わりに gf_model_set(model M, 'add linear term') を使用してください.

ind = gf_model_set(model M, 'add nonlinear term', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])

アセンブリ文字列 expr で指定された非線形項を追加します.この非線形項は,領域 region と積分法 mim で組み立てられます.この表現は,ポテンシャルまたは弱形式を表すことができます.2次項(すなわち,2次試験関数Test2を含みます)は使用できません.項が対称か,強制かどうかを指定できます.よくわからない場合は,対称ではなく,強制ではないと宣言した方がよいでしょう.しかし,一部のソルバー(例えば共役勾配)は非強制問題には使用できません. brickname はブリックのオプション名です.

ind = gf_model_set(model M, 'add nonlinear twodomain term', mesh_im mim, string expression, int region, string secondary_domain[, int is_symmetric[, int is_coercive]])

弱形式言語の式で与えられる非線形項を追加します. gf_model_set(model M, 'add nonlinear term') のようではなく,二つのドメインの直積上での積分の場合には,最初に mimregion で指定されたものと secondary_domain で指定されたものを最初にモデルに宣言しなければなりません.

ind = gf_model_set(model M, 'add nonlinear generic assembly brick', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])

非推奨.代わりに gf_model_set(model M, 'add nonlinear term') を使用してください.

ind = gf_model_set(model M, 'add source term', mesh_im mim, string expression[, int region])

アセンブリ文字列 expr で指定されたソース項を追加します.これは,領域 region で積分法 mim を使用してアセンブルされます.残差項のみが考慮されます.式にいくつかの変数が含まれていて,式がポテンシャルである場合,式はすべての変数に関して微分されることに注意してください. brickname はブリックのオプション名です.

ind = gf_model_set(model M, 'add twodomain source term', mesh_im mim, string expression, int region, string secondary_domain)

gf_model_set(model M, 'add source term') などのように弱形式言語表現で指定されたソース項を追加する場合があります.一方,2つのドメインの直積での積分の場合には,最初に mim と``region`` によって指定されたものと secondary_domain によって指定されたものがあり,後者は最初にモデルに宣言されなければなりません.

ind = gf_model_set(model M, 'add source term generic assembly brick', mesh_im mim, string expression[, int region])

非推奨.代わりに gf_model_set(model M, 'add source term') を使用してください.

gf_model_set(model M, 'add assembly assignment', string dataname, string expression[, int region[, int order[, int before]]])

アセンブリ時に評価され,im_data型であるデータ dataname に割り当てられる式 expr を追加します.これにより,インスタンスは,他のアセンブリで使用するアセンブリ計算のサブ式を保存できます.たとえば,塑性モデルに塑性歪みを保存するために使用できます.orderは,この割り当てを行うアセンブリの次数(ポテンシャル (0),弱形式 (1),接線システム (2),または各次数(-1))を表します.デフォルト値は1です.before=1の場合,他のアセンブリ項の計算の前に割り当てが実行され,データが残りのアセンブリで中間結果として使用できるようになります(接線システム式の微分が実行されず,データとみなされることに注意してください).before=0(デフォルト)の場合,代入はアセンブリ項の後に行われます.

gf_model_set(model M, 'clear assembly assignment')

追加されたアセンブリの割り当てをすべて削除します

ind = gf_model_set(model M, 'add Laplacian brick', mesh_im mim, string varname[, int region])

変数 varname に相対的にLaplacian項をモデルに追加します(実際には負 \(-\text{div}(\nabla u)\) です).これがベクトル値の変数である場合,Laplace項がコンポーネントごとに追加されます. region は項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add generic elliptic brick', mesh_im mim, string varname, string dataname[, int region])

変数 varname を基準にして,一般的な楕円項をモデルに追加します.楕円項の形状は変数とデータの両方に依存する.これは,以下の項に対応します. \(-\text{div}(a\nabla u)\) ここで, \(a\) はデータ, \(u\) は変数です.データはスカラー,行列,または4次テンソルです.変数はベクトル値であってもなくてもかまいません.データがスカラーまたはマトリックスで,変数がベクトル値の場合,項はコンポーネント単位で追加されます.4次のテンソルデータは,ベクトル値変数にのみ使用できます.データは一定であってもよいし,数分で記述してもよいです.もちろん,データが有限要素法(テンソル場)で記述されるテンソルである場合,データは巨大なベクトルになる可能性があります.行列/テンソルの成分は(blasとの互換性から)データベクトルのFortran(列方向)次数で保存されなければなりません.与えられた行列/テンソルの(仮定されている)対称性は検証されません.これがベクトル値の変数である場合,楕円項はコンポーネントごとに追加されます. region は,項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.高水準汎用アセンブリ言語を使用する実数バージョンでは,モデル変数にも依存しますが, dataname (例えば "1" , "sin(X(1))" ,"Norm(u)" など)は高水準汎用アセンブリ言語の任意の正規表現にすることができます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add source term brick', mesh_im mim, string varname, string dataexpr[, int region[, string directdataname]])

モデルに変数 varname に比例したソース項を追加します.ソース項は dataexpr で表現します.これは高水準汎用アセンブリ言語の任意の正規表現です(ただし複素数モデルの場合は,宣言されたデータでなければりません). region はオプションで項を追加するメッシュ領域です.追加のオプションデータ directdataname を設定することもできます.対応するデータベクトルは,アセンブリなしで右側に直接追加されます.regionが境界である場合,このブリックでNeumann境界条件を設定することができます.

ind = gf_model_set(model M, 'add normal source term brick', mesh_im mim, string varname, string dataname, int region)

境界 region 上の変数 varname にソース項を追加します.この領域は境界である必要があります.ソース項は,データ dataepxpr によって表され,これは,高水準汎用アセンブリ言語(ただし,モデルの宣言されたデータでなければならない複素数バージョンは除きます)の任意の正規表現であり得る.境界への外向き法線単位ベクトルを持つスカラー積が実行されます.このブリックの主な目的は事前処理として法線を持つスカラー積を実行せずにベクトルデータでNeumann条件を表現することです.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add Dirichlet condition with simplification', string varname, int region[, string dataname])

変数 varname とメッシュ領域 region に(単純な)Dirichlet条件を追加します.Dirichlet条件は,region (0は対角線の外側,1はマトリックスの対角線,期待値は右側)上の変数の自由度に対応する行を修正することからなる最終的な線形系(非線形問題の接線系)の簡単な後処理によって規定されます.線形システムの対称性は,他のすべてのブリックが対称である場合に維持されます.このブリックは,単純なDirichlet条件(一致境界で宣言された自由度のみが指定されています)用に予約されています.このブリックの還元された自由度への適用は問題があるかもしれません.固有ベクトル有限要素法はサポートされていません. dataname はディリクレ条件のオプションの右側です.これは,定数(この場合は,Lagrange femにのみ適用できます)または varname と同じ有限要素法で記述された(重要な)にすることができます.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region[, string dataname])

変数 varname とメッシュ領域 region にDirichlet条件を追加します.この領域は境界である必要があります.Dirichlet条件は mult_description によって記述される乗数変数で規定されます. mult_description が文字列の場合は,乗数(これは,最初にモデルのメッシュ領域で乗数変数として宣言する必要があります)に対応する変数名と見なされます.有限要素法(mesh_femオブジェクト)の場合は,乗数変数がモデルに追加され,この有限要素法(メッシュ領域 region で制限され,最終的に他の乗数変数との自由度の競合が抑制されます)に基づいて構築されます.整数の場合は,乗数変数がモデルに追加され,その整数の次数の従来の有限要素に基づいて構築されます. dataname はDirichlet条件のオプションのRHSです.定数の場合もあれば,femで記述される場合もあります.スカラー値またはベクトル値で,Dirichlet条件が指定されている変数によって異なります.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add Dirichlet condition with Nitsche method', mesh_im mim, string varname, string Neumannterm, string datagamma0, int region[, scalar theta][, string dataname])

変数 varname とメッシュ領域 region にDirichlet条件を追加します.この領域は境界である必要があります.Neumann項は,高水準汎用アセンブリ言語の表現である(Green公式により得られる)Neumann項の式です.すべての体積ブリックをモデルに追加すると,この項は gf_model_get(model M, 'Neumann term', varname, region) によって得られます .Dirichlet条件はNitsche法により処理されます. datag はDirichlet条件のオプションのRHSです. datagamma0 はNitsche法のパラメータです. theta は正または負のスカラー値です. theta = 1gamma0 が小さい場合に条件的が強制される標準的な対称法です. theta = -1 は無条件に強制的なskew対称法に対応します. theta = 0 (デフォルト) は非線形問題に対してもNeumann項の二次導関数を必要としない最も単純な方法です.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region[, string dataname, mesh_fem mf_mult])

変数 varname とメッシュ領域 region にDirichlet条件を追加します.この領域は境界である必要があります.Dirichlet条件はペナルティとともに処理されます.ペナルティ係数は初期値は coeff であり,モデルのデータに追加されます.dataname はDirichlet条件のオプションの右辺です.定数の場合もあれば,有限要素法で記述される場合もあります.スカラー値またはベクトル値で,Dirichlet条件が指定されている変数によって異なります. mf_mult はオプションのパラメータで,乗数空間を指定してDirichlet条件を弱めることができます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add normal Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region[, string dataname])

ベクトル(またはテンソル)値変数 varname の法線コンポーネントとメッシュ領域 region にDirichlet条件を追加します.この領域は境界である必要があります.Dirichlet条件は mult_description によって記述される乗数変数で規定される. mult_description が文字列の場合は,乗数(これは,最初にモデルのメッシュ領域で乗数変数として宣言する必要があります)に対応する変数名と見なされます.有限要素法(mesh_femオブジェクト)の場合は,乗数変数がモデルに追加され,この有限要素法(メッシュ領域 region に制限され,最終的に他の乗数変数との自由度の競合が抑制されます)に基づいて構築されます.整数の場合は,乗数変数がモデルに追加され,その整数の次数の従来の有限要素に基づいて構築されます. dataname はDirichlet条件のオプションの右辺です.定数の場合もあれば,有限要素法で記述される場合もあります.スカラー値またはベクトル値で,Dirichlet条件が指定されている変数によって決まります(変数がベクトル値の場合はスカラー,テンソル値の場合はベクトルです).モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add normal Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region[, string dataname, mesh_fem mf_mult])

ベクトル(またはテンソル)値変数 varname の法線コンポーネントとメッシュ領域 region にDirichlet条件を追加します.この領域は境界である必要があります.Dirichlet条件はペナリゼーションとともに処理される.ペナルティ係数は最初は coeff であり,モデルのデータに追加されます. dataname はDirichlet条件のオプションの右辺です.定数の場合もあれば,有限要素法で記述される場合もあります.スカラー値またはベクトル値で,Dirichlet条件が指定されている変数によって決まります(変数がベクトル値の場合はスカラー,テンソル値の場合はベクトル). mf_mult はオプションのパラメータで,乗数空間を指定してDirichlet条件を弱めることができます.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add normal Dirichlet condition with Nitsche method', mesh_im mim, string varname, string Neumannterm, string gamma0name, int region[, scalar theta][, string dataname])

ベクトル(またはテンソル)値変数 varname の法線コンポーネントとメッシュ領域 region にDirichlet条件を追加します.この領域は境界である必要があります. Neumannterm は,高水準汎用アセンブリ言語の表現として説明されるNeumann項(Green公式により得られる)の表現である.この項は gf_model_get(model M, 'Neumann term', varname, region) によって得られます.すべてのボリュームブリックがモデルに追加されると,ディリクレ条件はNitscheの方法で処方される. dataname はDirichlet条件のオプションの右辺です.これは一定であるか,または有限要素法で記述できます. gamma0name はNitsche法パラメータです. theta は正または負のスカラー値です. theta = 1gamma0 が小さい場合に条件的に強制される標準的な対称法に相当する. theta = -1 は無条件に強制的なskew対称法に対応します. theta = 0 は非線形問題に対してもNeumann項の2次導関数を必要としない最も単純な方法である.モデル内のブリックのインデックスを返します.(このブリックは完全にはテストされていません)

ind = gf_model_set(model M, 'add generalized Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region, string dataname, string Hname)

変数 varname とメッシュ領域 region にDirichlet条件を追加します.このバージョンはベクトルフィールド用です.それは H が行列フィールドである条件 \(Hu = r\) を規定します.領域は境界である必要があります.Dirichlet条件は mult_description によって記述される乗数変数で規定される. mult_description が文字列の場合は,乗数(これは,最初にモデルのメッシュ領域で乗数変数として宣言する必要があります)に対応する変数名と見なされます.有限要素法(mesh_femオブジェクト)の場合は,乗数変数がモデルに追加され,この有限要素法(メッシュ領域 region に制限され,最終的に他の乗数変数との自由度の競合が抑制されます)に基づいて構築されます.整数の場合は,乗数変数がモデルに追加され,その整数の次数の従来の有限要素に基づいて構築されます. dataname はDirichlet条件の右側です.定数の場合もあれば,有限要素法で記述される場合もあります.スカラー値またはベクトル値で,Dirichlet条件が指定されている変数によって異なります. Hname は行列フィールド H に対応するデータです.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add generalized Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region, string dataname, string Hname[, mesh_fem mf_mult])

変数 varname とメッシュ領域 region にDirichlet条件を追加します.このバージョンはベクトルフィールド用です.これは H が行列フィールドである条件 \(Hu = r\) を規定します.領域は境界である必要があります.ディリクレ状態はペナリゼーションとともに処方される.ペナルティ係数は本来 coeff であり,モデルのデータに追加されます. dataname はDirichlet条件の右辺です.定数の場合もあれば,有限要素法で記述される場合もあります.スカラー値またはベクトル値で,Dirichlet条件が指定されている変数によって異なります. Hname は行列フィールド H に対応するデータです.定数行列であるか,スカラー関数で記述されている必要があります. mf_mult はオプションのパラメータで,乗数空間を指定してDirichlet条件を弱めることができます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add generalized Dirichlet condition with Nitsche method', mesh_im mim, string varname, string Neumannterm, string gamma0name, int region[, scalar theta], string dataname, string Hname)

変数 varname とメッシュ領域 region にDirichlet条件を追加します.このバージョンはベクトルフィールド用です.これは @f$ Hu = r @f$ という条件を規定しており,ここで H は行列フィールドです.注意: 行列Hの固有値はすべて1または0である必要があります.領域は境界である必要があります. Neumannterm は高水準汎用アセンブリ言語の表現として説明されるNeumann項(Green公式により得られる)の表現です.この項は gf_model_get(model M, 'Neumann term', varname, region) によってmodelに追加されます.すべてのボリュームブリックがモデルに追加されると.ディリクレ条件はNitsche法で処理されています. dataname はDirichlet条件のオプションの右辺です.これは一定であるか,または有限要素法で記述できます. gamma0name はNitsche法のパラメータです. theta は正または負のスカラー値です. theta = 1gamma0 が小さい場合に条件的に強制される標準的な対称法に相当する. theta = -1 は無条件に強制的なskew対称法に対応します. theta = 0 は非線形問題に対してもNeumann項の2次導関数を必要としない最も単純な方法である. Hname は行列フィールド H に対応するデータである.定数行列であるか,スカラー関数で記述されている必要があります.モデル内のブリックのインデックスを返します.(このブリックは完全にはテストされていせん).

ind = gf_model_set(model M, 'add pointwise constraints with multipliers', string varname, string dataname_pt[, string dataname_unitv] [, string dataname_val])

multiplierを使用して,変数 varname に点ワイズ制約を追加します.乗数変数が自動的にモデルに追加されます.条件は,データ dataname_pt に指定された点のセットで規定され,その寸法は点の数とメッシュ次元の積である.変数がベクトルフィールドを表す場合には,データ dataname_unitv を与えなければならない.これは,次元のベクトルを表すものであり,点の数と単位ベクトルを格納すべきベクトルフィールドの次元を乗算したものである.この場合,指定拘束は,対応する点における変数と対応する単位ベクトルとのスカラー積である.オプションのデータ dataname_val は,異なる点で規定される値のベクトルです.このブリックは,Neumann問題における剛体変位を消滅させるために特別に設計されている.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add pointwise constraints with given multipliers', string varname, string multname, string dataname_pt[, string dataname_unitv] [, string dataname_val])

与えられた乗数 multname を使用して,変数 varname の各点に制約を追加します.条件は,データ dataname_pt に指定された点の集合で規定され,その寸法は点の数とメッシュの寸法の積です.乗数変数は,点数のサイズを固定サイズ変数にする必要があります.変数がベクトルフィールドを表す場合には,データ dataname_unitv を与えなければなりません.これは,次元のベクトルを表すものであり,点の数と単位ベクトルを格納すべきベクトルフィールドの次元を乗算したものです.この場合,指定拘束は,対応する点における変数と対応する単位ベクトルとのスカラー積である.オプションのデータ dataname_val は異なる点で規定される値のベクトルです.このブリックはNeumann問題における剛体変位を消滅させるために特別に設計されています.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add pointwise constraints with penalization', string varname, scalar coeff, string dataname_pt[, string dataname_unitv] [, string dataname_val])

ペナルティにより,変数 varname に点ごとの制約を追加します.ペナルティ係数は最初は penalization_coeff で,モデルのデータに追加されます.条件は,データ dataname_pt に指定された点の集合で規定され,その次元は点の数とメッシュの次元の積です.変数がベクトルフィールドを表す場合には,データ dataname_unitv を与えなければなりません.これは,次元のベクトルを表すものであり,点の数と単位ベクトルを格納すべきベクトルフィールドの次元を乗算したものです.この場合,指定拘束は,対応する点における変数と対応する単位ベクトルとのスカラー積です.オプションのデータ dataname_val は異なる点で規定される値のベクトルです.このブリックはNeumann問題における剛体変位を消滅させるために特別に設計されています.モデル内のブリックのインデックスを返します.

gf_model_set(model M, 'change penalization coeff', int ind_brick, scalar coeff)

penalizationブリックを使用してDirichlet条件のpenalization係数を変更します.ブリックがこの種類でない場合,この関数の動作は定義されていません.

ind = gf_model_set(model M, 'add Helmholtz brick', mesh_im mim, string varname, string dataexpr[, int region])

変数 varname に対して相対的にHelmholtz項をモデルに追加します. dataexpr は波数です. region はオプションの項が追加されるメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add Fourier Robin brick', mesh_im mim, string varname, string dataexpr, int region)

変数 varname に相対的にFourier-Robin項を加えてください.これは以下の形式の形式の弱項に対応します. \(\int (qu).v\)dataexpr はFourier-Robin条件のパラメータ \(q\) です.高水準汎用アセンブリ言語(ただし,モデルのデータである必要がある複雑なバージョンは除きます.)の任意の有効な式を指定できます. region は,項が追加されるメッシュ領域です.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add constraint with multipliers', string varname, string multname, spmat B, {vec L | string dataname})

以前にモデルに追加した乗数 multname を使い,変数 varname (は固定サイズ変数でなければなりません)に陽な制約を追加します.制約は \(BU=L\) です.ただし, B は矩形の疎行列です. gf_model_set(model M, 'set private matrix') と gf_model_set(model M, 'set private rhs') メソッドを使用すると,いつでも拘束を変更できます. L の代わりに dataname が指定された場合,ベクトル L は指定された名前のデータとしてモデル内で定義されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add constraint with penalization', string varname, scalar coeff, spmat B, {vec L | string dataname})

変数 varname に追加の明示的ペナルティ制約を追加します.制約は以下の通りである. :math`BU=L` と B は矩形の疎行列である. B にはペイン行を含めないでください.そうしないと,接線行列全体が単純になります. gf_model_set(model M, 'set private matrix') と gf_model_set(model M, 'set private rhs') メソッドを使用すると,いつでも拘束を変更できます.gf_model_set(model M, 'change penalization coeff') を使用できます. L の代わりに dataname が指定された場合,ベクトル L は指定された名前のデータとしてモデル内で定義されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add explicit matrix', string varname1, string varname2, spmat B[, int issymmetric[, int iscoercive]])

変数 varname1varname2 に対して相対的に接線線形システムに追加される陽な行列を表すブリックを追加します.与えられた行列は varname1 の次元と同じ数の行と varname2 の次元と同じ数の列を持つ必要があります.もし2つの変数が異なっていて,かつ issymmetric が1に設定されているならば,行列の転置もまた接線系に加えられます(デフォルトは0です).項が接線系の保磁力に影響を与えない場合(デフォルトは0です), iscoercive を1に設定します.マトリックスは, gf_model_set(model M, 'set private matrix') コマンドで変更できます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add explicit rhs', string varname, vec L)

変数 varname に対して相対的に接線線形システムの右側に追加される明示的な右辺を表すブリックを追加します.与えられた右辺は varname の次元と同じ大きさでなければなりません.右辺は gf_model_set(model M, 'set private rhs') コマンドで変更できます. L の代わりに dataname が指定された場合,ベクトル L は指定された名前のデータとしてモデル内で定義されます.モデル内のブリックインデックスを返します.

gf_model_set(model M, 'set private matrix', int indbrick, spmat B)

内部に疎行列がある特定のブリック(陽なブリック: '拘束ブリック' と '陽な行列ブリック' )では,この行列を設定します.

gf_model_set(model M, 'set private rhs', int indbrick, vec B)

内部右辺ベクトル(陽なブリック: '拘束ブリック' と '陽なブリック')を持つ特定のブリックでは,このrhsを設定します.

ind = gf_model_set(model M, 'add isotropic linearized elasticity brick', mesh_im mim, string varname, string dataname_lambda, string dataname_mu[, int region])

等方性線形化弾性項を,変数 varname に対して相対的にモデルに追加します.dataname_lambdadataname_mu には,Lame係数を含める必要があります. region は項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add isotropic linearized elasticity pstrain brick', mesh_im mim, string varname, string data_E, string data_nu[, int region])

等方性線形化弾性項を,変数 varname に対してモデルに追加します. data_Edata_nu には,それぞれYoung率とPoisson比を含める必要があります. region はオプションの項が追加されるメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.2次元メッシュでは,この項は単純な歪み近似と相関します.3次元メッシュでは,標準モデルに対応します.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add isotropic linearized elasticity pstress brick', mesh_im mim, string varname, string data_E, string data_nu[, int region])

等方性線形化弾性項を,変数 varname に対してモデルに追加します.data_Edata_nu には,それぞれYoung率とPoisson比を含める必要があります. region は項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.2次元メッシュでは,この項は単純応力近似に対応します.3次元メッシュでは,標準モデルに対応します.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add linear incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region[, string dataexpr_coeff]])

variable に線形非圧縮性条件を追加します. multname_pressure は圧力を表す変数です.圧力を記述する有限要素法と主変数との間の入力条件を満たす必要があることに注意してください. region は項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます. dataexpr_coeff は,たとえば,非圧縮性に近い弾性に対するオプションのペナルティ係数です.この場合,それはLame係数の逆数である \(\lambda\) です.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add nonlinear elasticity brick', mesh_im mim, string varname, string constitutive_law, string dataname[, int region])

変数 varname (deprecated brick,代わりにadd_finite_strain_elasticityを使用してください)に関する非線形弾性項をモデルに追加します.lawname は構成則であり 'SaintVenant Kirchhoff' , 'Mooney Rivlin' , 'neo Hookean' , 'Ciarlet Geymonat' または 'generalized Blatz Ko' のいずれかになります. 'Mooney Rivlin' および 'neo Hookean' 則の名前の前に 'compressible' または 'incompressible' を付けると,対応するバージョンが使用されます.これらの法則の圧縮性バージョンには,追加の材料係数が1つ必要です.既定では,'Mooney Rivlin' 則の非圧縮性バージョンと'neo Hookean' 則の圧縮性バージョンが考慮されます.一般に 'neo Hookean' は'Mooney Rivlin' 則の特殊なケースであり,一つの係数を少なくする必要があります.重要:変数が2次元メッシュ上で定義されている場合,平面歪み近似が自動的に使用されます. dataname は構成則のパラメータのベクトルです.長さは法則によります.これは,定数値の短いベクトル,または可変係数の有限要素法で記述されたベクトルフィールドです. region はオプションの項が追加されるメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.このブリックは,低水準汎用アセンブリを使用します.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add finite strain elasticity brick', mesh_im mim, string constitutive_law, string varname, string params[, int region])

変数 varname を基準にしてモデルに非線形弾性項を追加します. lawname は 'SaintVenant Kirchhoff' , 'Mooney Rivlin' , 'Neo Hookean' , 'Ciarlet Geymonat' ,のいずれかです.対応するバージョンを使用するには,'Mooney Rivlin' および'Neo Hookean' 法の前に 'Compressible' または 'Incompressible' という語を付ける必要があります.これらの法則の圧縮性バージョンには,追加の材料係数が1つ必要です.

重要: 変数が2次元メッシュ上で定義されている場合,平面歪み近似が自動的に使用されます. params は構成則のパラメータのベクトルです.長さは法則によります.これは,定数値の短いベクトル,または可変係数の有限要素法で記述されたベクトルフィールドです.'region' は項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.このブリックは,高水準の汎用アセンブリを使用します.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add small strain elastoplasticity brick', mesh_im mim,  string lawname, string unknowns_type [, string varnames, ...] [, string params, ...] [, string theta = '1' [, string dt = 'timestep']] [, int region = -1])

モデル M に微小歪み塑性項を追加します.これは,微小ひずみ塑性の主要なGetFEMブリックです. lawname は実行された塑性法則の名前であり, unknowns_type は,塑性乗数が問題の未知である場合の離散化,または(リターンマッピング法)が次のイテレーションのために格納されるモデルのデータのみの選択を示します.どちらの場合も,乗数は格納されます.varnames`は,プラスチック則に依存する長さの変数名とデータ名の集合である(少なくとも変位,塑性乗数,塑性歪み).paramsはパラメータの式のリストです(少なくとも弾性係数と降伏応力).これらの式には,モデルのデータ名(または変数名)を使用できますが,高水準アセンブリ言語(例えば '1/2', '2+sin(X[0])', '1+Norm(v)' ...)の有効なスカラー式を使用することもできます.パラメータにオプションとして与えられる最後の二つのパラメータは,塑性歪み積分に使用されるスキーム(一般化台形則)のパラメータである `theta と時間ステップ dt です.省略された場合の theta のデフォルト値は1であり,これは1次一貫性のある古典的な後方Euler法に対応します. theta=1/2 は二次一貫性のあるCrank-Nicolson法(台形則)に対応します.1/2から1の間の値は有効な値である必要があります. dt のデフォルト値は 'timestep' であり,これは単に(md.set_time_step(dt) により)モデルで定義された時間ステップです.または,任意の式(データ名,定数値...)を使用できます.時間ステップは,1つの反復から次のイテレーションに変更できます. region はメッシュ領域です.

使用可能な塑性則は次のとおりです.

  • 'Prandtl Reuss' (または 'isotropic perfect plasticity' ).硬化のない等方性弾塑性.変数は変位,塑性乗数,塑性歪みです.変位は変数であり,前の時間ステップでの変位(通常は 'u' と 'Previous_u' )に対応する 'Previous_' が先頭に付いた同じ名前の対応するデータを持つ必要があります.塑性乗数には,2つのバージョン(通常は 'xi' と 'Previous_xi' )が必要です.最初のバージョンは, unknowns_type ` が 'DISPLACEMENT_ONLY' または整数値0の場合はデータとして, `unknowns_type がDISPLACEMENT_AND_PLASTIC_MULTIPLIERまたは整数値1の場合は変数として定義されます.塑性歪みは,mesh_femまたは(好ましくは)( mim に対応する)im_dataに保存されている n x n データテンソルフィールドの形である必要があります.データは,最初のLame係数,次の係数(せん断弾性率),および一軸降伏応力です.典型的な呼び出し方法は gf_model_get(model M, 'add small strain elastoplasticity brick', mim, 'Prandtl Reuss', 0, 'u', 'xi', 'Previous_Ep', 'lambda', 'mu', 'sigma_y', '1', 'timestep'); です.重要:この法則は3次元表現を実装することに注意してください.2次元で使用する場合,式は2次元に単純に転置されます.平面歪み近似については,以下を参照してください.

  • "平面ひずみPrandtl Reuss" (または "平面ひずみ等方性完全塑性")前述の法則と同じですが,平面ひずみ近似に適用されます.2次元でのみ使用できます.

  • "Prandtl Reuss 線形硬化" (または "等方性塑性線硬化").線形等方性および運動硬化を伴う等方性弾塑性. "Prandtl Reuss" 法と比較される追加の変数,累積塑性歪み.塑性歪みと同様に,時間ステップの終了時にのみ保存されるため,単純なデータが必要です(好ましくは, im_data).2つの追加パラメータ: 運動学的硬化係数および等方性.3次元表現のみ.典型的な呼び出しは gf_model_get(model M, 'add small strain elastoplasticity brick', mim, 'Prandtl Reuss linear hardening', 0, 'u', 'xi', 'Previous_Ep', 'Previous_alpha', 'lambda', 'mu', 'sigma_y', 'H_k', H_i', '1', 'timestep');です.

  • "平面ひずみPrandtl Reuss線形硬化" (または "平面ひずみ等方性塑性線形硬化").前の法則と同じですが,平面ひずみ近似に適合しています.2次元でのみ使用できます.

塑性流動の離散化および実装された塑性則の詳細についてはGetFEMユーザーマニュアルを参照してください.時間の積分法に関するGetFEMユーザーマニュアル(過渡問題の積分)も参照してください.

重要: small_strain_elastoplasticity_next_iter は各時間ステップの終了時,次の時間ステップの前(と後処理の前: 塑性歪みおよび塑性乗数の値を設定します)に呼び出す必要があります.

ind = gf_model_set(model M, 'add elastoplasticity brick', mesh_im mim ,string projname, string varname, string previous_dep_name, string datalambda, string datamu, string datathreshold, string datasigma[, int region])

上位レベルの汎用アセンブリを使用しない古い(廃止予定の)ブリック.等方性材料および準静的モデルの場合,微小変形で変数 varname に対して相対的に非線形弾塑性項をモデルに追加します. projname は使用される投影のタイプです. 'VM' または 'Von Mises' で使用できるのは Von Mises 投影だけです. datasigma はマテリアルの制約を表す変数です. previous_dep_name は,前のタイムステップでのディスプレイスメントを表します.さらに, varname が記述される有限要素法は,K次のmesh_femであり, datasigma は,少なくともK-1次のmesh_femでなければなりません. datalambda および datamu は検討した材料のLame係数である. datathreshold は材料の塑性閾値です.最後の3つの変数は,定数であったり,同じ有限要素法で記述されていたりします. region は項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add finite strain elastoplasticity brick', mesh_im mim , string lawname, string unknowns_type [, string varnames, ...] [, string params, ...] [, int region = -1])

有限ひずみ弾塑性ブリックをモデルに追加します.現在のところ,サポートされている法則は, lawname によって "Simo_Miehe" と定義されたものだけです.この法則は, 'DISPLACEMENT_AND_PLASTIC_MULTIPLIER' (整数値1)または 'DISPLACEMENT_AND_PLASTIC_MULTIPLIER_AND_PRESSURE' (整数値3)のいずれかに設定された unknowns_type によって定義される未知変数求解の可能性をサポートします. "Simo_Miehe" の法則では,モデル内で変数として定義する必要がある次の名前の集合を varnames と想定しています.

  • 未知変数として定義しなければならない変位です.

  • the plastic multiplier which has also defined as an unknown,

  • オプションで, 'DISPLACEMENT_AND_PLASTIC_MULTIPLIER_AND_PRESSURE' の混合変位-圧力式の圧力変数を unknowns_type で指定します.

  • 前の時間ステップでの塑性歪みを保持する(スカラー)fem_dataまたはim_dataフィールドの名前です.そして

  • 直前の時間ステップでの右Cauchy-Greenテンソルの逆数の非反復成分をすべて保持するfem_dataまたはim_dataフィールドの名前です(平面歪み2次元問題では4要素ベクトル,3次元問題では6要素ベクトルでなければなりません).

"Simo_Miehe" 法はまた,次の3つのパラメータの集合を params としています.

  • 初期体積弾性率Kの式です,

  • 初期せん断弾性率Gの式です,

  • 硬化変数(降伏限界と硬化変数の値は,それぞれ適切な応力テンソルと歪テンソルのFrobeniusノルムと仮定します)の関数として降伏限界を表示するユーザ定義関数の名前です.

通常, region は項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add nonlinear incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region])

非線形非圧縮性条件を(有限歪み弾性の場合) variable に追加します. multname_pressure は圧力を表す変数です.圧力を記述する有限要素法と主変数との間の入力条件を満たす必要があることに注意してください. region はオプションの項が追加されるメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add finite strain incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region])

有限ひずみ非圧縮性条件を(有限ひずみ弾性の場合) variable に追加します.multname_pressure は圧力を表す変数である.圧力を記述する有限要素法と主変数との間の入力条件を満たす必要があることに注意してください. region は項が追加されるオプションのメッシュ領域です.指定しない場合はメッシュ全体に追加されます.モデル内のブリックインデックスを返します.p が乗数で,u が変位の場合,"非線形非圧縮性ブリック" で,p*(1-Det(Id(meshdim)+Grad_u)) の高水準汎用アセンブリを追加すると等しいです.

ind = gf_model_set(model M, 'add bilaplacian brick', mesh_im mim, string varname, string dataname [, int region])

変数 varname とメッシュ領域 region にbilaplacianブリックを追加します.これは, \(\Delta(D \Delta u)\) という項を表しています.ここで, \(D(x)\)dataname によって決定される係数であり,定数であるか,有限要素法で記述されます.対応する弱形式は \(\int D(x)\Delta u(x) \Delta v(x) dx\) の通りです.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add Kirchhoff-Love plate brick', mesh_im mim, string varname, string dataname_D, string dataname_nu [, int region])

変数 varname とメッシュ領域 region にbilaplacianブリックを追加します.これは,項 \(\Delta(D \Delta u)\) を表し,ここで \(D(x)\)dataname_D によって決定される曲げ弾性率です.この項は, dataname_nu をポアソン比とする Kirchhoff-Love プレートモデルに従って部分的に積分されています.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add normal derivative source term brick', mesh_im mim, string varname, string dataname, int region)

変数 varname とメッシュ領域 region に通常の微分ソース項ブリック \(F = \int b.\partial_n v\) を追加します.

線形システムの右辺を更新します. datanameb を表し, varnamev を表します.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add Kirchhoff-Love Neumann term brick', mesh_im mim, string varname, string dataname_M, string dataname_divM, int region)

変数 varname とメッシュ領域 region にKirchhoff-LoveモデルのNeumann項ブリックを追加します. dataname_M は曲げモーメントテンソルを表し, dataname_divM はその発散を表します.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add normal derivative Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region [, string dataname, int R_must_be_derivated])

変数 varname の法線導関数とメッシュ領域 region (境界である必要がありますにDirichlet条件を追加します).一般的な形式は以下の通りである:math:int partial_n u(x)v(x) = int r(x)v(x) forall v ここで, \(r(x)\) はDirichlet条件(均一条件の場合は0)の右辺であり, \(v\)mult_description で定義される乗数の空間にある. mult_description が文字列の場合は,乗数(これは,最初にモデルのメッシュ領域で乗数変数として宣言する必要があります)に対応する変数名と見なされます.有限要素法(mesh_femオブジェクト)の場合は,乗数変数がモデルに追加され,この有限要素法(メッシュ領域 region に制限され,最終的に他の乗数変数との自由度の競合が抑制されます)に基づいて構築されます.整数の場合は,乗数変数がモデルに追加され,その整数の次数の従来の有限要素に基づいて構築されます. dataname はDirichlet条件の右辺を表すオプションのパラメータです.もし R_must_be_derivatedtrue に設定されていれば, dataname の正規導関数が考慮されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add normal derivative Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region [, string dataname, int R_must_be_derivated])

変数 varname の法線導関数とメッシュ領域 region (境界である必要があります)にDirichlet条件を追加します.一般的な形式は以下の通りです \(\int \partial_n u(x)v(x) = \int r(x)v(x) \forall v\) ここで \(r(x)\) はDirichlet条件(均一条件の場合は0)の右辺です.ペナルティ係数は最初は coeff であり,モデルのデータに追加されます.これは, gf_model_set(model M, 'change penalization coeff') コマンドで変更できます. dataname はDirichlet条件の右辺を表すオプションのパラメータです.もし R_must_be_derivatedtrue に設定されていれば, dataname の正規導関数が考慮されます.モデル内のブリックインデックスを返します.

ind = gf_model_set(model M, 'add Mindlin Reissner plate brick', mesh_im mim, mesh_im mim_reduced, string varname_u3, string varname_theta , string param_E, string param_nu, string param_epsilon, string param_kappa [,int variant [, int region]])

古典的なReissner-Mindlinプレートモデルに対応する項を追加します.ここで, varname_u3 は横方向の変位, varname_theta は中立面に垂直なファイバーの回転, 'param_E' はヤング率, param_nu はポアソン比, param_epsilon はプレートの厚さ, param_kappa はせん断補正係数です.このブリックは高水準汎用アセンブリ言語を使用しているため,パラメータをこの言語の正規表現にすることができます.3つのバリエーションがあります. variant = 0 は非簡約化された定式化に対応し,その場合には積分法 mim のみが使用されます.実際には,この変形は強いロック現象の影響を受けるため,使用できません. variant = 1 は, mim が回転項に使用され, mim_reduced が横せん断項に使用される縮約積分に対応します. variant = 2 (デフォルト)は,横せん断項の回転RT0要素への投影に対応します.現時点では,(三角形要素のロック現象を除去するだけでは不十分であるため)四角形のみに適用されます.また,高次要素を使用する場合,RT0への投影によって近似の次数が減少することにも注意してください.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add enriched Mindlin Reissner plate brick', mesh_im mim, mesh_im mim_reduced1, mesh_im mim_reduced2, string varname_ua, string varname_theta,string varname_u3, string varname_theta3 , string param_E, string param_nu, string param_epsilon [,int variant [, int region]])

enriched Reissner-Mindlinプレートモデルに対応する項を追加します.ここで, varname_ua は膜変位, varname_u3 は横変位, varname_theta は中間平面に垂直なファイバーの回転, varname_theta3 は圧縮, 'param_E' はYoung率,param_nu はPoisson比, param_epsilon は板厚です.このブリックは高水準汎用アセンブリ言語を使用しているため,パラメータをこの言語の正規表現にすることができます.4つのバリエーションがあります. variant = 0 は非簡約化された定式化に対応し,その場合には積分法 mim のみが使用されます.実際には,この変形は強いロック現象の影響を受けるため,使用できません. variant = 1 は,mim が回転項に使用され, mim_reduced1 が横せん断項に使用され, mim_reduced2 がピンチ項に使用される縮約積分に対応します. variant = 2 (デフォルト)は,横せん断項の回転RT0要素上への投影と,ピンチ項の縮約積分に対応します.現時点では,(三角形要素のロック現象を除去するだけでは不十分であるため)四角形のみに適用されます.また,高次要素を使用する場合,RT0への投影によって近似の次数が減少することにも注意してください. variant = 3 は,横せん断項の回転RT0要素への投影と,ピンチ項のP0要素への投影とに対応します.現時点では,(三角形要素のロック現象を除去するだけでは不十分であるため)四角形のみに適用されます.また,高次要素を使用する場合,RT0への投影によって近似の次数が減少することにも注意してください.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add mass brick', mesh_im mim, string varname[, string dataexpr_rho[, int region]])

変数 varname に対して質量項をモデルに追加します.指定された場合,データ dataexpr_rho は密度(省略した場合は1)です. region は,項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add lumped mass for first order brick', mesh_im mim, string varname[, string dataexpr_rho[, int region]])

変数 varname に対して1次の集中質量項をモデルに追加します.指定された場合,データ dataexpr_rho は密度(省略した場合は1)です. region は,項が追加されるオプションのメッシュ領域です.指定しない場合は,メッシュ全体に追加されます.モデル内のブリックのインデックスを返します.

gf_model_set(model M, 'shift variables for time integration')

モデルの変数を,時間積分スキームの前の時間ステップの他の値に対応するデータにシフトするために使用される関数です.時間積分スキームが宣言されている変数ごとに,スキームが呼び出されてシフトが実行されます.この関数は,2つのタイムステップの間に呼び出す必要があります.

gf_model_set(model M, 'perform init time derivative', scalar ddt)

この関数を呼び出すことにより,時間積分スキームによって必要とされる導関数に対応するデータを初期化するためには,次の求解が(非常に)小さな時間ステップ ddt (主に時間問題では1次の初期時間微分,時間問題では2次の2次時間微分)の解を計算することを示します.次の求解では,変数の値は変更されません.

gf_model_set(model M, 'set time step', scalar dt)

時間ステップの値を dt に設定します.この値は,すべてのワンステップスキームでステップから別のステップに変更できます(すなわち現時点では,提案されているすべての時間積分法).

gf_model_set(model M, 'set time', scalar t)

現在時刻 t に対応するデータの値を t に設定します.

gf_model_set(model M, 'add theta method for first order', string varname, scalar theta)

変数 varname の時間離散化にtheta法を適用します.変数の最大でも1次の時間導関数が存在する場合にのみ有効です.

gf_model_set(model M, 'add theta method for second order', string varname, scalar theta)

変数 varname の時間離散化にtheta法を適用します.変数の2次時間導関数が多くても存在する場合にのみ有効です.

gf_model_set(model M, 'add Newmark scheme', string varname, scalar beta, scalar gamma)

変数 varname の時間離散化にtheta法を適用します.変数の2次時間導関数が多くても存在する場合にのみ有効です.

gf_model_set(model M, 'add_Houbolt_scheme', string varname)

変数 `varname`の時間離散化にHoubolt法を適用します.変数の2次時間導関数が多くても存在する場合にのみ有効です.

gf_model_set(model M, 'disable bricks', ivec bricks_indices)

ブリックを無効にします(ブリックは接線線形システムの構築に関与しなくなります).

gf_model_set(model M, 'enable bricks', ivec bricks_indices)

無効なブリックを有効にします.

gf_model_set(model M, 'disable variable', string varname)

求解のため変数(とその添付乗数)を使用不可にします.次の求解は,残りの変数に対してのみ実行されます.これにより,モデルの異なる部分を別々に求解できます.変数の強連成がある場合は,固定小数点方式を使用できます.

gf_model_set(model M, 'enable variable', string varname)

使用不可の変数(と付属の乗数)を使用可能にします.

gf_model_set(model M, 'first iter')

時間積分スキームの最初の反復の前に実行します.

gf_model_set(model M, 'next iter')

時間積分スキームの各反復の終了時に実行されます.

ind = gf_model_set(model M, 'add basic contact brick', string varname_u, string multname_n[, string multname_t], string dataname_r, spmat BN[, spmat BT, string dataname_friction_coeff][, string dataname_gap[, string dataname_alpha[, int augmented_version[, string dataname_gamma, string dataname_wt]]])

摩擦ブリック付きまたは摩擦ブリックなしの接触をモデルに追加します.Uが,片側拘束が適用される自由度のベクトルである場合,行列 BN はこの拘束が \(B_N U \le 0\) によって定義されるようでなければなりません.摩擦条件は,3つのパラメータ multname_tBTdataname_friction_coeff を追加することで考慮できます.この場合,接線変位は \(B_T U\) であり,行列 BT は, BN\(d-1\) を掛けた数だけの行を持たなければなります.ここで, \(d\) はドメインの次元です.ここでも, dataname_friction_coeff は摩擦係数を表すデータです.各接触条件の値を表すスカラーまたはベクトルです.一方的制約は,その次元が BN の行数に等しくなければならない乗算器 multname_n のおかげで規定される.摩擦条件が追加される場合には,その次元が BT の行数に等しくなければならない乗算器 multname_t によって規定されます.拡張パラメータ r は許容値(Getfemユーザマニュアルを参照)の範囲内で選択するべきです. dataname_gap は初期ギャップを表すオプションのパラメータです.単一の値または値のベクトルを指定できます. dataname_alpha は増大パラメータ(Getfemユーザマニュアルを参照)のためのオプションの均質化パラメータである.パラメータ augmented_version は拡大戦略を示します.1は非対称Alart-Curnier拡大ラグランジアン,2は対称的なもの(接触とCoulomb摩擦の結合を除きます),3は拡大乗算器を用いた非対称方法,4は拡大乗算器と De Saxce 射影を用いた非対称方法です.

ind = gf_model_set(model M, 'add basic contact brick two deformable bodies', string varname_u1, string varname_u2, string multname_n, string dataname_r, spmat BN1, spmat BN2[, string dataname_gap[, string dataname_alpha[, int augmented_version]]])

2つの変形可能モデル間に摩擦なし接触条件を追加します

体.U1,U2が片側拘束が適用される自由度のベクトルである場合,行列 BN1 および BN2 は,この条件が $B_{N1} U_1 B_{N2} U_2 + le gap$ によって定義されるようでなければならない.この制約は,次元が BN の行数に等しくなければならない乗数 multname_n によって規定されます.拡張パラメータ r は許容値(Getfemユーザマニュアルを参照)の範囲内で選択されるべきです. dataname_gap は初期ギャップを表すオプションのパラメータです.単一の値または値のベクトルを指定できます. dataname_alpha は,増大パラメータ(Getfemユーザマニュアルを参照)のためのオプションの均質化パラメータである.パラメータ aug_version は拡大法を示します.1は非対称Alart-Curnier拡大Lagrangian,2は対称Lagrangian,3は拡大乗数を伴う非対称法です.

gf_model_set(model M, 'contact brick set BN', int indbrick, spmat BN)

基本的な接触/摩擦ブリックのBNマトリックスの設定に使用できます.

gf_model_set(model M, 'contact brick set BT', int indbrick, spmat BT)

摩擦ブリックとの基本接触のBTマトリックスの設定に使用できます.

ind = gf_model_set(model M, 'add nodal contact with rigid obstacle brick',  mesh_im mim, string varname_u, string multname_n[, string multname_t], string dataname_r[, string dataname_friction_coeff], int region, string obstacle[,  int augmented_version])

摩擦条件の有無にかかわらず,剛体障害物のある接触をモデルに追加します.条件は, region に対応する境界上の変数 varname_u に適用されます.剛障害物は,障害物への符号付き距離である文字列 obstacle で記述します.この文字列は,座標が2次元では 'x', 'y' ,3次元では'x', 'y', 'z' の式である必要があります.たとえば,障害物が \(z \le 0\) に対応する場合,対応する符号付き距離は単に "z" になります. multname_n はサイズが境界 region の自由度数である固定サイズ変数でなければなりません.これは接触等価節点力を表します.摩擦条件を追加するには, multname_t および dataname_friction_coeff パラメータを追加する必要があります.multname_t は固定サイズの変数でなければならず,そのサイズは境界`region` 上の自由度の数に \(d-1\) を乗じたものである.ここで \(d\) は領域の次元です.これは摩擦相当節点力を表します.拡張パラメータ r は許容値(弾性体のYoung率に近い値.Getfemのユーザードキュメントを参照)の範囲内で選択される必要があります.dataname_friction_coeff は摩擦係数です.各接触節点の摩擦係数を表すスカラー値または値のベクトルです.パラメータ augmented_version は拡大戦略を示します: 1は非対称のAlart-Curnier拡張Lagrangian,2は対称(接触とCoulomb摩擦の結合を除く),3は新しい非対称方法です.基本的に,このブリックは行列BNおよびベクトルgapおよびalphaを計算し,基本接触ブリックを呼び出します.

ind = gf_model_set(model M, 'add contact with rigid obstacle brick',  mesh_im mim, string varname_u, string multname_n[, string multname_t], string dataname_r[, string dataname_friction_coeff], int region, string obstacle[,  int augmented_version])

非推奨機能です.代わりに '硬質障害物ブリックに節点接触を追加するには' を使用してください.

ind = gf_model_set(model M, 'add integral contact with rigid obstacle brick',  mesh_im mim, string varname_u, string multname, string dataname_obstacle, string dataname_r [, string dataname_friction_coeff], int region [, int option [, string dataname_alpha [, string dataname_wt [, string dataname_gamma [, string dataname_vt]]]]])

摩擦条件の有無にかかわらず,剛体障害物のある接触をモデルに追加します.このブリックは,完全な方法で定義された接触を追加します.これは連続レベルで定義された拡張ラグランジュ定式化(Getfemユーザマニュアルを参照)の直接近似である.利点は拡張性が高いことです.ニュートン法の反復回数は,メッシュサイズに多少依存しません.接触条件は region に対応する境界上の変数 varname_u に適用されます.剛体障害物は,データ dataname_obstacle が障害物までの符号付き距離(有限要素法による補間)で記述されるべきである. multname は接触応力を表す有限要素法変数でなければなりません. multnamevarname_u の間のinf-sup条件が必要です.拡張パラメータ dataname_r は,許容値の範囲内で選択する必要があります.オプションのパラメータ dataname_friction_coeff は摩擦係数で,一定にすることも,有限要素法で定義することもできます. option の可能な値は,非対称Alart-Curnier拡張Lagrangian法では1,対称的なものでは2,追加の拡張を伴う非対称Alart-Curnier法では3,新しい非対称法では4です.デフォルト値は1です.摩擦がある場合, dataname_alphadataname_wt は摩擦の進化を解決するためのオプションパラメータです.dataname_gamma および dataname_vt は,パラメータに依存するすべり速度を摩擦条件に追加するためのオプションデータを表します.

ind = gf_model_set(model M, 'add penalized contact with rigid obstacle brick',  mesh_im mim, string varname_u, string dataname_obstacle, string dataname_r [, string dataname_coeff], int region [, int option, string dataname_lambda, [, string dataname_alpha [, string dataname_wt]]])

摩擦条件の有無にかかわらず,剛体障害物のペナルティ接触をモデルに追加します.条件は region に対応する境界上の変数 varname_u に適用されます.剛体障害物はデータ dataname_obstacle が障害物までの符号付き距離(有限要素法による補間)で記述されるべきである.ペナルティパラメータ dataname_r は,近似の非貫通条件および摩擦条件を規定するのに十分な大きさに選択する必要がありますが,接線システムの条件を過度に悪化させないようにするには大きすぎません. dataname_lambda はオプションが2の場合に使用されるオプションのパラメータです.その場合,ペナルティ項はlambda単位でシフトされます(これは,対応する拡張Lagrangian定式化上でのUzawaアルゴリズムの使用を可能にします).

ind = gf_model_set(model M, 'add Nitsche contact with rigid obstacle brick', mesh_im mim, string varname, string Neumannterm, string dataname_obstacle, string gamma0name,  int region[, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt]]])

Coulomb摩擦の有無にかかわらず,接触条件を変数 varname とメッシュ境界 region に追加します.接触条件はNitsche法で規定されています.剛体障害物は,データ dataname_obstacle が障害物までの符号付き距離(有限要素法による補間)で記述されるべきである. gamma0name はNitsche法のパラメータです. theta は正または負のスカラー値です. theta = 1gamma0 が小さい場合に条件的に強制される標準的な対称法に相当する.theta=-1`は無条件に強制的なスキュー対称法に対応する. `theta = 0 はNeumann項の2次導関数を必要としない最も単純な方法です.オプションのパラメータ dataname_friction_coeff は摩擦係数で,一定にすることも,有限要素法で定義することもできます.注意: このブリックはNeumann項を持つ偏微分項に対応するすべてのブリックの後にモデルに追加する必要があります.さらに,このブリックはNeumann項を宣言するブリックにのみ適用できます.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add Nitsche midpoint contact with rigid obstacle brick', mesh_im mim, string varname, string Neumannterm, string Neumannterm_wt, string dataname_obstacle, string gamma0name,  int region, scalar theta, string dataname_friction_coeff, string dataname_alpha, string dataname_wt)

実験的なBRICK: 中間点法専用!! Coulomb摩擦の有無にかかわらず,接触条件を変数 varname とメッシュ境界 region に追加します.接触条件はNitsche法で規定されています.剛体障害物は,データ dataname_obstacle が障害物までの符号付き距離(有限要素法による補間)で記述されるべきです. gamma0name はNitsche法のメソッドパラメータです. theta は正または負のスカラー値です. theta = 1gamma0 が小さい場合に条件的に強制される標準的な対称法に相当します. theta = -1 は無条件に強制的なスキュー対称法に対応する. theta = 0 はNeumann項の2次導関数を必要としない最も単純な方法です.オプションのパラメータ dataname_friction_coeff は摩擦係数で,一定にすることも,有限要素法で定義することもできます.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add Nitsche fictitious domain contact brick', mesh_im mim, string varname1, string varname2, string dataname_d1, string dataname_d2, string gamma0name [, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt1,string dataname_wt2]]])

仮想ドメイン内の2つのボディ間にクーロン摩擦の有無による接触条件を追加します.接触条件は,Nitsche法では変数 varname_u1 が第1およびスレーブボディに対応し,Nitsche法では変数 varname_u2 が第2およびマスターボディに対応します.接触条件を仮想スレーブ境界上で評価しました.最初のボディはレベルセット dataname_d1 によって記述され,2番目のボディはレベルセット dataname_d2 によって記述されます. gamma0name はNitsche法のパラメータです. theta は正または負のスカラー値です. theta = 1gamma0 が小さい場合に条件的に強制される標準的な対称法に相当する. theta = -1 は無条件に強制的なスキュー対称法に対応する. theta = 0 はNeumann項の2次導関数を必要としない最も単純な方法です.オプションのパラメータ dataname_friction_coeff は摩擦係数で,一定にすることも,有限要素法で定義することもできます.注意: このブリックは Neumann 項を持つ偏微分項に対応するすべてのブリックの後にモデルに追加する必要があります.さらに,このブリックはNeumann項を宣言するブリックにのみ適用できます.モデル内のブリックのインデックスを返します.

ind = gf_model_set(model M, 'add nodal contact between nonmatching meshes brick',  mesh_im mim1[, mesh_im mim2], string varname_u1[, string varname_u2], string multname_n[, string multname_t], string dataname_r[, string dataname_fr], int rg1, int rg2[, int slave1, int slave2,  int augmented_version])

1つまたは2つの弾性体の2つの面の間に,摩擦条件の有無にかかわらず接触を追加します.条件は,変数 varname_u1 または変数 varname_u1varname_u2 に適用されます.これは,1つまたは2つの個別の変位フィールドが指定されているかどうかによって異なります.整数 rg1 および rg2 は,互いに接触すると予想される領域を表す.単一変位変数の場合, rg1rg2 の両方で定義された領域は,変数`varname_u1` を参照します.2つの変位変数の場合,rg1varname_u1 を参照し,rg2varname_u2 を参照します. multname_t は,rg1 と`rg2` で定義されている領域のうち, "slaves" とされている領域の自由度をサイズとする固定サイズ変数です.接触等価節点垂直力を表します.multname_t は,qdim-1で乗算された multname_n のサイズに対応するサイズの固定サイズ変数でなければなりません.接触等価節点正接(摩擦の)力を表します.拡張パラメータ r は,許容値(弾性体のYoung率に近い値.Getfemのユーザードキュメントを参照)の範囲内で選択されるべきです.パラメータ fr に格納される摩擦係数は,単一の値または multname_n と同じサイズのベクトルのいずれかです.オプションのパラメータ slave1slave2 は, rg1rg2 で定義された領域が "slaves" とみなされるかどうかを宣言します.デフォルトでは, slave1 はtrue, slave2 はfalseです.つまり, 'rg1' はスレーブ面を含み,マスタ面を 'rg2' とします. slave1 と`slave2` のどちらか一方だけをtrueに設定するのが好ましいです.パラメータ augmented_version は拡大戦略を示しmす: 1は非対称のAlart-Curnier拡張Lagrangian,2は対称のもの(接触とCoulomb摩擦の結合を除きます),3は新しい非対称法です.基本的に,このブリックは行列BNとBTとベクトルgapとalphaを計算し,基本的な接触ブリックを呼び出します.

ind = gf_model_set(model M, 'add nonmatching meshes contact brick',  mesh_im mim1[, mesh_im mim2], string varname_u1[, string varname_u2], string multname_n[, string multname_t], string dataname_r[, string dataname_fr], int rg1, int rg2[, int slave1, int slave2,  int augmented_version])

非推奨機能です.代わりに 'add nodal contact between nonmatching meshes brick' を使用してください.

ind = gf_model_set(model M, 'add integral contact between nonmatching meshes brick',  mesh_im mim, string varname_u1, string varname_u2, string multname, string dataname_r [, string dataname_friction_coeff], int region1, int region2 [, int option [, string dataname_alpha [, string dataname_wt1 , string dataname_wt2]]])

摩擦条件の有無にかかわらず,一致しないメッシュ間に接触をモデルに追加します.このブリックは,完全な方法で定義された接触を追加します.これは,連続レベルで定義された拡張Lagrangian定式化(Getfemユーザマニュアルを参照)の直接近似です.この利点は,スケーラビリティの向上です.Newton法の反復回数は,メッシュサイズに多少依存しません.条件は, region1 および region2 に対応する境界上の変数 varname_u1 および varname_u2 に適用されます. multname は,摩擦がない場合の接触応力と,摩擦がある場合の接触および摩擦応力を表す有限要素法の変数である必要があります. multname と`varname_u1` と varname_u2 の間のinf-sup条件が必要です.拡張パラメータ dataname_r は許容値の範囲内で選択する必要があります.オプションのパラメータ dataname_friction_coeff は摩擦係数で,一定であるか,または varname_u1 と同じメッシュ上の有限要素法で定義できます. option の値は,非対称 Alart-Curnier 拡張Lagrangian法では1,対称的なものでは2,追加の拡張を伴う非対称 Alart-Curnier 法では3,新しい非対称法では4となります.デフォルト値は1です.摩擦がある場合, dataname_alphadataname_wt1 および dataname_wt2 は,摩擦の進展を解くためのオプションパラメータです.

ind = gf_model_set(model M, 'add penalized contact between nonmatching meshes brick',  mesh_im mim, string varname_u1, string varname_u2, string dataname_r [, string dataname_coeff], int region1, int region2 [, int option [, string dataname_lambda, [, string dataname_alpha [, string dataname_wt1, string dataname_wt2]]]])

モデルに,一致しないメッシュ間の摩擦の有無にかかわらずペナルティ接触条件を追加します.条件は, region1 および region2 に対応する境界上の変数 varname_u1 および varname_u2 に適用されます.ペナルティパラメータ dataname_r は,近似の非貫通条件および摩擦条件を規定するのに十分な大きさに選択する必要がありますが,接線システムの条件を過度に悪化させないようにするには大きすぎません.オプションのパラメータ dataname_friction_coeff は摩擦係数で,一定であるか,または varname_u1 と同じメッシュ上の有限要素法で定義できます. dataname_lambda は,optionが2の場合に使用されるオプションのパラメータです.その場合,ペナルティ項はlambda単位でシフトされます(これは,対応する拡張Lagrangian定式化上でのUzawaアルゴリズムの使用を可能にします).接触摩擦の場合, dataname_alphadataname_wt1 および dataname_wt2 は進展摩擦の問題を解決するためのオプションのパラメータです.

ind = gf_model_set(model M, 'add integral large sliding contact brick raytracing', string dataname_r, scalar release_distance, [, string dataname_fr[, string dataname_alpha[, int version]]])

摩擦ブリックとの有限すべり接触をモデルに追加します.このブリックは自己接触,複数の変形可能体間の接触及び剛体障害物との接触に対処できます.高水準汎用アセンブリを使用します.モデルに raytracing_interpolate_transformation オブジェクトを追加します.スレーブ境界ごとに乗数変数を定義する必要があります.リリース距離は慎重に決定すべきです(一般に平均要素サイズの数倍で,物体の厚さよりも薄いです).最初は,ブリックは接触境界なしで追加されます.接触境界と剛体には,特別な機能が追加されています. version は,非対称バージョンでは0(デフォルト値),より対称なバージョンでは1(摩擦がなくても完全に対称的でない)です.

gf_model_set(model M, 'add rigid obstacle to large sliding contact brick', int indbrick, string expr, int N)

摩擦ブリックとの既存の有限すべり接触に,硬質の障害物を追加します. expr は高水準汎用アセンブリ言語(ここで, x はメッシュの現在の点です)を使用した式であり,障害物までの符号付き距離である必要があります. N はメッシュの次元です.

gf_model_set(model M, 'add master contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname[, string wname])

摩擦ブリックを持つ既存の有限すべり接触にマスター接触境界を追加します.

gf_model_set(model M, 'add slave contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])

摩擦ブリックを持つ既存の有限滑り接触にスレーブ接触境界を追加します.

gf_model_set(model M, 'add master slave contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])

接触境界を,マスターでもスレーブでもある摩擦ブリックの既存の有限滑り接触に追加します(自己接触は許容します).

ind = gf_model_set(model M, 'add Nitsche large sliding contact brick raytracing', bool unbiased_version, string dataname_r, scalar release_distance[, string dataname_fr[, string dataname_alpha[, int version]]])

Nitsche法に基づいて,摩擦ブリックと有限滑り接触をモデルに追加します.このブリックは自己接触,複数の変形可能体間の接触及び剛体障害物との接触に対処できます.上位レベルの汎用アセンブリを使用します.モデルに raytracing_interpolate_transformation オブジェクトを追加します. "unbiased_version" とは,使用するNitsche法のバージョンのことです.(バイアスされていない,またはバイアスされているもの).スレーブ境界ごとに,この境界上の表示変数の関数として材料法則を定義する必要があります.放出距離は慎重に決定すべきです(一般に平均要素サイズの数倍で,ボディの厚さよりも薄いです).最初は,ブリックは接触境界なしで追加されます.接触境界と剛体には,特別な機能が追加されています. version は非対称バージョンでは0(デフォルト値),より対称なバージョンでは1(摩擦がなくても完全に対称的でない)です.

gf_model_set(model M, 'add rigid obstacle to Nitsche large sliding contact brick', int indbrick, string expr, int N)

摩擦ブリックとの既存の有限すべり接触に,硬質の障害物を追加します. expr は高水準汎用アセンブリ言語(ここで, x はメッシュの現在の点です)を使用した式であり,障害物までの符号付き距離である必要があります. N はメッシュの次元です.

gf_model_set(model M, 'add master contact boundary to biased Nitsche large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname[, string wname])

摩擦ブリックと既存のバイアスされたNitscheの有限スライド接触にマスター接触境界を追加します.

gf_model_set(model M, 'add slave contact boundary to biased Nitsche large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])

摩擦ブリックとの既存のバイアスされたNitscheの有限滑り接触にスレーブ接触境界を追加します.

gf_model_set(model M, 'add contact boundary to unbiased Nitsche large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])

接触境界をマスターとスレーブの両方である摩擦ブリックを持つ既存のバイアスされていないNitschelargeスライド接触に追加します.