FreeCAD 0.21でElmer FEM (MPIバージョン)を使用するための手順を整理した.
前提条件
・FreeCADがインストールされている(今回は0.21を使う)
1. 準備
1.1. Elmerのダウンロード
FreeCADにはElmerの実行に必要ななファイルが含まれていないため,まずElmer本体をダウンロードする必要がある.
SourceForgeのElmerのページから,MPIバージョンのZIPファイル(ElmerFEM-gui-mpi-Windows-AMD64.zip)をダウンロードする.ダウンロードしたら解凍してProgram Filesなどに配置する.
1.2. Microsoft MPIのインストール
MPIバージョンのElmerを実行するために必要なのでインストールする.Microsoft MPIで検索すれば公式のダウンロードサイトが見つかる.
1.3. FreeCADの設定
FreeCADの設定>有限要素法>Elmerへと進む.設定に有限要素法の項目が表示されない場合は,ワークベンチをFEMに変更してから設定画面を開けば表示される.
Elmerバイナリの項目でElmerGridとElmerSolverのチェックを解除し,ElmerGrid.exeとElmerSolver_mpi.exeのパスを設定する.それぞれのexeファイルは,先にダウンロードしたElmerフォルダのbinフォルダの中にある.
なお,ElmerSolverについては非MPIのElmerSolver.exeも同梱されているので間違えないよう注意する.
最後に,Multithreadingの項目を任意の値に変更する.これでFreeCAD上でElmerを実行できるようになった.
2. Elmerによる熱伝導解析
直方体モデルの両端に温度差を与え,その時の温度分布を計算する.
2.1. プリ処理
以降はモデル作成後,FEMワークベンチでの操作.
1) タスクバーのAボタンを押してAnalysisを追加する.2) タスクバーのEボタン(CalculiXソルバアイコンの右にある)を押してElmerソルバを追加する.ボタンがない場合は求解メニュー(英語UIの場合はSolve)から追加する.
3) SolverElmerをクリックすると,タスクバーEボタンの右にあるいくつかのボタンがアクティブになる.ここで構造解析や熱伝導解析など解析手法(Equation)を選択できる.
今回は熱伝導解析をするので温度計アイコンを選択する.
SolverElmerの下にHeartの項目が追加される.
3) Heartをクリックする.ソリッド選択画面が開くので追加する.
なお,タスクタブで温度を設定しても初期値の300Kに戻ってしまう不具合に遭遇した.プロパティウインドウからならちゃんと設定できた.
5) 材質を設定する.今回はABSとした.
2.2. 解析実行
コンボビューのSolverElmerをダブルクリックしてソルバコントロールを開く.まず,Writeボタンで解析設定用のファイルを生成する.次にRunボタンで実行する.
2.3. ポスト処理
※ここでの操作はFreeCAD0.21のものとなる.0.20以前とは異なるため注意.
解析が終わるとコンボビューにSolverElmerOutputとSolverElmerResultが追加される.
SolverElmerResultをダブルクリックすると結果表示オプションへ移動するので,モードをSurface,カラーリングのフィールドをtemperatureに設定する.
これでモデル表面の温度分布を可視化できるようになったが,真っ赤となってしまう.これはカラーバーの範囲が初期値では-0.5~0.5となっているため.
3. 解析速度の比較
MPIによる並列化でどれくらい計算が速くなるか,シングルスレッドと4スレッドで比較した.なお,スレッド数による効果がわかりやすくなるように,上述の解析の時よりメッシュをかなり細かくした.
シングルスレッドの場合,Write44秒+Run68秒=112秒かかった.これに対して4スレッドではWrite50秒+Run21秒=71秒だった.
Write+Runでは4スレッドのほうが約1.6倍,Runに限れば3.2倍速くなり,しっかりとマルチスレッドの効果が出ていることがわかった.
0 件のコメント:
コメントを投稿