Actually, a simpler way to set up a circularly polarized source is to use a single GaussianBeamSource object with complex elements for the beam_E0 parameter:

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))]

This is equivalent to the previous example involving two GaussianBeamSource objects with one of the objects containing beam_E0=mp.Vector3(0,1,0) and amplitude=1j.

On 11/8/20 19:09, Ardavan Oskooi wrote:

The following script launches a circularly polarized Gaussian beam source propagating along the +z direction in 3d. It is based on combining two overlapping GaussianBeamSource objects with orthogonal transverse polarization (Ex and Ey) that are 90° out of phase. Note that for this to work it is necessary to set force_complex_fields=True in the Simulation constructor (otherwise only the real part of the source is used by default). A 2d cross section of the beam profile is output at the end of the run.



_______________________________________________
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