tidy3d.GaussianDoping#

class GaussianDoping[source]#

Bases: AbstractDopingBox

Sets a gaussian doping in the specified box.

Parameters:
  • attrs (dict = {}) – Dictionary storing arbitrary metadata for a Tidy3D object. This dictionary can be freely used by the user for storing data without affecting the operation of Tidy3D as it is not used internally. Note that, unlike regular Tidy3D fields, attrs are mutable. For example, the following is allowed for setting an attr obj.attrs['foo'] = bar. Also note that Tidy3D` will raise a TypeError if attrs contain objects that can not be serialized. One can check if attrs are serializable by calling obj.json().

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

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

  • ref_con (PositiveFloat) – Reference concentration. This is the minimum concentration in the box and it is attained at the edges/faces of the box.

  • concentration (PositiveFloat) – The concentration at the center of the box.

  • width (PositiveFloat) – Width of the gaussian. The concentration will transition from ‘concentration’ at the center of the box to ‘ref_con’ at the edge/face of the box in a distance equal to ‘width’.

  • source (str = xmin) – Specifies the side of the box acting as the source, i.e., the face specified does not have a gaussian evolution normal to it, instead the concentration is constant from this face. Accepted values for ‘source’ are [‘xmin’, ‘xmax’, ‘ymin’, ‘ymax’, ‘zmin’, ‘zmax’]

  • dimension (For translationally invariant behavior in one)

  • the (the box must have infinite size in)

  • direction. (homogenous (invariant))

Notes

The Gaussian doping concentration \(N\) is defined in the following manner:

  • \(N=N_{\text{max}}\) at locations more than :math:width um away from the sides of the box.

  • \(N=N_{\text{ref}}\) at location on the box sides.

  • a Gaussian variation between \(N_{\text{max}}\) and \(N_{\text{ref}}\) at locations less than width

um away from the sides.

By definition, all sides of the box will have concentration \(N_{\text{ref}}\) (except the side specified as source) and the center of the box (width away from the box sides) will have a concentration \(N_{\text{max}}\).

\[N = \{N_{\text{max}}\} \exp \left[ - \ln \left( \frac{\{N_{\text{max}}\}}{\{N_{\text{ref}}\}} \right) \left( \frac{(x|y|z) - \{(x|y|z)_{\text{box}}\}}{\text{width}} \right)^2 \right]\]

Example

>>> import tidy3d as td
>>> box_coords = [
...     [-1, -1, -1],
...     [1, 1, 1]
... ]
>>> gaussian_box1 = td.GaussianDoping(
...     center=(0, 0, 0),
...     size=(2, 2, 2),
...     ref_con=1e15,
...     concentration=1e18,
...     width=0.1,
...     source="xmin"
... )
>>> gaussian_box2 = td.GaussianDoping.from_bounds(
...     rmin=box_coords[0],
...     rmax=box_coords[1],
...     ref_con=1e15,
...     concentration=1e18,
...     width=0.1,
...     source="xmin"
... )

Attributes

sigma

The sigma parameter of the pseudo-gaussian

attrs

Methods

Inherited Common Usage

ref_con#
concentration#
width#
source#
property sigma#

The sigma parameter of the pseudo-gaussian

__hash__()#

Hash method.