はじめに
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 による構造解析
丸棒の端を固定し、もう一端に荷重をかけて圧縮するという例を実行してみる。
※以下、一部古いバージョンの絵が混じっていますが、操作は変わらないので気にしないでください。項目は英語名を基本とし、日本語名を併記します。
- 上の手順にしたがって、Salome-Meca を起動し、ドキュメントを新規作成し、Geometry モジュールを有効にする。
- メニュー [New Entity]-[Primitives]-[Cylinder] ([新しいエンティティ]-[基本図形]-[円筒]) あるいはツールバーのボタンで円筒を作る。サイズは好きなようにする。
- Object Browser (オブジェクトブラウザー) でオブジェクトを選び右クリック、ポップアップメニューから "Create Group" (グループを作成) を選ぶ。
- "Shape Type" (オブジェクトの種類) でフェイスを選ぶ。"Group Name" (グループの名前) は好きにつけてよいが、ここでは "fix" とする。オブジェクトの底を選んで "Add" (追加) ボタンを押す。"Apply" (適用) ボタンを押すと、グループが作成される (Object Browser 上で見ることができる)。同様にして、オブジェクトの上面を選んで "load" というグループを作る。これらが境界条件が設定される場所になる。

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

- メニュー [Mesh]-[Create Mesh] ([メッシュ]-[メッシュを作成します。]) を選ぶ。Object Browser でオブジェクトを選ぶと、"Geometry" 欄に設定される。"Assign a set of hypotheses" (詳細設定セットの割当て) の "3D: Automatic Tetrahedralization" を選び、メッシュサイズを適当に設定する。"Algorithm" (アルゴリズム) として自動的に "NETGEN 3D" (テトラメッシュを作るアルゴリズム) が選ばれる。"Apply and Close" (適用して閉じる) ボタンを押す。
- Object Browser の Mesh ツリーから今作ったメッシュ (名前を変えていなければ "Mesh_1") を選択、ポップアップメニューで "Compute" (メッシュを作成) を選ぶと、メッシュが作成される。

- メッシュのポップアップメニュー "Create Groups from Geometry" の "Element" (要素) で Geometry の "Cylinder_1" からグループ "fix" と "load" を選択 (Shift を押しながらクリック) する。
- 解析の設定に移る。"AsterStudy" ボタンを押して Aster モジュールを起動する。

- "Choose code_aster version" と出たら、"stable" を選ぶ (計算実行時にも設定できる)。
- メニュー [Operations]-[Add Stage] で新しいステージを作成。
- 作成されたステージ "Stage_1" を右クリックして出てくるメニュー (画面上にもボタンがある) の [Mesh]-[Read a mesh] の "Mesh file location" で "Mesh_1" を選択。
- ステージのメニュー [Model Definition]-[Assign finite element] で "Finite element assignment" のアイコンをチェックし項目を追加、"Edit..." をクリック。"Exactly One" で "Everywhere" を選択。"Phenomenon" で "Mechanic" を選択、"Modelisation" でアイコンをクリックしアイテムを追加、"3D" を選択する。
- ステージのメニュー [Material]-[Define a material] で "Linear isotropic elasticity" にチェックを入れ、"Edit..." でヤング率とポアソン比を設定する。※円筒をデフォルトのサイズで作成したなら、ヤング率 2.1e6、圧力 1e4 程度にすると、変形が見やすい。
- ステージのメニュー [Material]-[Assign a material] で "At Least One" で "Model" にチェックを入れる。"Material assignment" のアイコンをクリックして項目を追加し "Edit..." をクリック、そこで "Exactly One" の "Everywhere" を選び、"Material" で項目を追加し、作成した物性を割り当てる。
- ステージのメニュー [BC and Load] を選択。"Name" を "fix" にする。"At Least One" で "Enforce DOF" のアイコンで項目を追加。"Edit..." をクリックし、"At Least One" - "Group of element" の "Edit..." で "fix" にチェック。"LIAISON" にチェック。同様に "load" に "PRES_REP" の "PRES" で圧力を設定する。
- ステージのメニュー [Analysis]-[Statics]-[Statics mechanical analysis] の "At least One" で "Material field" にチェックを入れる。"Loads" で "fix" と "load" を追加。
- ステージのメニュー [Output]-[Set ouput results] を選択。"Result file location" の "..." で保存ファイル名 "result.med" などを設定。"Results" に項目を追加して "Edit ..." をクリック、"At Least One" で "Result" にチェック。"NOM_CHAM" に項目を追加し、"DEPL" (変位) を設定。
- 左端にタブがあり、"History View" と "Case View" とある (現在は "Case View" になっている)。これの "History View" を表示。"CurrentCase" の "Stage_1" のアイコンをクリック。ここで一旦設定を保存する。
- 下の "Run" ボタンを押す。
UnicodeDecodeError が出るかもしれない。その場合は下記の内容の sitecustomize.py を ~/salome_meca/appli_V2018.0.1_public/lib/python2.7/site-packages/salome に置く。
import sys
sys.setdefaultencoding("utf-8")
- 結果の表示に移る。"ParaVIS" ボタンを押して ParaVIS モジュールを起動する。

- Open アイコンで "result.med" を開く。
メニュー [Filter] (フィルター) で Wrap By Vector を選ぶと、変形図を描かせることができる。
- メニュー [File]-[Save] ([ファイル]-[保存]) でデータを保存する。
参考
古い情報
|