tidy3d.components.source.field.BroadbandSource#

class BroadbandSource[source]#

Bases: Source, ABC

A source with frequency dependent field distributions.

Parameters:
  • name (Optional[str] = None) – Optional name for the source.

  • center (Optional[tuple[Union[float, autograd.tracer.Box], Union[float, autograd.tracer.Box], Union[float, autograd.tracer.Box]]] = None) – [units = um]. Center of object in x, y, and z.

  • size (tuple[Union[NonNegativeFloat, autograd.tracer.Box], Union[NonNegativeFloat, autograd.tracer.Box], Union[NonNegativeFloat, autograd.tracer.Box]]) – [units = um]. Size in x, y, and z directions.

  • source_time (Union[GaussianPulse, ContinuousWave, CustomSourceTime, BroadbandPulse, BasebandStep, BasebandGaussianPulse, BasebandRectangularPulse, BasebandCustomSourceTime]) – Specification of the source time-dependence.

  • num_freqs (int = 1) – Number of points used to approximate the frequency dependence of the injected field. For ‘chebyshev’, a Chebyshev interpolation is used with ‘num_freqs’ terms (max 20). For ‘pole_residue’, the mode solver samples at ‘num_freqs’ uniform frequencies and fits ceil((num_freqs - 1) / 3) poles; higher values provide denser sampling and more poles for the fit (max 50).

  • broadband_method (Literal['chebyshev', 'pole_residue'] = chebyshev) – Method for representing the frequency dependence of the injected field. ‘chebyshev’ uses Chebyshev polynomial interpolation (default). ‘pole_residue’ uses a pole-residue (vector fitting) decomposition with auxiliary differential equation (ADE) time stepping. The pole-residue method can be more accurate for highly dispersive modes and uses fewer broadband terms than frequency samples.

Attributes

frequency_grid

Frequency grid used to approximate frequency dependence.

num_freqs

broadband_method

source_time

size

center

name

num_freqs#
broadband_method#
property frequency_grid#

Frequency grid used to approximate frequency dependence.

For Chebyshev: returns num_freqs Chebyshev-spaced points. For pole_residue: returns num_freqs uniformly spaced points.