Salome-Mecaのビーム要素に関するページを作成しました。
何か分かったこととかあればこちらに書き込んで共有してくれると嬉しいです。
ビーム要素とは点と点を線で結ぶ要素である.ソリッドやシェル要素と違い,要素数やmesh分割数が少ないため,短い時間で解析できるという利点がある.
..とは言っても,余程簡単なモデルでもない限り,静的解析以外の解析は数分で終わることはないです(^^;)
100mm✕10mm✕10mmモデルを対象に説明します.(これまで先輩方のビーム要素モデルを見るとモデル軸方向をxにとっていたため,それに従い説明します.)
・Geometry
(1)ポイント(0,0,0)(100,0,0)を作成する.
(2)線(ポイントの右隣にあるアイコンをクリック)を作成する.下の写真のように(1)で作成したポイント同士を繋ぐ.
(3)ビーム断面を作成する.これはAsterstudyでビームモデルに断面を適用するのに必要な作業なので,忘れずに行うこと!
長方形断面を作成する場合は画面上部にある長方形マーク(長方形フェースを作成)をクリックする.
円形断面を作成する場合は長方形マークの右隣の楕円マーク(円盤の作成)をクリックする.
方向はモデル軸方向をxにとっているため,OXYにする.そうしないと,Asterstudyでビームに断面を適用することができない.
(構造研スタイルと同じようにモデル軸方向をzにした場合,方向をOYZにすれば断面適用ができる.)
モデルとしては,こんな感じになるはず.(作成したのは正方形断面)
・Mesh
(1)線(line)のメッシュを切る.1D→Wire Discretisation,歯車マークからNumber of Segmentsを選択.
セグメントの数は分割数を示しているので,任意の数値を入れる.
(2)断面のメッシュは2D→NETGEN1D-2D,歯車マークからNETGEN2DParameterを選択. 最大・最小サイズの数値を一致させ,任意の数値を入れる.ただし,あまり細かすぎると結果を見る際に重くなってしまうため,その点は注意.
(3)メッシュを計算した後,グループを作成する.やり方は3Dモデルと変わらない.
一部,千代岡の卒論日誌から引用し,編集したものを載せています.
Marcでは.梁ピン接合という設定で再現できるが,Salomeではバネ要素を用いた線で再現できる。(AFFE_MODELEでDIS_TRを設定し,AFFE_CARA_ELEMのDISCRETでK_TR_D_L,M_TR_D_Lを選択する.)
部材と部材の距離はできる限り短くする。(下の写真のモデルのバネ要素の線は0.1mmにしている。)
VALE[0],[1],[2]は変位に対する剛性(0,1,2の順にx,y,z方向を示す.),
[3],[4],[5]は回転に対する剛性(3,4,5の順にDRX,DRY,DRZを示す.)
回転に対する剛性を緩め、変位に対する剛性を高めることでピン接合の再現ができる。
REPEREはGLOBAL(グローバル座標)でよい。
DISCRETのM_TR_D_Lの設定画面
VALE[0]〜[4]は質量行列に与える値です。質量行列を0にしないと以下の警告メッセージが出るため,ここでは全ての値を0にする。(このメッセージが出て,解析エラーになったケースもあり)
↓矢印説明書に書かれていた質量行列に関する内容を日本語訳したもの
1D要素で弾塑性解析を始めとした材料非線形の解析を行う場合は、POU_D_EM, POU_D_TGMを用いる必要があり、これらの要素にはビーム断面を作成してビームモデルに適用する必要がある。
(1)DEFI_GEOM_FIBER
まず、このコマンドを使う前にビーム要素の断面として使う断面モデルをGeometryで作成、Meshを切り、LIRE_MAILAGEで適用すること。
SECTIONは断面定義、FIBREは断面の穴あき部分を定義する?(例えば、鉄筋コンクリートの断面モデルを作成する際、鉄筋を入れるところはcutして空白部分をつくり、そこをFIBREで当てはめていた。)
ビーム断面が厚肉断面もしくは空白部分に何も入れる必要がなければ、SECTIONだけでよい。
TOUT_SECTはビーム要素に作成した平面モデルを全て適用したい場合にチェックをいれる。
GROUP_FIBERは好きな名前をつけてよい。
MAILAGE_SECTはLIRE_MAILAGEで適用した平面モデルを選択。
COOR_AXE_POUTREとANGLEは0でよい。
(2)AFFE_CARA_ELEM
GEOM_FIBREが適用されていることを確認して、MULTIFIBREの選択。GROUP_MAは自分のつくったビーム要素を選択し、GROUP_FIBREは(1)で設定した名前と同じ名前を記入。後はAFFE_MODELEで適用した設定に合うコマンド(POUTREなど)を設定すること。(例:MULTIFIBRE+POUTRE)
(ただし、AFFE_MODELEで_*Mと書いてあるキーワードを設定すること。詳細はAFFE_MODELE(1)参照)
(3)DEFI_COMPOR
ここでは断面の材料特性と状態(弾塑性を入れるとか)を定義する。
このコマンドは画面上の{a}+の横にある{}+(Show All Commands)をクリックして、DEFI_COMPORと検索すると出てくる。
スクロールして探すなら、Otherの欄にあるので、それを選択してクリック
適用すると、下図のような画面が現れるが、GEOM_FIBREはDEFI_GEOM_FIBERを適用する場所、MATER_SECTは断面に定義する材料特性である。
MULTIFIBREを選択したら、GROUP_FIBREは(1)と同じ名前,materはDEFI_MATERIAUで設定したものを適用、RELATION(構成則)は弾塑性(VMIS_ISOT_とか)などを入れることができるので、自分が入れたいものを選択する。(STAT_NON_LINEのCOMPORMENTで設定するRELATIONはMULTIFIBREにすること。)
最後に、DEFI_COMPORをAFFE_MATERIAUのAFFE_COMPORで適用するのを忘れずに行うこと。
・注意点
(1)DEFI_FONCTIONとAFFE_CHAR_MECAは、Pre Analysis・Analysis用とPostprocessing用に分けること。また、名前も変えるのも忘れないように。
(2)DISCRETに質量マトリクスを用意しておくこと。DISCRETには質量を入れられないので、M_TR_D_LにVALE0を入れる。これでDISCRETの質量マトリクス計算を無視することができる。
この設定をしないと、ASSEMBLAGEでバネ要素に質量マトリクスを定義しようとするので、エラーがでる。
詳しくはこちらを参照
(3)DYNA_VIBRAとCALC_CHAMPの名前は同じにすること。(同じ名前にしないと、何故かエラーが出る。理由は不明。)
(4)CALC_CHAMPのEXCITにDYNA_LINEで設定したCHARGEの分だけ入れること。(ちなみに、DYNA_NON_LINEではこの作業は必要ない。)
設定方法
[1]Pre analysisのASSEMBLAGEを選択
・ここでやること
①NUME_DDLは{}押し、nddlと入力。
②MATR_ASSEで質量マトリクスと剛性マトリクスを定義する。(質量マトリクスはMASS_MECA,剛性マトリクスはRIGI_MECAを選択。MATRICEは好きな名前でOK.)
③CHARGEはAFFE_CHAR_MECAで適用した境界条件分だけ追加する。
[2]DYNA_NON_LINE
ここで弾塑性を入れた動的解析ができると思われるが、そのあたりの設定をまだ把握してないので、分かり次第追記します。
・最低限やること
①SCHEMA TEMPSでNEWMARK,FORMULATIONをDEPLACEMENT(変位),β=0.25,γ=0.50と設定する。(ニューマークβ法の設定)
ちなみに,説明書の12ページを見ると,ニューマークは時間積分を行なっているとのこと。
更に詳しく調べると,これは直接積分法(正確には直接時間積分法)の陰解法と呼ばれているらしい。
(Marcもニューマークβ法を用いて連鎖崩壊に関する解析をしていたので,名称はこれで間違っていないはず。)
参考サイト
②INCREMENTはDEFI_LIST_INSTで設定したものを選ぶ。
③EXCITにAFFE_CHAR_MECAで作成した数だけ設定する。載荷条件にはDEFI_FONCTIONで作成したテーブルを適用するのを忘れずに
ビーム要素なら、CARA_ELEMにチェックを入れること。
[3]Post ProcessingのCALC_CHAMPを選択
・ここでやること
①CALC_CHAMPの名前をDYNA_NON_LINEと同じ名前にすること!これをしないと、何故かエラーが出る!
②EXCITにAFFE_CHAR_MECAで適用した境界条件分だけ追加する。
温度応力,もしくはひずみで与える2通りのやり方がある。
ここでは温度応力のやり方を示す。(ひずみは後述のPRE_EPSIについてを参照)
(追記)
こちらは、プレストレスをひずみで与えるやり方です.
簡易モデルでは、この方法でプレストレスを与えたが、PRE_EPSIを適用する要素は必ず要素分割をする必要があります.
PRE EPSIは「設定したひずみになるように外力を与える」コマンドであるため , このコマンドを適用した要素は「与えた外力」しか考慮しない解析値を求めてしまいます.
それを回避するために,要素分割し,分割した1要素に以下の式で求めたεを入れてください.
PRE_EPSIをプレストレスとして用いる際の式:ε = α T × 要素分割数 (α:熱膨張係数 T :温度)
PRE_EPSIの説明書 51,52ページ参照
モデルをひずみを用いて変形させることができるコマンドである。
1Dモデル(Multifiber要素も含む)ではEPX(梁のローカル軸に応じた伸びの要素別定数値),3DモデルではEPXX,YY,ZZ,XY,XZ,YZに値を入れる。
(ky,kzはたわみの微分方程式から得られるdθ/dx = -M/EI の値を入力する。使う必要があるなら入力する。ちなみに、式を見ると、kyは-dθ/dx,kzはdθ/dx とのこと。)
X,Y,Zの軸の向きはグローバル座標(salome画面の色がついてる座標)にあたるもので、正の値を入力すると伸び、負の値だと縮む。
単純梁モデル(10✕10✕120mm)にEPXX:0.01を与えると、以下の挙動が得られた。(Scalefactorは10倍にした。)
線に色がついてるところが変形前のモデルの端であり、写真を見るとモデルが伸びていることが分かる。
・簡易モデルに用いた際に分かったこと
現在、ケーブルにPRE_EPSIを入れており、縮む挙動(ケーブルが桁を引っ張るようにする)をみる場合、ひずみの値に-をつける必要があるが、それだと応力がマイナスの値が出てしまう。(σ=Eεよりεがマイナスの値を与えているため)
その理由について考えてみたが、要素を構成している節点にモデルを縮ませるような負荷を与えるように力を与えており、その内力(抵抗力)を応力としてSalomeが計算しているのではないかと推測した。(説明書に変形の負荷と書いてあるので、与えたひずみになるような外力をPRE_EPSIの設定をしたモデルに掛けているのでは?)
↑PRE_EPSIの意味 日本語に訳すと要素に変形の負荷を与えるみたい。ちなみに、文字化けしているところはεが入っている。
↑簡単な例 PRE_EPSIで与えたひずみになるような外力をかけて、青い矢印(内力)の向きの応力を見ている可能性がある。
軸力はEFGE_ELNOの[N]で見る事ができることが分かった。Nは法線方向の力を意味している。(Marcだとbeam axial forceで軸力を見ることができ、その値とほぼ一致したので恐らくこれであっていると思われる。)
見る方法だが、medファイルをParaViSで閲覧し、フィルター→mechanic→ELNOfieldToSurfaceを選択すればOK。
[[参考資料:http://dugi6514.odns.fr/doc/v15/en/man_u/u2/u2.01.05.pdf]
↑Salomeで出力される力やひずみなどについて詳しく書かれている。
複雑な断面をビームモデルに適用したい場合,異なるhdfファイルで新しく作成して断定定数を求めた上で,作成したモデル(medファイル)と断面定数をモデル元のhdfファイルに入れる必要がある.
ここでは,そのやり方を説明します.
・(橋梁の主塔のような内側に穴が空いている矩形断面の作成例)
高さ2m,幅4m,厚さ0.025mの矩形断面を例に説明します。
○Geometry
・平面を用いて断面を作る
長方形のフェースを作成をクリック.ここで,高さor幅+厚さの平面(写真ではbig)と高さor幅−厚さの平面(写真ではsmall),2種類作成する。
(big:高さ2m+厚さ0.025m,幅4m+0.025m, small:高さ2m−厚さ0.025m,幅4m−0.025m)
断面を作成する際,座標の向きはX座標下向き,Y座標右向きで作成してください!!
作成したら,Cutを用いて,厚さ0.025mの矩形断面を作成する.2種類の平面が重なっている部分が空白エリアとなる。(大きいものから小さいものを引くイメージ)
ここでは,bigをメインオブジェクト,smallをツールオブジェクトに選択する.
後,下の写真では高度のオプションに2種類チェックを入れてしまっているが、チェックは上の項目のみでOK.
・外側の四辺、内側の四辺、外側の四辺上の角の点、内側の四辺上の角の点、この4つのグループを作る。
外側の点と内側の点,外側の線と内側の線,計16個全てをグループ化する.(この作業が地味に大変です...)
↓こんな感じになるかと.グループの名前は分かりやすいものにしたほうがいいです.
○Mesh
・メッシュを作成
アルゴリズムはNETGEN1D-2D,詳細設定は歯車押して,適用すればOK.(最大,最小サイズはいじらなくてもいいですが,細かすぎると解析に時間がかかるかも.)
・グループを作成
Faceにチェックを入れ,全て選択します。を選ぶ.
・メッシュをmedファイルでエクスポート
作成したMeshを右クリックして,エクスポート→MEDファイルを選択.後は任意の名前をつけて,保存すればOK!
○aster_study
・LIRE_MAILAGEでメッシュ適用~
エクスポートしたMEDファイルを適用する.やり方は,…マークをクリックして保存したMEDファイルを選択する.
・Model Definition > MACR_CARA_POUTRE >「GROUP_MA_BORD」を外の辺に > 「GROUP_NO」を外の点に > メッシュを適用
MACR_CARA_POUTREは1つの辺に対し,1つの点しか適用できないため,1つずつ作る必要がある.(今回の例では,8種類作成する必要がある.)
面倒だと思うけど...一つずつ設定してください.
また,設定の仕方ですが,一筆書きになるように作成してください.下の画像を例に説明すると,表示している黄色の線がlsoto1ですが,次にMACR_CARA_POUTREを設定する際は外側の右辺(lsoto2)を「GROUP_MA_BORD」に適用します.
そして,外側の下辺(lsoto3),左辺(lsoto4)と設定すると一筆書きになります.
なお,「GROUP_NO」については黄色の線に対応するもの(今の状況だと上辺の左端点[soto1]と右端点[soto2])を選択し,一筆書きになるようにする.
画像の例だと,soto1→soto2→soto3→soto4になります.(上辺の左端点[soto1]を決めたら,次に下辺の右端点[soto3]に飛んだりするのはNG!!それだと,一筆書きにならないので!)
・Model Definition > MACR_CARA_POUTRE にて内側も同様に
外側の設定と同じようにやればOK.
・IMPR_RESU で FormatをRESULTATに、ファイル名を「kekka.resu」のようにする。
○計算を回してresultファイルを見る。
・ファイルに書かれているA(断面積),IY,IZ(断面2次モーメント),JX(ねじり定数)の数値はメモしておくこと.これらの値はAFFE_CARA_ELEMのPOUTRE→SECTION:GEBERALEで断面定数を与える際に使う.
なお、空白エリアが存在しない断面(密な断面)を作成する際は外側の点と線のグループを作成するだけでよい。
また、.resuファイルはhdfファイルやFilesと同じところに保存すると,何故か結果を出力してくれない(バグ?)ので,例えばkouzouのフォルダーとか違うところに保存してください。
○メインとなるhdfファイル(橋梁モデル等,主となるモデルがあるhdfファイル)に作成した断面形状,断面定数の適用方法
・断面形状の入れ方
LIRE_MAILAGE→...をクリック→エクスポートした断面形状のmedファイルを選択.
①モデルをz軸方向,断面をYZ平面で作成した際,以下のエラーが出る.このエラーはモデルをx軸方向,断面をXY平面で作成した際だと出ない.
・解決案
(1)作成する断面の向きが違う?
(2)設定ミス?(commファイル)
・AFFE_MODELEとAFFE_CARA_ELEMの対応コマンド
AFFE_MODELEで設定したmodelisationはAFFE_CARA_ELEMのコマンドに適用できるものを選ばないとエラーがでる。
対応しているものを以下にまとめたので、参考にしてください。
POUTRE:POU_D_E, POU_D_T, POU_D_TG, POU_D_T_GD, FLUI_STRU, TUYAU_3M,TUYAU_6M, POU_D_EM, POU_D_TGM
BARRE:BAR, CABLE_GAINE
CABLE:CABLE, CABLE_POULIE
COQUE:COQUE_AXIS, COQUE_C_PLAN, COQUE_D_PLAN, DKT, DST, DKQ, DSQ,Q4G, COQUE_3D, DKTG, Q4GG
DISCRETE:DIS_T, DIS_TR
DISCRETE_2D:2D_DIS_T, 2D_DIS_TR
MULTI_FIBRE:POU_D_EM, POU_D_TGM
→梁の種類によって、選択するものが異なる。自分がこれまで使ったものをこちらにまとめた。
・真っ直ぐな梁:POU_D_E(オイラー[Euler]梁), POU_D_T(ティモシェンコ[Timoshenko]梁)
・マルチファイバーの梁(鉄筋コンクリートや非線形材料の解析に使う。)POU_D_*M [*にはEやGなどが入る]
・棒(鉄筋とか断面が円のもの?) 2D_BARRE, BARRE 引張と圧縮応力が見れる
・ケーブル CABLE 引張荷重 (引張だけ出せるが、斜張橋などのケーブルのような挙動ではなく、コンクリートのプレストレスなどを再現するのに使われるコマンド)
・DIS_T,DIS_TR 離散要素(バネ要素) T[Translation]は変位,R[Rotation]は回転を示す.
code-asterの説明書 (英語,フランス語で書かれているので翻訳サイトを使って読んでください.)
Beginning with code_aster(code-asterに関する質問ができるページがあるが,ビーム要素絡みの質問があると,このページを参考にしてと言う人がまあまあいます。)
code-aster質問ページ(説明書読んでも分からなかったら,このページで調べてみるといいかも.ただし,英語でキーワード等を入力する必要があります。)