frontistrの梁要素/シェル要素の解説 ~プログラム解説を中心 … ·...

66
201642227FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/ FrontISTRの構造要素 (シェル要素/梁要素)の解説> FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心に~ 東京大学 新領域創成科学研究科 人間環境学専攻 橋本

Upload: others

Post on 14-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

2016年4月22日第27回 FrontISTR研究会

<ユーザーとの情報交換・プログラム更新履歴のまとめ/FrontISTRの構造要素 (シェル要素/梁要素)の解説>

FrontISTRの梁要素/シェル要素の解説~プログラム解説を中心に~

東京大学新領域創成科学研究科

人間環境学専攻橋本 学

Page 2: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

『FrontISTRに実装されている定式化を十分に理解し,解きたい問題に対してソースコードを自由にカスタマイズ(要素タイプを追加,材料の種類を追加,ユーザサブルーチンを追加) できるようになること』を最終目標とします

第25回 (2月2日開催) では,FrontISTRに実装されている構造要素 (Bernoulli-Euler梁要素/MITCシェル要素) を解説しまし

たが,予定していた構造要素プログラムの解説を終えることができませんでした

今回は,構造要素のプログラムを中心に解説します

2

Page 3: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

『FrontISTRに実装されている定式化を十分に理解し,解きたい問題に対してソースコードを自由にカスタマイズ(要素タイプを追加,材料の種類を追加,ユーザサブルーチンを追加) できるようになること』を最終目標とします

第25回 (2月2日開催) では,FrontISTRに実装されている構造要素 (Bernoulli-Euler梁要素/MITCシェル要素) を解説しまし

たが,予定していた構造要素プログラムの解説を終えることができませんでした

今回は,構造要素プログラムを中心に解説します

3

目次1.準備

・ FrontISTRのソースプログラムとインストール手順・ FrontISTRの入力ファイル・構造要素の要素タイプ番号・構造要素が使用できるFrontISTRの解析機能・構造要素が使用できるFrontISTRの材料

2.プログラム解説・ディレクトリfistr1内のプログラム・構造要素を用いた場合のプログラムの流れ・構造要素に関連するプログラム・ Bernoulli-Euler梁要素の剛性マトリックス計算プログラム・ MITCシェル要素の剛性マトリックス計算プログラム

Page 4: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

『FrontISTRに実装されている定式化を十分に理解し,解きたい問題に対してソースコードを自由にカスタマイズ(要素タイプを追加,材料の種類を追加,ユーザサブルーチンを追加) できるようになること』を最終目標とします

第25回 (2月2日開催) では,FrontISTRに実装されている構造要素 (Bernoulli-Euler梁要素/MITCシェル要素) を解説しまし

たが,予定していた構造要素プログラムの解説を終えることができませんでした

今回は,構造要素プログラムを中心に解説します

4

目次1.準備

・ FrontISTRのソースプログラムとインストール手順・ FrontISTRの入力ファイル・構造要素の要素タイプ番号・構造要素が使用できるFrontISTRの解析機能・構造要素が使用できるFrontISTRの材料

2.プログラム解説・ディレクトリfistr1内のプログラム・構造要素を用いた場合のプログラムの流れ・構造要素に関連するプログラム・ Bernoulli-Euler梁要素の剛性マトリックス計算プログラム・ MITCシェル要素の剛性マトリックス計算プログラム

Page 5: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

5

ソースプログラムFrontISTR_V44.tar.gzは,FrontISTR研究会のホームページ (http://www.multi.k.u-tokyo.ac.jp/FrontISTR/) からダウンロードできます

解凍

ファイルFrontISTR_V44.tar.gz

ディレクトリFrontISTR_V44

Page 6: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

※ fistr1がFrontISTRの実行ファイル,hecmw_part1がパーティショナの実行ファイルです 6

(1) ディレクトリhecmw1内のソースプログラムをコンパイルする

(2) HEC-MWライブラリ(libfhecmw,libhecmw) が生成される

(3) 実行ファイルhec2rcap,hecmw_part1,hecmw_vis1,ronv,rmergeが生成される

(4) ディレクトリfistr1内のソースプログラムをコンパイルする

(5) FrontISTRライブラリ (libffistr,libfistr) が生成される

(6) 実行ファイルfistr1,neu2fstrが生成される

インストールの順番

※ インストールオプションで--with-toolsを指定しない場合, hec2rcap,hecmw_part1,hecmw_vis1,ronv,rmergeは生成されません

Page 7: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

7

(逐次計算用にインストールした) FrontISTR実行ファイル

fistr1

(逐次計算用)全体制御ファイル

hecmw_ctrl.dat

メッシュファイルmodel.msh

解析制御ファイルmodel.cnt

解析結果ファイルmodel.res.0.1

ログファイルfistr1.log,0.log,

FSTR.dbg.0,FSTR.msg,FSTR.sta

他のソフトのファイルmodel_vis_psf.0001.inp

※ 赤字の名前は自由に変更可能

Page 8: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

8

メッシュファイル名の設定

解析制御ファイル名の設定

解析結果ファイル名の設定

その他のソフトのファイル名の設定

その他のソフトのファイル作成の

ために入力するメッシュファイル名と解析結果ファイル名の設定

(逐次計算用)全体制御ファイル

hecmw_ctrl.dat

Page 9: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

9

ヘッダー

節点の番号 I と節点の座標値(xI , yI , zI )

要素の番号 e と要素内の節点同士のつながり(コネクティビティ)

節点グループ

セクションデータ材料データ

セクションの設定によって要素グループに材料データが与えられる

境界条件や集中荷重(外力)を与える

ファイルの終わり

梁要素: TYPE=BEAMシェル要素: TYPE=SHELL

梁要素:TYPE=611シェル要素:TYPE=741

TYPE=743

Page 10: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

10

※ 解析メッシュにソリッド要素,梁要素,シェル要素が混在する場合,節点自由度数を3に揃えるため,*ではなく**の要素タイプ番号を使用してください(**の要素タイプ番号は後述します)

要素種類 要素タイプ番号 節点数 節点自由度数 説明

線要素111 2 3 2節点リンク要素112 3 3 3節点リンク要素

平面要素

231 3 3 三角形1次要素232 6 3 三角形2次要素241 4 3 四角形1次要素242 8 3 四角形2次要素 (Serendipity族)

ソリッド要素

301 2 3 2節点トラス要素341 4 3 四面体1次要素342 10 3 四面体2次要素351 6 3 プリズム1次要素352 15 3 プリズム2次要素361 8 3 六面体1次要素362 20 3 六面体2次要素 (Serendipity族)

インターフェース要素541 4×2 3 四角形面1次要素542 8×2 3 四角形面2次要素

梁要素611* 2 6 2節点梁要素 (Bernoulli-Euler梁)641** 2×2 3 2節点梁要素 (Bernoulli-Euler梁)

シェル要素

731* 3 6 三角形1次要素 (MITC3シェル)761** 3×2 3 三角形1次要素 (MITC3シェル)741* 4 6 四角形1次要素 (MITC4シェル)781** 4×2 3 四角形1次要素 (MITC4シェル)743 9 6 四角形2次要素 (MITC9シェル)

Page 11: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

11

611

3次元ソリッド要素3○○

シェル要素7○○

梁要素6○○

要素形状

要素形状

要素形状

Page 12: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

12

(2)1

(2)2(2)

3

x

x

x

(1)1

(1)2(1)

3

x

x

x

(1)

(2)(2)

(1)

(3)

(4)

(1)1

(1)2(1)

3

x

x

x

(1)1

(1)2(1)

3

x

x

x

(2)1

(2)2(2)

3

x

x

x

(2)1

(2)2(2)

3

x

x

x

FrontISTRのメッシュファイルでは,節点座標を二つ用意する(メッシュを表示する際に都合が良いためであるが,

計算には使用しないので (3) と (4) の節点座標はどのような値でも良い)

計算したい梁要素611

入力データとして用意するのは四面体要素431のデータ構造

Page 13: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

13

FrontISTRのプログラム内では,(3) と (4) の節点変位は梁の回転自由度となる

(2)1

(2)2(2)

3(2)

1(2)

2(2)

3

u

u

u

(1)1

(1)2

(1)3(1)

1(1)

2(1)

3

u

u

u

(1)

(2)

計算したい梁要素611

(1)1

(1)2(1)

3

u

u

u

(2)

(1)

(3)

(4)

(2)1

(2)2(2)

3

u

u

u

(2)1

(2)2(2)

3

(1)1

(1)2(1)

3

FrontISTRのプログラム内では四面体要素431のデータ構造

Page 14: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

例えば,14

1,1 1,2 1,11 1,12

2,1 2,2 2,11 2,12

11,1 11,2 11,11 11,12

12,1 12,2 12,11 12,12

K K K K

K K K K

K K K K

K K K K

K =

剛性マトリックス (梁要素611)

1,1 1,2 1,11 1,12

2,1 2,2 2,11 2,12

11,1 11,2 11,11 11,12

12,1 12,2 12,11 12,12

K K K K

K K K K

K K K K

K K K K

K =

FrontISTRのプログラム内では,梁要素の剛性マトリックス成分をテーブルに従って変更する

(2)1

(2)2

(2)3(2)

1(2)

2(2)

3

u

u

u

(1)1

(1)2(1)

3(1)

1(1)

2(1)

3

u

u

u

(1)1

(1)2(1)

3

u

u

u

(2)1

(2)2

(2)3

u

u

u

(1)1

(1)2(1)

3

(2)1

(2)2

(2)3

1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

テーブル

4,8 7,5K K

FrontISTRのプログラム内で計算する剛性マトリックス

Page 15: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

15

1g2g3g

1

3

(3)

(1)

(3)1V

(3)2V

(3)3V

(1)1V

(1)2V

(1)3V

(2)1V

(2)2V

(2)3V

(2)

2

1g2g3g

1

3

(1)

(2)

(1)1V

(1)2V

(1)3V

(2)1V

(2)2V

(2)3V

(3)1V

(3)2V

(3)3V

(4)1V

(4)2V

(4)3V

(3)

(4)2

( )

( )

( )

x

y

z

u

u

u

( )

( )

( )

( )1( )2

x

y

z

u

u

u

( )

( )

( )

( )

( )

( )

x

y

z

x

y

z

u

u

u

Hughes, T.J.R. and Brezzi, F., Computer Methods in Applied Mechanics and Engineering, Vol.72, pp.105-121, 1989.

Nguyen-Van, Hieu and Mai-Duy, Nam and Tran-Cong, Thanh, CMES: Computer Modeling in Engineering and Sciences,Vol.49, No.2, pp.81-110, 2009.

11 12 13 3 3 3 3 3

21 22 23 3 3 3 3 3

1 23 3 3 3 3 3

N

N

N N NN

K K K

K K KK

K K K

drilling DOF[7][8]

( )

( )

( )

x

y

z

( )

( )

( )

x

y

z

u

u

u

3 DOFs at each node

: Number of original and dummy nodesN

Dummy node

5 DOFs at each node

6 DOFs at each node

3 DOFs at each node

Stiffness matrix (sparse matrix)

Fig. BCSR format for solid and shell elements.3 3

Page 16: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

梁要素の要素タイプ611と641

16

611梁要素6○○

シェル要素7○○

3次元ソリッド要素3○○

ソリッド要素と梁要素/シェル要素を混在させる場合,節点あたり3自由度のデータ構造に統一して,剛性マトリックスを作成し,線形ソルバーに渡すようにする

梁要素のデータ構造が節点あたり3自由度を持つように,四面体要素341のデータ構造を利用した要素タイプ641を導入する

節点あたりの自由度

・ 3次元ソリッド要素:3・ シェル要素:6・ 梁要素:6

Page 17: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

シェル要素の要素タイプ361と761/要素タイプ351と751

17

611梁要素6○○

シェル要素7○○

3次元ソリッド要素3○○

ソリッド要素と梁要素/シェル要素を混在させる場合,節点あたり3自由度のデータ構造に統一して,剛性マトリックスを作成し,線形ソルバーに渡すようにする

MITC4シェル要素のデータ構造が節点あたり3自由度を持つように,六面体要素361 (351) のデータ構造を利用した要素タイプ761 (751) を導入する

節点あたりの自由度

・ 3次元ソリッド要素:3・ シェル要素:6・ 梁要素:6

Page 18: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

18

解析制御ファイルmodel.cnt

バージョン情報

解析機能の種類解析結果ファイルの出力その他のソフトのファイルの出力境界条件の設定

材料データの設定

線形ソルバーのパラメータの設定

その他のソフトのファイルの設定

ファイルの終わり

Page 19: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

19

静解析

動解析

荷重増分解析不要

荷重増分解析要

直接時間積分

固有値解析

周波数応答解析

微小変形理論 (線形弾性体のみ)

微小変形理論

有限変形理論

微小変形理論 (線形弾性体のみ)

有限変形理論!SOLUTION,TYPE=DYNAMIC!DYNAMIC下のidx_respを1に設定

!SOLUTION,TYPE=EIGEN

!SOLUTION,TYPE=DYNAMIC!DYNAMIC下のidx_respを2に設定

!SOLUTION,TYPE=NLSTATIC

!SOLUTION,TYPE=STATIC

!DYNAMIC,TYPE=LINEAR

!DYNAMIC,TYPE=NONLINEAR

材料定義においてINIFINITEを追記例:!ELASTIC, INFINITE

構造解析

熱伝導解析定常解析

非定常解析!SOLUTION,TYPE=HEAT!HEATの下に記述無または0.0と記述

構造要素が使用できる解析機能

Page 20: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

20ひずみの2次以上の項がある

微小変形理論

(微小変位) 微小ひずみ

線形弾性体

弾塑性体

粘弾性体

クリープ材

有限変形理論

(有限変位)

微小ひずみ

線形弾性体

弾塑性体

粘弾性体

クリープ材

大ひずみ

弾塑性体

超弾性体

粘弾性体

クリープ材

0 0 T 0 0 T0

1 ( ) ( ) ( ) ( )2

t t t t t E u u u u 0 0 0 0( , , ...)t t t tf S E E E

変位こう配の2次項がある

有限変形理論 大ひずみ

ひずみ 応力

!ELASTIC

!ELASTICと!PLASTIC

!HYPERELASTIC

!ELASTICと!VISCOELASTIC

!ELASTIC

!ELASTICと!PLASTIC

!ELASTICと!CREEP

!ELASTICと!VISCOELASTIC

!ELASTICと!CREEP

青字はFrontISTRで解析可能な材料

構造要素が使用できる材料

Page 21: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

21

x

ut

b

有界領域 [mN]

境界 [mN - 1]

物質点の位置ベクトル [m]

変位 [m]

トラクション [Pa]

t 時刻 [s]

ナブラ [1/m]

単位質量当たりの体積力 [N/kg]

次元 (3次元:N = 3)N

密度 [kg/m3]

0 0 T 0 0 T0

1 ( ) ( ) ( ) ( )2

t t t t t E u u u u

時刻 t の物理量

基準となる時刻が時刻0の意味

, , A B a b

,a b

,a b スカラー

ベクトル

2階のテンソル

: ij ijA BA B =i ia ba b =

n 外向き単位法線ベクトル [-]

Page 22: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

22

分散メッシュファイルmodel_part.0~

パーティショニングツールhecmw_part1

メッシュファイルmodel.msh

(並列計算用)全体制御ファイル

hecmw_ctrl.dat

領域分割制御ファイルhecmw_part_ctrl.dat

ログファイルhecm_part1.log,hecmw_part.log

※ 赤字の名前は自由に変更可能

領域分割確認用ファイルsubdomains.inp

Page 23: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

23

分散メッシュファイルmodel_part.0~

解析制御ファイルmodel.cnt

解析結果ファイルmodel_part.res.0.1~

ログファイルfistr1.log,0.log~,FSTR.dbg.0~,

FSTR.msg,FSTR.sta

他のソフトのファイルmodel_vis_psf.0001.inp

(並列計算用)全体制御ファイル

hecmw_ctrl.dat

※ 赤字の名前は自由に変更可能

(MPI並列計算用にインストールした) FrontISTR実行ファイル

fistr1

Page 24: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

24

分散メッシュファイル名の設定

解析制御ファイル名の設定

解析結果ファイル名の設定

その他のソフトのファイル名の設定

その他のソフトのファイル作成のために入力する分散メッシュ

ファイル名と解析結果ファイル名の設定

メッシュファイル名の設定

分散メッシュファイル名の設定

パーティショニングツールを使用するときの設定

FrontISTR を使用するときの設定

(並列計算用)全体制御ファイル

hecmw_ctrl.dat

Page 25: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

25

領域分割制御ファイルhecmw_part_ctrl.dat

領域分割数

領域分割確認用のUCDフォーマットファイル名

グラフ分割ツール名

- 領域数が8より小さい場合METHOD=PMETIS

Multilevel Recursive Bisectionによるグラフ分割

- 領域数が8より大きい場合METHOD=KMETIS

k-way partitioningによるグラフ分割

節点ベースで領域分割

Page 26: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

『FrontISTRに実装されている定式化を十分に理解し,解きたい問題に対してソースコードを自由にカスタマイズ(要素タイプを追加,材料の種類を追加,ユーザサブルーチンを追加) できるようになること』を最終目標とします

第25回 (2月2日開催) では,FrontISTRに実装されている構造要素 (Bernoulli-Euler梁要素/MITCシェル要素) を解説しまし

たが,予定していた構造要素プログラムの解説を終えることができませんでした

今回は,構造要素プログラムを中心に解説します

26

目次1.準備

・ FrontISTRのソースプログラムとインストール手順・ FrontISTRの入力ファイル・構造要素の要素タイプ番号・構造要素が使用できるFrontISTRの解析機能・構造要素が使用できるFrontISTRの材料

2.プログラム解説・ディレクトリfistr1内のプログラム・構造要素を用いた場合のプログラムの流れ・構造要素に関連するプログラム・ Bernoulli-Euler梁要素の剛性マトリックス計算プログラム・ MITCシェル要素の剛性マトリックス計算プログラム

Page 27: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

『FrontISTRに実装されている定式化を十分に理解し,解きたい問題に対してソースコードを自由にカスタマイズ(要素タイプを追加,材料の種類を追加,ユーザサブルーチンを追加) できるようになること』を最終目標とします

第25回 (2月2日開催) では,FrontISTRに実装されている構造要素 (Bernoulli-Euler梁要素/MITCシェル要素) を解説しまし

たが,予定していた構造要素プログラムの解説を終えることができませんでした

今回は,構造要素プログラムを中心に解説します

27

目次1.準備

・ FrontISTRのソースプログラムとインストール手順・ FrontISTRの入力ファイル・構造要素の要素タイプ番号・構造要素が使用できるFrontISTRの解析機能・構造要素が使用できるFrontISTRの材料

2.プログラム解説・ディレクトリfistr1内のプログラム・構造要素を用いた場合のプログラムの流れ・構造要素に関連するプログラム・ Bernoulli-Euler梁要素の剛性マトリックス計算プログラム・ MITCシェル要素の剛性マトリックス計算プログラム

Page 28: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

28

ディレクトリsrc内のディレクトリはanalysis,common,lib,mainの四つ

ディレクトリsrcの下がFrontISTRライブラリ(libffistr,libfistr) のソースプログラム

ディレクトリtoolsの下が実行ファイルneu2fstrのソースプログラム

ディレクトリsrc/mainの下が実行ファイルfistr1のソースプログラム

Page 29: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

29

ディレクトリsrc内のディレクトリはanalysis,common,lib,mainの四つ

Page 30: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

30

有限要素の幾何情報を計算するプログラムBマトリックスの計算で使用

要素剛性マトリックスや応力・内力の計算で使用

材料情報を計算するプログラムDマトリックスの計算で使用

Page 31: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

31

有限要素の幾何情報を計算するプログラムBマトリックスの計算で使用

要素剛性マトリックスや応力・内力の計算で使用

材料情報を計算するプログラムDマトリックスの計算で使用

Page 32: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

[main/fistr_main.f90] PROGRAM fstr_main ・・・メインプログラムhecmw_init()hecmw_get_mesh()[main/fistr_main.f90] fstr_init() ・・・ 変数初期化・入力データ読み込み

hecmw_nullify_matrix()hecmw_nullify_result_data()[main/fistr_main.f90] fstr_init_file()

hecmw_mat_con()[main/fistr_main.f90] fstr_condition()

hecmw_ctrl_get_control_file()[main/fistr_main.f90] fstr_linear_static_analysis() ・・・ 線形静解析用のルーチンへ

[analysis/static/fstr_solve_LINEAR.f90] m_fstr_LINEAR::fstr_solve_LINEAR()[analysis/static/static_mat_ass.f90] m_static_mat_ass::fstr_mat_ass() ・・・ 剛性マトリックスの作成

[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_mat_ass_main()hecmw_mat_clear()[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_local_stf_create()

【ここで要素タイプに応じて分岐します】[analysis/static/static_LIB_○○○.f90] m_static_LIB_○○○::STF_○○○() ・・・要素剛性マトリックスの計算

[lib/physics/calMatMatrix.f90] m_MatMatrix::MatlMatrix() ・・・ Dマトリックスの計算【ここで材料タイプに応じて分岐します】 ※梁要素の場合は使用しない[lib/physics/○○○.f90] m_○○○::○○○() ※ シェル要素の場合はMatlMatrix_Shell()

hecmw_mat_ass_elem() ・・・ 要素剛性マトリックスをassemble[analysis/static/fstr_ass_load.f90] m_fstr_ass_load::fstr_ass_load() ・・・ 外力ベクトルの計算[analysis/static/fstr_AddBC.f90] m_fstr_AddBC::fstr_AddBC() ・・・ 境界条件の処理hecmw_allREDUCE_R1()[lib/solve_LINEQ.f90] m_solve_LINEQ::solve_LINEQ() ・・・ 線形ソルバーによる求解

hecmw_solve_○○○()hecmw_update_○_R()[analysis/static/fstr_Update.f90] m_fstr_Update::fstr_Update○D()

【ここで要素タイプに応じて分岐します】[lib/static_LIB_○○○.f90] m_static_LIB_○○○::UpdateST_○○○() ・・・ 応力の計算[lib/static_LIB_○○○.f90] m_static_LIB_○○○::STF_○○○() ・・・要素剛性マトリックスの計算

[lib/physics/calMatMatrix.f90] m_MatMatrix::MatlMatrix() ・・・ Dマトリックスの計算【ここで材料タイプに応じて分岐します】[lib/physics/○○○.f90] m_○○○::○○○()

hecmw_update_○_R()[analysis/static/static_output.f90] m_static_output :: fstr_static_Output() ・・・ 結果の出力

[analysis/static/static_make_result.f90] m_static_make_result::fstr_write_static_result()[main/fistr_main.f90] fstr_main::fstr_finalize() ・・・ 変数の削除hecmw_finalize()

[ディレクトリ/ファイル名] モジュール名::サブルーチン名()を意味しています

32

FrontISTRの解析制御データ(*.cntファイル) 内で

!SOLUTION,TYPE=STATICと記述

Page 33: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

[main/fistr_main.f90] PROGRAM fstr_main ・・・メインプログラムhecmw_init()hecmw_get_mesh()[main/fistr_main.f90] fstr_init() ・・・ 変数初期化・入力データ読み込み

hecmw_nullify_matrix()hecmw_nullify_result_data()[main/fistr_main.f90] fstr_init_file()hecmw_mat_con()[main/fistr_main.f90] fstr_condition()

hecmw_ctrl_get_control_file()[main/fistr_main.f90] fstr_linear_static_analysis() ・・・ 線形静解析用のルーチンへ

[analysis/static/fstr_solve_LINEAR.f90] m_fstr_LINEAR::fstr_solve_LINEAR()[analysis/static/static_mat_ass.f90] m_static_mat_ass::fstr_mat_ass() ・・・ 剛性マトリックスの作成

[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_mat_ass_main()hecmw_mat_clear()[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_local_stf_create()

【ここで要素タイプに応じて分岐します】[analysis/static/static_LIB_beam.f90] m_static_LIB_beam::STF_Beam() ・・・梁要素の剛性マトリックスの計算

hecmw_mat_ass_elem() ・・・ 要素剛性マトリックスをassemble[analysis/static/fstr_ass_load.f90] m_fstr_ass_load::fstr_ass_load() ・・・ 外力ベクトルの計算[analysis/static/fstr_AddBC.f90] m_fstr_AddBC::fstr_AddBC() ・・・ 境界条件の処理hecmw_allREDUCE_R1()[lib/solve_LINEQ.f90] m_solve_LINEQ::solve_LINEQ() ・・・ 線形ソルバーによる求解

hecmw_solve_66()hecmw_update_m_R()

[analysis/static/fstr_Update.f90] m_fstr_Update::fstr_Update6D()[analysis/static/static_output.f90] m_static_output :: fstr_static_Output() ・・・ 結果の出力

[analysis/static/static_make_result.f90] m_static_make_result::fstr_write_static_result()[main/fistr_main.f90] fstr_main::fstr_finalize() ・・・ 変数の削除hecmw_finalize() [ディレクトリ/ファイル名]

モジュール名::サブルーチン名()を意味しています

33

FrontISTRの解析制御データ(*.cntファイル) 内で

!SOLUTION,TYPE=STATICと記述

Page 34: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

[main/fistr_main.f90] PROGRAM fstr_main ・・・メインプログラムhecmw_init()hecmw_get_mesh()[main/fistr_main.f90] fstr_init() ・・・ 変数初期化・入力データ読み込み

hecmw_nullify_matrix()hecmw_nullify_result_data()[main/fistr_main.f90] fstr_init_file()

hecmw_mat_con()[main/fistr_main.f90] fstr_condition()

hecmw_ctrl_get_control_file()[main/fistr_main.f90] fstr_linear_static_analysis() ・・・ 線形静解析用のルーチンへ

[analysis/static/fstr_solve_LINEAR.f90] m_fstr_LINEAR::fstr_solve_LINEAR()[analysis/static/static_mat_ass.f90] m_static_mat_ass::fstr_mat_ass() ・・・ 剛性マトリックスの作成

[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_mat_ass_main()hecmw_mat_clear()[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_local_stf_create()

【ここで要素タイプに応じて分岐します】[analysis/static/static_LIB_shell.f90] m_static_LIB_shell::STF_Shell_MITC() ・・・シェル要素の剛性マトリックスの計算

[lib/physics/calMatMatrix.f90] m_MatMatrix::MatlMatrix_Shell() ・・・ Dマトリックスの計算【ここで材料タイプに応じて分岐します】[lib/physics/ElasticLinear.f90] m_ElasticLinear::LinearElastic_Shell()

hecmw_mat_ass_elem() ・・・ 要素剛性マトリックスをassemble[analysis/static/fstr_ass_load.f90] m_fstr_ass_load::fstr_ass_load() ・・・ 外力ベクトルの計算[analysis/static/fstr_AddBC.f90] m_fstr_AddBC::fstr_AddBC() ・・・ 境界条件の処理hecmw_allREDUCE_R1()[lib/solve_LINEQ.f90] m_solve_LINEQ::solve_LINEQ() ・・・ 線形ソルバーによる求解

hecmw_solve_66()hecmw_update_m_R()[analysis/static/fstr_Update.f90] m_fstr_Update::fstr_Update3D()

【ここで要素タイプに応じて分岐します】[lib/static_LIB_shell.f90] m_static_LIB_shell::UpdateST_Shell_MITC() ・・・ シェル要素の応力の計算[lib/static_LIB_shell.f90] m_static_LIB_shell::STF_Shell_MITC() ・・・シェル要素の剛性マトリックスの計算

[lib/physics/calMatMatrix.f90] m_MatMatrix::MatlMatrix_Shell() ・・・ Dマトリックスの計算【ここで材料タイプに応じて分岐します】[lib/physics/ElasticLinear.f90] m_ElasticLinear::LinearElastic_Shell()

hecmw_update_m_R()[analysis/static/static_output.f90] m_static_output :: fstr_static_Output() ・・・ 結果の出力

[analysis/static/static_make_result.f90] m_static_make_result::fstr_write_static_result()[main/fistr_main.f90] fstr_main::fstr_finalize() ・・・ 変数の削除hecmw_finalize()

[ディレクトリ/ファイル名] モジュール名::サブルーチン名()を意味しています

34

FrontISTRの解析制御データ(*.cntファイル) 内で

!SOLUTION,TYPE=STATICと記述

Page 35: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

[main/fistr_main.f90] PROGRAM fstr_main ・・・メインプログラムhecmw_init()hecmw_get_mesh()[main/fistr_main.f90] fstr_init() ・・・ 変数初期化・入力データ読み込み

hecmw_nullify_matrix()hecmw_nullify_result_data()[main/fistr_main.f90] fstr_init_file()

hecmw_mat_con()[main/fistr_main.f90] fstr_condition()

hecmw_ctrl_get_control_file()[main/fistr_main.f90] fstr_linear_dynamic_analysis() ・・・ 動解析用のルーチンへ

[analysis/dynamic/transit/fstr_solve_dynamic.f90] fstr_solver_dynamic::fstr_solve_dynamic()[common/fstr_setup.f90] m_fstr_setup::fstr_dynamic_alloc() ・・・ 動解析用の変数作成[analysis/static/fstr_Update.f90] m_fstr_Update ::fstr_UpdateState() ・・・ 状態の更新【ここで動解析機能に応じて分岐します】[analysis/dynamic/transit/fstr_dynamic_implicit.f90] fstr_dynamic_implicit::fstr_solve_dynamic_implicit() ・・・ Newmark- 法による時間積分

hecMAT_init()[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_mat_ass_main()

hecmw_mat_clear()[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_local_stf_create()

【ここで要素タイプに応じて分岐します】[analysis/static/static_LIB_○○○.f90] m_static_LIB_○○○::STF_○○○() ・・・要素剛性マトリックスの計算

[lib/physics/calMatMatrix.f90] m_MatMatrix::MatlMatrix() ・・・ Dマトリックスの計算【ここで材料タイプに応じて分岐します】 ※ 梁要素の場合は使用しない[lib/physics/○○○.f90] m_○○○::○○○() ※シェル要素の場合はMatlMatrix_Shell()

hecmw_mat_ass_elem() ・・・ 要素剛性マトリックスをassemble[analysis/dynamic/mode/fstr_EIG_setMASS.f90] m_fstr_EIG_setMASS::setMASS() ・・・ 集中質量マトリックスの計算[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::fstr_dynamic_Output() ・・・ 結果の出力[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::dynamic_output_monit() ・・・ 時刻歴の出力【時間ステップの更新のループの始まり】 n = 1,2,3, ….hecmw_matvec_○○()[analysis/dynamic/transit/dynamic_mat_ass_load.f90] m_dynamic_mat_ass_load::dynamic_mat_ass_load() ・・・ 外力ベクトルの計算[analysis/dynamic/transit/dynamic_mat_ass_bc.f90] m_fstr_Update ::dynamic_mat_ass_bc() ・・・ 変位の境界条件の処理[analysis/dynamic/transit/dynamic_mat_ass_bc_vl.f90] m_fstr_Update ::dynamic_mat_ass_bc_vl() ・・・ 速度の境界条件の処理[analysis/dynamic/transit/dynamic_mat_ass_bc_ac.f90] m_fstr_Update ::dynamic_mat_ass_bc_ac() ・・・ 加速度の境界条件処理[lib/solve_LINEQ.f90] m_solve_LINEQ::solve_LINEQ() ・・・ 線形ソルバーによる求解

hecmw_solve_○○○()[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::fstr_dynamic_Output() ・・・ 結果の出力[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::dynamic_output_monit() ・・・ 時刻歴の出力【時間ステップの更新のループの終わり】

[common/fstr_setup.f90] m_fstr_setup::fstr_dynamic_finalize() ・・・ 動解析用の変数削除hecMAT_finalize()

[main/fistr_main.f90] fstr_main::fstr_finalize() ・・・ 変数の削除hecmw_finalize()

[ディレクトリ/ファイル名] モジュール名::サブルーチン名()を意味しています

35

FrontISTRの解析制御データ(*.cntファイル) 内で

!SOLUTION,TYPE=DYNAMIC,!DYNAMIC下のidx_respを1,!DYNAMIC,TYPE=LINEARと記述

Page 36: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

[main/fistr_main.f90] PROGRAM fstr_main ・・・メインプログラムhecmw_init()hecmw_get_mesh()[main/fistr_main.f90] fstr_init() ・・・ 変数初期化・入力データ読み込み

hecmw_nullify_matrix()hecmw_nullify_result_data()[main/fistr_main.f90] fstr_init_file()

hecmw_mat_con()[main/fistr_main.f90] fstr_condition()

hecmw_ctrl_get_control_file()[main/fistr_main.f90] fstr_linear_dynamic_analysis() ・・・ 動解析用のルーチンへ

[analysis/dynamic/transit/fstr_solve_dynamic.f90] fstr_solver_dynamic::fstr_solve_dynamic()[common/fstr_setup.f90] m_fstr_setup::fstr_dynamic_alloc() ・・・ 動解析用の変数作成[analysis/static/fstr_Update.f90] m_fstr_Update ::fstr_UpdateState() ・・・ 状態の更新【ここで動解析機能に応じて分岐します】[analysis/dynamic/transit/fstr_dynamic_implicit.f90] fstr_dynamic_implicit::fstr_solve_dynamic_implicit() ・・・ Newmark- 法による時間積分

hecMAT_init()[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_mat_ass_main()

hecmw_mat_clear()[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_local_stf_create()

【ここで要素タイプに応じて分岐します】[analysis/static/static_LIB_beam.f90] m_static_LIB_beam::STF_Beam() ・・・梁要素の剛性マトリックスの計算

hecmw_mat_ass_elem() ・・・ 要素剛性マトリックスをassemble[analysis/dynamic/mode/fstr_EIG_setMASS.f90] m_fstr_EIG_setMASS::setMASS() ・・・ 集中質量マトリックスの計算[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::fstr_dynamic_Output() ・・・ 結果の出力[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::dynamic_output_monit() ・・・ 時刻歴の出力【時間ステップの更新のループの始まり】 n = 1,2,3, ….hecmw_matvec()[analysis/dynamic/transit/dynamic_mat_ass_load.f90] m_dynamic_mat_ass_load::dynamic_mat_ass_load() ・・・ 外力ベクトルの計算[analysis/dynamic/transit/dynamic_mat_ass_bc.f90] m_fstr_Update ::dynamic_mat_ass_bc() ・・・ 変位の境界条件の処理[analysis/dynamic/transit/dynamic_mat_ass_bc_vl.f90] m_fstr_Update ::dynamic_mat_ass_bc_vl() ・・・ 速度の境界条件の処理[analysis/dynamic/transit/dynamic_mat_ass_bc_ac.f90] m_fstr_Update ::dynamic_mat_ass_bc_ac() ・・・ 加速度の境界条件処理[lib/solve_LINEQ.f90] m_solve_LINEQ::solve_LINEQ() ・・・ 線形ソルバーによる求解

hecmw_solve_66()[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::fstr_dynamic_Output() ・・・ 結果の出力[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::dynamic_output_monit() ・・・ 時刻歴の出力【時間ステップの更新のループの終わり】

[common/fstr_setup.f90] m_fstr_setup::fstr_dynamic_finalize() ・・・ 動解析用の変数削除hecMAT_finalize()

[main/fistr_main.f90] fstr_main::fstr_finalize() ・・・ 変数の削除hecmw_finalize()

[ディレクトリ/ファイル名] モジュール名::サブルーチン名()を意味しています

36

FrontISTRの解析制御データ(*.cntファイル) 内で

!SOLUTION,TYPE=DYNAMIC,!DYNAMIC下のidx_respを1,!DYNAMIC,TYPE=LINEARと記述

Page 37: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

[main/fistr_main.f90] PROGRAM fstr_main ・・・メインプログラムhecmw_init()hecmw_get_mesh()[main/fistr_main.f90] fstr_init() ・・・ 変数初期化・入力データ読み込み

hecmw_nullify_matrix()hecmw_nullify_result_data()[main/fistr_main.f90] fstr_init_file()

hecmw_mat_con()[main/fistr_main.f90] fstr_condition()

hecmw_ctrl_get_control_file()[main/fistr_main.f90] fstr_linear_dynamic_analysis() ・・・ 動解析用のルーチンへ

[analysis/dynamic/transit/fstr_solve_dynamic.f90] fstr_solver_dynamic::fstr_solve_dynamic()[common/fstr_setup.f90] m_fstr_setup::fstr_dynamic_alloc() ・・・ 動解析用の変数作成[analysis/static/fstr_Update.f90] m_fstr_Update ::fstr_UpdateState() ・・・ 状態の更新【ここで動解析機能に応じて分岐します】[analysis/dynamic/transit/fstr_dynamic_implicit.f90] fstr_dynamic_implicit::fstr_solve_dynamic_implicit() ・・・ Newmark- 法による時間積分

hecMAT_init()[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_mat_ass_main()

hecmw_mat_clear()[analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::fstr_local_stf_create()

【ここで要素タイプに応じて分岐します】[analysis/static/static_LIB_shell.f90] m_static_LIB_shell::STF_Shell_MITC() ・・・シェル要素の剛性マトリックスの計算

[lib/physics/calMatMatrix.f90] m_MatMatrix::MatlMatrix_Shell() ・・・ Dマトリックスの計算【ここで材料タイプに応じて分岐します】[lib/physics/ElasticLinear.f90] m_ElasticLinear::ElasticLinear_Shell()

hecmw_mat_ass_elem() ・・・ 要素剛性マトリックスをassemble[analysis/dynamic/mode/fstr_EIG_setMASS.f90] m_fstr_EIG_setMASS::setMASS() ・・・ 集中質量マトリックスの計算[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::fstr_dynamic_Output() ・・・ 結果の出力[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::dynamic_output_monit() ・・・ 時刻歴の出力【時間ステップの更新のループの始まり】 n = 1,2,3, ….hecmw_matvec()[analysis/dynamic/transit/dynamic_mat_ass_load.f90] m_dynamic_mat_ass_load::dynamic_mat_ass_load() ・・・ 外力ベクトルの計算[analysis/dynamic/transit/dynamic_mat_ass_bc.f90] m_fstr_Update ::dynamic_mat_ass_bc() ・・・ 変位の境界条件の処理[analysis/dynamic/transit/dynamic_mat_ass_bc_vl.f90] m_fstr_Update ::dynamic_mat_ass_bc_vl() ・・・ 速度の境界条件の処理[analysis/dynamic/transit/dynamic_mat_ass_bc_ac.f90] m_fstr_Update ::dynamic_mat_ass_bc_ac() ・・・ 加速度の境界条件処理[lib/solve_LINEQ.f90] m_solve_LINEQ::solve_LINEQ() ・・・ 線形ソルバーによる求解

hecmw_solve_66()[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::fstr_dynamic_Output() ・・・ 結果の出力[analysis/dynamic/transit/dynamic_output.f90] m_dynamic_output::dynamic_output_monit() ・・・ 時刻歴の出力【時間ステップの更新のループの終わり】

[common/fstr_setup.f90] m_fstr_setup::fstr_dynamic_finalize() ・・・ 動解析用の変数削除hecMAT_finalize()

[main/fistr_main.f90] fstr_main::fstr_finalize() ・・・ 変数の削除hecmw_finalize()

[ディレクトリ/ファイル名] モジュール名::サブルーチン名()を意味しています

37

FrontISTRの解析制御データ(*.cntファイル) 内で

!SOLUTION,TYPE=DYNAMIC,!DYNAMIC下のidx_respを1,!DYNAMIC,TYPE=LINEARと記述

Page 38: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

(a) 時刻 t = 0に梁の中立軸に垂直な直線は梁が変形する間も直線であるが,変形した中立軸に垂直である(せん断変形は考慮されない)Bernoulli-Eulerの仮定

(b) 梁の断面は変形しない微小ひずみの仮定

MMt = 0

38

Page 39: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

(2)

(2)

(2)

(2)

(2)

(2)

x

y

z

x

y

z

u

u

u

(1)

(1)

(1)

(1)

(1)

(1)

x

y

z

x

y

z

u

u

u

(1)

(2)

Bernoulli-Euler梁要素

1eref 1

2ref 1

ˆˆˆ |

e ee

| e e

3 1 2ˆ ˆ ˆ e e e

xe

yeze

x

yz

1x

3x

2x

鷲津久一郎, 宮本博, 山田嘉昭, 山本善之, 川井忠彦共編, ''有限要素法ハンドブック I 基礎編'' (1981), p.218-220.

中立軸方向の一様引張・一様圧縮

曲げ

ねじり

方向変位: の1次式を仮定1x 1x

方向変位: の3次式を仮定2x 1x

方向変位: の3次式を仮定3x 1x

方向回転: の1次式を仮定1x 1x

微小変形を仮定

23

1

ˆˆˆux

32

1

ˆˆˆux

方向回転:3x

方向回転:2x

並進自由度と回転自由度

39

Page 40: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

(2)

(2)

(2)

(2)

(2)

(2)

x

y

z

x

y

z

u

u

u

(1)

(1)

(1)

(1)

(1)

(1)

x

y

z

x

y

z

u

u

u

(1)

(2)

Bernoulli-Euler梁要素

1eref 1

2ref 1

ˆˆˆ |

e ee

| e e

3 1 2ˆ ˆ ˆ e e e

xe

yeze

x

yz

1x

3x

2x1 1 11

2 2 2 2

3 3 3 3

ˆ ˆ ˆˆˆ ˆ ˆˆ

ˆ ˆ ˆ ˆ

x y z x

x y z y

x y z z

uuu uu u

e e e e e e

e e e e e e

e e e e e e

鷲津久一郎, 宮本博, 山田嘉昭, 山本善之, 川井忠彦共編, ''有限要素法ハンドブック I 基礎編'' (1981), p.218-220.

eT局所座標成分 全体座標成分

ˆ ˆˆ

ˆ ˆ ˆ ˆ( ) ( )ij i j ij i j

e ei j i k kl l j ik kl jlT T

e e e e

e e e e e e

ˆˆˆ ˆ( )

i i i i

ei i j j ij j

u u

u T u

u e e

e u e e

40

変位ベクトル

応力テンソル並進自由度と回転自由度

1 1 1 1

2 2 2 2

3 3 33

ˆ ˆ ˆ ˆˆ ˆ ˆ ˆˆ ˆ ˆ ˆ

x y z x

x y z y

x y z z

e e e e e e

e e e e e e

e e e e e eeT局所座標成分 全体座標成分

Page 41: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

2節点Bernoulli-Euler梁要素 (3/4)

41

3 3 3 33 2 3 2

2 2 2 23 2 3 2

1 1

2 2 2 22 2

3 3 3 32 2

33

0 0 0 0 0 0 0 0 0 0

12 6 12 60 0 0 0 0 0 0 0

12 6 12 60 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

6 4 6 20 0 0 0 0 0 0 0

6 4 6 20 0 0 0 0 0 0 0ˆ

0 0 0 0 0 0 0 0 0 0

120

e

EA EAl l

EI EI EI EIl l l l

EI EI EI EIl l l l

GJ GJl l

EI EI EI EIl l l l

EI EI EI EIl l l l

EA EAl l

EIl

K

3 3 32 3 2

2 2 2 23 2 3 2

1 1

2 2 2 22

3 3 3 3

6 12 60 0 0 0 0 0 0

12 6 12 60 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

6 2 6 40 0 0 0 0 0 0 0

6 2 6 40 0 0 0 0 0 0 0

EI EI EIl l l

EI EI EI EIl l l l

GJ GJl l

EI EI EI EIl l l l

EI EI EI EIl l l l

(1)1

(1)2

(1)3

(1)1

(1)2

(1)3

(2)1

(2)2

(2)3

(2)1

(2)2

(2)3

ˆ

ˆ

ˆˆ

ˆ

ˆˆ

ˆ

ˆ

ˆˆ

ˆ

ˆ

e

u

u

u

u

u

u

u

ˆˆ ˆe e eK u f局所座標系

: Young率 : 梁の長さ :断面2次モーメント : ねじり定数E l 3,2I I J

Page 42: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

2節点Bernoulli-Euler梁要素 (4/4)

42

T T

ˆˆ

e e e

e e ee e e

e e e

e e e

T O O O T O O O T O O OO T O O O T O O O T O O

K u fO O T O O O T O O O T OO O O T O O O T O O O T

eK ef

全体座標系の要素剛性マトリックス を作成後,を全体剛性マトリックスに加える

(1)

(1)

(1)

(1)

(1)

(1)

(2)

(2)

(2)

(2)

(2)

(2)

x

y

z

x

y

ze

x

y

z

x

y

z

u

u

u

u

u

u

u

eKeK

Page 43: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

43

モジュール名:m_static_LIB_beamBernoulli-Euler梁要素の要素剛性マトリックス,外力ベクトル,応力,ひずみを計算するモジュール

使用する他のモジュール・ [lib/element/element.f90] elementInfo

要素の情報を管理するモジュール・[lib/physics/mechgauss.f90] mMechGauss

Gauss積分点の情報を管理するモジュール・[lib/utilities/utilities.f90] m_utilities

補助的なサブルーチンや関数を集めたモジュール

メンバ変数・整数型 ndof

節点での自由度数 (ndof = 6)

メンバ関数・サブルーチン framtr()

座標変換マトリックスを計算するサブルーチン・サブルーチン STF_Beam()

要素剛性マトリックスを計算するサブルーチン・サブルーチン STF_Beam_641()

3×3ブロッキング梁要素の剛性マトリックスを計算するサブルーチン・サブルーチン DL_Beam_641()分布荷重から外力ベクトルを計算するサブルーチン

・サブルーチン TLOAD_Beam_641()熱荷重から外力ベクトルを計算するサブルーチン・サブルーチン NodalStress_Beam_641()応力やひずみの節点平均値を計算するサブルーチン

Page 44: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

44

サブルーチン名:STF_Beam()Bernoulli-Euler梁要素の要素剛性マトリックスを計算するサブルーチン

引数・整数型 etype

要素タイプ番号・整数型 nn

要素内の節点数・実数型 ecoord(3, nn)

要素内の節点座標・実数型 section(3)

参照ベクトルの成分・実数型 e, p

Young率,Poisson比・実数型 stiff(nn*6, nn*6)

要素剛性マトリックス

上位・サブルーチン [analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::FSTR_LOCAL_STF_CREATE()

下位なし

Page 45: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

(a) 時刻 t = 0にシェルの中立面に垂直な直線はシェルが変形する間も直線であるが,変形した中立面に垂直である必要はない(せん断変形は考慮される)Reissner-Mindlin板の仮定

(b) シェルのディレクタは変形しない微小ひずみの仮定

MMt = 0

45

Page 46: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

1g2g3g

1

3

1

2

(1)1V

(1)2V

(1)3V

(2)1V

(2)2V

(2)3V

(3)1V

(3)2V

(3)3V

(4)1V

(4)2V

(4)3V

3

4

1e

2e3e

1x

2x3x

2

FrontISTRでは微小変形を仮定したMITCシェル要素が実装されている

1g2g3g

1

3

3

1

(3)1V

(3)2V

(3)3V

(1)1V

(1)2V

(1)3V

(2)1V

(2)2V

(2)3V

2

1e

2e3e

1x

2x3x

2

MITC4シェル要素

1

2

(1)1V

(1)2V

(1)3V

(2)1V

(2)2V

(2)3V

(3)1V

(3)2V

(3)3V

(4)1V

(4)2V

(4)3V

3

4

1e

2e3e

1x

2x3x

1g2g3g

1

3 2 5

6

8

7

9 (6)1V

(6)2V

(6)3V

(5)1V

(5)2V

(5)3V

(7)1V

(7)2V

(7)3V

(8)1V

(8)2V

(8)3V

(5)1V

(5)2V

(5)3V

MITC9シェル要素

MITC3シェル要素

Bathe, K.J., Finite Element Procedures, Prentice Hall, (1995).

46

Page 47: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

(a) Isoparametric degenerated shell element

(b) The covariant components measured in the convectedsystem are used as the Green-Lagrange strain components.

(c) The transverse shear strain components are evaluated using the values interpolated at sampling points.

Bathe, K.J., Finite Element Procedures, Prentice Hall, (1995). 47

Page 48: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( )1 1 2 2

x x y y z zu u u

u e e e

V V

Fig. MITC4 shell element

(α) (α) (α)1 2 3V , V , V : 節点での単位直交ベクトル

: ディレクタベクトル

a : 厚さ

位置ベクトル

変位ベクトル

(微小変形を仮定)

1 2 3 =

x x xg , g , g

: 共変基底ベクトル

節点あたり5自由度

(α)3V

00 (α) 3

3 03 |

gV

| g

1g2g3g

1

2

(1)1V

(1)2V

(1)3V

(2)1V

(2)2V

(2)3V

(3)1V

(3)2V

(3)3V

(4)1V

(4)2V

(4)3V

3

4

xe

yeze

x

yz

4( ) ( ) ( )

31

( , )2aN

x x V

4( ) ( ) ( ) 0 ( )

3 31

4( ) ( ) ( ) 0 ( )

31

( , ) ( )2

( , ) ( )2

aN

aN

u u V V

u V

0

4( ) ( ) ( ) 0 ( )

3 31

( , ) ( )2aN

u x x

u V V

Dvorkin, E.N. and Bathe, K.J., “A Continuum Mechanics Based Four-node Shell Element for General Non-linear Analysis,” Engineering Computations, Vol.1, pp.77-88, (1984).

48

Page 49: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

AS AS AS31 31 31, A 31,C

AS AS AS23 23 23, D 23, B

1 1(1 ) (1 )2 21 1(1 ) (1 )2 2

* 31 DI 23 DI31 31 23 23( ) ( )

V VdV dV

31A C

23D B

( ) (1 ) ( ) (1 )

(1 ) ( ) (1 ) ( )

1g2g

1 2

4 3

1g2g

1 2

4 3C

A

D B

Dvorkin, E.N. and Bathe, K.J., “A Continuum Mechanics Based Four-node Shell Element for General Non-linear Analysis,” Engineering Computations, Vol.1, pp.77-88, (1984).

0 0

0 0

iji j

ij

i j

g g

g g

Tensorial components: C

t

1 :2V S V

dV dS dV u t u b

49

Page 50: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

t

:V S V

dV dS dV u t u b

* 0 より,仮想仕事の原理

AS DI DI31 31 31 31

AS DI DI23 23 23 23

1 1(1 ) (0, 1, 0) (1 ) (0, 1, 0)2 21 1(1 ) ( 1, 0, 0) (1 ) (1, 0, 0)2 2

Mixed Interpolation of Tensorial Components

Dvorkin, E.N. and Bathe, K.J., “A Continuum Mechanics Based Four-node Shell Element for General Non-linear Analysis,” Engineering Computations, Vol.1, pp.77-88, (1984).

1g2g

1 2

4 3

1g2g

1 2

4 3C

A

D B

50

Page 51: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

1g2g

1

2

1 2

4 3

Dvorkin, E.N. and Bathe, K.J., “A Continuum Mechanics Based Four-node Shell Element for General Non-linear Analysis,” Engineering Computations, Vol.1, pp.77-88, (1984).

1g2g

1

2

1 2

4 3

せん断ひずみ成分

1g2g

1

2

1 2

4 3C

A

D B

51

Page 52: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( )1 1 2 2

x x y y z zu u u

u e e e

V V

Fig. MITC4 shell element

(α) (α) (α)1 2 3V , V , V : 節点での単位直交ベクトル

: ディレクタベクトル

a : 厚さ

位置ベクトル

変位ベクトル

(微小変形を仮定)

: 共変基底ベクトル

節点あたり5自由度

(α)3V

00 (α) 3

3 03 |

gV

| g

1g2g3g

3

1

(3)1V

(3)2V

(3)3V

(1)1V

(1)2V

(1)3V

(2)1V

(2)2V

(2)3V

2

xe

yeze

x

yz

Lee, P.S. and Bathe, K.J., “Development of MITC Isotropic Triangular Shell Finite Elements, Computers & Structures, Vol.82, pp.945-962, (2004).

1 2 3 =

x x xg , g , g

3( ) ( ) ( )

31

( , )2aN

x x V

3( ) ( ) ( ) 0 ( )

3 31

3( ) ( ) ( ) 0 ( )

31

( , ) ( )2

( , ) ( )2

aN

aN

u u V V

u V

0

3( ) ( ) ( ) 0 ( )

3 31

( , ) ( )2aN

u x x

u V V

52

Page 53: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

Lee, P.S. and Bathe, K.J., “Development of MITC Isotropic Triangular Shell Finite Elements, Computers & Structures, Vol.82, pp.945-962, (2004).

BC

1g

2g

1

2

4

A

せん断ひずみ成分

53

Page 54: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( )1 1 2 2

x x y y z zu u u

u e e e

V V

Fig. MITC4 shell element

(α) (α) (α)1 2 3V , V , V : 節点での単位直交ベクトル

: ディレクタベクトル

a : 厚さ

位置ベクトル

変位ベクトル

(微小変形を仮定)

: 共変基底ベクトル

節点あたり5自由度

(α)3V

00 (α) 3

3 03 |

gV

| g

xe

yeze

x

yz

1

2

(1)1V

(1)2V

(1)3V

(2)1V

(2)2V

(2)3V

(3)1V

(3)2V

(3)3V

(4)1V

(4)2V

(4)3V

3

4

1g2g3g

5

6

8

7

9 (6)1V

(6)2V

(6)3V

(5)1V

(5)2V

(5)3V

(7)1V

(7)2V

(7)3V

(8)1V

(8)2V

(8)3V

(5)1V

(5)2V

(5)3V

1 2 3 =

x x xg , g , g

9( ) ( ) ( )

31

( , )2aN

x x V

9( ) ( ) ( ) 0 ( )

3 31

9( ) ( ) ( ) 0 ( )

31

( , ) ( )2

( , ) ( )2

aN

aN

u u V V

u V

0

9( ) ( ) ( ) 0 ( )

3 31

( , ) ( )2aN

u x x

u V V

Bucalem, M.L. and Bathe, K.J., “Higher-order MITC general shell element,” International Journal for Numerical Methods in Engineering, Vol.36, pp.3729-3754, (1993).

54

Page 55: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

Bucalem, M.L. and Bathe, K.J., “Higher-order MITC general shell element,” International Journal for Numerical Methods in Engineering, Vol.36, pp.3729-3754, (1993).

1g2g

1

2

1 5 2

4 7 3

8 9 61g

2g1

2

1 5 2

4 7 3

8 9 61g

2g1

2

1 5 2

4 7 3

8 9 6

せん断ひずみ成分

55

Page 56: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

0 0 0 0

ˆ ˆ ˆ ˆ ˆ

ijkli j k l

ijkli j k l

C

C

C g g g g

e e e e

1 2 3ˆ ˆ ˆe , e , e : 単位直交ベクトル

1 2 3 =

x x xg , g , g

: 共変基底ベクトル

弾性テンソル

k : せん断補正係数

E

: Young率: Poisson比

3 2 33 1 2 3 1

3 2 3

ˆˆ ˆ ˆ ˆ ˆ= , ,ˆ| | |

g g ee e = e e e

| g g e

1g2g3g

1

23

1

2

(1)1V

(1)2V

(1)3V

(2)1V

(2)2V(2)

3V

(3)1V

(3)2V

(3)3V

(4)1V

(4)2V

(4)3V

3

4

1e2e3e

(α) (α) (α)1 2 3V , V , V : 節点での単位直交ベクトル

各節点において

(α) (α) (α) (α) (α)3 13 3 2 1 2 3

3 1

ˆˆ , ,ˆ| |

e eV e V V =V Ve e

弾性テンソル成分の変換

1111 1122 1112 1123 1131

2211 2222 2212 2223 2231

1211 1222 1212 1223 12312

2311 2322 2312 2323 2331

3111 3122 3112 3123 3131

1 0 0 0

ˆ ˆ ˆ ˆ ˆ1 0 0 0ˆ ˆ ˆ ˆ ˆ

10 0 0 0ˆ ˆ ˆ ˆ ˆ21

ˆ ˆ ˆ ˆ ˆ 10 0 0ˆ ˆ ˆ ˆ ˆ

C C C C C

C C C C CEC C C C C

C C C C C kC C C C C

02

10 0 0 02

k

0 0 0 0

0 0 0 0 0 0 0 0

( : ) :ˆ ˆ ˆ ˆ ˆ( )( )( )( )

ijkl i j k l

mnop i j k lm n o p

C

C

C g g g g

e g e g e g e g56

Page 57: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

(A) 隣接要素の節点で同じディレクタベクトルを使用する場合(B) 隣接要素の節点で別のディレクタベクトルを使用する場合

(1) 5自由度として計算する場合(ディレクタ回りの回転自由度を計算しない場合)

(2) 6自由度として計算する場合(ディレクタ回りの回転自由度をdrilling DOFとして計算する場合)

FrontISTRでは,(2) と (B) の定式化を使用しています

57

Page 58: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

シェル要素の節点あたりの自由度数を6として,六つ目の自由度 (drilling DOFと呼ばれる三つ目の回転自由度) を考慮 (Hughes and Brezzi 1989)

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

x x y y z z

x x y y z z

u u u

u e e e

e e e

t

** 31 DI 23 DI31 31 23 23

0 03 3

1 : ( ) ( )2

1 1: :2 2 2

V S V V V

V

dV dS dV dV dV

dV

u t u b

V e V e

drilling DOFを考慮した場合のエネルギー

( / 0.0001 1.0)

( ) 1 2 ( ) 3 ( ) 0 ( )3 3

1

( ) 1 2 ( ) 3 ( ) 0 ( )3

1

( , ) ( )2

( , ) ( )2

n

n

aN

aN

u u V V

u V

0 0 T1 ( )2

u u ijk i j ke e e e e

Hughes, T.J.R. and Brezzi, F., Computer Methods in Applied Mechanics and Engineering, Vol.72, pp.105-121, (1989).

Nguyen-Van, Hieu and Mai-Duy, Nam and Tran-Cong, Thanh, CMES: Computer Modeling in Engineering and Sciences,Vol.49, No.2, pp.81-110, (2009). 58

Page 59: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

t

0 03 3

1 1: : :2 2V V

S V

dV V V dV

dS dV

e e

u t u b

** 0 より,仮想仕事の原理

AS DI DI31 31 31 31

AS DI DI23 23 23 23

1 1(1 ) (0, 1, 0) (1 ) (0, 1, 0)2 21 1(1 ) ( 1, 0, 0) (1 ) (1, 0, 0)2 2

( / 0.0001 1.0)

59

Page 60: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

03V

03V

03V 0

3V 03V

03V

03V

(A) 隣接要素の節点で

同じディレクタベクトルを使用する場合

(B) 隣接要素の節点で別のディレクタベクトルを使用する場合

60

FrontISTRでは (B) で実装されています

Page 61: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

61

モジュール名:m_ElasticLinear線形弾性体のDマトリックスを計算するモジュール

使用する他のモジュール・[lib/physics/material.f90] mMaterial材料物性の情報を管理するモジュール

メンバ変数・整数型 kreal

実数型の種別値

メンバ関数・サブルーチン calElasticMatrix()

3次元問題,平面ひずみ問題,平面応力問題,軸対称問題のDマトリックスを計算するサブルーチン・サブルーチン calElasticMatrix_ortho()

直交異方性がある場合,3次元問題のDマトリックスを計算するサブルーチン・サブルーチン LinearElastic_Shell()

シェル要素を使用する場合,埋め込み座標系成分の弾性テンソルを計算するサブルーチン

Page 62: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

62

サブルーチン名:LinearElastic_Shell()MITCシェル要素の弾性テンソルを計算するサブルーチン

引数・構造体(tMaterial) matl

材料に関連するデータ・整数型 sectType

問題の種類 (3次元問題/平面ひずみ/平面応力問題/軸対称問題) ・実数型 c(:, :, :, :)

弾性テンソルの成分・実数型 e1_hat(3), e2_hat(3), e3_hat(3),

直交座標系の単位基底ベクトル・実数型 cg1(3), cg2(3), cg3(3),

反変基底ベクトル・実数型 alpha

drilling DOFのための係数・整数型 n_layer

積層の数

上位・サブルーチン [lib/physics/calMatMatrix.f90] m_MatMatrix::MatlMatrix_Shell()

下位・サブルーチン [lib/physics/ElasticLinear.f90] m_ElasticLinear::LinearElastic_Shell()

Page 63: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

63

モジュール名:m_MatMatrix各材料のDマトリックスを計算するサブルーチンを呼ぶモジュール

使用する他のモジュール・[lib/physics/material.f90] mMaterial

材料物性の情報を管理するモジュール・[lib/physics/mechgauss.f90] mMechGauss

Gauss積分点の情報を管理するモジュール・[lib/physics/ElasticLinear.f90] m_ElasticLinear

線形弾性体のDマトリックスを計算するモジュール・[lib/physics/Hyperelastic.f90] mHyperElastic

超弾性体の4階の弾性テンソル を計算するモジュール・[lib/physics/Elastoplastic.f90] m_ElastoPlastic

弾塑性体のDマトリックスを計算するモジュール・[lib/physics/Viscoelastic.f90] mViscoElastic

粘弾性体のDマトリックスを計算するモジュール・[lib/physics/creep.f90] mCreep

クリープを考慮した剛性マトリックス を計算するためのモジュール・[lib/user/uelastic.f90] mUElastic

ユーザ定義の弾性体のDマトリックスを計算するモジュール・[lib/user/umat.f90] mUmat

ユーザ定義の材料のDマトリックスを計算するモジュール

メンバ変数・整数型 kreal

実数型の種別値

メンバ関数・関数 getNlgeomFlag()未使用のサブルーチン

・サブルーチン MatlMatrix()各材料のDマトリックスを計算するサブルーチンを呼ぶサブルーチン

・サブルーチン StressUpdate()各材料の応力とひずみを計算するサブルーチンを呼ぶサブルーチン

・サブルーチン mat_c2d()材料が超弾性体の場合,4階の弾性テンソルを問題の種類 (3次元問題/平面ひずみ/平面応力問題/軸対称問題) に応じたDマトリックスに変換するサブルーチン

・サブルーチン MatlMatrix_Shell()シェル要素を使用する場合,各材料 (現バージョンでは,線形弾性体のみ)のDマトリックスを計算するサブルーチンを呼ぶサブルーチン

・サブルーチン mat_c2d_Shell()シェル要素を使用する場合,4階の弾性テンソルをDマトリックスに変換するサブルーチン

Page 64: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

64

サブルーチン名:MatlMatrix_Shell()MITCシェル要素のDマトリックスを計算するサブルーチン

引数

・構造体(tGaussStatus) gaussGauss積分点に関連するデータ

・整数型 sectType問題の種類 (3次元問題/平面ひずみ/平面応力問題/軸対称問題)

・実数型 D(:, :)Dマトリックス

・実数型 e1_hat(3), e2_hat(3), e3_hat(3), 直交座標系の単位基底ベクトル

・実数型 cg1(3), cg2(3), cg3(3), 反変基底ベクトル

・実数型 alphadrilling DOFのための係数

・整数型 n_layer積層の数

上位・サブルーチン [lib/static_LIB_shell.f90] m_static_LIB_shell::STF_Shell_MITC()・サブルーチン [lib/static_LIB_shell.f90] m_static_LIB_shell::Update_Shell_MITC()・サブルーチン [lib/static_LIB_shell.f90] m_static_LIB_shell::ElementStress_Shell_MITC()

下位・サブルーチン [lib/physics/ElasticLinear.f90] m_ElasticLinear::LinearElastic_Shell()

Page 65: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

65

モジュール名:m_static_LIB_3dMITCシェル要素の要素剛性マトリックス,外力ベクトル,応力,ひずみを計算するモジュール

使用する他のモジュール・ [lib/element/element.f90] elementInfo

要素の情報を管理するモジュール・[lib/physics/mechgauss.f90] mMechGauss

Gauss積分点の情報を管理するモジュールgauss_integration・[lib/physics/calMatMatrix.f90] m_MatMatrix

各材料のDマトリックスを計算するサブルーチンを呼ぶモジュール・[lib/physics/material.f90] mMaterial

材料物性の情報を管理するモジュール・[lib/utilities/utilities.f90] m_utilities

補助的なサブルーチンや関数を集めたモジュール

メンバ変数・整数型 kint

整数型の種別値・実数型 kreal

実数型の種別値

メンバ関数・サブルーチン STF_Shell_MITC()

要素剛性マトリックスを計算するサブルーチン・サブルーチン Updata_Shell_MITC()

Gauss積分点での応力の反変成分を計算するサブルーチン・サブルーチン ElementStress_Shell_MITC()

Gauss積分点での応力のx, y, z座標系成分を計算するサブルーチン

Page 66: FrontISTRの梁要素/シェル要素の解説 ~プログラム解説を中心 … · 2016-04-22 · 2016年4月22日 第27回FrontISTR研究会 <ユーザーとの情報交換・プログラム更新履歴のまとめ/

66

サブルーチン名:STF_Shell_MITC()MITCシェル要素の剛性マトリックスを計算するサブルーチン

引数・整数型 etype

要素タイプ・整数型 nn

要素内の節点数・整数型 ndof

節点の自由度数 (ndof = 6) ・実数型 ecoord(3, nn)

要素内の節点座標・構造体(tGaussStatus) gausses(:)

Gaussの積分点に関連するデータ・実数型 stiff(:, :)要素剛性マトリックス

・実数型 thickシェル要素の厚さ

・整数型 nlayer積層の数

・整数型 mixflag3×3ブロッキングシェル要素の判別に使用するフラッグ

・実数型 nddisp(3, nn) 省略可能節点変位

上位・サブルーチン [analysis/static/static_mat_ass_main.f90] m_static_mat_ass_main::FSTR_LOCAL_STF_CREATE()・サブルーチン [analysis/static/fstr_Update.f90] m_fstr_Update::fstr_Update6D()

下位・サブルーチン [lib/element/element.f90] elementInfo::getNodalNaturalCoord()・サブルーチン [lib/element/element.f90] elementInfo::getShapeFunc()・サブルーチン [lib/element/element.f90] elementInfo::getShapeDeriv()・サブルーチン [lib/element/element.f90] elementInfo::getQuadPoint()・サブルーチン [lib/physics/calMatMatrix.f90] m_MatMatrix::MatlMatrix_Shell()