Sources

EM source types and source time waveforms in WiTwin Maxwell

Overview#

Sources inject electromagnetic fields into the simulation domain. Every source takes an optional source_time waveform. If omitted, it defaults to a continuous wave (CW) at the simulation frequency.

Source Time Waveforms#

CW — Continuous Wave#

mw.CW(frequency=1.0e9, amplitude=1.0, phase=0.0)
ParameterDefaultDescription
frequencyrequiredFrequency in Hz. Must be > 0
amplitude1.0Peak amplitude
phase0.0Initial phase in radians

GaussianPulse#

A Gaussian-modulated sinusoidal pulse. Suitable for broadband multi-frequency simulations.

mw.GaussianPulse(frequency=1.0e9, fwidth=0.25e9, amplitude=1.0, phase=0.0)
ParameterDefaultDescription
frequencyrequiredCenter frequency in Hz
fwidthrequiredFrequency width (bandwidth) in Hz
amplitude1.0Peak amplitude
phase0.0Initial phase in radians
delayNoneTime delay in seconds. Defaults to 6 / (2π × fwidth)

RickerWavelet#

A second-derivative Gaussian wavelet. Zero DC component, useful for seismic and acoustic simulations.

mw.RickerWavelet(frequency=1.0e9, amplitude=1.0)
ParameterDefaultDescription
frequencyrequiredPeak frequency in Hz
amplitude1.0Peak amplitude
delayNoneTime delay. Defaults to 4 / (π × frequency)

Source Types#

PointDipole#

A point electric dipole source at a fixed position.

mw.PointDipole(
    position=(0.0, 0.0, -0.06),
    polarization="Ez",
    width=0.04,
    source_time=mw.GaussianPulse(frequency=1.0e9, fwidth=0.25e9, amplitude=50.0),
)
ParameterDefaultDescription
positionrequiredSource position (x, y, z)
polarization"Ez"Polarization direction. One of "Ex", "Ey", "Ez", or a unit vector
width0.02Source width. Must be > 0
profile"gaussian"Spatial profile. One of "gaussian", "ideal"
source_timeNoneSource waveform. Defaults to CW
nameNoneOptional source name

PlaneWave#

A uniform plane wave propagating in a given direction.

mw.PlaneWave(
    direction=(0.0, 0.0, 1.0),
    polarization=(1.0, 0.0, 0.0),
    source_time=mw.GaussianPulse(frequency=1.0e9, fwidth=0.25e9),
)
ParameterDefaultDescription
direction(0, 0, 1)Propagation direction unit vector. Must be orthogonal to polarization
polarization(1, 0, 0)Polarization unit vector
source_timeNoneSource waveform
injection"soft"Injection mode. "soft" or TFSF(bounds=...)
injection_axisNoneInjection axis override. One of "x", "y", "z", or None
nameNoneOptional source name

GaussianBeam#

A Gaussian beam focused at a given point.

mw.GaussianBeam(
    direction=(0.0, 0.0, 1.0),
    polarization=(1.0, 0.0, 0.0),
    beam_waist=0.5,
    focus=(0.0, 0.0, 0.0),
    source_time=mw.GaussianPulse(frequency=1.0e9, fwidth=0.25e9),
)
ParameterDefaultDescription
direction(0, 0, 1)Propagation direction unit vector
polarization(1, 0, 0)Polarization unit vector. Must be orthogonal to direction
beam_waist0.5Beam waist radius. Must be > 0
focus(0, 0, 0)Focal point position
source_timeNoneSource waveform
injection"soft"Injection mode. "soft" or TFSF(bounds=...)
nameNoneOptional source name

ModeSource#

A modal source injecting a waveguide mode. Currently experimental.

mw.ModeSource(
    position=(0.0, 0.0, 0.0),
    size=(1.0, 1.0, 0.0),
    mode_index=0,
    direction="+",
    source_time=mw.CW(frequency=1.0e9),
)
ParameterDefaultDescription
position(0, 0, 0)Source center position
size(1, 1, 0)Source plane size. Exactly one component must be zero to define the injection plane
mode_index0Mode index to inject. Must be >= 0
direction"+"Propagation direction. "+" or "-"
polarization"auto"Polarization axis. "auto", "Ex", "Ey", "Ez", or a unit vector
source_timeNoneSource waveform

Note

ModeSource is available but marked experimental. Behavior may change in future releases.

TFSF — Total Field / Scattered Field#

Defines a total-field/scattered-field injection region for use with PlaneWave or GaussianBeam:

mw.PlaneWave(
    direction=(0.0, 0.0, 1.0),
    polarization=(1.0, 0.0, 0.0),
    injection=mw.TFSF(bounds=((-0.2, 0.2), (-0.2, 0.2), (-0.2, 0.2))),
)

Next Steps#