OpenEMS
かたっぱしから、電磁界シミュレータを入れて動かしてみるシリーズ。。 Pythonインターフェースで使えるMeepもいいんですが。。 Octaveで使えるというこちらのopenEMS ドイツ系のFDTDシミュレータです。
Install
ここを読んでから。。 このページから、Windows 64bit版の最新をとってくる
Zipを解凍して、FirstStepで確認する。
- コマンドウィンドウを開きます(「スタート」ボタン、「cmd」と入力)
- 現在のフォルダーをopenEMSインストールディレクトリに変更します。
- openEMSソルバーを呼び出します
>openEMS - そうすると、こんな応答があります。
Octaveが必須なので、こちらもインストール ここから最新版をインストール
立ち上げて、Pathを追加
>>addpath("c:/openEMS/matlab/");
そして、
>> InitCSX
を入れてみて、エラーが出たら、Pathが通ってないので、↑のaddpathを確認してみてください。
RunOpenEMS( '.', 'nonexistant.xml', '' )
と入れてみると、↓こんなエラーがでますが、OctaveとopenEMSがくっついた証拠です
---------------------------------------------------------------------- | openEMS 64bit -- version v0.0.35 | (C) 2010-2016 Thorsten Liebig <thorsten.liebig@gmx.de> GPL license ---------------------------------------------------------------------- Used external libraries: CSXCAD -- Version: v0.6.2 hdf5 -- Version: 1.8.12 compiled against: HDF5 library version: 1.8.12 tinyxml -- compiled against: 2.6.2 fparser boost -- compiled against: 1_57 vtk -- Version: 6.1.0 compiled against: 6.1.0 openEMS: Error File-Loading failed!!! File: nonexistant.xml
次にAppCSXCADを実行してみます。
>> CSXGeomPlot('nonexistant.xml')
と打ち込むと、こんなGUIが出てくれば、OKです。
チュートリアルをやってみる
チュートリアルにいろいろあります。チュートリアルのファイル類は、こちらのGithubにもあるので、それを取ってくるのがいいかも。。
とりあえず一番簡単なチュートリアルを実行してみましょう。
Parallel Plate Waveguide
とりあえず。。GithubからDownloadしてきて、Octaveで実行するのが簡単ですね。
新規ファイルを開いて、RUN
これあっという間に終わります。
途中、コマンドウィンドウで、Yes No聞かれたりします。Yesです(笑)
実行結果の可視化は、Paraviewを使うみたいです。
- ファイル/開くを選択し、「Et _ .. vtr」ファイルを選択します。
- Properties -> Apply
- Object Inspector -> Display -> Color by: E-Field
- Animation -> Play
- カラーマッピングを調整するために、データ範囲を再スケーリングする
- ヒント:paraview-filtersを使用して視覚化を改善することができます(たとえば、ワープバイベクトルフィルター、これも必ず適用してください)
とありますが、適当にいじってください(笑) 僕のページのOpenFOAMのParaviewコーナー見るといろいろ載っています。で、できた動画がこちらです。
warp-by-vector filter を使ってもう少し3D化してみました。
ホーンアンテナの放射パターン
こちらも。。Githubにスクリプトがあるので、そのままやってみましょう。シミュレーションには、そこそこの時間かかりました。10分くらいかな??
スクリプトは、簡単に説明すると。。
初期設定して、ホーンアンテナの形状を入力してメッシュにして、
計算条件を設定して、nf2ffという近傍界から遠方界を計算するライブラリに渡す設定をし、
openEMSで計算。そして、描画という流れです。
計算結果は、こんな感じでOctaveの描画として出てきます。
入力ポートのS11(反射係数)の周波数特性
放射パターン
放射パターン
3Dで書いた放射パターンですね。
そこそこの時間(10分)でできるので、スゴイですね。
Time for 1200 iterations with 8448048.00 cells : 469.71 sec
Speed: 21.58 MCells/s
とな。。
そろそろ、ラジコンとかの環境アセスにも使えそうな感じですね(笑)
コメントを残していただけるとありがたいです