tidy3d.EMEModeSpec#
- class EMEModeSpec[source]#
Bases:
ModeSpec
Mode spec for EME cells. Overrides some of the defaults and allowed values.
- 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()
.num_modes (PositiveInt = 1) – Number of modes returned by mode solver.
target_neff (Optional[PositiveFloat] = None) – Guess for effective index of the mode.
num_pml (Tuple[NonNegativeInt, NonNegativeInt] = (0, 0)) – Number of standard pml layers to add in the two tangential axes.
filter_pol (Optional[Literal['te', 'tm']] = None) – The solver always computes the
num_modes
modes closest to the giventarget_neff
. Iffilter_pol==None
, they are simply sorted in order of decreasing effective index. If a polarization filter is selected, the modes are rearranged such that the firstn_pol
modes in the list are the ones with the selected polarization fraction larger than or equal to 0.5, while the nextnum_modes - n_pol
modes are the ones where it is smaller than 0.5 (i.e. the opposite polarization fraction is larger than 0.5). Within each polarization subset, the modes are still ordered by decreasing effective index.te
-fraction is defined as the integrated intensity of the E-field component parallel to the first plane axis, normalized to the total in-plane E-field intensity. Conversely,tm
-fraction uses the E field component parallel to the second plane axis.angle_theta (Literal[0.0] = 0.0) – [units = rad]. Polar angle of the propagation axis from the injection axis. Not currently supported in EME cells. Use an additional ‘ModeSolverMonitor’ and ‘sim_data.smatrix_in_basis’ to achieve off-normal injection in EME.
angle_phi (Literal[0.0] = 0.0) – [units = rad]. Azimuth angle of the propagation axis in the plane orthogonal to the injection axis. Not currently supported in EME cells. Use an additional ‘ModeSolverMonitor’ and ‘sim_data.smatrix_in_basis’ to achieve off-normal injection in EME.
precision (Literal['single'] = single) – The solver will be faster and using less memory under single precision, but more accurate under double precision. Only single precision is currently supported in EME.
bend_radius (Optional[float] = None) – [units = um]. A curvature radius for simulation of waveguide bends. Can be negative, in which case the mode plane center has a smaller value than the curvature center along the tangential axis perpendicular to the bend axis.
bend_axis (Optional[Literal[0, 1]] = None) – Index into the two tangential axes defining the normal to the plane in which the bend lies. This must be provided if
bend_radius
is notNone
. For example, for a ring in the global xy-plane, and a mode plane in either the xz or the yz plane, thebend_axis
is always 1 (the global z axis).track_freq (Optional[Literal['central', 'lowest', 'highest']] = None) – Parameter that turns on/off mode tracking based on their similarity. Can take values
'lowest'
,'central'
, or'highest'
, which correspond to mode tracking based on the lowest, central, or highest frequency. IfNone
no mode tracking is performed, which is the default for best performance.group_index_step (Union[PositiveFloat, bool] = False) – Control the computation of the group index alongside the effective index. If set to a positive value, it sets the fractional frequency step used in the numerical differentiation of the effective index to compute the group index. If set to True, the default of 0.005 is used.
Attributes
Methods
Inherited Common Usage
- track_freq#
- angle_theta#
- angle_phi#
- precision#
- __hash__()#
Hash method.