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 anattr
obj.attrs['foo'] = bar
. Also note that Tidy3D` will raise aTypeError
ifattrs
contain objects that can not be serialized. One can check ifattrs
are serializable by callingobj.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
Methods
Inherited Common Usage
- ref_con#
- concentration#
- width#
- source#
- property sigma#
The sigma parameter of the pseudo-gaussian
- __hash__()#
Hash method.