Hi Steven,
What you are saying is really very helpful. In fact I had no idea I
have to supply the symmetric
source. I will try it right now and see how it goes.
On the other hand I dont understand the thing with the symmetric eps.
Although I dont know how meep works internally with the symmetries I
have been checking already many times
what requests it sends to the eps function. From what I have found
out, if there is any symmetry meep
asks the eps function only about one relevant half of the volume.
So lets say I declare the calculation volume :
volume v = vol3d(10,10,10, resolution);
And then I specify the X symmetry :
structure s(v, eps, pml(1.0), meep::mirror(meep::X, v));
Then all the vector requests that come to the eps function have x coordinate
between 0 and 5 (or precisely between -0.xx and 5.xx but that is just
a minor issue).
What I meen is that whatever I specify inside the eps function for x
bigger then 5 (so for the second half)
has absolutely no meening because meep will never ask for it.
So how can I have any influence on divergences ?
Thomas Jefferson
2008/7/30 Steven G. Johnson <[EMAIL PROTECTED]>:
> Your problem seems to stem from the fact that neither your structure
> nor your sources obey the symmetry you specified.
>
> On Jul 22, 2008, at 9:40 PM, Jefferson Thomas wrote:
>> meep::symmetry S=meep::identity();
>> S = S+ meep::mirror(meep::X, v)*(-1); /// Introducing symmetries
>> on X and Y axis
>> S = S+ meep::mirror(meep::Y, v)*(-1);
>>
>> f.add_point_source(Ex, src, vec(1.8344, 1.2, 0.4));
>
> First, note that your source does not obey the symmetry you specified
> (odd in X and in Y around the center of the volume).
>
> The odd mirror in X would imply that you have a second source at
>
> f.add_point_source(Ex, src, vec(4 - 1.8344, 1.2, 0.4));
>
> This isn't so bad a mistake, because Meep will effectively add the
> second source for you, albeit with half the amplitude....but this
> isn't really documented. The documented behavior is that if your
> sources do not obey the symmetry, Meep's behavior is undefined.
>
> However, the odd mirror in Y is wrong because your Ex is at the center
> of the cell in the y direction, and such a source has even mirror
> symmetry in Y. You should definitely correct this is you want to use
> the results of this simulation.
>
> Finally, your epsilon function does not seem to obey your mirror
> symmetry along the X direction. This seems to be the cause of your
> divergence. If I modify your eps() function to manually force the
> symmetry, by adding "if (x > 2) x = 4 - x;" immediately after x is
> assigned, then the divergence goes away for me.
>
> Steven
>
> _______________________________________________
> meep-discuss mailing list
> [email protected]
> http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss
>
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss