Salome-Meca 入門

2016年8月19日

はじめに

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

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

使用環境

SALOME-MECA-2016-LGPL-1, Ubuntu 12.04 LTS

インストール

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

$ wget http://www.code-aster.org/FICHIERS/SALOME-MECA-2016-LGPL-1.tgz

パッケージを展開。

$ tar xvzf SALOME-MECA-2016-LGPL-1.tgz

インストーラの実行。

$ ./SMECA_V2016_LGPL.run

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

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

実行テスト。

$ cd opt/salome_meca/appli_V2016/
$ ./salome

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

※Python 2.x でないと起動しない。Python 3.x を使っている場合は、起動スクリプト appli_V2016/salome の先頭で 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" から "ja" を選んで、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" (アルゴリズム) として自動的に "Tetrahedron (Netgen)" (テトラメッシュを作るアルゴリズム) が選ばれる。"Apply and Close" (適用して閉じる) ボタンを押す。
  7. Object Browser の Mesh ツリーから今作ったメッシュ (名前を変えていなければ "Mesh_1") を選択、ポップアップメニューで "Compute" (メッシュを作成) を選ぶと、メッシュが作成される。
  8. 解析の設定に移る。"Aster" ボタンを押して Aster モジュールを起動する。
  9. "Linear Elastic" ボタンを押す。
    線形弾性体解析用の設定ウィザードが起動する。指示にしたがって進める。
    ※円筒をデフォルトのサイズで作成したなら、ヤング率 2.1e6、圧力 1e4 程度にすると、変形が見やすい。
    最後に command file の保存パスを聞かれるので、"job1.comm" などとする (名前は任意だが、拡張子は ".comm" とする)。
  10. Object Browser の Aster ツリー上に "linear-static" という項目ができるので、これを選び、右クリック・ポップアップメニューの "Edit" を選択。Name を command file の名前と同じにしておくとわかりやすい。
  11. Object Browser の "job1" ("linear-static" を改名したもの) の右クリック・ポップアップで "Run" を選ぶと、計算が始まる。セットアップに問題がなければ、xterm が起動して実行中のメッセージが流れる。計算が無事終わると、Object Browser の "job1" の "Results" ツリーに結果ファイル "job1.rmed" ができる。Code_Aster のメッセージは、"Results" ツリーの "job1.mess" を右クリックしてポップアップメニューを開き、"Read as text" で見ることができる。
  12. 結果の表示に移る。"ParaVIS" ボタンを押して ParaVIS モジュールを起動する。
  13. Open アイコンで "job1.med" を開く。
  14. メニュー [Filter] (フィルター) で Wrap By Vector を選ぶと、変形図を描かせることができる。
  15. メニュー [File]-[Save] ([ファイル]-[保存]) でデータを保存する。

細かい計算設定

細かい設定は、設定ファイル job1.comm を直接編集するなどすればよい。

保存データからの再開

データを読み込んですぐ Aster モジュールで計算データを編集しようとしてもできない。その場合は一度 Mesh モジュールを起動する。

古い情報