Construct a `GaussianBeamSource`. + **`beam_x0` [`Vector3`]** — The location of the beam focus *relative* to the center of the source. The beam focus does *not* need to lie within the source region (i.e., the beam focus can be anywhere, inside or outside the cell, independent of th
(
self,
src,
center=None,
volume=None,
component=mp.ALL_COMPONENTS,
beam_x0=Vector3(),
beam_kdir=Vector3(),
beam_w0=None,
beam_E0=Vector3(),
**kwargs,
)
| 700 | """ |
| 701 | |
| 702 | def __init__( |
| 703 | self, |
| 704 | src, |
| 705 | center=None, |
| 706 | volume=None, |
| 707 | component=mp.ALL_COMPONENTS, |
| 708 | beam_x0=Vector3(), |
| 709 | beam_kdir=Vector3(), |
| 710 | beam_w0=None, |
| 711 | beam_E0=Vector3(), |
| 712 | **kwargs, |
| 713 | ): |
| 714 | """ |
| 715 | Construct a `GaussianBeamSource`. |
| 716 | |
| 717 | + **`beam_x0` [`Vector3`]** — The location of the beam focus *relative* to the center of the source. The beam focus does *not* need to lie within the source region (i.e., the beam focus can be anywhere, inside or outside the cell, independent of the position of the source). |
| 718 | |
| 719 | + **`beam_kdir` [`Vector3`]** — The propagation direction of the beam. The length is *ignored*. The wavelength of the beam is determined by the center frequency of the `Source.src` object and the refractive index (real part only) at the center of the source region. |
| 720 | |
| 721 | + **`beam_w0` [`number`]** — The beam waist radius. |
| 722 | |
| 723 | + **`beam_E0` [`Vector3`]** — The polarization vector of the beam. Elements can be complex valued (i.e., for circular polarization). The polarization vector must be *parallel* to the source region in order to generate a transverse mode. |
| 724 | """ |
| 725 | |
| 726 | super().__init__(src, component, center, volume, **kwargs) |
| 727 | self._beam_x0 = beam_x0 |
| 728 | self._beam_kdir = beam_kdir |
| 729 | self._beam_w0 = beam_w0 |
| 730 | self._beam_E0 = beam_E0 |
| 731 | |
| 732 | @property |
| 733 | def beam_x0(self): |