Hello everyone,
for my cylindrical 2D simulation I use a material function, above which should be air and some ground material (ε_r = 10, σ=0.001S/m) below.
I wondered, where MEEP introduces the (discontinuous) steps (i.e. where the grid points are).
I need to know this, because if I read out the fields out exactly above such a step, there will be a distortion due to a corner effect, which needs to be avoided (e.g. by reading out halfway between corners).
I need to know this, because if I read out the fields out exactly above such a step, there will be a distortion due to a corner effect, which needs to be avoided (e.g. by reading out halfway between corners).
For demonstration, I plotted this:
https://ibb.co/XWcvtxm
My grid resolution equals 4m (1/250 in MEEP).
Green grid: epsilon permittivity values (10 --> 1 transition)
Orange points: location of fields Ex and Ez readout, the maximum values of the field waveforms are plotted in green and red.
The red dots are where I guess that the Yee grid points of the E (or D)-field lie.
1) How does MEEP initialize the material function (shown in dash-dotted blue)? Does it check for any grid point if it below or above the material function (respectively if the coordinate criteria are met) and set the material there?
2) Is the assumption correct, that at 108.650 km and 108.800 there are the material function jumps (Ez becomes smaller, Ex larger, since the total field vector will rotate a litte)?
3) The epsilon matrix, that I read out with mp.Dielectric, has jumps all 2 m. Does the epsilon have kind of an own array, where the interpolated ε values are stored, which is of double resolution (2m) and further offset such that it lies in between D and H grid?
4) If 3) is (at least partly) correct, what purpose does it have, since the field at the 2m jump at the distance between 108.725 km and 108.750 km has obviously no real effect on the Ez-field (except for the jump in the readout)?
For me, 4) would mean, that this is just an imaginary epsilon scaling the E-field when read out close to this material border. But no corner effect is produced there, since I read in the docs, that MEEP internally stores the real epsilon discontinuously. This would result in jumps only as shown by the red solid line below the material function (which I again just guessed).
Most importantly:
5) How can I detect the corners reliably? I am not fully confident, if this integer division staircase approximation in the graph will always be aligned with the corners...of course I will check it for a larger region, but any suggestions?
I know these are a load of questions, but I would like to know, if I am on the right track, or if I am still missing something important, that I should consider?
Increasing the resolution is not an option unfortunately (in my special case).
Increasing the resolution is not an option unfortunately (in my special case).
Thank you very much for your input & comments in advance, it will help a lot! :)
Best regards,
Hannes
_______________________________________________ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss