Hi, as far as I can understand, the simulation should give correct
results no matter what units are used. The inverse square dependence
of |E(z)| should hold.

1) Can you please try to increase the resolution twice and look if
anything changes?

2) Do you use any dispersive medium (which would cause an exponential
decay in a longer distance)?

3) I would recommend to record the E field in time-domain and compare
the waveforms if possible. It may give a better insight what happens.

Just a little remark to the meep units: I am using SI units (e. g.
meters) except for the time-dependent units (which have to be scaled
by c=3e8 m/s) and except for the magnetic fields (which have to be
scaled by Z0=377 Ohm). Nothing seems to be complicated on this. I am
using python-meep as it provides excellent environment for simulation
data postprocessing.

Filip


2012/5/24, Ervis Kasa <erviskas...@gmail.com>:
> Hi Filip,
>
> Thank you for answering.
>
> Yeah, as you can see in my C++ code, I want to see how the E field
> propagates or decays with the distance.
> As you said, since we are in a 2-D environment the E-field intensity should
> decrease as a inverse square root of distance. To see if that's true I take
> different points (for example I take the points that lie in the same line
> as the source point) of my simulated area, knowing the distance of this
> points from the source and the intensity field I should be able to compare
> the simulated E field with the theoretical results which I am calculating
> with this formula: E = E_source * exp ( -j*k*d ) / sqrt(d).
> At 3 GHz this result have a very good match, but when I change the
> frequency they doesn't match anymore. This is strange, cos as you said it
> should not change with the frequency.
> That's why I think it might be a problem with the unit conversions. The E
> field that i am calculating theoretically is in V/m but I don't know if the
> one generated by meep has the same unit. From this dicrapancy it seams that
> the FDTD field should be converted into V/m, somehow. I found this website
> (
> http://meepunits.wikia.com/wiki/Meep_unit_transformation_Wiki)  in which
> there is a conversion table but the formulas that are there doesn't work
> for my case. :(
> There should be a logic explanation for that but I don't know how to get to
> it.
>
> If you still don't understand the problem, I can send you some generated
> data and the plots.
> I would really appreciate if you could help me with this, cos I have to
> finish my thesis in June and I stuck to this problem.
>
> Thank you again for your time Filip,
>
> Cheers,
> Ervis
>
>
>
> 2012/5/23 Filip Dominec <filip.domi...@gmail.com>
>
>> Hi, Ervis, am I correct that you simulate a 2-D source (which is
>> basically a little volume containing oscillating current with unknown
>> intensity) and you wish to observe how the E-field intensity decays
>> when you move from the source?
>>
>> I think you could first measure the field at several points with know
>> distance and make sure that the E-field intensity should decrease as a
>> inverse square root of distance in 2-D lossless simulation. This
>> should hold for any frequency, however, the frequencies may have
>> different amplitudes.
>>
>> Sorry if I am too confused to be helpful.
>> Filip
>>
>>
>>
>> 2012/5/23, Ervis Kasa <erviskas...@gmail.com>:
>> > 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