【電磁界シミュレータ】OpenEMS Octave(Matlab)から使えるFDTDシミュレータ【使えます】

スポンサーリンク
広告

OpenEMS

かたっぱしから、電磁界シミュレータを入れて動かしてみるシリーズ。。 Pythonインターフェースで使えるMeepもいいんですが。。 Octaveで使えるというこちらのopenEMS ドイツ系のFDTDシミュレータです。

  • openEMS — 3D FDTD package with GUI.
    • Matlab(Octave)・Paraview などを使う Matlabから下記のライブラリを使う構成
      • CSXCAD – A C++ library to describe geometrical objects and their physical or non-physical properties.
      • AppCSXCAD – A visualization program, capable of showing the structure defined inside a CSXCAD xml-file.
      • QCSXCAD – The visualisation library used by AppCSXCAD.
    • Octaveは必須

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コーナー見るといろいろ載っています。で、できた動画がこちらです。

openems Tutorial Parallel_Plate_Waveguide

warp-by-vector filter を使ってもう少し3D化してみました。

openems2 Parallel Plate Waveguide

ホーンアンテナの放射パターン

こちらも。。Githubにスクリプトがあるので、そのままやってみましょう。シミュレーションには、そこそこの時間かかりました。10分くらいかな??

スクリプトは、簡単に説明すると。。

初期設定して、ホーンアンテナの形状を入力してメッシュにして、

計算条件を設定して、nf2ffという近傍界から遠方界を計算するライブラリに渡す設定をし、

openEMSで計算。そして、描画という流れです。

計算結果は、こんな感じでOctaveの描画として出てきます。

入力ポートのS11(反射係数)の周波数特性

放射パターン

放射パターン

3Dで書いた放射パターンですね。

そこそこの時間(10分)でできるので、スゴイですね。

Time for 1200 iterations with 8448048.00 cells : 469.71 sec
Speed: 21.58 MCells/s

とな。。

そろそろ、ラジコンとかの環境アセスにも使えそうな感じですね(笑)

関連

【電磁界シミュレータ】かたっぱしから、インストールしてみようかと。。リンク・コメント集【EMCに使えるかな?】
電磁界シミュレータ シミュレータも道具なので、道具、測定器好きとしては、何か検索したりすると、ついそこを見てしまったりします(笑)GPUが...
【電磁界解析】そろそろパソコンレベルででもできるようになってるかな?シミュレーション【CAE】
CFDが動くんだから OpenFOAMで結構なことができることは、わかっている。 GPU使わなくても、そこそこの時間内でできるので、...

コメントを残していただけるとありがたいです

Loading Facebook Comments ...
%d人のブロガーが「いいね」をつけました。