Hi meep users!

I am trying to simulate with meep the propagation of the E-field in free
space but I am having some problems with the results.

My simulation environment is very simple:
As you can see in the c++ code bellow I am taking an empty 2-D box of
dimensions 1000x1000 with resolution = 1 and pml thickness = 200.
What I wanna do is to emit the Electric field in a certain point of the box
by using a "point source" and see how does this field propagate in free
space.
To do that I am taking the results given by FDTD simulation for several
point with different distance from the source (for example: the points that
lies in the segment y = y_source) and compare them with
the theoretical results (E_rx = E_0 * exp(-jkd)/d ).
E_0 is the value of the E field in FDTD simulation for the source point and
"d" is the distance.
I theory I should obtain the same result, but in practice it is not so.
To match the results I should divide the E field obtained by FDTD with a
coefficient which I don't know where it comes from...!!!
The strange thing is that this required coefficient changes with the
frequency.
For simulations at 3GHz for example the results matches, so the coeff is
equal to 1, but at 3.5GHz it is needed a dividing coeff equal to 1.1, at 4
GHz equal to 1.2, at 4.5 GHz equal to 1.3 and so on...
So it seams to be a function of frequency. I don't understand why!!!?
I think it is a problem related to the units of meep but I don't know
how.How can I convert the E-field from meep units to V/m?

Could any one help me with this?

My simulation code for the FDTD is:

  frequency = f / c * 0.001;

  double resolution = 1;         //resolution is 1mm

  meep::grid_volume area = meep::vol2d(1000.0,1000.0, resolution);      //
10m x 10m

  wedge_pec w(eps_pec);

  meep::structure structure(area, w, meep::pml(200.0));        // 2m of PML

  meep::fields scenario(&structure);

  meep::continuous_src_time source(frequency);

  scenario.add_point_source(meep::Ez, source, meep::vec(250.0,
750.0),std::complex<double>(1.0,0.0));

  scenario.solve_cw(1e-6,10000,3);

  scenario.output_hdf5(meep::Ez, area.surroundings());

Thank you in advance.

Best Regards,
Ervis
_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to