はじめに
この資料はオープンCAE勉強会@岐阜で公開されているFS氏ご提供の「SALOME-Mecaの使用法解説:1.0 基本 Salomeの使い方」をSalome-Meca 2020を用いてモデル作成、メッシュ生成、解析条件設定、解析実行、結果処理を行いました。
Salome-Mecaとは
Salome-Mecaとは、数値シミュレーションの前処理および後処理のための汎用プラットフォームであるSalomeと構造・熱解析ソルバーであるCode_Asterとを組み合わせたLinuxベースで開発されているオープンソースのシステムです。
Salome-Mecaは構造解析用のCAEソフトで線形、非線形、動解析、熱応力解析など、汎用構造解析ソフトの持つ、ほとんどの機能を網羅します。
Linuxの基礎
Linux は本来コマンドラインベースのシステムです。
最近はGUIだけで操作できることが多く、ほとんどWindowsと変わりません。
Windowsとの大きな違いは、PCに接続している機器もすべてファイルとして扱っていることです。
1個のファイル構成しかなくシンプルです。
アクセス権限は厳格でホームフォルダーにユーザーは自由にアクセスできますが、他のユーザーはアクセスできません。
root権限(管理者権限)でログインすれば、すべてにアクセスできます。
各ユーザー間でホームフォルダー内へのアクセスを可能にするためには通信を使うしかありません。
Linuxはファイル名の大文字と小文字を区別しているので注意が必要です(Windowsは、大文字と小文字を区別していません)。
解析実施内容
片方が固定された圧力荷重を受ける梁の応力解析を行い、梁の変位量や応力分布を確認します。
ジオメトリ
幅10mm×高さ20mm×長さ100mmの直方体
材料
- ヤング率:E=130,340MPa
- ポアソン比:$\nu$=0.343
拘束条件と荷重条件
境界条件 | トポロジ | 境界条件の種類 | 条件 |
---|---|---|---|
fix | 面 | 変位 | DX=DY=DZ=0 |
load | 面 | 圧力荷重 | 0.1MPa |
Salome-Mecaの起動
端末を立ち上げて、Salome-Meca 2020のインストールフォルダに移動し、Salome-Meca 2020を起動します。
cd salome_meca/appli_V2020_universal_universal
./salome
Salome-Mecaの起動後、次図のようになります。
最初の行は、File、Edit、View、Tools、Window、Helpと共通メニューです。
2行目のアイコンは、New、Open、Save、Copy、Pasteなどのツールです。
Pasteボタンの横には、SALOMEモジュールの選択ドロップダウンリストがあります。
Salome-Mecaで利用可能なさまざまなモジュールは、AsterStudy、Shaper、Geometry、Mesh、ParaVis、Fields、YACS、JobManager、Homard、Persalys、ADAO、EuroPlexus、 Calculatorです。
モジュールは、ドロップダウンリストの横にアイコンとしても表示されます。
ジオメトリ作成
Salome-Mecaの起動画面から、SALOMEモジュールの選択ドロップダウンリストを「Shaper」に変更します。
メインメニューの「Part」>「New part」をクリックします。
ボックスを作成するため、メインメニューの「Primitives」>「Box」をクリックします。
ボックスは、原点から始まるX、Y、Z軸に沿った寸法によって作成されます。
「Box」パネルで、次図のように「By dimensions」で値を入力します。
「Apply」ボタンをクリックします。
モデルの作成後、OCCウィンド内の「Fit All」アイコン(虫眼鏡のアイコン)をクリックして拡大し、モデル全体が見えるようにします。
モデルの回転、拡大縮小、移動は、次の方法で行います。
- モデルの回転:「ctr」キーを押しながら右クリックでドラッグします。
- モデルの拡大縮小:「ctr」キーを押しながら左クリックでドラッグします(ホイールを回転させても拡大縮小できます)。
- モデルの移動:虫眼鏡アイコンの隣の「十字矢印」をクリックした後(マウスカーソルの形状が変わります)、モデルをドラッグします。マウスのホイールボタンを押したままドラッグしても移動できます。
- モデルを元位置に復帰:リセットアイコンをクリックします。
- モデルを各軸方向から見た形状に設定:-OX、+OX、-OZ、+OZ、-OY、+OYアイコンをクリックすると各軸方向から見た形状で表示します。
正常にモデルができているかどうかを確認するために、Salome-Mecaのメインメニューで、「Inspection」>「What is」をクリックして、「Whatis Informations」画面を表示します。
Objectを「Box_1」に設定して、正常にモデルができているかどうかを確認します。
正常にモデルができていれば、SOLID:1(1個のソリッド)が画面内に表示されます。
3D表示で正常に見えていても、どこかのFaceが抜けたり、CAD側のBoolean演算が正しく行われていなかったりした場合、SOLID:1と表示されず、SOLID:0またはSOLID:2と表示されます。
境界条件設定箇所の指定
静的弾性(線形)解析を実施する上で、モデル上にグループを作成する必要があります。
これは、有限要素法解析を実行するとき、これらのパーツを識別するために必要です。
境界条件の設定箇所(固定部と負荷部)をグループ化して名前をつけます。
固定部は「Box_1」の端面、負荷部は「Box_1」上面とします(次図参照)。
まず、固定部の設定をします。
設定は、Salome-Mecaのメインメニューで、「Features」>「Group」をクリックします。
「Group」パネルで「Type」の「Face」にチェックします。
Nameは、この場合「fix」とします(設定後でもObject Browserツリー上で変更できますので、仮の名前でもかまいません。大文字・小文字は区別されます。文字数が8文字を超えますと解析実行時にエラーが発生します。)。
モデル上で「Box_1」端面をクリックして指定します。
指定した箇所は、線の色が白く変わるので、指定できたかどうかが確認できます(次図参照)。
Faceを指定した後は、「Group」パネルで「Apply and continue」ボタンをクリックします。
同様にして、「Box_1」上面も「load」という名前でグループを作成します。
「Box_1」上部に負荷する荷重は、「Box_1」上部の面に圧力荷重をかけるものとします。
「Group」パネルで「Apply」ボタンをクリックします。
Object Browserツリー上の「Results」内から「Box_1」を右クリックして「Show only」を選択するか、「Box_1」の左側にある「Eye」アイコンをクリックして強調表示し、「Groups」内の「fix」と「load」の「Eye」アイコンの強調表示を解除すると、同じ状態になります。
GEOMモジュールにエクスポート
GEOMにモデル形状をエクスポートして、メッシュ化できるようにします。
メインメニューの「Features」>「Export to GEOM」をクリックします。
GEOMモジュールを起動し、モデル形状とグループ設定がインポートされていることを確認します。
データの保存
ここまでのデータを保存しておき、次に進みます。
保存は、Salome-Mecaのメニューバー上の「File」>「Save」で保存します。
保存場所は、~/CAEフォルダー内に新たなフォルダーを作成し、保存しておきます。
ここでは、~/CAE/basic-bar内に「study1」で保存しました。
このフォルダー内に今回の解析に使ったファイルすべてを保存することにします。
メッシュの作成
Salome-Mecaのメインメニューで、「Geometry」と表示されている下向き矢印をクリックし、「Mesh」を選択します。
メニューバーより、「Mesh」>「Create Mesh」をクリックし、「Create Mesh」画面を表示します。
名前はデフォルトの「Mesh_1」のままにします。
「Box_1_1」がGeometryフィールドにあることを確認します(そうでない場合は、Geometryの横にある曲線矢印を選択し、Object Browser上より、「Box_1_1」を選択します)。
メッシュタイプは「Any」のままとします。
3DタブのAlgorithmドロップダウンリストで「Netgen 1D-2D-3D」を選択します。
「Hypothesis」のGear(⻭車)ボタンをクリックし、「Netgen3D parameters」を選択します。
ポップアップ表示される「Hypothesis Construction」画面で、「Max.Size」を「5」に変更して、「Second order」をチェックし、「OK」をクリックします。
「Create mesh」画面に戻ります。
「Apply and Close」ボタンをクリックします。
Browserツリーの「Mesh_1」を右クリックして「Compute」をクリックしてメッシュを作成します。
メッシュ作成が終了すると、「Mesh computation succeed」画面がでるので、Nodes(節点)=1414ヶ、Tetrahedrons(2次四面体要素)=632ヶと確認できます。
「Mesh computation succeed」画面を閉じると、解析用に作成されたメッシュが表示されます。
「Mesh_1」を右クリックし、「Create Groups from Geometry」を選択します。
この手順は、Geometryモジュールで追加したグループがメッシュでも使用するために必要です。
Geometryモジュールで作成した2つのグループを選択すると、次図のようにグループ名が追加されます。
「Apply and Close」をクリックします。
Object Browserツリーは次図のように表示されます。
このファイルを保存します。
解析条件の設定
コマンドファイル作成のアシスタント機能を用いて、コマンドファイルのひな型を作成しから、AsterStudyを用いて評価項目の追加を行います。
Salome-Mecaのメインメニューで、Mesh表示されている下向き矢印をクリックし、AsterStudyを選択します。
使用するCode_Asterのバージョンの選択画面が表示されるので、ここでは「stable」(Version 14.6)を選択し、「OK」をクリックします。
- stable Version 14.6
- testing Version 15.2
次図のようになります。
メニューバー上の「Operations」>「Add Stage with Assistant」>「Isotropic Linear elasticity(等方性線形弾性)」をクリックします。
「Isotropic Linear elasticity(等方性線形弾性)」のイントロダクションが表示されますので、「Next>」をクリックします。
「Mesh_1」が選択されていることを確認し、「Next>」をクリックします。
「3D」が選択されていることを確認し、「Next>」をクリックします。
現れた画面上で、E(ヤング率)と$\nu$(ポアソン比)を入力し、「Next」ボタンをクリックします。
ベリ銅の定数:ヤング率=130300MPa、ポアソン比=0.343
次の画面上で境界条件を入力します。
境界条件の追加ボタンをクリックします。
Group:fix を選択します。
DX:0 DY:0 DZ=0 を入力します(固定部)。
「Next」ボタンをクリックします。
次の画面上で圧力条件を入力します。
圧力条件の追加ボタンをクリックします。
Group:load を選択します。
Pressure=0.1を入力します(面積:100mm×10mmに面圧0.1MPa(100N))を負荷。
「Next」ボタンをクリックします。
結果ファイル名を設定します。
今回は、GeometryやMeshファイルと同じフォルダー(~CAE/basic-bar)に「basic-bar.rmed」として設定しました。
「Finish」ボタンをクリックしてアシスタント設定は完了します。
次に、目的の結果に対して後処理を追加する必要があるため、「DATA Settins」画面、「CurrentCase」>「Stage_1」をクリックしてから、ドロップダウンリストの「Post Processing」をクリックし、「CALC_CHAMP」を選択します。
開いたパネルで、「reuse the input object」にチェックします。
「MODEL」と「CHAM_MATER」にチェックします。
「CONTRAINTE」をチェックし、「0 items」横のアイコンをを2度クリックして、行を追加します。
それぞれにリストからSIGM_ELNO」と「SIGM_NOEU」を追加します。
同様に、「CRITERIA」をチェックし、「0 items」横のアイコンをを2度クリックして、行を追加します。
それぞれにリストから「SIEQ ELNO」と「SIEQ NOEU」を追加します。
「OK」をクリックして、後処理をコマンドファイルに追加します。
最後に、必要な結果を出力ファイルに書き込むため、「DATA Settins」画面、「CurrentCase」>「Stage_1」>「Output」の「Set output results」を右クリックし「Edit」を選択します。
「Results」の「1 item」を展開し、「Result=result」をクリックすると、パネルが開きます。
「Mesh」にチェックを入れ、「mesh」が選択されていることを確認します。
スライドバーを下げ、「NOM_CHAM」を選択し、「0 items」横のアイコンをを3度クリックして、行を追加します。
それぞれにリストから「DEPL」、「SIEQ_NOEU」、「SIGM_NOEU」を追加します。
「OK」をクリックしてこのパネルを終了し、もう一度「OK」をクリックし、結果出力をコマンドファイルに追加します。
解析条件の設定が終了しました。
スタディを保存します。
AsterStudy上でのコマンド表示名の変更
Salome-Meca 2017から2019までのAsterStudyモジュールでは一部のコマンド名が英語表示されましたが、2020で下記のように本来のコマンド名表示に変更されています。
Category | AsterStudy2017~2019での表示名 | コマンド名 |
---|---|---|
Mesh | Modify a mesh | MODI_MAILLAGE |
Read a mesh | LIRE_MAILLAGE | |
Model Definition | Assign finite element | AFFE_MODELE |
Material | Assign a material | AFFE_MATERIAU |
Define a material | DEFI_MATERIAU | |
Function and Lists | Define function | DEFI_FONCTION |
BC and Load | Assign mechanical load | AFFE_CHAR_MECA |
Assign thermal load | AFFE_CHAR_THER | |
Assign variable thermal load | AFFE_CHAR_THER_F | |
Analysis | Static mechanical analysis | MECA_STATIQUE |
Linear thermal analysis | THER_LINEAIRE | |
Output | Set output results | IMPR_RESU |
解析の実行
Object Browserで、「History View」タブを選択します。
ここでは、すべてのケースと実行中の解析を確認できます。
現在、「Stage_1」には赤い「□」ボタンにチェックが付いています。
使用するメモリ量と実行可能な計算時間を定義できます。
今回の解析では、デフォルト値を用います。
「+」ボタンをクリックしてから、パネル下部の「Run」で解析を実行します。
パネル右下の「Auto Refresh:No」をプルダウンして、「Auto Refresh:5s」に変更します。
すべてが正常に実行されると、解析が正常に完了したことを示す緑色の丸が表示されます。
結果の確認
ここで、解析した結果を3D表示します。
3D表示にすることで、モデルがどのように変形しているかが直感的によくわかります。
さらに変形した形状に、応力などの解析結果を色分けして表示させることにより、変形の程度と応力の関連がよくわかるようになるので、これを表示します。
また、前記の確認方法は、モデル表面の応力分布を確認していることになります。
モデル内部の応力状態が、どのようになっているかを確認するためには、断面の状態を確認する必要があります。
AsterStudyには、結果の後処理用の新しいタブ「Result」があります。
「Post-process」で、これらを評価します(今まで通り、ParaVisでの評価も可能です。)。
変形形状に解析結果を色分けして表示
「Data Files Summary」より、結果ファイル(basic-bar.rmed)を右クリックして、「Post-process」を選択します。
新しいウィンドウの初期化を待ちます。
Post-processの操作方法
Post-processが開き、次の画面になります。
「Results」タブがアクティブになります。
モデルの回転、拡大縮小、移動は、次の方法で行います。
- モデルの回転:左クリックでドラッグします。
- モデルの拡大縮小:マウスのホイールを回転します。
- モデルの移動:マウスのホイールボタンを押したままドラッグします。
Post-processの表示機能のクイックボタンは次の通りです。
- Refresh View:表示画面を更新
- 表示方向の切り替え
- Project View to X(YZ-plane):画面の方向を+X(または-X)に設定
- Project View to Y(XZ-plane):画面の方向を+Y(または-Y)に設定
- Project View to Z(XY-plane):画面の方向を+Z(または-Z)に設定
- アニメーション表示用ボタン
- First time step:最初のタイムステップ
- Previou time step:前のタイムステップ
- Play:再生
- Next time step:次のタイムステップ
- Last time step:最終タイムステップ
- Toggle bounding box:境界ボックスを切り替え
- Toggle reference positon:参照位置を切り替え
- Toggle min/max:最小/最大の切り替え
- Rescale colorbar to current step range:カラーバーを現在のステップ範囲に再スケール
- Probe value on one or more points or cells:1つまたは複数のポイントまたはセルのプローブ値
- Plot data over time for a single point or cell:単一のポイントまたはセルのデータを時間プロット
- Save a screen shot of the current representation:現在の表現のスクリーンショットを保存
- Save a movie of the current animation:現在のアニメーションのムービーを保存
Post-processを用いた結果評価方法
画面左上のコンセプト「results」以下にフィールド(結果)が表示されます。
- DEPL:変位量
- SIEQ_NOEU:節点(NOEU)での等価(EQ)応力(SI)
- SIGM NOEU:節点(NOEU)での応力(SIGM)
その下に表示設定を行う5つのタブが並びます。
「Colored Representation」タブで選択されているフィールド(結果)のコンポーネント(評価項目)を選択できます。
代表的なフィールド(結果)のコンポーネント(評価項目)は次の表の通りです。
フィールド(結果) | コンポーネント(評価項目) | 内容 |
---|---|---|
DEPL | Magnitude | 変位量 |
DX | X方向変位量 | |
DY | Y方向変位量 | |
DZ | Z方向変位量 | |
SIEQ_NOEU | Magnitude | 全項目のΣ2乗の平方根 |
VMIS | ミーゼス応力 | |
TRESCA | トレスカ応力 | |
PRIN_1 | 最小主応力 | |
PRIN_2 | 中間主応力 | |
PRIN_3 | 最大主応力 | |
VMIS_SG | ±符号付ミーゼス応力 | |
SIGM_NOEU | Magnitude | 全項目のΣ2乗の平方根 |
SIXX | X方向垂直応力 | |
SIYY | Y方向垂直応力 | |
SIZZ | Z方向垂直応力 | |
SIXY | XYせん断応力 | |
SIXZ | XZせん断応力 | |
SIYZ | YZせん断応力 |
変位量(変形図)に解析結果を重ねて表示
変位量(変形図)を表示したモデルビュー上で、右クリックし、「Color by another field」から他のフィールド(結果)のコンポーネント(評価項目)を指定します。
断面に解析結果を色分けして表示
「Colored Representation」タブで「Slice」をプルダウンして断面方向を選択します。
「SlicePosition」でバウンディングボックスの各軸方向の位置を指定します。
メッシュグループの確認
「Mesh groups filter」タブで「GroupFilter」にチェックを入れます。
表示したい「Group Name」横の「Eye」アイコンにチェックを入れ、「Apply」ボタンをクリックします。
表示方法の変更
「Display」タブで表示方法を変更できます。
- Opacity:不透明
- Representaion:表示方法
- Points
- Wireframe
- Surface
- Surface with Edge
- LineWidth:メッシュ表示の線幅
- PointSize:ポイント表示の点サイズ
カラーバーの設定
「Color Bar」タブでカラーバーの設定を変更できます。
- Title:カラーバーのタイトル指定
- Unit:カラーバーの単位指定
- ColorBarType:カラーバーの種類
- Continuous:連続的
- Categorical:指定した値で分類
- ColorBarAuto:カラーバーの値を設定
- Automatic:current step:現在のステップで自動調整
- Automatic:all steps:全ステップで自動調整
- Custom:カスタム
- ColorBarMin:カラーバーの最小値指定、ColorBarAutoがCustom時に有効
- ColorBarMax:カラーバーの最大値指定、ColorBarAutoがCustom時に有効
アニメーションの設定
「Animetion」タブでアニメーションの設定を変更できます。
- FrameRate:単位時間あたりの処理フレーム数指定
フィールド(結果)の表示設定
右クリックで表示されるウィンドウで以下の表示設定が可能です。
DEPL(変位)以外では、「Color by」、「Iso-surfaces」、「Show as」、「Transparency」に選択が限定されます。
-
Animate Mode:アニメーション表示
-
Warp with amplification:変形図表示
-
Color by:コンポーネント(評価項目)表示
-
Color by another field:別のフィールド(結果)表示
-
Iso-surfaces:等値面表示
-
Vector representaion:ベクトル表示
-
Show as:表示方法
- Points
- Wireframe
- Surface
- Surface with Edge
-
Transparency:透明度
単位
Salome-Mecaは決まった単位系を持ちませんので基本的に整合性が確保されていれば、どのような単位系を使っても構いません。
以下に主要な単位系を示します。
単位 | MKS | CGS | mmkg | ft | in | |
---|---|---|---|---|---|---|
加速度 | Acc. | m/s2 | cm/s2 | mm/s2 | ft/s2 | in/s2 |
角度 | Angle | rad | rad | raD | rad | rad |
角速度 | Angle velocity | rad/s | rad/s | rad/s | rad/s | rad/s |
密度 | Density | kg/mm3 | g/cm3 | ton/mm3 | ||
長さ | Length | m | cm | mm | ft | in |
エネルギ | Energy | J | erg | mJ | BTU | BTU |
力 | Force | N | dyne | N | ||
周波数 | Frequency | Hz | Hz | Hz | Hz | Hz |
応力 | Stress | Pa | dyne/cm2 | MPa | ||
温度 | Temp. | °C | °C | °C | °C | °C |
時間 | Time | s | s | s | s | s |
質量 | Mass | kg | g | ton | ||
仕事量 | Power | W | MW | |||
熱伝導率 | Thermal conductivity | W/m-°C | mW/mm-°C | |||
熱流 | Heat flux | W/m2 | mW/mm2 | |||
比熱 | Specific heat | J/kg-°C | mJ/ton-°C |
Link
Salome-Meca 2019ですが、モデルの作成から結果の確認までの一連の操作を公開しています。
YouTube動画
参考文献
- OpenCAE Users Wiki オープンCAE初心者勉強会「SALOME-Mecaの使用法解説」
- Code_Aster for Windows 「Salome-Meca 2019 for Windows」
- Code_Aster / Salome-Meca - Module 1 : Basic training「01-Presentation of code_aster and Salome-Meca」
- オープンCAE勉強会@関西「速習!AsterStudy」
- オープンCAE勉強会@関西 午前中講習会シリーズ「オープンCAEをはじめよう! 構造解析編」
- Salome-mecaトレーニング(初級)「応力解析のはじめかた」
- Code_Aster & Salome-Meca 日本語解説
- はじめてのオープンCAE,工学社,2011
- 塾長秘伝有限要素法の学び方!,日刊工業新聞社,2011
- OpenFOAMによる熱移動と流れの数値解析,森北出版,2016