Either both MEEP and my own simple FDTD code are wrong in the same
way, or an incoming cylindrical wave modelled in 1D cylindrical
coordinates (ie just r) behaves very oddly as it passes through the
origin.
I would expect that an incoming cylindrical wave (centred on r=0)
would pass through the coordinate origin (r=0) and turn into the same
cylindrical wave, but just outgoing. Of course, since r>=0, this
passing-through appears in the output rather like a reflection.
However, in my MEEP simulations (and my own FDTD, and those of a
colleague), an incoming wave with a single strong central peak
(even-like) exits after passing through the origin as a double peaked
wave (ie odd-like).
My intuition tells me that this simulated behaviour must be wrong --
can anyone convince me otherwise? I can also think of some
theoretical arguments, but until I organize (and examine) them
properly I'll spare you the details.
Also, if the origin-transformed wave is later reflected to go back
through the origin it emerges with a single strong central peak. A
small amount of ringing on the edges also accumulates, but this may
well be just some numerical dispersion.
Below is my test ctl file; it models a metallic ring of radius R
with a source at R/2; it's based on the ring-cyl.ctl example file.
I process the output with
h5math -e "log(abs(d1)+1/256)/( log(2))" resonator-cyl-ez-l2.h5
resonator-cyl-ez.h5
h5topng -Zc dkbluered resonator-cyl-ez-l2.h5
where I find that the log scale aids visibility of the main features.
My source is short & impulse-like, because it's easier to keep track
of the change in profile.
Look at the output -- the central maximum of the initial pulse comes
back from the origin with a central minimum.
================================
; Calculating 2d ring-resonator modes using cylindrical coordinates,
; from the Meep tutorial.
(define-param n 3.4) ; index of waveguide
(define-param w 1) ; width of waveguide
(define-param r 40) ; inner radius of ring
(define-param pad 1) ; padding between waveguide and edge of PML
(define-param dpml 2) ; thickness of PML
(define sr (+ r w pad dpml)) ; radial size (cell is from 0 to sr)
(set! dimensions CYLINDRICAL)
(set! geometry-lattice (make lattice (size sr no-size no-size)))
; in cylindrical coordinates, the phi (angular) dependence of the fields
; is given by exp(i m phi), where m is given by:
(set-param! m 0)
(set! geometry (list
(make block (center (+ r (/ w 2))) (size w infinity infinity)
(material perfect-electric-conductor))))
(set! pml-layers (list (make pml (thickness dpml))))
(set-param! resolution 20)
; If we don't want to excite a specific mode symmetry, we can just
; put a single point source at some arbitrary place, pointing in some
; arbitrary direction. We will only look for TM modes (E out of the plane).
(define-param fcen 0.001) ; pulse center frequency
(define-param df 2.0) ; pulse width (in frequency)
(set! sources (list
(make source
(src (make gaussian-src (frequency fcen) (fwidth df)))
(component Ez) (center (/ r 2) 0))))
; note that the r -> -r mirror symmetry is exploited automatically
(run-until 120
(at-beginning output-epsilon)
(to-appended "I"
(at-every 0.0625 (synchronized-magnetic output-tot-pwr))
)
(to-appended "ez"
(at-every 0.0625 output-efield-z))
)
================================
--
---------------------------------+---------------------------------
Dr. Paul Kinsler
Blackett Laboratory (Photonics) (ph) +44-20-759-47734 (fax) 47714
Imperial College London, [email protected]
SW7 2AZ, United Kingdom. http://www.qols.ph.ic.ac.uk/~kinsle/
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss