Salome-Meca 入門

2019年1月26日

はじめに

Salome-Meca とは、モデラー Salome と構造解析ソルバー Code_Aster がセットになったオープンソースのシステムである。これ 1 つですぐに構造解析を体験することができる。

Linux 環境で動作する。ここではとりあえず基本的な操作の手順を示す。

使用環境

SALOME-MECA-2018.0.1, Ubuntu 16.04 LTS

インストール

Salome-Meca を Code_Aster のページ から入手する。

$ wget http://www.code-aster.org/FICHIERS/salome_meca-2018.0.1-LGPL-1.tgz

パッケージを展開。

$ tar xvzf salome_meca-2018.0.1-LGPL-1.tgz

インストーラの実行。

$ ./salome_meca-2018.0.1-LGPL-1.run

指示に従ってインストールする。

※Python 3.x ではうまくいかない。使用環境では Anaconda3 を使っていたため、一時的にパスを外して Python 2.x になるようにして実行したらうまくいった。

実行テスト。

$ cd ~/salome_meca/appli_V2018.0.1_public
$ ./salome

起動すれば OK。パスを通しておく。

※Python 2.x でないと起動しない。Python 3.x を使っている場合は、起動スクリプト appli_V2018.0.1_public/salome および appli_V2018.0.1_public/.salome_run の先頭で以下のように Python 2.x を指定する。

#! /usr/bin/env python2

Salome 入門

Salome は様々なモジュールで構成されており、それぞれのモジュールでメニューや操作が異なる。以下では Geometry モジュールを例にして基本的な使い方を示す。

Salome-Meca を起動。

$ salome

"New document" ボタンを押してドキュメントを新規作成する。

新規ドキュメントが開く。

"Geometry" ボタンを押して Geometry モジュールを起動する。

ジオメトリ作成ボタンをどれか押す。

ダイアログが表示される。"Apply and Close" ボタンを押すと、形状が作成される。

表示モードの切り替え

メニューの [View]-[Display Mode] で "Wireframe" と "Shading", "Shading With Edges" の切り替えができる。

マウスによる画面操作

回転Ctrl + 右ボタンドラッグ
平行移動Ctrl + 中央ボタンドラッグ
拡大・縮小Ctrl + 左ボタンドラッグ/ホイール回転

オブジェクトの選択

直接選択左クリック/Object Browser で項目クリック
矩形選択左ボタンドラッグ
多角形選択右ボタンドラッグしながら左クリック、終了は左ダブルクリック

オブジェクトの作成・削除

オブジェクトの作成

オブジェクトの作成はメニュー [New Entity] かツールバーのボタンで行う

オブジェクトの削除

オブジェクトの削除は、オブジェクトを選択してポップアップメニュー (右クリック) "Delete" か、Del キーを押す。画面左の Object Browser でも可能。

オブジェクトの操作

オブジェクトの操作はメニュー [Operations] かツールバーのボタンで行う。ダイアログでオブジェクトを選択する場合、矢印ボタンを押した後、画面か Object Browser でオブジェクトを指定する (自動で選択されることもある)。

オブジェクトの表示・非表示

オブジェクトを選択してポップアップメニュー Hide/Show で表示・非表示を切り替えられる。Object Browser でも可能。

終了

メニュー [File]-[Exit] で終了。

メニューの日本語化

Salome のメニューを日本語にすることができる。メニュー [File]-[Preferences] の [SALOME]-[General] の "Language" の "Current language" から "日本語" を選んで、Salome-Meca を再起動する。

Salome-Meca による構造解析

丸棒の端を固定し、もう一端に荷重をかけて圧縮するという例を実行してみる。

※以下、一部古いバージョンの絵が混じっていますが、操作は変わらないので気にしないでください。項目は英語名を基本とし、日本語名を併記します。

  1. 上の手順にしたがって、Salome-Meca を起動し、ドキュメントを新規作成し、Geometry モジュールを有効にする。
  2. メニュー [New Entity]-[Primitives]-[Cylinder] ([新しいエンティティ]-[基本図形]-[円筒]) あるいはツールバーのボタンで円筒を作る。サイズは好きなようにする。
  3. Object Browser (オブジェクトブラウザー) でオブジェクトを選び右クリック、ポップアップメニューから "Create Group" (グループを作成) を選ぶ。
  4. "Shape Type" (オブジェクトの種類) でフェイスを選ぶ。"Group Name" (グループの名前) は好きにつけてよいが、ここでは "fix" とする。オブジェクトの底を選んで "Add" (追加) ボタンを押す。"Apply" (適用) ボタンを押すと、グループが作成される (Object Browser 上で見ることができる)。同様にして、オブジェクトの上面を選んで "load" というグループを作る。これらが境界条件が設定される場所になる。
  5. "Mesh" ボタンを押して Mesh モジュールを起動する。
  6. メニュー [Mesh]-[Create Mesh] ([メッシュ]-[メッシュを作成します。]) を選ぶ。Object Browser でオブジェクトを選ぶと、"Geometry" 欄に設定される。"Assign a set of hypotheses" (詳細設定セットの割当て) の "3D: Automatic Tetrahedralization" を選び、メッシュサイズを適当に設定する。"Algorithm" (アルゴリズム) として自動的に "NETGEN 3D" (テトラメッシュを作るアルゴリズム) が選ばれる。"Apply and Close" (適用して閉じる) ボタンを押す。
  7. Object Browser の Mesh ツリーから今作ったメッシュ (名前を変えていなければ "Mesh_1") を選択、ポップアップメニューで "Compute" (メッシュを作成) を選ぶと、メッシュが作成される。
  8. メッシュのポップアップメニュー "Create Groups from Geometry" の "Element" (要素) で Geometry の "Cylinder_1" からグループ "fix" と "load" を選択 (Shift を押しながらクリック) する。
  9. 解析の設定に移る。"AsterStudy" ボタンを押して Aster モジュールを起動する。
  10. "Choose code_aster version" と出たら、"stable" を選ぶ (計算実行時にも設定できる)。
  11. メニュー [Operations]-[Add Stage] で新しいステージを作成。
  12. 作成されたステージ "Stage_1" を右クリックして出てくるメニュー (画面上にもボタンがある) の [Mesh]-[Read a mesh] の "Mesh file location" で "Mesh_1" を選択。
  13. ステージのメニュー [Model Definition]-[Assign finite element] で "Finite element assignment" のアイコンをチェックし項目を追加、"Edit..." をクリック。"Exactly One" で "Everywhere" を選択。"Phenomenon" で "Mechanic" を選択、"Modelisation" でアイコンをクリックしアイテムを追加、"3D" を選択する。
  14. ステージのメニュー [Material]-[Define a material] で "Linear isotropic elasticity" にチェックを入れ、"Edit..." でヤング率とポアソン比を設定する。※円筒をデフォルトのサイズで作成したなら、ヤング率 2.1e6、圧力 1e4 程度にすると、変形が見やすい。
  15. ステージのメニュー [Material]-[Assign a material] で "At Least One" で "Model" にチェックを入れる。"Material assignment" のアイコンをクリックして項目を追加し "Edit..." をクリック、そこで "Exactly One" の "Everywhere" を選び、"Material" で項目を追加し、作成した物性を割り当てる。
  16. ステージのメニュー [BC and Load] を選択。"Name" を "fix" にする。"At Least One" で "Enforce DOF" のアイコンで項目を追加。"Edit..." をクリックし、"At Least One" - "Group of element" の "Edit..." で "fix" にチェック。"LIAISON" にチェック。同様に "load" に "PRES_REP" の "PRES" で圧力を設定する。
  17. ステージのメニュー [Analysis]-[Statics]-[Statics mechanical analysis] の "At least One" で "Material field" にチェックを入れる。"Loads" で "fix" と "load" を追加。
  18. ステージのメニュー [Output]-[Set ouput results] を選択。"Result file location" の "..." で保存ファイル名 "result.med" などを設定。"Results" に項目を追加して "Edit ..." をクリック、"At Least One" で "Result" にチェック。"NOM_CHAM" に項目を追加し、"DEPL" (変位) を設定。
  19. 左端にタブがあり、"History View" と "Case View" とある (現在は "Case View" になっている)。これの "History View" を表示。"CurrentCase" の "Stage_1" のアイコンをクリック。ここで一旦設定を保存する。
  20. 下の "Run" ボタンを押す。
    UnicodeDecodeError が出るかもしれない。その場合は下記の内容の sitecustomize.py を ~/salome_meca/appli_V2018.0.1_public/lib/python2.7/site-packages/salome に置く。
    import sys
    sys.setdefaultencoding("utf-8")
    
  21. 結果の表示に移る。"ParaVIS" ボタンを押して ParaVIS モジュールを起動する。
  22. Open アイコンで "result.med" を開く。
  23. メニュー [Filter] (フィルター) で Wrap By Vector を選ぶと、変形図を描かせることができる。
  24. メニュー [File]-[Save] ([ファイル]-[保存]) でデータを保存する。

参考

古い情報