1
ADVENTURE_Solid-1.2 構造体リファレンスマニュアル
作者: 荻野正雄, 九州大学
文書バージョン: Ver. 0.2
文書作成日: 2008 年 9 月 26 日
文書公開日: 2008 年 9 月 29 日
—A—
ACG_Indx .........................................................................................................................................15
ACG_Matrix......................................................................................................................................16
ACG_Matvec.....................................................................................................................................16
AdjDom..............................................................................................................................................16
AdjPart ..............................................................................................................................................17
—B—
Bcnd .....................................................................................................................................................3
BCset ....................................................................................................................................................4
—C—
CGOpts ..............................................................................................................................................10
CGVector ...........................................................................................................................................10
CoarseSpace ......................................................................................................................................17
COM_GRP_ID..................................................................................................................................15
COM_WLD_ID.................................................................................................................................15
—D—
DomAdjacency ..................................................................................................................................17
DomField .............................................................................................................................................7
DomMesh.............................................................................................................................................5
DVectors.............................................................................................................................................13
—E—
ElmFaceLoad ......................................................................................................................................3
—F—
fe_Constants ......................................................................................................................................19
fe_Options..........................................................................................................................................19
fe_State_Variables.............................................................................................................................19
—G—
GravityAcceleration..........................................................................................................................12
2
—H—
HBDD_LocalMatrix .........................................................................................................................17
HDDM_SkylineMat..........................................................................................................................11
—I—
IDlist...................................................................................................................................................14
IDlist_node.........................................................................................................................................13
Inbc.......................................................................................................................................................3
InputSW...............................................................................................................................................9
IntAry.................................................................................................................................................14
IntBinTree..........................................................................................................................................14
—N—
NLStep ...............................................................................................................................................12
Node_intbintree.................................................................................................................................14
Nodegraph .........................................................................................................................................16
—O—
OPinfo ..................................................................................................................................................6
OPSinfo................................................................................................................................................6
OptSolv ................................................................................................................................................8
OutputSW............................................................................................................................................8
—P—
ParMatrix ..........................................................................................................................................18
PartField ..............................................................................................................................................8
PartMesh .............................................................................................................................................6
—S—
Sharenode ............................................................................................................................................4
Slist.....................................................................................................................................................13
Slist_node...........................................................................................................................................13
SpringConstant .................................................................................................................................12
SpringSupport.....................................................................................................................................3
—T—
T_Material.........................................................................................................................................12
3
Bcnd
定義: hddm_types.h
機能: ある節点の境界条件を格納する.
メンバー変数:
int node; Subdomain 内ローカル節点番号
int co; 軸方向(0=x, 1=y, 2=z)
double val; 境界条件値
SpringSupport
定義: hddm_types.h
機能: ある節点の弾性ばね支持条件を格納する.
メンバー変数:
int node; Subdomain 内ローカル節点番号
int spring_id; グローバルばね ID
double direction[3]; 各軸方向の係数
ElmFaceLoad
定義: hddm_types.h
機能: ある要素面の表面力や圧力条件を格納する.
メンバー変数:
int type; 表面力のタイプ
int elmid; Subdomain 内ローカル要素番号
int surfaceid; 要素内ローカル面番号
double* val; 境界条件値
Inbc
定義: hddm_types.h
機能: ある Subdomain が他 Subdomain と共有する,ある Interface 自由度情報を格納する.
メンバー変数:
int aspart; この自由度を担当する Part の ID
int mypart_ibid; この Subdomain が属する Part 内でのローカル Interface 自由度番号
int node; Subdomain 内ローカル節点番号
int co; 軸方向(0=x, 1=y, 2=z)
4
Sharenode
定義: hddm_types.h
機能: ある Subdomain が他 Subdomain と共有する,ある Interface 節点情報を格納する.
メンバー変数:
int aspart; この節点を担当する Part の ID
int asdom; この節点を担当する Subdomain の ID
int asgdom; “asdom"のグローバル ID
int n_share_dom; この節点を共有する Subdomain 数
int* share_gdom; この節点を共有する Subdomain のグローバル ID を格納する int 配列
int mypart_snid; この Subdomain が属する Part 内でのローカル Interface 節点番号
int node; Subdomain 内ローカル節点番号
BCset
定義: hddm_types.h
機能: ある Subdomain が持つ境界条件の集合体.
メンバー変数:
int id; 境界条件の ID
int ndisp; 節点強制変位境界条件の数
int nload; 節点荷重境界条件の数
int num_elmfaceload[ELMFACELOAD_NUM_TYPE]; 実装されていません
int efl_onedatasize[ELMFACELOAD_NUM_TYPE]; 実装されていません
int num_spring_support; 弾性ばね条件の数
Bcnd* bcdisp; 節点強制変位境界条件を格納する Bcnd 配列
Bcnd* bcload; 節点荷重境界条件を格納する Bcnd 配列
ElmFaceLoad* elmfaceload[ELMFACELOAD_NUM_TYPE]; 実装されていません
SpringSupport* spring_support; 弾性ばね条件を格納する SpringSupport 配列
5
DomMesh
定義: hddm_types.h
機能: 1 つの Subdomain のメッシュデータや境界条件を格納する.
メンバー変数:
int partid; Subdomain が属する Part の ID
int domid; Subdomain の属する Part 内でのローカル ID
int gdomid; Subdomain のグローバル ID
int elmtype; 有限要素の種類
int elm_dim; 要素の次元数
int nd_elm; 要素を構成する節点数
int elms; Subdomain 内の要素数
int* nop; Subdomain 内の要素コネクティビティを格納する int 配列
int nodes; Subdomain 内の節点数
int node_dim; 節点の次元数
int* ndindex; Subdomain 内節点の Part ローカル節点番号を格納する int 配列
double* crd; Subdomain 内の節点座標値を格納する double 配列
Slist* bclist; Subdomain の境界条件を格納する Slist ポインタ
int ndisp; 基本境界条件数
Bcnd* bcdisp; 基本境界条件を格納する Bcnd 配列
int nload; 荷重自然境界条件数
Bcnd* bcload; 荷重自然境界条件を格納する Bcnd 配列
int num_spring_support; 弾性ばね条件数
SpringSupport* spring_support; 弾性ばね条件を格納する SpringSupport 配列
int ninbd; 他 Subdomain と共有する Interface 自由度数
int ifn_dim; Interface 節点の自由度数
Inbc* inbd; 他 Subdomain との共有 Interface 自由度情報を格納する Inbc 配列
int nsharenode; 他 Subdomain と共有する Interface 節点数
Sharenode* sharenode; 他 Subdomain との共有節点情報を格納する Sharenode 配列
int with_temperature; この Subdomain 内節点の温度情報を持つかどうか
double* temperature; Subdomain 内節点の温度を格納する double 配列
int with_matid; 材料物性値 ID を持つかどうか(複数材料モデルかどうか)
int* matid; Subdomain 内要素の材料物性値 ID を格納する int 配列
6
OPinfo
定義: hddm_types.h
機能: ある Part がある他 Part と共有する Interface 自由度情報を格納する.
メンバー変数:
int n_mofree; ある他 Part と共有する Interface 自由度数
int* mof_ibid; ある他 Part と共有する Part 内でのローカル Interface 自由度番号を格納す
る int 配列
OPSinfo
定義: hddm_types.h
機能: ある Part がある他 Part と共有する Interface 節点情報を格納する.
メンバー変数:
int n_moshare; ある他 Part と共有する Interface 節点数
int* mo_snnid; ある他 Part と共有する Part 内でのローカル Interface 節点番号を格納する
int 配列
PartMesh
定義: hddm_types.h
機能: 1 つの Part のメッシュデータや境界条件を格納する.
メンバー変数:
int n_part; 総 Part 数
int partid; Part の ID
int n_domain; Part 内の Subdomain 数
int t_nodes; Part 内の節点数
int node_dim; 節点自由度数
int t_infree; Part 内 Interface 自由度の中でこの Part が担当する Interface 自由度数
int t_outfree; Part 内 Interface 自由度の中で他 Part が担当する Interface 自由度数
int t_insnode; Part 内 Interface 節点の中でこの Part が担当する Interface 節点数
int t_outsnode; Part 内 Interface 節点の中で他 Part が担当する Interface 節点数
OPinfo* op; 他 Part との共有 Interface 自由度情報を格納する OPinfo 配列
OPSinfo* opsn; 他 Part との共有 Interface 節点情報を格納する OPSinfo 配列
double* crd; Part 内の節点座標値を格納する double 配列
double* crd2; Part 内の節点座標値(大変形解析 ULF に使用)を格納する double 配列
int* pndindex; Part 内節点の領域分割前グローバル節点番号を格納する int 配列
int global_t_nodes; 領域分割前の総節点数
int global_t_elms; 領域分割前の総要素数
7
int global_t_domains; 全 Part の総計 Subdomain 数
DomMesh* dom; Part 内の各 Subdomain のメッシュデータを格納する DomMesh 配列
int* off_gdom; 各 Part の Subdomain のグローバル ID スタート番号を格納する int 配列
DomField
定義: hddm_types.h
機能: 1 つの Subdomain の物理量を格納する.
メンバー変数:
int partid; Subdomain の属する Part の ID
int domid; Subdomain の属する Part 内でのローカル ID
int nd_elm; 要素を構成する節点数
int ninteg; 要素の積分点数
int elms; Subdomain 内の要素数
int elm_dim; 要素の次元数
int nodes; Subdomain 内の節点数
int node_dim; 節点の自由度数
int str_dim; 応力の次元数
int have_cgdisp; 現バージョンでは特に使用しない
double* disp; 節点変位ベクトル
double* reac; 節点反力ベクトル
double* stress; 積分点応力テンソル
double* cgdisp; 現バージョンでは特に使用しない
double* ddisp; 増分型節点変位ベクトル
double* strain; 積分点歪みテンソル
double* pl_strain; 積分点塑性歪みテンソル
double* eq_pl_strain; 積分点相当塑性歪み
double* stress2; 前の増分ステップにおける積分点応力テンソル
double* force; 節点外力ベクトル
double* force2; 前の増分ステップにおける節点外力ベクトル
double* dforce; 増分型節点外力ベクトル
double* ystr; 積分点降伏応力
double* ystr2; 前の増分ステップにおける積分点降伏応力
int* elpl; 積分点降伏領域(弾性: ELASTIC, 塑性: PLASTIC, 塑性→弾性: PL_TO_EL)
8
PartField
定義: hddm_types.h
機能: 1 つの Part 内の Subdomain 毎の物理量を格納する.
メンバー変数:
int n_part; 総 Part 数
int partid; Part の ID
int n_domain; Part 内の Subdomain 数
DomField* dom; Part 内の各 Subdomain の物理量を格納する DomField 配列
OptSolv
定義: hddm_types.h
機能: 有限要素法ソルバとしての各種オプションを格納する.
メンバー変数:
fe_Options feopt; 有限要素法解析タイプ
int solver_type; 線形方程式ソルバタイプ
int nonlinear; 1: 非線形問題, 0:線形問題
int total_nl_step; 本実行における総増分ステップ数
int first_nl_step; 本実行における初期増分ステップ番号(リスタート時に非零)
int max_newton; Newton-Raphson 法の反復回数上限(未収束判定値)
int cur_nl_step; 本実行における現在の増分ステップ番号
int cur_newton_step; 現在の Newton-Raphson 法の反復回数
double tol_newton; Newton-Raphson 法の収束判定値
int sw_gravity; 1:重力による自重を考慮する, 0:考慮しない
int have_intg_stra; 1:出力タイプに積分点歪みデータがある, 0: ない
int have_intg_pl_stra; 1:出力タイプに積分点塑性歪みデータがある, 0:ない
int have_intg_eq_pl_stra; 1:出力タイプに積分点相当塑性歪みデータがある, 0:ない
int use_tet10_5; 1:4 面体 2 次要素の要素積分は 5 点積分を用いる, 0:4 点積分
Slist* nlstep_set; 増分法をコントロールするオプションリスト
int unload_reset; 1:除荷発生時に非線形計算をリセットする, 0:リセットしない
int sw_thermal; 1:熱応力を考慮する, 0:考慮しない
OutputSW
定義: hddm_types.h
機能: 出力する解析結果タイプを格納する.出力する物理量のタイプはビットで管理し,
節点データは 1,要素データは 2,要素積分点データは 4 のビットをオン/オフする.
9
メンバー変数:
int disp; 節点変位
int reac; 節点反力
int force; 節点外力(増分解析リスタートデータ出力時にオン)
int str; (節点/要素/積分点)応力
int estr; (節点/要素/積分点)相当応力
int ystr; (節点/要素/積分点)降伏応力
int elpl; (要素/積分点)降伏領域
int stra; (節点/要素/積分点)歪み
int pl_stra; (節点/要素/積分点)塑性歪み
int eq_pl_stra; (節点/要素/積分点)相当塑性歪み
int prstr; (節点/要素/積分点)主応力 3 成分とその固有値ベクトル
int prstra; (節点/要素/積分点)主歪み 3 成分とその固有値ベクトル
char* data_dir; 出力する結果ファイルの置かれる親ディレクトリ名
char* subdir; 出力する結果ファイルの置かれるサブディレクトリ名
char* filename; 出力する結果ファイルの Part ID や拡張子を除いたファイル名
int filename_have_step; 1:出力結果ファイル名に増分ステップ番号をつける, 0:つけない
InputSW
定義: hddm_types.h
機能: 入力するデータファイルの情報を格納する.
メンバー変数:
char* data_dir; 入力するモデルファイルが置かれている親ディレクトリ名
char* indata_subdir; 入力するモデルファイルが置かれているサブディレクトリ名
char* indata_filename; 入力するモデルファイルの Part ID や拡張子を除いたファイル名
char* nl_resin_subdir; 入力する非線形反復リスタートファイルの置かれているサブデ
ィレクトリ名
char* nl_resin_filename; 非線形反復リスタートファイルの Part ID,増分ステップ番号や
拡張子を除いたファイル名
int use_nl_resin; 正数 n:非線形反復リスタートファイルとして増分ステップ番号
n のデータを読み込む,0:読み込まない
int indata_filename_have_step; 現バージョンでは特に使用しない
int nl_resin_filename_have_step; 1:入力する非線形反復リスタートファイル名に増分ス
テップ番号をつける,0:つけない
10
CGOpts
定義: hddm_types.h
機能: Interface 問題を前処理つき CG 法で解くための各種オプションを格納する.
メンバー変数:
double tol; CG 法のための収束判定値
int loop_max; CG 法の反復回数上限(未収束判定値)
int resout_interval; CG 法リスタートファイルを出力する CG 反復回数の間隔
int resout_last; 1:CG 法終了時にリスタートファイルを出力する,0:出力しない
int use_resin; 1:CG 法リスタートファイルを読み込む,0:読み込まない
int sw_mat_keep; 1:CG 法反復間で線形方程式の係数行列を保持する,0:保持しない
int sw_precon; CG 法のための前処理タイプ
int watch_cg_history; 1:CG 法の収束履歴を出力する,0:出力しない
char* data_dir; 入出力する CG 法リスタートファイルの置かれる親ディレクト
リ名
char* resin_subdir; 入力する CG 法リスタートファイルが置かれているサブディレ
クトリ名
char* resin_filename; 入力 CG 法リスタートファイルの Part ID や拡張子を除いたファ
イル名
char* resout_subdir; 出力する CG 法リスタートファイルの置かれるサブディレクト
リ名
char* resout_filename; 出力 CG 法リスタートファイルの Part ID や拡張子を除いたファ
イル名
int resin_filename_have_step; 現バージョンでは特に使用しない
int resout_filename_have_step; 現バージョンでは特に使用しない
int resout_bddcmat; 1:BDD ソルバリスタートファイルを出力する,0:出力しない
int use_bddcmat; 1:BDD ソルバリスタートファイルを読み込む,0:読み込まない
char* bdd_subdir; BDD リスタートファイルの置かれるサブディレクトリ名
char* bddcmat_filename;BDD リスタートファイルの Part ID や拡張子を除いたファイル名
CGVector
定義: hddm_types.h
機能: Interface 問題を前処理つき CG 法で解くための各種ベクトルを格納する.
メンバー変数:
int t_infree; Part 内 Interface 自由度の中でこの Part が担当する Interface 自由度数
int t_outfree; Part 内 Interface 自由度の中で他 Part が担当する Interface 自由度数
int t_free; Part 内 Interface 自由度 ( = t_infree + t_outfree )
11
double* w; 補助ベクトル,CG 法初期ステップと最終ステップ時には近似解ベクトル
を格納するサイズ t_free の double 配列
double* w_in; "w"の infree 部分開始位置へのポインタ
double* w_out; "w" の outfree 部分開始位置へのポインタ
double* a_w; Interface 問題の係数行列と補助ベクトルの積を格納するサイズ
t_free の double 配列,初期残差計算直後には残差ベクトルを格納している
double* a_w_in; "a_w" の infree 部分開始位置へのポインタ
double* a_w_out; "a_w" の outfree 部分開始位置へのポインタ
double* myu; 近似解ベクトルを格納するサイズ t_infree の double 配列
double* g; 残差ベクトルを格納するサイズ t_free の double 配列
double* g_in; "g" の infree 部分開始位置へのポインタ
double* g_out; "g" の outfree 部分開始位置へのポインタ
double gdotg; 残差ベクトルのノルム
double* dginv; 対角スケーリング前処理ベクトルを格納するサイズ t_free の double 配列
double* dginv_in; "dginv"の infree 部分開始位置へのポインタ
double* dginv_out; "dginv" の outfree 部分開始位置へのポインタ
double* Gg; 前処理された残差ベクトルを格納するサイズ t_free の double 配列
double* Gg_in; "Gg" の infree 部分開始位置へのポインタ
double* Gg_out; "Gg" の outfree 部分開始位置へのポインタ
HDDM_SkylineMat
定義: domfem.h
機能: ある Subdomain の剛性行列,その LU 分解行列,体積力ベクトルなどを格納する.
メンバー変数:
int partid; Subdomain の属する Part の ID
int domid; Subdomain の属する Part 内でのローカル ID
int dim; Subdomain のローカル剛性行列の次元数
int ndisp; 基本境界条件数
int ninbd; 他 Subdomain と共有する Interface 自由度数
int* bdinfo; 自由度が基本境界上や Interface 上であるかを格納するサイズ dim の int 配列
int state_gk; ローカル剛性行列を格納する gk の状態
int state_gk_inv; LU 分解されたローカル剛性行列を格納する gk_inv の状態
DMatrix gk; Subdomain のローカル剛性行列を格納する DMatrix 変数
DMatrix gk_inv; LU 分解したローカル剛性行列を格納する DMatrix 変数
double* force; 体積力(自重考慮時),熱荷重(熱応力考慮時)を格納する double 配列
int *gk_inv_map; 領域内部に縮約された自由度情報を格納する int 配列
12
T_Material
定義: global_params.h
機能: ある材料の等方的な物性値を格納する.
メンバー変数:
double yng; ヤング率
double poi; ポアソン比
double hp; バイリニア型硬化関数のための加工硬化係数
double ys; 初期降伏応力
double rou; 質量密度
double therm_exp_coeff; 線膨張係数
double ref_temp; 参照温度
GravityAcceleration
定義: global_params.h
機能: 解析対象モデルの重力加速度を格納する.
メンバー変数:
double gravity_accel[3]; 重力加速度を格納する double 配列
SpringConstant
定義: global_params.h
機能: 弾性ばね支持条件のための係数を格納する.
メンバー変数:
double k_parallel;
double k_perp;
NLStep
定義: nlstep.h
機能: ある増分幅で解析を行う非線形反復計算のオプションを格納する.
メンバー変数:
int id; 非線形反復計算の ID
int num_step; 増分法のステップ回数
double bcdisp_width; 増分ステップ内における強制変位量への倍率
double bcload_width; 増分ステップ内における荷重量への倍率
double bodyforce_width; 増分ステップ内における体積力への倍率
double time_width; 現在のバージョンでは使用しない.
int output_interval; 解析結果ファイルを出力する非線形反復回数の間隔
13
int output_last; 1:非線形反復計算終了時に解析結果ファイルを出力する,0:出力しない
int resout_interval; 非線形計算リスタートファイルを出力する非線形反復回数の間隔
int resout_last; 1:非線形反復計算終了時にリスタートファイルを出力する,0:出力しない
Slist_node, _Slist_node
定義: stdfunc.h
機能: 連結リストデータ Slist のノード.
メンバー変数:
struct _Slist_node* next; 次のノードの場所を指す_Slist_node ポインタ
void* data; ノードのデータを格納する汎用ポインタ
Slist
定義: stdfunc.h
機能: 連結リストを格納する.
メンバー変数:
int size; リスト内のノード数
Slist_node* root; リスト内の最初のノードの場所を指す Slist_node ポインタ
Slist_node* last; リスト内の最後のノードの場所を指す Slist_node ポインタ
DVectors
定義: stdfunc.h
機能: double 型のベクトルを複数格納する.
メンバー変数:
int num_vec; ベクトルの本数
int vec_dim; ベクトルの次元数
double** vec; サイズ vec_dim のベクトルが num_vec 数ある 2 次元 double 配列
IDlist_node, _IDlist_node
定義: idlist.h
機能: ID 付き連結リストデータ IDlist のノード.
メンバー変数:
struct _IDlist_node* next; 次のノードの場所を指す_IDlist_node ポインタ
int id; ノードの ID
void* data; ノードのデータを格納する汎用ポインタ
14
IDlist
定義: idlist.h
機能: ID 付き連結リストを格納する.
メンバー変数:
int size; リスト内のノード数
IDlist_node* root; リスト内の最初のノードの場所を指す IDlist_node ポインタ
IDlist_node* last; リスト内の最後のノードの場所を指す IDlist_node ポインタ
Node_intbintree, _intbintree
定義: tree.h
機能: 2 分木データ IntBinTree のノード.
メンバー変数:
int data; ノードの整数データ
struct _intbintree* left; ノードから左側ツリーの場所を指す_intbintree ポインタ
struct _intbintree* right; ノードから左側ツリーの場所を指す_intbintree ポインタ
IntBinTree
定義: tree.h
機能: int 変数の 2 分木データを格納する.
メンバー変数:
int num; ツリー内のノード数
Node_intbintree* root; ツリー内の最上部ノードの場所を指す Node_intbintree ポインタ
IntAry
定義: tree.h
機能: int 変数の配列データを格納する.
メンバー変数:
int num; 配列のサイズ
int* d; サイズ num の int 配列を格納する
15
COM_GRP_ID
定義: comm_mpi.h
機能: プロセッサグループ用 MPI コミュニケータ MPI_GroupID_me の情報を格納する.
メンバー変数:
int group; MPI グループ ID
int mygprocid; グループ内におけるプロセッサ番号
int nparent; Parent グループのプロセッサ数,入力データの部分数に等しい
int nchild; Child グループのプロセッサ数
int nparts; 入力データの部分数
int gpid; Grand Parent プロセッサ番号
int* parid; Parent グループを構成するプロセッサ番号を格納する int 配列
int* chiid; Child グループを構成するプロセッサ番号を格納する int 配列
COM_WLD_ID
定義: comm_mpi.h
機能: プロセッサ全体用 MPI コミュニケータ MPI_COMM_WORLD の情報を格納する.
メンバー変数:
int nproc; MPI プロセッサ数
int myprocid; プロセッサ番号
int* allid; プロセッサ全体の番号を格納するサイズ nproc の int 配列
ACG_Indx
定義: acg_solver.h
機能:
メンバー変数:
int size; 行列の次元数
int nfree; 自由度数
int noutfree; Part 内自由度の中で他 Part が担当する自由度数
int ninfree; Part 内自由度の中でこの Part が担当する自由度数
int ndisp; 基本境界条件数
int* indx; 行列の各次元の情報を格納するサイズ size の int 配列
16
ACG_Matvec
定義: acg_solver.h
機能: ある行の非零データを格納する.
メンバー変数:
int size; 行の全非零要素数
int idig; 全非零要素データにおける対角要素位置
int nfree; 全非零要素数から基本境界条件数を除いた自由度数
int* indx; 行の全非零要素に対応する自由度番号を格納するサイズ size の int 配列
double* d; 行の非零要素を格納するサイズ size の double 配列
ACG_Matrix
定義: acg_solver.h
機能: 非零要素のみを記憶した行列を格納する.
メンバー変数:
int size; 行列の次元数
int nfree; 問題の自由度数
int ndisp; 基本境界条件数
ACG_Matvec* matvec; 行列の非零データを格納するサイズ size の ACG_Matvec 配列
Nodegraph
定義: acg_solver.h
機能: ある Part 内の各節点が有限要素で接続をもつ節点を格納する.
メンバー変数:
int size; Part 内の節点数
IntAry* node; Part 内の節点が接続する節点情報を格納する IntAry 配列
AdjDom
定義: bdd_domfunc.h
機能: ある Subdomain に接してる Subdomain の情報を格納する.
メンバー変数:
int partid; 接する Subdomain の属する Part の ID
int domid; 接する Subdomain の属する Part 内でのローカル ID
int ninbd; 共有する Interface 自由度数
int* ibid; 共有する Interface 自由度の Subdomain におけるローカル番号
int ndisp; 現バージョンでは特に使用しない
17
AdjPart
定義: bdd_domfunc.h
機能: 現バージョンでは特に使用しない
メンバー変数:
int nadjdom;
int nadjinbc;
AdjDom* adjd;
DomAdjacency
定義: bdd_domfunc.h
機能: ある Subdomain に接する全 Subdomain の情報を格納する.
メンバー変数:
int n_share_dom; 接する Subdomain 数
AdjDom* adjd; 接する Subdomain 情報を格納するサイズ n_share_dom の AdjDom 配列
CoarseSpace
定義: bdd_domfunc.h
機能: ある Subdomain のローカルコーススペースを格納する.
メンバー変数:
int rigid_dof; Subdomain のもつ剛体自由度数,現バージョンでは 6(3 次元)に固定
int nf; Subdomain 内の Interface 自由度数
double* d; ローカルコーススペースを表す行列を格納するサイズ nf×rigid_dof の
double 配列
HBDD_LocalMatrix
定義: bdd_domfunc.h
機能: ある Subdomain のローカル Neumann-Neumann 前処理行列, ローカルコース
スペース,領域分割の重み行列など BDD ソルバに必要な情報を格納する.
メンバー変数:
int partid; Subdomain の属する Part の ID
int domid; Subdomain の属する Part 内でのローカル ID
int nodes; Subdomain 内の節点数
int node_dim; 節点の自由度数
int dim; Subdomain のローカル剛性行列の次元数
int ninbd; 他 Subdomain と共有する Interface 自由度数
int ndisp; 基本境界条件数
18
int nload; 自然境界条件数
Bcnd* bcdisp; 基本境界条件を格納する Bcnd 配列
Bcnd* bcload; 自然境界条件を格納する Bcnd 配列
int state_glsc_inv; ローカル Neumann-Neumann 前処理行列を格納する glsc_inv の状態
DMatrix glsc_inv; Subdomain のローカル Neumann-Neumann 前処理行列を格納する
DMatrix 変数
DomAdjacency dadj; Subdomain が接する全 Subdomain 情報
double* weight; 領域分割による重み行列 D(i)を格納する double 配列
CoarseSpace Z; ローカルコーススペースを表す行列 Z(i)を格納する CoarseSpace 変数
ParMatrix
定義: bdd_coarse_parallel.h
機能: 実対称行列を並列プロセッサに分散記憶させ,ある 1 つのプロセッサが担当する
情報や分散行列を格納する.分散方法には列ブロック分割を用い,行列の記憶方法にはス
カイライン法を用いる.
メンバー変数:
int nblock; 使用するプロセッサ数
int myblockid; 担当する列ブロックの ID
int* allid; 使用するプロセッサのプロセッサ番号
int node_dim; 行列を構成する 1 点が持つ自由度数,現バージョンでは 6(3 次元)に固定
int grank; 分散前の行列の次元数
int file; 担当する列ブロック行列の行数
int rank; 担当する列ブロック行列の列数
int* allfile; 分散された各列ブロック行列の行数を格納する int 配列
int* allrank; 分散された各列ブロック行列の列数を格納する int 配列
int* st_nzline; 分散された各列ブロック行列において最初の非零要素が現れる列番号を
格納する int 配列
int* n_nzline; 分散された各列ブロック行列における非零要素が現れる列数を格納する
int 配列
int max_nzline; 全列ブロック行列における非零要素列数の最大値
int* ii; 担当する列ブロック行列のスカイライン形式インデックスを格納するサ
イズ file の int 配列
int* ij; 担当する列ブロック行列のスカイライン形式インデックスを格納するサ
イズ file×node_dim の int 配列
int slen; 1 次元化した担当する列ブロック行列を格納する配列 d の大きさ
double* d; 1 次元化した担当する列ブロック行列を格納するサイズ slen の double 配列
19
fe_State_Variables
定義: LIBFEM.h
機能: 物理量を格納する.
メンバー変数:
double* disp; 節点変位量
double* ddisp; 節点変位の増分量
double* stra; 積分点歪み量
double* stre; 積分点応力量
double* stre2; 前の増分ステップにおける積分点応力量
int* elpl; 積分点降伏領域情報
double* ystre; 積分点降伏応力量
double* ystre2; 前の増分ステップにおける積分点降伏応力量
fe_Constants
定義: LIBFEM.h
機能: 材料の物性値情報を格納する.
メンバー変数:
double yng; ヤング率
double poi; ポアソン比
double hp; バイリニア型硬化関数のための加工硬化係数
double ys; 初期降伏応力
double rou; 質量密度
fe_Options
定義: LIBFEM.h
機能: 有限要素法ソルバのオプションを格納する.
メンバー変数:
int plastic_analysis; 1:弾塑性解析を行う,0:弾性解析を行う
int total_lagrangian; 1:Total Lagrange 法による大変形解析を行う,0:行わない
int updated_lagrangian; 1:Updated Lagrange 法による大変形解析を行う,0:行わない
int selective_intg; 要素積分方法に関するオプション

ADVENTURE_Solid-1.2 構造体リファレンスマニュアル

  • 1.
    1 ADVENTURE_Solid-1.2 構造体リファレンスマニュアル 作者: 荻野正雄,九州大学 文書バージョン: Ver. 0.2 文書作成日: 2008 年 9 月 26 日 文書公開日: 2008 年 9 月 29 日 —A— ACG_Indx .........................................................................................................................................15 ACG_Matrix......................................................................................................................................16 ACG_Matvec.....................................................................................................................................16 AdjDom..............................................................................................................................................16 AdjPart ..............................................................................................................................................17 —B— Bcnd .....................................................................................................................................................3 BCset ....................................................................................................................................................4 —C— CGOpts ..............................................................................................................................................10 CGVector ...........................................................................................................................................10 CoarseSpace ......................................................................................................................................17 COM_GRP_ID..................................................................................................................................15 COM_WLD_ID.................................................................................................................................15 —D— DomAdjacency ..................................................................................................................................17 DomField .............................................................................................................................................7 DomMesh.............................................................................................................................................5 DVectors.............................................................................................................................................13 —E— ElmFaceLoad ......................................................................................................................................3 —F— fe_Constants ......................................................................................................................................19 fe_Options..........................................................................................................................................19 fe_State_Variables.............................................................................................................................19 —G— GravityAcceleration..........................................................................................................................12
  • 2.
    2 —H— HBDD_LocalMatrix .........................................................................................................................17 HDDM_SkylineMat..........................................................................................................................11 —I— IDlist...................................................................................................................................................14 IDlist_node.........................................................................................................................................13 Inbc.......................................................................................................................................................3 InputSW...............................................................................................................................................9 IntAry.................................................................................................................................................14 IntBinTree..........................................................................................................................................14 —N— NLStep ...............................................................................................................................................12 Node_intbintree.................................................................................................................................14 Nodegraph.........................................................................................................................................16 —O— OPinfo ..................................................................................................................................................6 OPSinfo................................................................................................................................................6 OptSolv ................................................................................................................................................8 OutputSW............................................................................................................................................8 —P— ParMatrix ..........................................................................................................................................18 PartField ..............................................................................................................................................8 PartMesh .............................................................................................................................................6 —S— Sharenode ............................................................................................................................................4 Slist.....................................................................................................................................................13 Slist_node...........................................................................................................................................13 SpringConstant .................................................................................................................................12 SpringSupport.....................................................................................................................................3 —T— T_Material.........................................................................................................................................12
  • 3.
    3 Bcnd 定義: hddm_types.h 機能: ある節点の境界条件を格納する. メンバー変数: intnode; Subdomain 内ローカル節点番号 int co; 軸方向(0=x, 1=y, 2=z) double val; 境界条件値 SpringSupport 定義: hddm_types.h 機能: ある節点の弾性ばね支持条件を格納する. メンバー変数: int node; Subdomain 内ローカル節点番号 int spring_id; グローバルばね ID double direction[3]; 各軸方向の係数 ElmFaceLoad 定義: hddm_types.h 機能: ある要素面の表面力や圧力条件を格納する. メンバー変数: int type; 表面力のタイプ int elmid; Subdomain 内ローカル要素番号 int surfaceid; 要素内ローカル面番号 double* val; 境界条件値 Inbc 定義: hddm_types.h 機能: ある Subdomain が他 Subdomain と共有する,ある Interface 自由度情報を格納する. メンバー変数: int aspart; この自由度を担当する Part の ID int mypart_ibid; この Subdomain が属する Part 内でのローカル Interface 自由度番号 int node; Subdomain 内ローカル節点番号 int co; 軸方向(0=x, 1=y, 2=z)
  • 4.
    4 Sharenode 定義: hddm_types.h 機能: あるSubdomain が他 Subdomain と共有する,ある Interface 節点情報を格納する. メンバー変数: int aspart; この節点を担当する Part の ID int asdom; この節点を担当する Subdomain の ID int asgdom; “asdom"のグローバル ID int n_share_dom; この節点を共有する Subdomain 数 int* share_gdom; この節点を共有する Subdomain のグローバル ID を格納する int 配列 int mypart_snid; この Subdomain が属する Part 内でのローカル Interface 節点番号 int node; Subdomain 内ローカル節点番号 BCset 定義: hddm_types.h 機能: ある Subdomain が持つ境界条件の集合体. メンバー変数: int id; 境界条件の ID int ndisp; 節点強制変位境界条件の数 int nload; 節点荷重境界条件の数 int num_elmfaceload[ELMFACELOAD_NUM_TYPE]; 実装されていません int efl_onedatasize[ELMFACELOAD_NUM_TYPE]; 実装されていません int num_spring_support; 弾性ばね条件の数 Bcnd* bcdisp; 節点強制変位境界条件を格納する Bcnd 配列 Bcnd* bcload; 節点荷重境界条件を格納する Bcnd 配列 ElmFaceLoad* elmfaceload[ELMFACELOAD_NUM_TYPE]; 実装されていません SpringSupport* spring_support; 弾性ばね条件を格納する SpringSupport 配列
  • 5.
    5 DomMesh 定義: hddm_types.h 機能: 1つの Subdomain のメッシュデータや境界条件を格納する. メンバー変数: int partid; Subdomain が属する Part の ID int domid; Subdomain の属する Part 内でのローカル ID int gdomid; Subdomain のグローバル ID int elmtype; 有限要素の種類 int elm_dim; 要素の次元数 int nd_elm; 要素を構成する節点数 int elms; Subdomain 内の要素数 int* nop; Subdomain 内の要素コネクティビティを格納する int 配列 int nodes; Subdomain 内の節点数 int node_dim; 節点の次元数 int* ndindex; Subdomain 内節点の Part ローカル節点番号を格納する int 配列 double* crd; Subdomain 内の節点座標値を格納する double 配列 Slist* bclist; Subdomain の境界条件を格納する Slist ポインタ int ndisp; 基本境界条件数 Bcnd* bcdisp; 基本境界条件を格納する Bcnd 配列 int nload; 荷重自然境界条件数 Bcnd* bcload; 荷重自然境界条件を格納する Bcnd 配列 int num_spring_support; 弾性ばね条件数 SpringSupport* spring_support; 弾性ばね条件を格納する SpringSupport 配列 int ninbd; 他 Subdomain と共有する Interface 自由度数 int ifn_dim; Interface 節点の自由度数 Inbc* inbd; 他 Subdomain との共有 Interface 自由度情報を格納する Inbc 配列 int nsharenode; 他 Subdomain と共有する Interface 節点数 Sharenode* sharenode; 他 Subdomain との共有節点情報を格納する Sharenode 配列 int with_temperature; この Subdomain 内節点の温度情報を持つかどうか double* temperature; Subdomain 内節点の温度を格納する double 配列 int with_matid; 材料物性値 ID を持つかどうか(複数材料モデルかどうか) int* matid; Subdomain 内要素の材料物性値 ID を格納する int 配列
  • 6.
    6 OPinfo 定義: hddm_types.h 機能: あるPart がある他 Part と共有する Interface 自由度情報を格納する. メンバー変数: int n_mofree; ある他 Part と共有する Interface 自由度数 int* mof_ibid; ある他 Part と共有する Part 内でのローカル Interface 自由度番号を格納す る int 配列 OPSinfo 定義: hddm_types.h 機能: ある Part がある他 Part と共有する Interface 節点情報を格納する. メンバー変数: int n_moshare; ある他 Part と共有する Interface 節点数 int* mo_snnid; ある他 Part と共有する Part 内でのローカル Interface 節点番号を格納する int 配列 PartMesh 定義: hddm_types.h 機能: 1 つの Part のメッシュデータや境界条件を格納する. メンバー変数: int n_part; 総 Part 数 int partid; Part の ID int n_domain; Part 内の Subdomain 数 int t_nodes; Part 内の節点数 int node_dim; 節点自由度数 int t_infree; Part 内 Interface 自由度の中でこの Part が担当する Interface 自由度数 int t_outfree; Part 内 Interface 自由度の中で他 Part が担当する Interface 自由度数 int t_insnode; Part 内 Interface 節点の中でこの Part が担当する Interface 節点数 int t_outsnode; Part 内 Interface 節点の中で他 Part が担当する Interface 節点数 OPinfo* op; 他 Part との共有 Interface 自由度情報を格納する OPinfo 配列 OPSinfo* opsn; 他 Part との共有 Interface 節点情報を格納する OPSinfo 配列 double* crd; Part 内の節点座標値を格納する double 配列 double* crd2; Part 内の節点座標値(大変形解析 ULF に使用)を格納する double 配列 int* pndindex; Part 内節点の領域分割前グローバル節点番号を格納する int 配列 int global_t_nodes; 領域分割前の総節点数 int global_t_elms; 領域分割前の総要素数
  • 7.
    7 int global_t_domains; 全Part の総計 Subdomain 数 DomMesh* dom; Part 内の各 Subdomain のメッシュデータを格納する DomMesh 配列 int* off_gdom; 各 Part の Subdomain のグローバル ID スタート番号を格納する int 配列 DomField 定義: hddm_types.h 機能: 1 つの Subdomain の物理量を格納する. メンバー変数: int partid; Subdomain の属する Part の ID int domid; Subdomain の属する Part 内でのローカル ID int nd_elm; 要素を構成する節点数 int ninteg; 要素の積分点数 int elms; Subdomain 内の要素数 int elm_dim; 要素の次元数 int nodes; Subdomain 内の節点数 int node_dim; 節点の自由度数 int str_dim; 応力の次元数 int have_cgdisp; 現バージョンでは特に使用しない double* disp; 節点変位ベクトル double* reac; 節点反力ベクトル double* stress; 積分点応力テンソル double* cgdisp; 現バージョンでは特に使用しない double* ddisp; 増分型節点変位ベクトル double* strain; 積分点歪みテンソル double* pl_strain; 積分点塑性歪みテンソル double* eq_pl_strain; 積分点相当塑性歪み double* stress2; 前の増分ステップにおける積分点応力テンソル double* force; 節点外力ベクトル double* force2; 前の増分ステップにおける節点外力ベクトル double* dforce; 増分型節点外力ベクトル double* ystr; 積分点降伏応力 double* ystr2; 前の増分ステップにおける積分点降伏応力 int* elpl; 積分点降伏領域(弾性: ELASTIC, 塑性: PLASTIC, 塑性→弾性: PL_TO_EL)
  • 8.
    8 PartField 定義: hddm_types.h 機能: 1つの Part 内の Subdomain 毎の物理量を格納する. メンバー変数: int n_part; 総 Part 数 int partid; Part の ID int n_domain; Part 内の Subdomain 数 DomField* dom; Part 内の各 Subdomain の物理量を格納する DomField 配列 OptSolv 定義: hddm_types.h 機能: 有限要素法ソルバとしての各種オプションを格納する. メンバー変数: fe_Options feopt; 有限要素法解析タイプ int solver_type; 線形方程式ソルバタイプ int nonlinear; 1: 非線形問題, 0:線形問題 int total_nl_step; 本実行における総増分ステップ数 int first_nl_step; 本実行における初期増分ステップ番号(リスタート時に非零) int max_newton; Newton-Raphson 法の反復回数上限(未収束判定値) int cur_nl_step; 本実行における現在の増分ステップ番号 int cur_newton_step; 現在の Newton-Raphson 法の反復回数 double tol_newton; Newton-Raphson 法の収束判定値 int sw_gravity; 1:重力による自重を考慮する, 0:考慮しない int have_intg_stra; 1:出力タイプに積分点歪みデータがある, 0: ない int have_intg_pl_stra; 1:出力タイプに積分点塑性歪みデータがある, 0:ない int have_intg_eq_pl_stra; 1:出力タイプに積分点相当塑性歪みデータがある, 0:ない int use_tet10_5; 1:4 面体 2 次要素の要素積分は 5 点積分を用いる, 0:4 点積分 Slist* nlstep_set; 増分法をコントロールするオプションリスト int unload_reset; 1:除荷発生時に非線形計算をリセットする, 0:リセットしない int sw_thermal; 1:熱応力を考慮する, 0:考慮しない OutputSW 定義: hddm_types.h 機能: 出力する解析結果タイプを格納する.出力する物理量のタイプはビットで管理し, 節点データは 1,要素データは 2,要素積分点データは 4 のビットをオン/オフする.
  • 9.
    9 メンバー変数: int disp; 節点変位 intreac; 節点反力 int force; 節点外力(増分解析リスタートデータ出力時にオン) int str; (節点/要素/積分点)応力 int estr; (節点/要素/積分点)相当応力 int ystr; (節点/要素/積分点)降伏応力 int elpl; (要素/積分点)降伏領域 int stra; (節点/要素/積分点)歪み int pl_stra; (節点/要素/積分点)塑性歪み int eq_pl_stra; (節点/要素/積分点)相当塑性歪み int prstr; (節点/要素/積分点)主応力 3 成分とその固有値ベクトル int prstra; (節点/要素/積分点)主歪み 3 成分とその固有値ベクトル char* data_dir; 出力する結果ファイルの置かれる親ディレクトリ名 char* subdir; 出力する結果ファイルの置かれるサブディレクトリ名 char* filename; 出力する結果ファイルの Part ID や拡張子を除いたファイル名 int filename_have_step; 1:出力結果ファイル名に増分ステップ番号をつける, 0:つけない InputSW 定義: hddm_types.h 機能: 入力するデータファイルの情報を格納する. メンバー変数: char* data_dir; 入力するモデルファイルが置かれている親ディレクトリ名 char* indata_subdir; 入力するモデルファイルが置かれているサブディレクトリ名 char* indata_filename; 入力するモデルファイルの Part ID や拡張子を除いたファイル名 char* nl_resin_subdir; 入力する非線形反復リスタートファイルの置かれているサブデ ィレクトリ名 char* nl_resin_filename; 非線形反復リスタートファイルの Part ID,増分ステップ番号や 拡張子を除いたファイル名 int use_nl_resin; 正数 n:非線形反復リスタートファイルとして増分ステップ番号 n のデータを読み込む,0:読み込まない int indata_filename_have_step; 現バージョンでは特に使用しない int nl_resin_filename_have_step; 1:入力する非線形反復リスタートファイル名に増分ス テップ番号をつける,0:つけない
  • 10.
    10 CGOpts 定義: hddm_types.h 機能: Interface問題を前処理つき CG 法で解くための各種オプションを格納する. メンバー変数: double tol; CG 法のための収束判定値 int loop_max; CG 法の反復回数上限(未収束判定値) int resout_interval; CG 法リスタートファイルを出力する CG 反復回数の間隔 int resout_last; 1:CG 法終了時にリスタートファイルを出力する,0:出力しない int use_resin; 1:CG 法リスタートファイルを読み込む,0:読み込まない int sw_mat_keep; 1:CG 法反復間で線形方程式の係数行列を保持する,0:保持しない int sw_precon; CG 法のための前処理タイプ int watch_cg_history; 1:CG 法の収束履歴を出力する,0:出力しない char* data_dir; 入出力する CG 法リスタートファイルの置かれる親ディレクト リ名 char* resin_subdir; 入力する CG 法リスタートファイルが置かれているサブディレ クトリ名 char* resin_filename; 入力 CG 法リスタートファイルの Part ID や拡張子を除いたファ イル名 char* resout_subdir; 出力する CG 法リスタートファイルの置かれるサブディレクト リ名 char* resout_filename; 出力 CG 法リスタートファイルの Part ID や拡張子を除いたファ イル名 int resin_filename_have_step; 現バージョンでは特に使用しない int resout_filename_have_step; 現バージョンでは特に使用しない int resout_bddcmat; 1:BDD ソルバリスタートファイルを出力する,0:出力しない int use_bddcmat; 1:BDD ソルバリスタートファイルを読み込む,0:読み込まない char* bdd_subdir; BDD リスタートファイルの置かれるサブディレクトリ名 char* bddcmat_filename;BDD リスタートファイルの Part ID や拡張子を除いたファイル名 CGVector 定義: hddm_types.h 機能: Interface 問題を前処理つき CG 法で解くための各種ベクトルを格納する. メンバー変数: int t_infree; Part 内 Interface 自由度の中でこの Part が担当する Interface 自由度数 int t_outfree; Part 内 Interface 自由度の中で他 Part が担当する Interface 自由度数 int t_free; Part 内 Interface 自由度 ( = t_infree + t_outfree )
  • 11.
    11 double* w; 補助ベクトル,CG法初期ステップと最終ステップ時には近似解ベクトル を格納するサイズ t_free の double 配列 double* w_in; "w"の infree 部分開始位置へのポインタ double* w_out; "w" の outfree 部分開始位置へのポインタ double* a_w; Interface 問題の係数行列と補助ベクトルの積を格納するサイズ t_free の double 配列,初期残差計算直後には残差ベクトルを格納している double* a_w_in; "a_w" の infree 部分開始位置へのポインタ double* a_w_out; "a_w" の outfree 部分開始位置へのポインタ double* myu; 近似解ベクトルを格納するサイズ t_infree の double 配列 double* g; 残差ベクトルを格納するサイズ t_free の double 配列 double* g_in; "g" の infree 部分開始位置へのポインタ double* g_out; "g" の outfree 部分開始位置へのポインタ double gdotg; 残差ベクトルのノルム double* dginv; 対角スケーリング前処理ベクトルを格納するサイズ t_free の double 配列 double* dginv_in; "dginv"の infree 部分開始位置へのポインタ double* dginv_out; "dginv" の outfree 部分開始位置へのポインタ double* Gg; 前処理された残差ベクトルを格納するサイズ t_free の double 配列 double* Gg_in; "Gg" の infree 部分開始位置へのポインタ double* Gg_out; "Gg" の outfree 部分開始位置へのポインタ HDDM_SkylineMat 定義: domfem.h 機能: ある Subdomain の剛性行列,その LU 分解行列,体積力ベクトルなどを格納する. メンバー変数: int partid; Subdomain の属する Part の ID int domid; Subdomain の属する Part 内でのローカル ID int dim; Subdomain のローカル剛性行列の次元数 int ndisp; 基本境界条件数 int ninbd; 他 Subdomain と共有する Interface 自由度数 int* bdinfo; 自由度が基本境界上や Interface 上であるかを格納するサイズ dim の int 配列 int state_gk; ローカル剛性行列を格納する gk の状態 int state_gk_inv; LU 分解されたローカル剛性行列を格納する gk_inv の状態 DMatrix gk; Subdomain のローカル剛性行列を格納する DMatrix 変数 DMatrix gk_inv; LU 分解したローカル剛性行列を格納する DMatrix 変数 double* force; 体積力(自重考慮時),熱荷重(熱応力考慮時)を格納する double 配列 int *gk_inv_map; 領域内部に縮約された自由度情報を格納する int 配列
  • 12.
    12 T_Material 定義: global_params.h 機能: ある材料の等方的な物性値を格納する. メンバー変数: doubleyng; ヤング率 double poi; ポアソン比 double hp; バイリニア型硬化関数のための加工硬化係数 double ys; 初期降伏応力 double rou; 質量密度 double therm_exp_coeff; 線膨張係数 double ref_temp; 参照温度 GravityAcceleration 定義: global_params.h 機能: 解析対象モデルの重力加速度を格納する. メンバー変数: double gravity_accel[3]; 重力加速度を格納する double 配列 SpringConstant 定義: global_params.h 機能: 弾性ばね支持条件のための係数を格納する. メンバー変数: double k_parallel; double k_perp; NLStep 定義: nlstep.h 機能: ある増分幅で解析を行う非線形反復計算のオプションを格納する. メンバー変数: int id; 非線形反復計算の ID int num_step; 増分法のステップ回数 double bcdisp_width; 増分ステップ内における強制変位量への倍率 double bcload_width; 増分ステップ内における荷重量への倍率 double bodyforce_width; 増分ステップ内における体積力への倍率 double time_width; 現在のバージョンでは使用しない. int output_interval; 解析結果ファイルを出力する非線形反復回数の間隔
  • 13.
    13 int output_last; 1:非線形反復計算終了時に解析結果ファイルを出力する,0:出力しない intresout_interval; 非線形計算リスタートファイルを出力する非線形反復回数の間隔 int resout_last; 1:非線形反復計算終了時にリスタートファイルを出力する,0:出力しない Slist_node, _Slist_node 定義: stdfunc.h 機能: 連結リストデータ Slist のノード. メンバー変数: struct _Slist_node* next; 次のノードの場所を指す_Slist_node ポインタ void* data; ノードのデータを格納する汎用ポインタ Slist 定義: stdfunc.h 機能: 連結リストを格納する. メンバー変数: int size; リスト内のノード数 Slist_node* root; リスト内の最初のノードの場所を指す Slist_node ポインタ Slist_node* last; リスト内の最後のノードの場所を指す Slist_node ポインタ DVectors 定義: stdfunc.h 機能: double 型のベクトルを複数格納する. メンバー変数: int num_vec; ベクトルの本数 int vec_dim; ベクトルの次元数 double** vec; サイズ vec_dim のベクトルが num_vec 数ある 2 次元 double 配列 IDlist_node, _IDlist_node 定義: idlist.h 機能: ID 付き連結リストデータ IDlist のノード. メンバー変数: struct _IDlist_node* next; 次のノードの場所を指す_IDlist_node ポインタ int id; ノードの ID void* data; ノードのデータを格納する汎用ポインタ
  • 14.
    14 IDlist 定義: idlist.h 機能: ID付き連結リストを格納する. メンバー変数: int size; リスト内のノード数 IDlist_node* root; リスト内の最初のノードの場所を指す IDlist_node ポインタ IDlist_node* last; リスト内の最後のノードの場所を指す IDlist_node ポインタ Node_intbintree, _intbintree 定義: tree.h 機能: 2 分木データ IntBinTree のノード. メンバー変数: int data; ノードの整数データ struct _intbintree* left; ノードから左側ツリーの場所を指す_intbintree ポインタ struct _intbintree* right; ノードから左側ツリーの場所を指す_intbintree ポインタ IntBinTree 定義: tree.h 機能: int 変数の 2 分木データを格納する. メンバー変数: int num; ツリー内のノード数 Node_intbintree* root; ツリー内の最上部ノードの場所を指す Node_intbintree ポインタ IntAry 定義: tree.h 機能: int 変数の配列データを格納する. メンバー変数: int num; 配列のサイズ int* d; サイズ num の int 配列を格納する
  • 15.
    15 COM_GRP_ID 定義: comm_mpi.h 機能: プロセッサグループ用MPI コミュニケータ MPI_GroupID_me の情報を格納する. メンバー変数: int group; MPI グループ ID int mygprocid; グループ内におけるプロセッサ番号 int nparent; Parent グループのプロセッサ数,入力データの部分数に等しい int nchild; Child グループのプロセッサ数 int nparts; 入力データの部分数 int gpid; Grand Parent プロセッサ番号 int* parid; Parent グループを構成するプロセッサ番号を格納する int 配列 int* chiid; Child グループを構成するプロセッサ番号を格納する int 配列 COM_WLD_ID 定義: comm_mpi.h 機能: プロセッサ全体用 MPI コミュニケータ MPI_COMM_WORLD の情報を格納する. メンバー変数: int nproc; MPI プロセッサ数 int myprocid; プロセッサ番号 int* allid; プロセッサ全体の番号を格納するサイズ nproc の int 配列 ACG_Indx 定義: acg_solver.h 機能: メンバー変数: int size; 行列の次元数 int nfree; 自由度数 int noutfree; Part 内自由度の中で他 Part が担当する自由度数 int ninfree; Part 内自由度の中でこの Part が担当する自由度数 int ndisp; 基本境界条件数 int* indx; 行列の各次元の情報を格納するサイズ size の int 配列
  • 16.
    16 ACG_Matvec 定義: acg_solver.h 機能: ある行の非零データを格納する. メンバー変数: intsize; 行の全非零要素数 int idig; 全非零要素データにおける対角要素位置 int nfree; 全非零要素数から基本境界条件数を除いた自由度数 int* indx; 行の全非零要素に対応する自由度番号を格納するサイズ size の int 配列 double* d; 行の非零要素を格納するサイズ size の double 配列 ACG_Matrix 定義: acg_solver.h 機能: 非零要素のみを記憶した行列を格納する. メンバー変数: int size; 行列の次元数 int nfree; 問題の自由度数 int ndisp; 基本境界条件数 ACG_Matvec* matvec; 行列の非零データを格納するサイズ size の ACG_Matvec 配列 Nodegraph 定義: acg_solver.h 機能: ある Part 内の各節点が有限要素で接続をもつ節点を格納する. メンバー変数: int size; Part 内の節点数 IntAry* node; Part 内の節点が接続する節点情報を格納する IntAry 配列 AdjDom 定義: bdd_domfunc.h 機能: ある Subdomain に接してる Subdomain の情報を格納する. メンバー変数: int partid; 接する Subdomain の属する Part の ID int domid; 接する Subdomain の属する Part 内でのローカル ID int ninbd; 共有する Interface 自由度数 int* ibid; 共有する Interface 自由度の Subdomain におけるローカル番号 int ndisp; 現バージョンでは特に使用しない
  • 17.
    17 AdjPart 定義: bdd_domfunc.h 機能: 現バージョンでは特に使用しない メンバー変数: intnadjdom; int nadjinbc; AdjDom* adjd; DomAdjacency 定義: bdd_domfunc.h 機能: ある Subdomain に接する全 Subdomain の情報を格納する. メンバー変数: int n_share_dom; 接する Subdomain 数 AdjDom* adjd; 接する Subdomain 情報を格納するサイズ n_share_dom の AdjDom 配列 CoarseSpace 定義: bdd_domfunc.h 機能: ある Subdomain のローカルコーススペースを格納する. メンバー変数: int rigid_dof; Subdomain のもつ剛体自由度数,現バージョンでは 6(3 次元)に固定 int nf; Subdomain 内の Interface 自由度数 double* d; ローカルコーススペースを表す行列を格納するサイズ nf×rigid_dof の double 配列 HBDD_LocalMatrix 定義: bdd_domfunc.h 機能: ある Subdomain のローカル Neumann-Neumann 前処理行列, ローカルコース スペース,領域分割の重み行列など BDD ソルバに必要な情報を格納する. メンバー変数: int partid; Subdomain の属する Part の ID int domid; Subdomain の属する Part 内でのローカル ID int nodes; Subdomain 内の節点数 int node_dim; 節点の自由度数 int dim; Subdomain のローカル剛性行列の次元数 int ninbd; 他 Subdomain と共有する Interface 自由度数 int ndisp; 基本境界条件数
  • 18.
    18 int nload; 自然境界条件数 Bcnd*bcdisp; 基本境界条件を格納する Bcnd 配列 Bcnd* bcload; 自然境界条件を格納する Bcnd 配列 int state_glsc_inv; ローカル Neumann-Neumann 前処理行列を格納する glsc_inv の状態 DMatrix glsc_inv; Subdomain のローカル Neumann-Neumann 前処理行列を格納する DMatrix 変数 DomAdjacency dadj; Subdomain が接する全 Subdomain 情報 double* weight; 領域分割による重み行列 D(i)を格納する double 配列 CoarseSpace Z; ローカルコーススペースを表す行列 Z(i)を格納する CoarseSpace 変数 ParMatrix 定義: bdd_coarse_parallel.h 機能: 実対称行列を並列プロセッサに分散記憶させ,ある 1 つのプロセッサが担当する 情報や分散行列を格納する.分散方法には列ブロック分割を用い,行列の記憶方法にはス カイライン法を用いる. メンバー変数: int nblock; 使用するプロセッサ数 int myblockid; 担当する列ブロックの ID int* allid; 使用するプロセッサのプロセッサ番号 int node_dim; 行列を構成する 1 点が持つ自由度数,現バージョンでは 6(3 次元)に固定 int grank; 分散前の行列の次元数 int file; 担当する列ブロック行列の行数 int rank; 担当する列ブロック行列の列数 int* allfile; 分散された各列ブロック行列の行数を格納する int 配列 int* allrank; 分散された各列ブロック行列の列数を格納する int 配列 int* st_nzline; 分散された各列ブロック行列において最初の非零要素が現れる列番号を 格納する int 配列 int* n_nzline; 分散された各列ブロック行列における非零要素が現れる列数を格納する int 配列 int max_nzline; 全列ブロック行列における非零要素列数の最大値 int* ii; 担当する列ブロック行列のスカイライン形式インデックスを格納するサ イズ file の int 配列 int* ij; 担当する列ブロック行列のスカイライン形式インデックスを格納するサ イズ file×node_dim の int 配列 int slen; 1 次元化した担当する列ブロック行列を格納する配列 d の大きさ double* d; 1 次元化した担当する列ブロック行列を格納するサイズ slen の double 配列
  • 19.
    19 fe_State_Variables 定義: LIBFEM.h 機能: 物理量を格納する. メンバー変数: double*disp; 節点変位量 double* ddisp; 節点変位の増分量 double* stra; 積分点歪み量 double* stre; 積分点応力量 double* stre2; 前の増分ステップにおける積分点応力量 int* elpl; 積分点降伏領域情報 double* ystre; 積分点降伏応力量 double* ystre2; 前の増分ステップにおける積分点降伏応力量 fe_Constants 定義: LIBFEM.h 機能: 材料の物性値情報を格納する. メンバー変数: double yng; ヤング率 double poi; ポアソン比 double hp; バイリニア型硬化関数のための加工硬化係数 double ys; 初期降伏応力 double rou; 質量密度 fe_Options 定義: LIBFEM.h 機能: 有限要素法ソルバのオプションを格納する. メンバー変数: int plastic_analysis; 1:弾塑性解析を行う,0:弾性解析を行う int total_lagrangian; 1:Total Lagrange 法による大変形解析を行う,0:行わない int updated_lagrangian; 1:Updated Lagrange 法による大変形解析を行う,0:行わない int selective_intg; 要素積分方法に関するオプション