#include <meep.hpp>
using namespace meep;
const double eps1 = 12.0;
const double eps2 = 1.0;
const double dpml = 1.0;
const double wg_width = 1.0;
const double x_center = 8.0;
const double y_center = 4.0;
const double resolution = 10;
const complex<double> freq = 0.15;
const double fwidth = 0;
double eps(const vec &p)
{
if (p.y() > y_center - 0.5*wg_width && p.y() < y_center + 0.5*wg_width)
return eps1;
return eps2;
}
int main(int argc, char **argv)
{
initialize mpi(argc, argv);
const volume v = vol2d(2*x_center, 2*y_center, resolution);
structure s(v, eps, pml(dpml));
s.set_epsilon(eps, true); // averaging
fields f(&s);
f.output_hdf5(Dielectric, v.surroundings());
continuous_src_time src(freq, fwidth);
f.add_point_source(Ez, src, vec(x_center - 7.0, y_center + 0.0));
while (f.time() < 200) {
f.step();
}
f.output_hdf5(Ez, v.surroundings());
return 0;
}
pngファイルの作成は
$ h5topng -S3 -Zc dkbluered -a yarg -A eps-000000.00.h5 -d ez.r ez-000200.00.r.h5 $ h5topng -S3 -Zc dkbluered -a yarg -A eps-000000.00.h5 -d ez.i ez-000200.00.i.h5
上記のプログラムの場合,場のデータが虚部,実部の順番で保存されるので,"-d ez.r"を付けないと虚部を用いたグラフになってしまう.Meepのホームページの図とは一致するが,libctlを用いた場合の結果と異なってしまう.
- 実部

- 虚部

最終更新時間:2011年05月13日 15時30分23秒