tidy3d.components.medium.AbstractPerturbationMedium#

class AbstractPerturbationMedium[source]#

Abstract class for medium perturbation.

Parameters:
  • subpixel (bool = True) – This value will be transferred to the resulting custom medium. That is, if True, the subpixel averaging will be applied to the custom medium. The type of subpixel averaging method applied is specified in Simulation’s field subpixel. If the resulting medium is not a custom medium (no perturbations), this field does not have an effect.

  • perturbation_spec (Optional[Union[PermittivityPerturbation, IndexPerturbation]] = None) – Specification of medium perturbation as one of predefined types.

__init__(**data)#

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Methods

coerce_numpy_scalars_for_model(data)

coerce numpy scalars / size-1 arrays to native Python scalars, but only for fields whose annotations allow scalars.

construct([_fields_set])

copy([deep, validate, update])

Return a copy of the model.

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

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.

find_paths(target_field_name[, ...])

Finds paths to nested model instances that have a specific field, optionally matching a value.

find_submodels(target_type)

Finds all unique nested instances of a specific Tidy3D model type within this model.

from_file(fname[, group_path, lazy, on_load])

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, **model_validate_kwargs)

Load a Tidy3dBaseModel from .json file.

from_orm(obj)

from_unperturbed(medium[, subpixel, ...])

Construct a medium with pertubation models from an unpertubed one.

from_yaml(fname, **model_validate_kwargs)

Loads Tidy3dBaseModel from .yaml file.

generate_docstring([show_default_args, ...])

Generates a docstring for a Tidy3D model.

get_sub_model(group_path, model_dict)

Get the sub model for a given group path.

get_submodels_by_hash()

Return a mapping {hash(submodel): [field_path, ...]} for every nested Tidy3dBaseModel inside this model.

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.

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

model_construct([_fields_set])

model_copy(*[, update, deep])

model_dump(*[, mode, include, exclude, ...])

model_dump_json(*[, indent, ensure_ascii, ...])

model_json_schema([by_alias, ref_template, ...])

model_parametrized_name(params)

model_post_init(context, /)

This function is meant to behave like a BaseModel method to initialise private attributes.

model_rebuild(*[, force, raise_errors, ...])

Try to rebuild the pydantic-core schema for the model.

model_validate(obj, *[, strict, extra, ...])

model_validate_json(json_data, *[, strict, ...])

model_validate_strings(obj, *[, strict, ...])

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

parse_obj(obj)

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

perturbed_copy([temperature, ...])

Sample perturbations on provided heat and/or charge data and create a custom medium.

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

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)

updated_copy([path, deep, validate])

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

validate(value)

Attributes

model_computed_fields

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_extra

Get extra fields set during validation.

model_fields

model_fields_set

Returns the set of fields that have been explicitly set on this model instance.

subpixel

perturbation_spec

attrs

subpixel#
perturbation_spec#
abstract perturbed_copy(temperature=None, electron_density=None, hole_density=None, interp_method='linear')[source]#

Sample perturbations on provided heat and/or charge data and create a custom medium. Any of temperature, electron_density, and hole_density can be None. If all passed arguments are None then a non-custom medium is returned. All provided fields must have identical coords.

Parameters:
Returns:

Medium specification after application of heat and/or charge data.

Return type:

Union[AbstractMedium, AbstractCustomMedium]

classmethod from_unperturbed(medium, subpixel=True, perturbation_spec=None, **kwargs)[source]#

Construct a medium with pertubation models from an unpertubed one.

Parameters:
Returns:

Resulting medium with perturbation model.

Return type:

AbstractPerturbationMedium