テーマ『3D構造解析シミュレーションを体験しよう』†
はがきの端を持って、反対側の端に消しゴムをのせたら、はがきが曲がって消しゴムが落ちてしまいますが、はがきを少し湾曲させてやると消しゴムを支えられるようになります。このように、同じ材料、同じ断面積でできた構造材でも、断面の形を変えるだけで曲がりにくさ変わります。橋など大量の材料を使う構造物では、使う材料を減らせればコストが安くなるで、曲がりにくい形にすることが大事です。単純な形の棒がどれくらい曲がるかは手計算でもわかりますが、複雑な形になると手計算できません。また、橋のような大きなものでは実験するのも大変です。そこで、一定の物理法則が成り立つコンピューター内の仮想空間でシミュレーションによる実験をみす。同じ断面積の棒で、より曲がりにくい形を作ってみましょう。
- 担当:土木環境工学コース、環境構造工学分野
- 所要時間:1.5時間
- 場所:秋田大学理工学部1号館218
- 最大:5名程度
なるべく曲がりにくそうな断面形の棒を作ってみる†
- 断面積100mm\( {^2}\times \)長さ100mm
- まず、グラフ用紙などに断面積100mm\( {^2} \)となる形を描いてみる。
- 上下、左右対称な形なら、できれば真ん中(重心)を原点として、各頂点の\( (x,y) \)座標を求めておく。まあ、見やすさの問題なので、原点はどこでもいいです。
- プルダウンメニューでGeometryを選択
- 左上の+のマークをクリック
salomeの基本操†
- ①座標の拡大・縮小→スクロールでできる
- ②基準の座標移動→ctrl+スクロールを押しながらマウスで移動もしくは上の方にあるマウスボタンをクリック(左クリック)
- ③基準の座標回転→ctrl+右クリックしながらマウスで移動もしくは上の方にあるマウスボタンをクリック(左クリック)
点から断面を作り、それを押し出して角柱を作る†
- プルダウンメニューでGeometryを選択
- New entity→basic→pointで四角形の元となるように4箇所点を打つ。
- New entity→basic→lineで点と点を繋ぎ、四角形の枠を作る。
- 図の中で点を選択しようとすると、既に作られたlineの方が選択されてしまうような場合は、Object Browser内の該当する点(Vertex_4とか)を選択する。
- 新しいエンティティ→ビルド→面で、面をつくる辺に対応するlineを(Cntlを押しながら)選択し、面を作る。
- 複数のものを選択する際は、Cntlキーを押しながら選択。または、1番上のLine_1をクリックしたら、1番下のLine_4をSHFTキーを押しながらクリックすれば、まとめて選択できる。
- 作った面(Face_1とか)の面積を調べるには、Face_1を選択して、上部メニューの計測→基本プロパティで表示される「サーフェス」が面積
- 新しいエンティティー→生成→押出→ベースに押し出したい面(Face_1とか)を選択
→Vectorに座標方向(上の方の/OZとか)を選択、高さを100とかと書き込む→適用して閉じる
境界条件、荷重条件などを設定する箇所をグループ化†
- 目的とする物体(Extrusion_1)を右クリックして、「create group(グループを作成)」
- 後で何度もここを選択するので、名前の「Group_1」をfixとかkoteiとかの分かりやすい名前に書き換える
- 点(+), 線(/), 面(□), 立体(立方体マーク)の面(□)にチェックをいれて、オブジェクトを回転させながら、固定や載荷をするところをマウスで選択すると、その面の辺が白く表示される。追加をクリックすると、その隣の白い欄に24とか数字が表示される。適用して閉じる。今、固定した面だけが表示されるが、オブジェクト全体を表示させたければ、Extrusion_1の目玉マークにチェックを入れる。
- 超重要:バージョンによる(Salome-Meca2013では)かもしれないが、名前は8文字以下にしないと原因不明のエラーが出る!!
- 確か、Salome-Meca2015~16ぐらいからは大丈夫になった。
- 固定したい面を選択するために、ボックスを回転させたり移動させたりする方法は、以下の「移動方法」を参照
移動方法†
- 回転は、玉に回転矢印の書いてあるところをクリックしてから、左クリックを押しながら回転させる
- 回転は、cntlと右クリックを押しながら動かす
- 並進移動は、cntlとスクロールボタンを押しながら動かす
- 拡大縮小は、ただスクロールする。あるいはcntlと右クリックを押しながら動かす
- 座標の原点側を固定端にするのであれば、回転させて固定端面を選択してクリック->選択された水色の外枠線が白に変わったのを確認して追加
- 「追加」すると「31」と数値が表示されるのを確認して(違う面を選択した場合は違う番号になる)->「適用して閉じる」
- そうすると、グループを作成されていないボックスの側面が消えてしまったりすることがあるが、その場合は、オブジェクトブラウザーのボックスの目玉マークをクリックすれば表示される
「mesh」で要素分割†
- オブジェクトブラウザーの(固定面や載荷線などを含んだ)ツリーの元(例えばExtrusion_1やBox_1等)を選択してから「Geometry」が表示されている上部のプルダウンメニューをクリックして「Mesh」を選択する。
- 上部ツールバーの「メッシュ」->「メッシュを作成します」->「メッシュを作成」ウィンドウが現れる
- 名前はひとまずMesh_1でいい
- オブジェクトブラウザー内の選択したいボックス(Box_1)を選択すると、「メッシュを作成」ウィンドウのジオメトリに Box_1みたいに表示されることを確認。
四面体要素を使う場合†
曲面を含む立体をなめらかに要素分割する場合は、通常は四面体要素を使う。
長方形断面の梁の断面の応力分布を等間隔の方眼に可視化したいといった目的がある場合は、直方体要素を用いることもできる(後述)。
- 拘束線や載荷線を含めてメッシュ分割する場合は、Partitionを選択(単純梁の載荷線、拘束線などを作るとジオメトリがPartitionとなるが、Partitionが生成されていない場合は、ジオメトリにBox_1を選択すればよい)
- 詳細設定セットの割当->3D Automatic Tetrahedralization を選択
- 要素長設定ウィンドウ(Max Size)が出たら、ある程度の精度が必要な場合は長さ1を目安に設定し、「OK」->「適用して閉じる」
メッシュを作成†
- 節点数や要素数などが計算されて、3D(ボリューム)とかの箱の中に、色々と数字が入っていれば、たぶん大丈夫。ノード以外の箱がほとんど0だったら、計算されてない。
「geometry」でグループ化したグループをメッシュに反映させる†
- オブジェクトブラウザーのMesh_1を右クリックし、「ジオメトリーのグループを作成」を選択
- 「ジオメトリからグループを作成」ウィンドウが開くので、オブジェクトブラウザーのBox_1で作った固定面や載荷面のグループ(kotei, saika)をクリックする(複数を1個ずつ選択する場合はcntlキーを押しながら。最初のグループを選択した後、最後のグループをshftキーで選択すれば、すべてまとめて選択できる)
- ジオメトリにkoteiとsaikaが追加されたのを確認->適用して閉じる
- オブジェクトブラウザーのMesh_1のツリーにkoteiとsaikaの「Groups of Faces」が追加されたことを確認。
commファイルを読み込んで実行†
- 上記のGeometry作成とメッシュ分割、kotei, saikaのグループ作成までが終了している状態とする。
- (注:もし、Geometryとメッシュのみのhdfファイルを読み込んだところから始める場合は、Salome-Meca2017では一旦、Mesh画面でMeshを表示させないと、以下のAster Studyのメッシュ編集ウィンドウにMesh_1が選択できる状態にならない)
- 断面積100mm\( {^2}\times 長さ100 \)mmの片持ち梁(ヤング率は木材程度の6GPa, ポアソン比は0.4)のkotei端面を固定、saika端面に100N載荷の計算条件が書かれているcommファイル:kata.comm
- AsterStudyを選択
- Data SettingsのCase_1で右クリックし、"Add Text Stage from File"から、読み込みたいcommファイル(例えばkata.comm)を選択する
- すると、Stage_1の下にkataと表示される(この時点ではkataに赤い丸がついている)
- ファイル→別名保存で、hdfファイルを適当な名前で一旦 保存する(これをしておかないとRunしようとしたときに、保存を強いられる)
- kataのとこで右クリックし、Graphical Modeを選択
- There are data files with undefined file name.と表示されるが、OK
- すると、上部の設定メニュー(メッシュ、Model Definiton, Mterial...)がカラーに変わり編集できるようになる(kataの赤い丸も消える)
- 左側のData Settingsウィンドウのkataの右向き△をクリックし、設定項目(Deprecated, メッシュ、Model Definition....)を表示させる
- メッシュの右向き△をクリックすると{}mesh Read a meshと表示されるので、それを右クリックしてEditを選択
- すると右側にEdit commandウィンドウが表示されるので、Mesh file loca... の△▽でMesh_1を選択して、OK
- 次に左側のData SettingsウィンドウからOutputの右向き△をクリックすると{}[noname] Set output...と表示されるので、それを右クリックしてEditを選択
- 右側のEdit commandウィンドウで、Result file locationの<80 undefined>の右の...をクリックし、出力ファイルを書き込むディレクトリを選択して、出力ファイル名(kata.medとか)を書き込んで、「保存」して、OK
- 左端のメニューでHistory Viewに切り替え、kataを選択、Run→Run
- RunCase_1が緑色の丸で表示されれば計算成功
結果表示†
- 計算結果の読み込み
- 上部プルダウンメニューからParaViSを選択。または、上部アイコンの赤緑青のマークをクリック。
- Output Messagesのウィンドウが出たら、ひとまずClose
- 左側のパイプのブラウザーのウィンドウで右クリックして、Openを選択
- 上のOutputのところで指定した出力ファイル(kata.medとか)を選択して、左側やや下のオブジェクトインスペクターのところのApplyをクリックすると、右ウィンドウ内に初期状態のモデルが現れる
- 変形状態の表示
- 上部メニューのフィルター→Common→Warp By Vectorを選択すると、棒が曲がる
- 曲がり具合を強調するには、左側のオブジェクトインスペクターのところの+Propertiesをクリックすると、Scale Factorが表示されるので(最初から表示されている場合も)、それを少し大きくしてから、Applyをクリック
- 応力表示
- 上部プルダウンメニューの●Solid Colorとなっているところから、unnamed_SIGM_NOEUを選択する。モデルに色がつく
- その隣のMagnitudeのところをSIZZにすると、(zを軸方向にとっていれば)軸方向の応力が赤(引張)、青(圧縮)で表示される。
- 変位表示
- まず、Add selection(+)を押してから、Select Points ○○ (変位を見たい節点を選択する) -> 右上の"ロロ"("日"でもいい) -> Spreadsheet View -> (右上の方にある)Show only selected Elements.
不具合メモ†
上記の手続きがちょっとでもうまくいかないと、以下のようなエラー
! fichier MED : fort.20 maillage : erreur numéro -1 !
! soit le fichier n'existe pas, soit c'est une mauvaise version de HDF (utilise par MED). !
Destruction du concept 'mesh'.
JDC.py : ERREUR A L'EXECUTION - INTERRUPTION
>> JDC.py : DEBUT RAPPORT
CR d'execution de JDC en MIXTE
! <S> Exception utilisateur levee mais pas interceptee. !
! Les bases sont fermees. !
! Type de l'exception : error !
! !
! soit le fichier n'existe pas, soit c'est une mauvaise version de HDF (utilise !
! par MED).
fin CR d'execution de JDC en MIXTE
計算できなくなるパターン†
- commファイルを読み込んだ後、AsterStudyの上部メニューのOutputからSet output resultsを選択して編集しようとすると、[noname]がもうひとつ作られてうまくいかない。
- 上部メニューのOutputからSet output resultsを選択すると、右側にEdit commandウィンドウが表示される。
- 左のData Settingsウィンドウで、Outputに[noname]が2つ表示されているが、選択したときに、下のinformationにFORMAT='MED'などの設定が表示される方を選択し、右クリックからEditを選択
- There is executed operation. Do you want to break it and lose all input data? と表示されたら、「はい」を選択
- Fatal error std::bad_allocと表示されるが、OK
- 以下のようにして、不具合を修正すると、計算できることもある。
- 左側のウィンドウをData Filesに切り替える
- kataの下に、<undefinde> 80 outと<undefined> 20 inが赤字になっている
- まず<undefinde> 80 outを右クリックしEdit
- There is executed operation. Do you want to break it and lose all input data? →はい
- 右側のEdit data fileのFilenameのところで、...で出力ファイルを書き込むディレクトリを選択して、出力ファイル名(kata.medとか)を書き込む
- 注:すると、左側のウィンドウから赤字の<undefinde> 80 outが消える
- 次に<undefinde> 20 inを右クリックしEdit
- 右側のEdit data fileのFilenameのところで、△▽からMesh_1を選択してOK
- 注:すると、左側のウィンドウから赤字の<undefinde> 20 inが消える