Models

Model classes

Model(**kwargs)

Abstract model class to calculate a component's S matrix.

AnalyticDirectionalCouplerModel(*, ...[, ...])

Analytic model for a 4-port directional coupler.

AnalyticMZIModel(*, n_eff1[, n_eff2, ...])

Analytic model for a 4-port Mach-Zehnder interferometer.

AnalyticWaveguideModel(*, n_eff[, length, ...])

Analytic model for waveguides, bends, and EO phase-shifters.

CircuitModel([mesh_refinement, verbose])

Model based on circuit-level S-parameter calculation.

CrossingModel(*[, t, x, r, ...])

Data model for a 4-port waveguide crossing.

DataModel([s_matrix, s_array, frequencies, ...])

Model based on existing S matrix data.

DirectionalCouplerModel([t, c, i, r, ports, ...])

Data model for a 4-port directional coupler.

EMEModel(eme_grid_spec[, medium, symmetry, ...])

S matrix model based on Eigenmode Expansion calculation.

PolarizationBeamSplitterModel(*[, t1, t2, ...])

Data model for a 3-port polarization beam splitter.

PolarizationSplitterRotatorModel(*[, s00, ...])

Data model for a polarization splitter rotator.

PowerSplitterModel([t, i, r0, r1, ports])

Data model for a 3-port power splitter.

TerminationModel([r])

Data model for a 1-port device.

Tidy3DModel([run_time, medium, symmetry, ...])

S matrix model based on Tidy3D FDTD calculation.

TwoPortModel([t, r0, r1, ports, ...])

Data model for a 2-port component.

WaveguideModel([n_complex, length, ...])

Data model for straight waveguides.

Time steppers

TimeStepper(**kwargs)

Abstract time stepper class used to time step a component.

CWLaserTimeStepper(*[, power, ...])

Time-stepper for a continuous-wave (CW) laser source.

CircuitTimeStepper([mesh_refinement, ...])

Circuit-level time stepper.

DMLaserTimeStepper(*, quantum_efficiency, ...)

Time-stepper for a directly modulated laser source.

DelayedTimeStepper([time_stepper, ...])

Time stepper that adds time delays to other time steppers.

OpticalNoiseTimeStepper(*, noise[, ...])

Time-stepper for an optical white-noise source.

OpticalPulseTimeStepper(*, energy, width[, ...])

Time-stepper for a Gaussian optical pulse source.

PhaseModTimeStepper(*[, length, n_group, ...])

Time-stepper for a uniform electro-optic phase modulator.

PhotodiodeTimeStepper(*, responsivity, gain)

Time-stepper for a photodiode and a transimpedance amplifier (TIA).

SMatrixTimeStepper([pole_residue_matrix, ...])

Time stepper based on a time-domain model.

WaveformTimeStepper(*, frequency[, ...])

Time-stepper for a signal generator from several waveforms.

Helper classes

PoleResidueMatrix(poles, residues[, ...])

Pole-residue representation of an S matrix.

SMatrix(frequencies, elements[, ports])

S matrix object.

TimeDomainModel(pole_residue_matrix, time_step)

Time-domain model based on a pole-residue representation of an S matrix.

TimeSeries(values, time_step[, time_index])

Time series data.

Helper functions

abort_pending_tasks()

Abort all known pending Tidy3D pending tasks.

frequency_classification(frequencies)

Return a classification for the frequencies: "optical" or "electrical".

load_snp(filename)

Load an S matrix from a Touchstone (snp) file.

pole_residue_fit(s_matrix[, initial_poles, ...])

Fit S matrix elements with rational functions sharing a set of poles.

register_model_class(*model_classes)

Register a model class derived from Model.

register_time_stepper_class(...)

Register a time stepper class derived from TimeStepper.

Caching

cache_s_matrix(start)

Decorator that can be used in Model.start() to cache results.

cache.cache_capacity(capacity)

Set the runtime cache capacity.

cache.clear_cache()

Clear the runtime caches, but not the file cache.