はじめに
この資料はオープンCAE勉強会@岐阜で公開されているFS氏ご提供の「SALOME-Mecaの使用法解説:1.0 基本 Salomeの使い方」をSalome-Meca 2018(Code_Aster 13.6)のAsterStudyモジュールを用いて設定しました。
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の起動
CAELinux2018のデスクトップ左上の「Whisker Menu」をクリックし、「Education」フォルダー内にある「salome_meca V2018」をクリックして、Salome-Meca2018を起動します。
Salome-Mecaの起動後、次図のようになります。
最初の行は、File、Edit、View、Tools、Window、Helpと共通メニューです。
2行目のアイコンは、New、Open、Save、Close、Copy、Pasteなどのツールです。
Pasteボタンの横には、SALOMEモジュールの選択ドロップダウンリストがあります。
Salome-Mecaで利用可能なさまざまなモジュールは、AsterStudy、Geometry、Mesh、ParaVis、MED、YACS、OpenTURNS、ADAO、EuroPlexusです。
モジュールは、ドロップダウンリストの横にアイコンとしても表示されます。
モデルの作成
Salome-Mecaの起動画面から、SALOMEモジュールの選択ドロップダウンリストを「Geometry」に変更し、現れた画面上の「New」ボタンをクリックします。
Salome-Mecaのメインツールバーで、「New Entity」>「Primitives」>「Box」の順にクリックします。
「Box Construction」画面で、2番目のアルゴリズムが選択されていることを確認します。
デフォルトの名前は「Box_1」です。
「Dimensions At origin」で、次図のように値を入力します。
「Apply and Close」をクリックします。
モデルの作成後、OCCウィンド内の「Fit All」アイコン(虫眼鏡のアイコン)をクリックして拡大し、モデル全体が見えるようにします。
作成直後のモデルは、「Shading with edge」表示になってます。
モデルをクリックして選択(モデルのエッジの色が白色に変わります)し、右クリックの「Displaymode」で「Wireframe」など表示方法の変更が可能です。
モデルの回転、拡大縮小、移動は、次の方法で行います。
- モデルの回転:「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のメインツールバーで、「NewEntity」>「Group」>「Create Group」とし、「Create Group」画面上で「Shape Type」の「Face」にチェックします。
Nameは、この場合「fix」とします(設定後でもObject Browserツリー上で変更できますので、仮の名前でもかまいません。大文字・小文字は区別されます。文字数が8文字を超えますと解析実行時にエラーが発生します。)。
Main Shapeは、矢印ボタンをクリックした後、Object Browserツリー内に作成したジオメトリ名(Box_1)をクリックして指定します。
モデル上で「Box_1」端面をクリックして指定します。
指定した箇所は、線の色が白く変わるので、指定できたかどうかが確認できます(次図参照)。
Faceを指定した後は、「Create Group」画面上の「Add」ボタンをクリックしてFace Groupを作成します(クリックするとFace番号がウィンド内に表示されます)。
「Ok」ボタンをクリックして、終了すると、グループが作成され、Object Browserツリーにも作成した「fix」グループが表示されます。
ツリー上の「fix」を選択すると、3D表示内の「fix」グループの線が白く変わるので、グループの場所を確認できます。
同様にして、「Box_1」上面も「load」という名前でグループを作成します。
「Box_1」上部に負荷する荷重は、「Box_1」上部の面に圧力荷重をかけるものとします。
Object Browserツリー上の「Box_1」を右クリックして「Show only」を選択するか、「Box_1」の左側にある「Eye」アイコンをクリックして強調表示し、「fix」と「load」の「Eye」アイコンの強調表示を解除すると、同じ状態になります。
データの保存
ここまでのデータを保存しておき、次に進みます。
保存は、Salome-Mecaのメニューバー上の「File」>「Save」で保存します。
保存場所は、~/CAEフォルダー内に新たなフォルダーを作成し、保存しておきます。
ここでは、~/CAE/basic-bar内に「study1」で保存しました。
このフォルダー内に今回の解析に使ったファイルすべてを保存することにします。
メッシュの作成
Salome-Mecaのメインツールバーで、「Geometry」と表示されている下向き矢印をクリックし、「Mesh」を選択します。
メニューバーより、「Mesh」>「Create Mesh」をクリックし、「Create Mesh」画面を表示します。
名前はデフォルトの「Mesh_1」のままにします。
「Box_1」がGeometryフィールドにあることを確認します(そうでない場合は、Geometryの横にある曲線矢印を選択し、Object Browser上より、「Box_1」を選択します)。
メッシュタイプは「Any」のままとします。
3DタブのAlgorithmドロップダウンリストで「Netgen 1D-2D-3D」を選択します。
「Hypothesis」のGear(⻭車)ボタンをクリックし、「Netgen3D parameters」を選択します。
ポップアップ表示される「Hypothesis Construction」画面で、デフォルトのパラメータのままにして、「OK」をクリックします。
「Create mesh」画面に戻ります。
「Apply and Close」ボタンをクリックします。
Browserツリーの「Mesh_1」を右クリックして「Compute」をクリックしてメッシュを作成します。
メッシュ作成が終了すると、「Mesh computation succeed」画面がでるので、Nodes(節点)=64ヶ、Tetrahedrons(1次四面体要素)=114ヶと確認できます。
「Mesh computation succeed」画面を閉じると、解析用に作成されたメッシュが表示されます。
「Mesh_1」を右クリックし、「Create Groups from Geometry」を選択します。
この手順は、Geometryモジュールで追加したグループがメッシュでも使用するために必要です。
Geometryモジュールで作成した2つのグループを選択すると、次図のようにグループ名が追加されます。
「Apply and Close」をクリックします。
Object Browserツリーは次図のように表示されます。
このファイルを保存します。
解析条件の設定
Salome-Mecaのメインツールバーで、Mesh表示されている下向き矢印をクリックし、AsterStudyを選択します。
次図のようになります。
「Data Settings」タブで「CurrentCase」を右クリックし、「Add Stage」を選択します。
上部のドロップダウンリストが、次図の画面に示すように編集可能になります。
ドロップダウンリストからメッシュ、モデルなどを追加し、コマンドファイルを作成します。
まず、「Mesh」ドロップダウンリストをクリックし、「Read a Mesh」を選択します。
次図に示すように、行項目がデータ設定に追加されます。
右側のパネルでメッシュの設定を行います。
「Mesh file location」ドロップダウンリストより、メッシュモジュールで作成したメッシュ「Mesh_1」を選択します。
「Mesh file format」にチェックを入れ、「Med」を選択します。
「OK」をクリックして、この情報をコマンドファイルに追加します。
次に、「Model Definition」ドロップダウンリストから「Assign Finite Element」を選択します。
右側に表示されたパネルで、名前をデフォルトの「model」のままにし、「Finite element.」ボックスにチェックをします。
次に、「0 items」の右側にあるアイコンをクリックします。
アイコンをクリックすると、次図のように行項目が追加されます。
「Edit」ボタンをクリックすると、次の図に示すような別のパネルが表示されます。
3Dジオメトリのすべてのパーツに同じモデル定義を適用するには、「Everywhere」を選択します。
次に、「Phenomenon」で構造解析を実行するため、「Mechanic」を選択します。
モデル化では、「0 items」の横にあるアイコンをクリックし、追加された新しい行で3次元の「3D」を選択します。
「OK」をクリックすると、前のパネルに移動します。
パネルは次図のようになります。
この情報をコマンドファイルに追加するには、「OK」をクリックします。
「Material」ドロップダウンリストで、「Define a material」を選択します。
右側のパネルが開き、名前をデフォルトの「mater」のままにします。
次に、「Linear isotropic elastic(線形等方性弾性)」を選択し、「Edit」ボタンをクリックします。
このパネルでは、線形等方性弾性パラメーターとして、「ヤング率」に「130340」、「ポアソン比」に「0.343」を入力します。
「OK」をクリックし、前のパネルに戻ります。
そのパネルで「OK」をクリックして、材料定義をコマンドファイルに追加します。
定義した材料を、3Dモデルに適用します。
「Material」ドロップダウンリストで、「Assign a material」を選択します。
「fieldmat」のデフォルト名をそのままにして「model」を選択し、デフォルトのモデル(AFFE_MODELE)を選択する必要があります。
材料の割り当ての場合は、「0 items」の横にあるアイコンをクリックして行を追加し、「Edit」ボタンをクリックします。
開いたパネルで、3Dモデル全体に単一の材料を使用するため、「Everywhere」を選択します。
「0 items」の横にあるアイコンをクリックして行を追加します。
ここでは、「mater」が選択されていることを確認します。
「OK」をクリックすると、前のパネルに移動します。
再度「OK」をクリックして、この材料割り当てをコマンドファイルに追加します。
次に、境界条件を追加します。
ドロップダウンリスト「BC and Load」をクリックし、「Assign mechanical loads」を選択します。
開いたパネルで、「Enforce DOF」を選択します。
「0 items」の横のアイコンをクリックして、行を追加します。
「Edit」ボタンをクリックすると、別のパネルが表示されます。
このパネルで「Group of element」を選択し、「Edit」をクリックすると、別のパネルが表示されます。
固定条件を適用する2D Elementsとして「fix」を選択します。
「OK」をクリックして、このパネルから抜けます。
「DX」を選択し、「0」を入力します。
同様に、「DY」、「DZ」にも「0」を入力します。
「OK」をクリックして、このパネルから抜けます。
パネルのスライドバーを下げ、下部にある「PRES_REP」を選択します。
「0 items」の横のアイコンをクリックして、行を追加します。
「Edit」ボタンをクリックすると、別のパネルが表示されます。
このパネルで「Group of element」を選択し、「Edit」をクリックすると、別のパネルが表示されます。
圧力条件を適用する2D Elementsとして「load」を選択します。
「OK」をクリックして、このパネルから抜けます。
「load」面に0.1MPaの圧力荷重を加えるため、「PRES」を選択し、値に「0.1」を入力します。
「OK」をクリックして、このパネルから抜けます。
「OK」をクリックして、ファイルに圧力荷重を追加します。
ドロップダウンリスト「Analysis」をクリックし、「Static mechanical analysis(静的構造解析)」を選択します。
開いたパネルで「Material field」を選択し、「fieldmat」が選択されていることを確認します。
モデルのドロップダウンリストには、「model」が選択されていることを確認します。
「Loads」で「0 items」横のアイコンをクリックして、行を追加します。
「Edit」ボタンをクリックすると、別のパネルが表示されます。
次図に示すように、「Load」ドロップダウンリストで「load」が選択されていることを確認します。
「OK」をクリックして、このパネルから抜けます。
「OK」をクリックして、拘束条件と圧力荷重条件をコマンドファイルに追加します。
次に、目的の結果に対して後処理を実行する必要があるため、ドロップダウンリストの「Post Processing」をクリックし、「CALC_CHAMP」を選択します。
開いたパネルで、名前を「reslin」に変更します。
「Model」ドロップダウンリストで「model」が選択されていることを確認します。
「Material field」ドロップダウンリストで「fieldmat」が選択されていることを確認します。
「CONTRAINTE」を選択し、「0 items」横のアイコンをを2度クリックして、行を追加します。
それぞれにリストからSIGM_ELNO」と「SIGM_NOEU」を追加します。
同様に、「CRITERIA」を選択し、「0 items」横のアイコンをを2度クリックして、行を追加します。
それぞれにリストから「SIEQ ELNO」と「SIEQ NOEU」を追加します。
「OK」をクリックして、後処理をコマンドファイルに追加します。
最後に、必要な結果を出力ファイルに書き込むため、ドロップダウンリストの「Output」をクリックし、「Set output results」を選択します。
開いたパネルで、3つのドット「...」をクリックすると、ファイル名と結果ファイルの場所を指定する「Select files」画面が開きます。
ジオメトリファイルと同じ名前を付けますが、結果ファイルであることを示すために「.rmed」を追加します。
「Save」をクリックします。
「Format」を選択し、「Med」が選択されていることを確認します。
「Results」を選択し、「0 items」横のアイコンをクリックして、行を追加します。
「Edit」をクリックすると、新しいパネルが開きます。
「mesh」を選択し、「mesh」が選択されていることを確認します。
「Result」を選択し、「reslin」が選択されていることを確認します。
スライドバーを下げ、「NOM_CHAM」を選択し、「0 items」横のアイコンをを3度クリックして、行を追加します。
それぞれにリストから「DEPL」、「SIEQ_NOEU」、「SIGM_NOEU」を追加します。
「OK」をクリックしてこのパネルを終了し、もう一度「OK」をクリックし、結果出力をコマンドファイルに追加します。
解析条件の設定が終了しました。
データ設定は次図のようになります。
コマンドファイル
データ設定により作成されたコマンドファイルは次のとおりです。
コマンドファイルの詳細については、Code_Asterのコマンドファイル解説をご参照ください。
DEBUT(LANG='EN')
mesh = LIRE_MAILLAGE(FORMAT='MED',
UNITE=20)
model = AFFE_MODELE(AFFE=_F(MODELISATION=('3D', ),
PHENOMENE='MECANIQUE',
TOUT='OUI'),
MAILLAGE=mesh)
mater = DEFI_MATERIAU(ELAS=_F(E=130340.0,
NU=0.343))
fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),
TOUT='OUI'),
MODELE=model)
load = AFFE_CHAR_MECA(DDL_IMPO=_F(DX=0.0,
DY=0.0,
DZ=0.0,
GROUP_MA=('fix', )),
MODELE=model,
PRES_REP=_F(GROUP_MA=('load', ),
PRES=0.1))
reslin = MECA_STATIQUE(CHAM_MATER=fieldmat,
EXCIT=_F(CHARGE=load),
MODELE=model)
reslin = CALC_CHAMP(reuse=reslin,
CHAM_MATER=fieldmat,
CONTRAINTE=('SIGM_ELNO', 'SIGM_NOEU'),
CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU'),
MODELE=model,
RESULTAT=reslin)
IMPR_RESU(FORMAT='MED',
RESU=_F(MAILLAGE=mesh,
NOM_CHAM=('DEPL', 'SIEQ_NOEU', 'SIGM_NOEU'),
RESULTAT=reslin),
UNITE=80)
FIN()
解析の実行
Object Browserで、「History View」タブを選択します。
ここでは、すべてのケースと実行中の解析を確認できます。
現在、「Stage_1」には赤い丸が付いています。
赤い円をクリックすると、緑の十字に変わります。
使用するメモリ量と実行可能な計算時間を定義できます。
今回の解析では、デフォルト値を用います。
パネル下部の「Run」で解析を実行します。
すべてが正常に実行されると、解析が正常に完了したことを示す緑色の点が表示されます。
結果の確認
ここで、解析した結果を3D表示します。
3D表示にすることで、モデルがどのように変形しているかが直感的によくわかります。
さらに変形した形状に、応力などの解析結果を色分けして表示させることにより、変形の程度と応力の関連がよくわかるようになるので、これを表示します。
また、前記の確認方法は、モデル表面の応力分布を確認していることになります。
モデル内部の応力状態が、どのようになっているかを確認するためには、断面の状態を確認する必要があります。
以下で、これらの表示方法を示します。
変形形状に解析結果を色分けして表示
Salome-Mecaのメインツールバーで、 AsterStudyと表示されている下向き矢印をクリックし、ParaVisを選択します。
ParaVisが開き、次の画面になります。
ParaVisの「Open」アイコンをクリックし、AsterStudyで指定した結果ファイルを開きます。
ParaViS画面左にあるPipeline Browserの「Properteies」で「Apply」をクリックすると、次の図のようにモデルが読み込まれます。
モデルの回転、拡大縮小、移動は、次の方法で行います。
- モデルの回転:左クリックでドラッグします。
- モデルの拡大縮小:マウスのホイールを回転します。
- モデルの移動:マウスのホイールボタンを押したままドラッグします。
「Solid Color」が表示されているドロップダウンリストをクリックし、「result_DEPL」を選択します。
これを行うと、ParaViS画面が変化し、次の図のように「変位量」が表示されます。
変形形状を表示するには、「Warp by Vector」アイコンをクリック(または、メインツールバーで、「Filters」>「Common」>「Warp by Vector」をクリック)します。
「Pipeline Browser」に「WarpByVector1」が追加されますので、「Properteies」タブで「Apply」をクリックすると変形形状が表示されます。
変位が非常に小さいため、「Properties」画面で「Scale Factor」に1000と入力し、「Apply」ボタンをクリックすると、1,000倍に変形した形状がメイン画面に表示されます。
「result_DEPL」の横にある「Magnitude」の代わりに「DX」、「XY」、または「DZ」を選択すると、X、Y、Z方向の変位を表示できます。
「result__SIEQ_NOEU」は、節点(NOEU)での等価(EQ)応力(SI)の結果です。
ドロップダウンリストを「result__SIEQ_NOEU」に変更し、次のドロップダウンリストを「VMIS」に変更すると、ミーゼス相当応力が表示されます。
スカラバーではミーゼス相当応力の最大値が3.2MPaを示します。
「result__SIEQ_NOEU」は、節点(NOEU)での等価(EQ)応力(SI)の結果です。
応力タイプをVMISからTRESCAまたはその他の主応力に変更できます。
「result___SIGM_NOEU」は、節点(NOEU)での応力(SIGM)の結果です。
6つの応力Sx、Sy、Sz、Sxy、Sxz、Syz。
ドロップダウンリストで、これを選択し、次のドロップダウンメニューから「SIXX(X方向の応力)」を選択すると、モデルにSIXX応力が表示されます。
代表的な結果の評価項目は次の表の通りです。
結果 | 評価項目 | 内容 |
---|---|---|
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せん断応力 |
断面に解析結果を色分けして表示
変形形状を表示するには、「Slice」アイコンをクリック(または、メインツールバーで、「Filters」>「Common」>「Slice」をクリック)します。
「Pipeline Browser」に「Slice1」が追加されます。
「Properteies」タブのOriginで断面中心をXYZ座標で指定し、Normalで断面の法線方向を指定します。
「Apply」をクリックすると断面が表示されます。
単位
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 |