Plugins#

Mode Solver#

tidy3d.plugins.mode.ModeSolver

Interface for solving electromagnetic eigenmodes in a 2D plane with translational invariance in the third dimension.

tidy3d.plugins.mode.ModeSolverData

Data associated with a ModeSolverMonitor: scalar components of E and H fields.

Dispersive Model Fitting#

tidy3d.plugins.dispersion.FastDispersionFitter

Tool for fitting refractive index data to get a dispersive medium described by PoleResidue model.

tidy3d.plugins.dispersion.AdvancedFastFitterParam

Advanced fast fitter parameters.

tidy3d.plugins.dispersion.DispersionFitter

Tool for fitting refractive index data to get a dispersive medium described by PoleResidue model.

tidy3d.plugins.dispersion.AdvancedFitterParam

Advanced fitter parameters

tidy3d.plugins.dispersion.web.run(fitter[, ...])

Execute the data fit using the stable fitter in the server.

tidy3d.plugins.dispersion.StableDispersionFitter

Deprecated.

Self-intersecting Polyslab#

tidy3d.plugins.polyslab.ComplexPolySlab

Interface for dividing a complex polyslab where self-intersecting polygon can occur during extrusion.

Scattering Matrix Calculator#

tidy3d.plugins.smatrix.ComponentModeler

Tool for modeling devices and computing scattering matrix elements.

tidy3d.plugins.smatrix.Port

Specifies a port in the scattering matrix.

tidy3d.plugins.smatrix.ModalPortDataArray

Port parameter matrix elements for modal ports.

tidy3d.plugins.smatrix.TerminalComponentModeler

Tool for modeling two-terminal multiport devices and computing port parameters with lumped ports.

tidy3d.plugins.smatrix.LumpedPort

Class representing a single rectangular lumped port

tidy3d.plugins.smatrix.LumpedPortDataArray

Port parameter matrix elements for lumped ports.

tidy3d.plugins.smatrix.CoaxialLumpedPort

Class representing a single coaxial lumped port

Resonance Finder#

tidy3d.plugins.resonance.ResonanceFinder

Tool that extracts resonance information from a time series of the form shown below.

Automatic Differentiation with Autograd#

tidy3d.plugins.autograd.functions.threshold(array)

Apply a threshold to an array, setting values below the threshold to vmin and values above to vmax.

tidy3d.plugins.autograd.functions.rescale(...)

Rescale an array from an arbitrary input range to an arbitrary output range.

tidy3d.plugins.autograd.functions.morphological_gradient_external(array)

Compute the external morphological gradient of an array.

tidy3d.plugins.autograd.functions.morphological_gradient_internal(array)

Compute the internal morphological gradient of an array.

tidy3d.plugins.autograd.functions.morphological_gradient(array)

Compute the morphological gradient of an array.

tidy3d.plugins.autograd.functions.grey_closing(array)

Perform grey closing on an array.

tidy3d.plugins.autograd.functions.grey_opening(array)

Perform grey opening on an array.

tidy3d.plugins.autograd.functions.grey_erosion(array)

Perform grey erosion on an array.

tidy3d.plugins.autograd.functions.grey_dilation(array)

Perform grey dilation on an array.

tidy3d.plugins.autograd.functions.pad(array, ...)

Pad an array along a specified axis with a given mode and padding width.

tidy3d.plugins.autograd.functions.convolve(...)

Convolve an array with a given kernel.

tidy3d.plugins.autograd.utilities.chain(*funcs)

Chain multiple functions together to apply them sequentially to an array.

tidy3d.plugins.autograd.utilities.make_kernel(...)

Create a kernel based on the specified type in n dimensions.

tidy3d.plugins.autograd.utilities.get_kernel_size_px([...])

Calculate the kernel size in pixels based on the provided radius and grid spacing.

tidy3d.plugins.autograd.primitives.gaussian_filter(...)

Multidimensional Gaussian filter.

tidy3d.plugins.autograd.invdes.grey_indicator(array)

Calculate the grey indicator for a given array.

tidy3d.plugins.autograd.invdes.make_circular_filter([...])

make_filter() with a default filter_type value of circular.

tidy3d.plugins.autograd.invdes.make_conic_filter([...])

make_filter() with a default filter_type value of conic.

tidy3d.plugins.autograd.invdes.make_curvature_penalty(...)

Create a penalty function based on the curvature of a set of points.

tidy3d.plugins.autograd.invdes.make_erosion_dilation_penalty(...)

Computes a penalty for erosion/dilation of a parameter map not being unity.

tidy3d.plugins.autograd.invdes.make_filter([...])

Create a filter function based on the specified kernel type and size.

tidy3d.plugins.autograd.invdes.make_filter_and_project([...])

Create a function that filters and projects an array.

tidy3d.plugins.autograd.invdes.ramp_projection(array)

Apply a piecewise linear ramp projection to an array.

tidy3d.plugins.autograd.invdes.tanh_projection(array)

Apply a tanh-based soft-thresholding projection to an array.

tidy3d.plugins.autograd.types.PaddingType

alias of Literal['constant', 'edge', 'reflect', 'symmetric', 'wrap']

tidy3d.plugins.autograd.types.KernelType

alias of Literal['circular', 'conic']

Adjoint#

tidy3d.plugins.adjoint.web.run

Submits a JaxSimulation to server, starts running, monitors progress, downloads, and loads results as a JaxSimulationData object.

tidy3d.plugins.adjoint.web.run_async

Submits a set of JaxSimulation objects to server, starts running, monitors progress, downloads, and loads results as a tuple of JaxSimulationData objects.

tidy3d.plugins.adjoint.JaxBox

A Box registered with jax.

tidy3d.plugins.adjoint.JaxPolySlab

A PolySlab registered with jax.

tidy3d.plugins.adjoint.JaxComplexPolySlab

A ComplexPolySlab registered with jax.

tidy3d.plugins.adjoint.JaxMedium

A Medium registered with jax.

tidy3d.plugins.adjoint.JaxAnisotropicMedium

A Medium registered with jax.

tidy3d.plugins.adjoint.JaxCustomMedium

A CustomMedium registered with jax.

tidy3d.plugins.adjoint.JaxStructure

A Structure registered with jax.

tidy3d.plugins.adjoint.JaxSimulation

A Simulation registered with jax.

tidy3d.plugins.adjoint.JaxSimulationData

A SimulationData registered with jax.

tidy3d.plugins.adjoint.JaxModeData

A ModeData registered with jax.

tidy3d.plugins.adjoint.JaxPermittivityDataset

A PermittivityDataset registered with jax.

tidy3d.plugins.adjoint.JaxDataArray

A DataArray-like class that only wraps xarray for jax compatibility.

tidy3d.plugins.adjoint.utils.filter.ConicFilter

Filter that convolves an image with a conical mask, used for larger feature sizes.

tidy3d.plugins.adjoint.utils.filter.BinaryProjector

Projects a grayscale image towards min and max values using a smooth tanh function.

tidy3d.plugins.adjoint.utils.penalty.RadiusPenalty

Computes a penalty for small radius of curvature determined by a fit of points in a 2D plane.

Inverse Design Plugin#

tidy3d.plugins.invdes.FilterProject

Transformation involving convolution by a conic filter followed by a tanh projection.

tidy3d.plugins.invdes.ErosionDilationPenalty

Erosion and dilation penalty, addable to tdi.TopologyDesignRegion.penalties.

tidy3d.plugins.invdes.TopologyDesignRegion

Design region as a pixellated permittivity grid.

tidy3d.plugins.invdes.InverseDesign

Container for an inverse design problem.

tidy3d.plugins.invdes.InverseDesignMulti

InverseDesign with multiple simulations and corresponding postprocess functions.

tidy3d.plugins.invdes.InverseDesignResult

Container for the result of an InverseDesign.run() call.

tidy3d.plugins.invdes.AdamOptimizer

Specification for an optimization.

Design Space Exploration#

tidy3d.plugins.design.ParameterFloat

Parameter containing floats.

tidy3d.plugins.design.ParameterInt

Parameter containing integers.

tidy3d.plugins.design.ParameterAny

Parameter containing a set of of anything.

tidy3d.plugins.design.MethodGrid

Select parameters uniformly on a grid.

tidy3d.plugins.design.MethodMonteCarlo

Select sampling points using Monte Carlo sampling (Latin Hypercube method).

tidy3d.plugins.design.MethodRandomCustom

Select parameters with an object with a user supplied sampler with a .random method.

tidy3d.plugins.design.MethodRandom

Select sampling points uniformly at random.

tidy3d.plugins.design.DesignSpace

Specification of a design problem / combination of several parameters + algorithm.

Waveguide#

tidy3d.plugins.waveguide.RectangularDielectric

General rectangular dielectric waveguide

Microwave#

tidy3d.plugins.microwave.AxisAlignedPathIntegral

Class for defining the simplest type of path integral, which is aligned with Cartesian axes.

tidy3d.plugins.microwave.VoltageIntegralAxisAligned

Class for computing the voltage between two points defined by an axis-aligned line.

tidy3d.plugins.microwave.CurrentIntegralAxisAligned

Class for computing conduction current via Ampère's circuital law on an axis-aligned loop.

tidy3d.plugins.microwave.CustomPathIntegral2D

Class for defining a custom path integral defined as a curve on an axis-aligned plane.

tidy3d.plugins.microwave.CustomVoltageIntegral2D

Class for computing the voltage between two points defined by a custom path.

tidy3d.plugins.microwave.CustomCurrentIntegral2D

Class for computing conduction current via Ampère's circuital law on a custom path.

tidy3d.plugins.microwave.ImpedanceCalculator

Tool for computing the characteristic impedance of a transmission line.