On 09/11/2020 03:54, Ardavan Oskooi wrote:
sources = [mp.GaussianBeamSource(src=mp.ContinuousSource(fcen),
center=mp.Vector3(),
size=mp.Vector3(s,s,0),
beam_x0=beam_x0,
beam_kdir=beam_kdir,
beam_w0=beam_w0,
beam_E0=mp.Vector3(1,1j,0))]
Many thanks for your help, Ardavan. This works like a charm in 3d. I'd
like to use 2d for efficiency, and so far my efforts fail. In 2d I have
a source definition like:
beam_x0 = mp.Vector3(0,0,0) # beam center
rot_angle = math.radians(0) # CCW rotation angle about z axis (0: +y axis)
beam_kdir = mp.Vector3(0,1,0).rotate(mp.Vector3(0,0,1),rot_angle) # beam
propagation direction
beam_w0 = 0.8 # beam waist radius
fcen = 1
df=0.1
sources = [mp.GaussianBeamSource(src=mp.ContinuousSource(frequency=fcen,
fwidth=df),
center=mp.Vector3(0,0,0),
size=mp.Vector3(s,0,0),
beam_x0=beam_x0,
beam_kdir=beam_kdir,
beam_w0=beam_w0,
beam_E0=mp.Vector3(1,0,0)]
If I set beam_E0=mp.Vector3(1,0,0) or beam_E0=mp.Vector3(0,0,1) it works
fine, but if E0 is set to any other direction such as
beam_E0=mp.Vector3(1,0,1) or beam_E0=mp.Vector3(1j,0,1) then I end up
with fields of zero. Normalizing |E0| to 1 doesn't help.
Is there any way to generate a circular polarized Gaussian beam in 2d?
(it's possible with a simulated QWP, of course)
Many thanks,
Ian
_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss