SlideShare a Scribd company logo
1 of 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
ADVENTURE_Solid-1.1 構造体リファレンス
作者: 荻野正雄, 九州大学
作成日: 2006 年 9 月 15 日
文書バージョン: Ver.0.1
Bcnd......................................................................................................................................................2
SpringSupport.......................................................................................................................................2
Inbc.......................................................................................................................................................2
Sharenode............................................................................................................................................. 2
BCset.................................................................................................................................................... 3
DomMesh............................................................................................................................................. 3
OPinfo...................................................................................................................................................4
OPSinfo................................................................................................................................................ 4
PartMesh...............................................................................................................................................4
DomField..............................................................................................................................................5
PartField............................................................................................................................................... 5
OptSolv.................................................................................................................................................6
OutputSW.............................................................................................................................................6
InputSW................................................................................................................................................7
CGOpts.................................................................................................................................................7
CGVector..............................................................................................................................................8
SkylineMatrix.......................................................................................................................................8
HDDM_SkylineMat............................................................................................................................. 9
T_Material............................................................................................................................................ 9
GravityAcceleration............................................................................................................................. 9
SpringConstant..................................................................................................................................... 9
NLStep................................................................................................................................................10
Slist_node, _Slist_node..................................................................................................................... 10
Slist.....................................................................................................................................................10
DVectors.............................................................................................................................................10
IDlist_node, _IDlist_node................................................................................................................. 10
IDlist...................................................................................................................................................11
Node_intbintree, _intbintree..............................................................................................................11
IntBinTree...........................................................................................................................................11
IntAry................................................................................................................................................. 11
COM_GRP_ID...................................................................................................................................11
COM_WLD_ID..................................................................................................................................12
ACG_Indx.......................................................................................................................................... 12
ACG_Matvec......................................................................................................................................12
ACG_Matrix.......................................................................................................................................13
Nodegraph.......................................................................................................................................... 13
AdjDom.............................................................................................................................................. 13
AdjPart................................................................................................................................................13
DomAdjacency...................................................................................................................................13
CoarseSpace....................................................................................................................................... 14
HBDD_LocalMatrix...........................................................................................................................14
ParMatrix............................................................................................................................................14
fe_State_Variables..............................................................................................................................16
fe_Constants....................................................................................................................................... 16
fe_Options.......................................................................................................................................... 16
1 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
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];  各軸方向の係数
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)
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 内ローカル節点番号
2 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
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 配列
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 nodes;   Subdomain 内の節点数  
int node_dim;  節点の次元数
int ndisp;  基本境界条件数
int nload;  自然境界条件数
int ninbd;  他 Subdomain と共有する Interface 自由度数
int ifn_dim;  Interface 節点の自由度数
int nsharenode;  他 Subdomain と共有する Interface 節点数
int* nop;  Subdomain 内の要素コネクティビティを格納する int 配列
int* ndindex;  Subdomain 内節点の Part ローカル節点番号を格納する int 配列
Bcnd* bcdisp;  基本境界条件を格納する Bcnd 配列
Bcnd* bcload;  自然境界条件を格納する Bcnd 配列
Inbc* inbd;  他 Subdomain との共有 Interface 自由度情報を格納する Inbc 配列
Sharenode* sharenode; 他 Subdomain との共有節点情報を格納する Sharenode 配列
Slist* bclist;  Subdomain の境界条件を格納する Slist ポインタ
double* crd;  Subdomain 内の節点座標値を格納する double 配列
int with_temperature;  この Subdomain 内節点の温度情報を持つかどうか
double* temperature;  Subdomain 内節点の温度を格納する double 配列
3 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
int with_matid;  材料物性値 ID を持つかどうか(複数材料モデルかどうか)
int* matid;  Subdomain 内要素の材料物性値 ID を格納する int 配列
int num_spring_support;  弾性ばね条件数
SpringSupport* spring_support;  弾性ばね条件を格納する SpringSupport 配列
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;  領域分割前の総要素数
4 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
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)
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 配列
5 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
OptSolv
定義: hddm_types.h
機能: 有限要素法ソルバとしての各種オプションを格納する.
メンバ:
fe_Options feopt;  有限要素法解析タイプ
int solver_type;  線形方程式ソルバタイプ
               SOLVER_ALLCG: 全自由度を CG 法で解く
               SOLVER_HDDM: 静的縮約した Interface 自由度を CG 法で解く
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:考慮しない
int sw_penalty;  デバッグ用,特に使用しない
OutputSW
定義: hddm_types.h
機能: 出力する解析結果タイプを格納する.出力する物理量のタイプはビットで管理し,節点デー
タは 1,要素データは 2,要素積分点データは 4 のビットをオン/オフする.
メンバ:
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 成分とその固有値ベクトル
6 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
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:つけない
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;  現バージョンでは特に使用しない
7 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
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 )
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 部分開始位置へのポインタ
SkylineMatrix
定義: domfem.h
機能: スカイライン形式で行列を格納する.
メンバ:
int dim;  行列の次元数
int slen;  1 次元化した行列を格納する配列 d の大きさ
int* minind;  スカイライン形式インデックスを格納するサイズ dim+1 の int 配列
int* nsum;  スカイライン形式インデックスを格納するサイズ dim+1 の int 配列
double* d;  1 次元化した行列を格納するサイズ slen の double 配列
8 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
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 の状態
SkylineMatrix gk;  Subdomain のローカル剛性行列を格納する SkylineMatrix 変数
SkylineMatrix gk_inv;  LU 分解したローカル剛性行列を格納する SkylineMatrix 変数
double* force;  体積力(自重考慮時),熱荷重(熱応力考慮時)を格納する double 配列
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;
9 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
NLStep
定義: nlstep.h
機能: ある増分幅で解析を行う非線形反復計算のオプションを格納する.
メンバ:
int id;  非線形反復計算の ID
int num_step;  増分法のステップ回数
double bcdisp_width;  増分ステップ内における強制変位量への倍率
double bcload_width;  増分ステップ内における荷重量への倍率
double bodyforce_width;  増分ステップ内における体積力への倍率
double time_width;  現在のバージョンでは使用しない.
int output_interval;  解析結果ファイルを出力する非線形反復回数の間隔
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 配列
10 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
IDlist_node, _IDlist_node
定義: idlist.h
機能: ID 付き連結リストデータ IDlist のノード.
メンバ:
struct _IDlist_node* next;  次のノードの場所を指す_IDlist_node ポインタ
int id;  ノードの ID
void* data;  ノードのデータを格納する汎用ポインタ
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 配列を格納する
11 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
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 配列
           他 Part と共有する自由度数までの整数値:Interface 上の自由度
           nfree までの整数値:Part 内部の自由度
           nfree 以上の整数値:基本境界条件が与えられた境界上
ACG_Matvec
定義: acg_solver.h
機能: ある行の非零データを格納する.
メンバ:
int size;  行の全非零要素数
int idig;  全非零要素データにおける対角要素位置
12 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
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;  現バージョンでは特に使用しない
AdjPart
定義: bdd_domfunc.h
機能: 現バージョンでは特に使用しない
メンバ:
int nadjdom;
int nadjinbc;
AdjDom* adjd;
DomAdjacency
定義: bdd_domfunc.h
13 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
機能: ある 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;  基本境界条件数
int nload;  自然境界条件数
Bcnd* bcdisp;  基本境界条件を格納する Bcnd 配列  
Bcnd* bcload;  自然境界条件を格納する Bcnd 配列
int state_glsc_inv; ローカル Neumann-Neumann 前処理行列を格納する glsc_inv の状態
SkylineMatrix glsc_inv;  Subdomain のローカル Neumann-Neumann 前処理行列を
                     格納する SkylineMatrix 変数
DomAdjacency dadj;  Subdomain が接する全 Subdomain 情報
double* weight;  領域分割による重み行列 D(i)を格納する double 配列
CoarseSpace Z;  ローカルコーススペースを表す行列 Z(i)を格納する CoarseSpace 変数
ParMatrix
定義: bdd_coarse_parallel.h
機能: 実対称行列を並列プロセッサに分散記憶させ,ある 1 つのプロセッサが担当する
     情報や分散行列を格納する.分散方法には列ブロック分割を用い,行列の記憶
14 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料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 配列
15 / 16
                       第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1
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;  要素積分方法に関するオプション
              SELECTIVE_INTG_VOLUME:
               体積歪みに対する選択的次数低減積分を行う(6 面体 1 次要素のみ)
              SELECTIVE_INTG_SHEAR:
               せん断歪みに対する選択的次数低減積分を行う(6 面体 1 次要素のみ)
              それ以外:
               通常の Gauss の数値積分を行う
16 / 16

More Related Content

More from ADVENTURE Project

More from ADVENTURE Project (20)

LexADV_WOVis Ver.0.1bの概要
LexADV_WOVis Ver.0.1bの概要LexADV_WOVis Ver.0.1bの概要
LexADV_WOVis Ver.0.1bの概要
 
LexADV_TryDDM Ver. 0.1bの概要
LexADV_TryDDM Ver. 0.1bの概要LexADV_TryDDM Ver. 0.1bの概要
LexADV_TryDDM Ver. 0.1bの概要
 
ADVENTURE_Mates Ver. 0.5bの概要
ADVENTURE_Mates Ver. 0.5bの概要ADVENTURE_Mates Ver. 0.5bの概要
ADVENTURE_Mates Ver. 0.5bの概要
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 
ADVENTURE_Mates Ver.0.5b データ生成
ADVENTURE_Mates Ver.0.5b データ生成ADVENTURE_Mates Ver.0.5b データ生成
ADVENTURE_Mates Ver.0.5b データ生成
 
ADVENTURE_MATES専用ビューア AdvMatesViewerについて
ADVENTURE_MATES専用ビューア AdvMatesViewerについてADVENTURE_MATES専用ビューア AdvMatesViewerについて
ADVENTURE_MATES専用ビューア AdvMatesViewerについて
 
ADVENTURE_Magnetic Ver.1.5.0の概要
ADVENTURE_Magnetic Ver.1.5.0の概要ADVENTURE_Magnetic Ver.1.5.0の概要
ADVENTURE_Magnetic Ver.1.5.0の概要
 
ADVENTURE_sFlowの最新動向
ADVENTURE_sFlowの最新動向ADVENTURE_sFlowの最新動向
ADVENTURE_sFlowの最新動向
 
ADVENTURE_Solid Ver.2.0の概要
ADVENTURE_Solid Ver.2.0の概要ADVENTURE_Solid Ver.2.0の概要
ADVENTURE_Solid Ver.2.0の概要
 
ADVENTURE_BCtool Ver.2.の概要と実際[デモ]
ADVENTURE_BCtool Ver.2.の概要と実際[デモ]ADVENTURE_BCtool Ver.2.の概要と実際[デモ]
ADVENTURE_BCtool Ver.2.の概要と実際[デモ]
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 
大規模並列解析用可視化モジュール ADVENTURE_POSTtool
大規模並列解析用可視化モジュール ADVENTURE_POSTtool大規模並列解析用可視化モジュール ADVENTURE_POSTtool
大規模並列解析用可視化モジュール ADVENTURE_POSTtool
 
Linuxにおけるコマンドとエディタの使用方法の紹介
Linuxにおけるコマンドとエディタの使用方法の紹介Linuxにおけるコマンドとエディタの使用方法の紹介
Linuxにおけるコマンドとエディタの使用方法の紹介
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 
ADVENTURE AutoGL 「おてがる」
ADVENTURE AutoGL 「おてがる」ADVENTURE AutoGL 「おてがる」
ADVENTURE AutoGL 「おてがる」
 
ADVENTURE_Solid 線形代数関数群 advlasリファレンスマニュアル
ADVENTURE_Solid 線形代数関数群 advlasリファレンスマニュアルADVENTURE_Solid 線形代数関数群 advlasリファレンスマニュアル
ADVENTURE_Solid 線形代数関数群 advlasリファレンスマニュアル
 
ADVENTURE_Solid Ver.1.2の概要
ADVENTURE_Solid Ver.1.2の概要ADVENTURE_Solid Ver.1.2の概要
ADVENTURE_Solid Ver.1.2の概要
 
DecisionMaker
DecisionMakerDecisionMaker
DecisionMaker
 
原子力発電プラントの地震耐力予測シミュレーション
原子力発電プラントの地震耐力予測シミュレーション原子力発電プラントの地震耐力予測シミュレーション
原子力発電プラントの地震耐力予測シミュレーション
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 

ADVENTURE_Solid-1.1 構造体リファレンス

  • 1.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 ADVENTURE_Solid-1.1 構造体リファレンス 作者: 荻野正雄, 九州大学 作成日: 2006 年 9 月 15 日 文書バージョン: Ver.0.1 Bcnd......................................................................................................................................................2 SpringSupport.......................................................................................................................................2 Inbc.......................................................................................................................................................2 Sharenode............................................................................................................................................. 2 BCset.................................................................................................................................................... 3 DomMesh............................................................................................................................................. 3 OPinfo...................................................................................................................................................4 OPSinfo................................................................................................................................................ 4 PartMesh...............................................................................................................................................4 DomField..............................................................................................................................................5 PartField............................................................................................................................................... 5 OptSolv.................................................................................................................................................6 OutputSW.............................................................................................................................................6 InputSW................................................................................................................................................7 CGOpts.................................................................................................................................................7 CGVector..............................................................................................................................................8 SkylineMatrix.......................................................................................................................................8 HDDM_SkylineMat............................................................................................................................. 9 T_Material............................................................................................................................................ 9 GravityAcceleration............................................................................................................................. 9 SpringConstant..................................................................................................................................... 9 NLStep................................................................................................................................................10 Slist_node, _Slist_node..................................................................................................................... 10 Slist.....................................................................................................................................................10 DVectors.............................................................................................................................................10 IDlist_node, _IDlist_node................................................................................................................. 10 IDlist...................................................................................................................................................11 Node_intbintree, _intbintree..............................................................................................................11 IntBinTree...........................................................................................................................................11 IntAry................................................................................................................................................. 11 COM_GRP_ID...................................................................................................................................11 COM_WLD_ID..................................................................................................................................12 ACG_Indx.......................................................................................................................................... 12 ACG_Matvec......................................................................................................................................12 ACG_Matrix.......................................................................................................................................13 Nodegraph.......................................................................................................................................... 13 AdjDom.............................................................................................................................................. 13 AdjPart................................................................................................................................................13 DomAdjacency...................................................................................................................................13 CoarseSpace....................................................................................................................................... 14 HBDD_LocalMatrix...........................................................................................................................14 ParMatrix............................................................................................................................................14 fe_State_Variables..............................................................................................................................16 fe_Constants....................................................................................................................................... 16 fe_Options.......................................................................................................................................... 16 1 / 16
  • 2.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 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];  各軸方向の係数 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) 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 内ローカル節点番号 2 / 16
  • 3.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 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 配列 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 nodes;   Subdomain 内の節点数   int node_dim;  節点の次元数 int ndisp;  基本境界条件数 int nload;  自然境界条件数 int ninbd;  他 Subdomain と共有する Interface 自由度数 int ifn_dim;  Interface 節点の自由度数 int nsharenode;  他 Subdomain と共有する Interface 節点数 int* nop;  Subdomain 内の要素コネクティビティを格納する int 配列 int* ndindex;  Subdomain 内節点の Part ローカル節点番号を格納する int 配列 Bcnd* bcdisp;  基本境界条件を格納する Bcnd 配列 Bcnd* bcload;  自然境界条件を格納する Bcnd 配列 Inbc* inbd;  他 Subdomain との共有 Interface 自由度情報を格納する Inbc 配列 Sharenode* sharenode; 他 Subdomain との共有節点情報を格納する Sharenode 配列 Slist* bclist;  Subdomain の境界条件を格納する Slist ポインタ double* crd;  Subdomain 内の節点座標値を格納する double 配列 int with_temperature;  この Subdomain 内節点の温度情報を持つかどうか double* temperature;  Subdomain 内節点の温度を格納する double 配列 3 / 16
  • 4.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 int with_matid;  材料物性値 ID を持つかどうか(複数材料モデルかどうか) int* matid;  Subdomain 内要素の材料物性値 ID を格納する int 配列 int num_spring_support;  弾性ばね条件数 SpringSupport* spring_support;  弾性ばね条件を格納する SpringSupport 配列 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;  領域分割前の総要素数 4 / 16
  • 5.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 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) 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 配列 5 / 16
  • 6.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 OptSolv 定義: hddm_types.h 機能: 有限要素法ソルバとしての各種オプションを格納する. メンバ: fe_Options feopt;  有限要素法解析タイプ int solver_type;  線形方程式ソルバタイプ                SOLVER_ALLCG: 全自由度を CG 法で解く                SOLVER_HDDM: 静的縮約した Interface 自由度を CG 法で解く 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:考慮しない int sw_penalty;  デバッグ用,特に使用しない OutputSW 定義: hddm_types.h 機能: 出力する解析結果タイプを格納する.出力する物理量のタイプはビットで管理し,節点デー タは 1,要素データは 2,要素積分点データは 4 のビットをオン/オフする. メンバ: 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 成分とその固有値ベクトル 6 / 16
  • 7.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 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:つけない 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;  現バージョンでは特に使用しない 7 / 16
  • 8.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 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 ) 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 部分開始位置へのポインタ SkylineMatrix 定義: domfem.h 機能: スカイライン形式で行列を格納する. メンバ: int dim;  行列の次元数 int slen;  1 次元化した行列を格納する配列 d の大きさ int* minind;  スカイライン形式インデックスを格納するサイズ dim+1 の int 配列 int* nsum;  スカイライン形式インデックスを格納するサイズ dim+1 の int 配列 double* d;  1 次元化した行列を格納するサイズ slen の double 配列 8 / 16
  • 9.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 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 の状態 SkylineMatrix gk;  Subdomain のローカル剛性行列を格納する SkylineMatrix 変数 SkylineMatrix gk_inv;  LU 分解したローカル剛性行列を格納する SkylineMatrix 変数 double* force;  体積力(自重考慮時),熱荷重(熱応力考慮時)を格納する double 配列 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; 9 / 16
  • 10.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 NLStep 定義: nlstep.h 機能: ある増分幅で解析を行う非線形反復計算のオプションを格納する. メンバ: int id;  非線形反復計算の ID int num_step;  増分法のステップ回数 double bcdisp_width;  増分ステップ内における強制変位量への倍率 double bcload_width;  増分ステップ内における荷重量への倍率 double bodyforce_width;  増分ステップ内における体積力への倍率 double time_width;  現在のバージョンでは使用しない. int output_interval;  解析結果ファイルを出力する非線形反復回数の間隔 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 配列 10 / 16
  • 11.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 IDlist_node, _IDlist_node 定義: idlist.h 機能: ID 付き連結リストデータ IDlist のノード. メンバ: struct _IDlist_node* next;  次のノードの場所を指す_IDlist_node ポインタ int id;  ノードの ID void* data;  ノードのデータを格納する汎用ポインタ 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 配列を格納する 11 / 16
  • 12.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 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 配列            他 Part と共有する自由度数までの整数値:Interface 上の自由度            nfree までの整数値:Part 内部の自由度            nfree 以上の整数値:基本境界条件が与えられた境界上 ACG_Matvec 定義: acg_solver.h 機能: ある行の非零データを格納する. メンバ: int size;  行の全非零要素数 int idig;  全非零要素データにおける対角要素位置 12 / 16
  • 13.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 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;  現バージョンでは特に使用しない AdjPart 定義: bdd_domfunc.h 機能: 現バージョンでは特に使用しない メンバ: int nadjdom; int nadjinbc; AdjDom* adjd; DomAdjacency 定義: bdd_domfunc.h 13 / 16
  • 14.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 機能: ある 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;  基本境界条件数 int nload;  自然境界条件数 Bcnd* bcdisp;  基本境界条件を格納する Bcnd 配列   Bcnd* bcload;  自然境界条件を格納する Bcnd 配列 int state_glsc_inv; ローカル Neumann-Neumann 前処理行列を格納する glsc_inv の状態 SkylineMatrix glsc_inv;  Subdomain のローカル Neumann-Neumann 前処理行列を                      格納する SkylineMatrix 変数 DomAdjacency dadj;  Subdomain が接する全 Subdomain 情報 double* weight;  領域分割による重み行列 D(i)を格納する double 配列 CoarseSpace Z;  ローカルコーススペースを表す行列 Z(i)を格納する CoarseSpace 変数 ParMatrix 定義: bdd_coarse_parallel.h 機能: 実対称行列を並列プロセッサに分散記憶させ,ある 1 つのプロセッサが担当する      情報や分散行列を格納する.分散方法には列ブロック分割を用い,行列の記憶 14 / 16
  • 15.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料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 配列 15 / 16
  • 16.                        第 4 回 ADVENTURE 定期セミナー ADVENTURE_Solid の関数 資料1 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;  要素積分方法に関するオプション               SELECTIVE_INTG_VOLUME:                体積歪みに対する選択的次数低減積分を行う(6 面体 1 次要素のみ)               SELECTIVE_INTG_SHEAR:                せん断歪みに対する選択的次数低減積分を行う(6 面体 1 次要素のみ)               それ以外:                通常の Gauss の数値積分を行う 16 / 16