tidy3d.components.material.multi_physics.MultiPhysicsMedium#

class MultiPhysicsMedium[source]#

Contains multiple multi-physical properties as defined for each solver medium.

Parameters:

Examples

For silica (\(SiO_2\)):
>>> import tidy3d as td
>>> SiO2 = td.MultiPhysicsMedium(
...   optical=td.Medium(permittivity=3.9),
...   charge=td.ChargeInsulatorMedium(permittivity=3.9), # redefining permittivity
...   name="SiO2",
... )

For a silicon MultiPhysicsMedium composed of an optical model from the material library and custom charge SemiconductorMedium:

>>> import tidy3d as td
>>> default_multiphysics_Si = td.MultiPhysicsMedium(
...     optical=td.material_library['cSi']['Green2008'],
...     charge=td.SemiconductorMedium(
...         N_c=2.86e19,
...         N_v=3.1e19,
...         E_g=1.11,
...         mobility_n=td.CaugheyThomasMobility(
...             mu_min=52.2,
...             mu=1471.0,
...             ref_N=9.68e16,
...             exp_N=0.68,
...             exp_1=-0.57,
...             exp_2=-2.33,
...             exp_3=2.4,
...             exp_4=-0.146,
...         ),
...         mobility_p=td.CaugheyThomasMobility(
...             mu_min=44.9,
...             mu=470.5,
...             ref_N=2.23e17,
...             exp_N=0.719,
...             exp_1=-0.57,
...             exp_2=-2.33,
...             exp_3=2.4,
...             exp_4=-0.146,
...         ),
...         R=[
...             td.ShockleyReedHallRecombination(
...                 tau_n=3.3e-6,
...                 tau_p=4e-6
...             ),
...             td.RadiativeRecombination(
...                 r_const=1.6e-14
...             ),
...             td.AugerRecombination(
...                 c_n=2.8e-31,
...                 c_p=9.9e-32
...             ),
...         ],
...         delta_E_g=td.SlotboomBandGapNarrowing(
...             v1=6.92 * 1e-3,
...             n2=1.3e17,
...             c2=0.5,
...             min_N=1e15,
...         ),
...         N_a=0,
...         N_d=0
...     )
... )
__init__(**kwargs)#

Init method, includes post-init validators.

Methods

__init__(**kwargs)

Init method, includes post-init validators.

add_type_field()

Automatically place "type" field with model name in the model field dictionary.

construct([_fields_set])

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.

copy([deep, validate])

Copy a Tidy3dBaseModel.

dict(*[, include, exclude, by_alias, ...])

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

dict_from_file(fname[, group_path])

Loads a dictionary containing the model from a .yaml, .json, .hdf5, or .hdf5.gz file.

dict_from_hdf5(fname[, group_path, ...])

Loads a dictionary containing the model contents from a .hdf5 file.

dict_from_hdf5_gz(fname[, group_path, ...])

Loads a dictionary containing the model contents from a .hdf5.gz file.

dict_from_json(fname)

Load dictionary of the model from a .json file.

dict_from_yaml(fname)

Load dictionary of the model from a .yaml file.

from_file(fname[, group_path])

Loads a Tidy3dBaseModel from .yaml, .json, .hdf5, or .hdf5.gz file.

from_hdf5(fname[, group_path, custom_decoders])

Loads Tidy3dBaseModel instance to .hdf5 file.

from_hdf5_gz(fname[, group_path, ...])

Loads Tidy3dBaseModel instance to .hdf5.gz file.

from_json(fname, **parse_obj_kwargs)

Load a Tidy3dBaseModel from .json file.

from_orm(obj)

from_yaml(fname, **parse_obj_kwargs)

Loads Tidy3dBaseModel from .yaml file.

generate_docstring()

Generates a docstring for a Tidy3D mode and saves it to the __doc__ of the class.

get_sub_model(group_path, model_dict)

Get the sub model for a given group path.

get_submodels_by_hash()

Return a dictionary of this object's sub-models indexed by their hash values.

get_tuple_group_name(index)

Get the group name of a tuple element.

get_tuple_index(key_name)

Get the index into the tuple based on its group name.

help([methods])

Prints message describing the fields and methods of a Tidy3dBaseModel.

insert_traced_fields(field_mapping)

Recursively insert a map of paths to autograd-traced fields into a copy of this obj.

json(*[, include, exclude, by_alias, ...])

Generate a JSON representation of the model, include and exclude arguments as per dict().

parse_file(path, *[, content_type, ...])

parse_obj(obj)

parse_raw(b, *[, content_type, encoding, ...])

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

strip_traced_fields([starting_path, ...])

Extract a dictionary mapping paths in the model to the data traced by autograd.

to_file(fname)

Exports Tidy3dBaseModel instance to .yaml, .json, or .hdf5 file

to_hdf5(fname[, custom_encoders])

Exports Tidy3dBaseModel instance to .hdf5 file.

to_hdf5_gz(fname[, custom_encoders])

Exports Tidy3dBaseModel instance to .hdf5.gz file.

to_json(fname)

Exports Tidy3dBaseModel instance to .json file

to_static()

Version of object with all autograd-traced fields removed.

to_yaml(fname)

Exports Tidy3dBaseModel instance to .yaml file.

tuple_to_dict(tuple_values)

How we generate a dictionary mapping new keys to tuple values for hdf5.

update_forward_refs(**localns)

Try to update ForwardRefs on fields based on this Model, globalns and localns.

updated_copy([path, deep, validate])

Make copy of a component instance with **kwargs indicating updated field values.

validate(value)

Attributes

name#
optical#
heat#
charge#
property heat_spec#
__hash__()#

Hash method.