コピペコード
Windowsで使うMEEP入門

物体形状と電磁場のマッピング

シミュレーションを実行した物体の形状をマッピングし、画像として確認する。

h5ファイルをPNGファイルに変換

MEEPシュミレーションを実行すると、h5ファイルが作られる。このファイルに物体の形状が保存されている。 これをPNG画像ファイルに変換する。

  1. PNG画像ファイルに変換する。 h5topng test01-eps-000000.00.h5
  2. これでPNGファイルができれば良いが、エラー「h5topng error: invalid colormap file」が出ることがある。
  3. [home] > [anaconda3] > [pkgs] > [h5utils-1.13.1-nompi_h8a2d148_1105] > [share] > [h5utils] の中にあるcolormapsフォルダを作業ディレクトリへコピーする。
  4. カラーマップを明示的に指定してPNG画像ファイルに変換する。 h5topng test01-eps-000000.00.h5 -c ./colormaps/gray

物体形状のPNG画像ファイルができた。

電磁場をPNG画像にする

シミュレーション結果の電磁場もh5ファイルに保存されている。これも同じようにPNG画像ファイルに変換できる。

  1. カラーマップを明示的に指定してPNG画像ファイルに変換する。 h5topng test01-ey-000000.00.h5 -c ./colormaps/dkbluered

電磁場形状のPNG画像ファイルができた。

Pythonでオーバーレイ画像を作る

例えばJupyter notebookでも開いて、Pythonでh5ファイルを直接読み込んで、オーバーレイ画像を作ることもできる。

import h5py
import numpy as np
import matplotlib.pyplot as plt

eps = np.array(h5py.File('test01-eps-000150.00.h5','r')['eps'])
ey = np.array(h5py.File('test01-ey-000150.00.h5','r')['ey'])

plt.figure(dpi=100)
plt.imshow(eps_data.transpose(), interpolation='spline36', cmap='Greys')
plt.imshow(ey_data.transpose(), interpolation='spline36', cmap='RdYlBu', alpha=0.8)
plt.xlim(30,70)
plt.ylim(30,60)
plt.axis('off')
plt.show()