はじめに
Salome で OpenFOAM 用メッシュを作成する。
使用バージョン
SALOME-MECA-2011.1-x86_64, OpenSUSE 11.3 x86_64
インストール
Salome-Meca は Code_Aster のページ から入手できる。
パッケージを展開。
$ tar xvzf SALOME-MECA-2011.1-LGPL-x86_64.tgz -C ~/
$ cd ~/SALOME-MECA-2011.1-LGPL-x86_64
設定スクリプトの実行。
$ cd postinstall
$ ./postinstall.py
Salome-Meca を起動。
$ ..
$ ./runSalomeMeca
~/SALOME-MECA-2011.1-LGPL-x86_64 を PATH に追加しておくとよい。~/.bashrc につぎのように記述する。
export PATH=~/SALOME-MECA-2011.1-x86_64:$PATH
~/.bashrc を読み込み設定を反映させる。
$ . ~/.bashrc
Salome 入門
Salome は様々なモジュールで構成されており、それぞれのモジュールでメニューや操作が異なる。以下では Geometry モジュールを例にして基本的な使い方を示す。
Salome-Meca を起動。
$ runSalomeMeca
"New document" ボタンを押してドキュメントを新規作成する。
新規ドキュメントが開く。
"Geometry" ボタンを押して Geometry モジュールを起動する。
ジオメトリ作成ボタンをどれか押す。
ダイアログが表示される。"Apply and Close" ボタンを押すと、形状が作成される。
表示モードの切り替え
メニューの [View]-[Display Mode] で "Wireframe" と "Shading" の切り替えができる。
マウスによる画面操作
| 回転 | Ctrl + 右ボタンドラッグ |
| 平行移動 | Ctrl + 中央ボタンドラッグ |
| 拡大・縮小 | Ctrl + 左ボタンドラッグ/ホイール回転 |
オブジェクトの選択
| 直接選択 | 左クリック/Object Browser で項目クリック |
| 矩形選択 | 左ボタンドラッグ |
| 多角形選択 | 右ボタンドラッグしながら左クリック、終了は左ダブルクリック |
オブジェクトの作成・削除
オブジェクトの作成
オブジェクトの作成はメニュー [New Entity] かツールバーのボタンで行う
オブジェクトの削除
オブジェクトの削除は、オブジェクトを選択してポップアップメニュー (右クリック) "Delete" か、Del キーを押す。画面左の Object Browser でも可能。
オブジェクトの操作
オブジェクトの操作はメニュー [Operations] かツールバーのボタンで行う。ダイアログでオブジェクトを選択する場合、矢印ボタンを押した後、画面か Object Browser でオブジェクトを指定する (自動で選択されることもある)。
オブジェクトの表示・非表示
オブジェクトを選択してポップアップメニュー Hide/Show で表示・非表示を切り替えられる。Object Browser でも可能。
終了
メニュー [File]-[Exit] で終了。GUI が終了してもコマンドラインでは Python が起動したままになるので、Ctrl+D で終了する。
作成するモデル
 ミキシングエルボー
モデルの作成
- Salome を起動しドキュメントの新規作成、Geometry モジュールを起動する。
- メニュー [New Entity]-[Primitives]-[Cylinder] で円筒を作る。Radius : 5, Height : 30 とする。
- 円筒を回転する。その前に回転軸を作る。メニュー [New Entity]-[Basic]-[Point] で (0, 0, 0), (0, 1, 0) の 2 点を作る。メニュー [New Entity]-[Basic]-[Line] で先の 2 点から線分を作る。メニュー [Operations]-[Transformation]-[Rotation] で "Object" に円筒を選び、"Axis" に線分を選び、Angle に 90 を入れて、"Create a copy" のチェックを外して "Apply" ボタンを押す。
- Object Browser で円筒を右クリック、"Create Group" を選ぶ。ダイアログが表示されるので、"Shape Type" にフェイスを選び、円筒の端の面 (曲がり部を作るための面) を選んで "Add" ボタンを押し "Apply" ボタンを押す。名前はなんでもよい。
- 円筒の端の面を回転させて曲がり部を作る。その前に回転軸を作る。上と同様に (30, 0, 15) - (30, 1, 15) の線分を作る。メニュー [New Entity]-[Generation]-[Revolution] を選び、"Object" に Object Browser から円筒の端のグループを選択、"Axis" に回転軸を設定して "Angle" を -90 とし "Apply" ボタンを押す。
- 上と同様に曲がり部の端の面のグループを作る。今度はそれに対してメニュー [New Entity]-[Generation]-[Extrusion] を使って 30 だけ上に伸ばす。Vector が必要なので前もって (0, 0, 1) の Vector を作っておく。
- 半径 2.5、高さ 15 の円筒を作る。それを [Operations]-[Transformation]-[Translate] で -10 だけ z 方向に移動させる。そのあと、はじめに作った回転軸 (0, 0, 0) - (0, 1, 0) で -45 度回転させる。それを (50, 0, 15) 移動させる。それを曲がり部を作ったときの回転軸で 45 度回転させる。
- ソリッドをすべてくっつける。メニュー [Operations]-[Boolean]-[Fuse] で行うのだが、2 つずつしか選べないので、2 つずつちまちまくっつけていく。
- すべてくっつけたソリッドに対して、"Create Group" で境界条件をつける面を作成する。
- "Mesh" ボタンを押して Mesh モジュールを起動する。

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

- 境界上件をつける面を作成する。Object Browser の "Mesh_1" を右クリックし "Create Group" を選ぶ。"Elements Type" を "Face" にし、"Group type" を "Group on geometry" とする。"Geometry Object" の矢印ボタンで "Direct Geometry Selection" を選び、前もって作成しておいた境界条件用の面グループを選択する。必要な分だけグループを作成する。
- Object Browser の "Mesh_1" を右クリックし "Export to UNV file" を選び、UNV ファイル (メッシュファイル) を保存する。
OpenFOAM で UNV ファイルを使う場合は、ideasUnvToFoam で変換する。
$ ideasUnvToFoam Mesh_1.unv
|