tidy3d.plugins.adjoint.JaxStructure#

class tidy3d.plugins.adjoint.JaxStructure(*, type: Literal['JaxStructure'] = 'JaxStructure', geometry: Union[tidy3d.plugins.adjoint.components.geometry.JaxBox, tidy3d.plugins.adjoint.components.geometry.JaxPolySlab, tidy3d.plugins.adjoint.components.geometry.JaxGeometryGroup], name: str = None, medium: Union[tidy3d.plugins.adjoint.components.medium.JaxMedium, tidy3d.plugins.adjoint.components.medium.JaxAnisotropicMedium, tidy3d.plugins.adjoint.components.medium.JaxCustomMedium])#

Bases: tidy3d.plugins.adjoint.components.structure.AbstractJaxStructure, tidy3d.plugins.adjoint.components.base.JaxObject

A Structure registered with jax.

Parameters
__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(**kwargs)

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.

eps_comp(row, col, frequency, coords)

Single component of the complex-valued permittivity tensor as a function of frequency.

eps_diagonal(frequency, coords)

Main diagonal of the complex-valued permittivity tensor as a function of frequency.

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_structure(structure)

Convert Structure to JaxStructure.

from_tidy3d(tidy3d_obj)

Convert Tidy3dBaseModel instance to JaxObject.

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.

geometry_vjp(grad_data_fwd, grad_data_adj, ...)

Compute the VJP for the structure geometry.

get_jax_field_names()

Returns list of field names that have a jax_field_type.

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.

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

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

make_grad_monitors(freqs, name)

Return gradient monitor associated with this object.

medium_vjp(grad_data_fwd, grad_data_adj, ...)

Compute the VJP for the structure medium.

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

parse_obj(obj)

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

plot([x, y, z, ax])

Plot structure's geometric cross section at single (x,y,z) coordinate.

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

store_vjp(grad_data_fwd, grad_data_adj, ...)

Returns the gradient of the structure parameters given forward and adjoint field data.

to_file(fname)

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

to_gds(cell[, x, y, z, ...])

Append a structure's planar slice to a .gds cell.

to_gds_file(fname[, x, y, z, ...])

Export a structure's planar slice to a .gds file.

to_gdspy([x, y, z, gds_layer, gds_dtype])

Convert a structure's planar slice to a .gds type polygon.

to_gdstk([x, y, z, permittivity_threshold, ...])

Convert a structure's planar slice to a .gds type polygon.

to_hdf5(fname[, custom_encoders])

Exports JaxObject 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_structure()

Convert JaxStructure instance to Structure

to_yaml(fname)

Exports Tidy3dBaseModel instance to .yaml file.

tree_flatten()

How to flatten a JaxObject instance into a pytree.

tree_unflatten(aux_data, children)

How to unflatten a pytree into a JaxObject instance.

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(**kwargs)

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

validate(value)

Attributes

exclude_fields

Fields to exclude from the self dict.

jax_fields

The fields that are jax-traced for this class.

geometry

medium

class Config#

Bases: object

Sets config for all Tidy3dBaseModel objects.

allow_population_by_field_namebool = True

Allow properties to stand in for fields(?).

arbitrary_types_allowedbool = True

Allow types like numpy arrays.

extrastr = ‘forbid’

Forbid extra kwargs not specified in model.

json_encodersDict[type, Callable]

Defines how to encode type in json file.

validate_allbool = True

Validate default values just to be safe.

validate_assignmentbool

Re-validate after re-assignment of field in model.

__eq__(other)#

Define == for two Tidy3DBaseModels.

__ge__(other)#

define >= for getting unique indices based on hash.

__gt__(other)#

define > for getting unique indices based on hash.

__hash__() int#

Hash method.

classmethod __init_subclass__() None#

Things that are done to each of the models.

__iter__() TupleGenerator#

so dict(model) works

__le__(other)#

define <= for getting unique indices based on hash.

__lt__(other)#

define < for getting unique indices based on hash.

__pretty__(fmt: Callable[[Any], Any], **kwargs: Any) Generator[Any, None, None]#

Used by devtools (https://python-devtools.helpmanual.io/) to provide a human readable representations of objects

__repr_name__() str#

Name of the instance’s class, used in __repr__.

__rich_repr__() RichReprResult#

Get fields for Rich library

classmethod __try_update_forward_refs__(**localns: Any) None#

Same as update_forward_refs but will not raise exception when forward references are not defined.

classmethod add_type_field() None#

Automatically place “type” field with model name in the model field dictionary.

classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) Model#

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

copy(**kwargs) tidy3d.components.base.Tidy3dBaseModel#

Copy a Tidy3dBaseModel. With deep=True as default.

dict(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny#

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

classmethod dict_from_file(fname: str, group_path: Optional[str] = None) dict#

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

Parameters
  • fname (str) – Full path to the file to load the Tidy3dBaseModel from.

  • group_path (str, optional) – Path to a group inside the file to use as the base level.

Returns

A dictionary containing the model.

Return type

dict

Example

>>> simulation = Simulation.from_file(fname='folder/sim.json') 
classmethod dict_from_hdf5(fname: str, group_path: str = '', custom_decoders: Optional[List[Callable]] = None) dict#

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

Parameters
  • fname (str) – Full path to the .hdf5 file to load the JaxObject from.

  • group_path (str, optional) – Path to a group inside the file to selectively load a sub-element of the model only.

  • custom_decoders (List[Callable]) – List of functions accepting (fname: str, group_path: str, model_dict: dict, key: str, value: Any) that store the value in the model dict after a custom decoding.

Returns

Dictionary containing the model.

Return type

dict

Example

>>> sim_dict = Simulation.dict_from_hdf5(fname='folder/sim.hdf5') 
classmethod dict_from_hdf5_gz(fname: str, group_path: str = '', custom_decoders: Optional[List[Callable]] = None) dict#

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

Parameters
  • fname (str) – Full path to the .hdf5.gz file to load the Tidy3dBaseModel from.

  • group_path (str, optional) – Path to a group inside the file to selectively load a sub-element of the model only.

  • custom_decoders (List[Callable]) – List of functions accepting (fname: str, group_path: str, model_dict: dict, key: str, value: Any) that store the value in the model dict after a custom decoding.

Returns

Dictionary containing the model.

Return type

dict

Example

>>> sim_dict = Simulation.dict_from_hdf5(fname='folder/sim.hdf5.gz') 
classmethod dict_from_json(fname: str) dict#

Load dictionary of the model from a .json file.

Parameters

fname (str) – Full path to the .json file to load the Tidy3dBaseModel from.

Returns

A dictionary containing the model.

Return type

dict

Example

>>> sim_dict = Simulation.dict_from_json(fname='folder/sim.json') 
classmethod dict_from_yaml(fname: str) dict#

Load dictionary of the model from a .yaml file.

Parameters

fname (str) – Full path to the .yaml file to load the Tidy3dBaseModel from.

Returns

A dictionary containing the model.

Return type

dict

Example

>>> sim_dict = Simulation.dict_from_yaml(fname='folder/sim.yaml') 
eps_comp(row: Literal[0, 1, 2], col: Literal[0, 1, 2], frequency: float, coords: tidy3d.components.grid.grid.Coords) complex#

Single component of the complex-valued permittivity tensor as a function of frequency.

Parameters
  • row (int) – Component’s row in the permittivity tensor (0, 1, or 2 for x, y, or z respectively).

  • col (int) – Component’s column in the permittivity tensor (0, 1, or 2 for x, y, or z respectively).

  • frequency (float) – Frequency to evaluate permittivity at (Hz).

Returns

Element of the relative permittivity tensor evaluated at frequency.

Return type

complex

eps_diagonal(frequency: float, coords: tidy3d.components.grid.grid.Coords) Tuple[complex, complex, complex]#

Main diagonal of the complex-valued permittivity tensor as a function of frequency.

Parameters

frequency (float) – Frequency to evaluate permittivity at (Hz).

Returns

The diagonal elements of the relative permittivity tensor evaluated at frequency.

Return type

complex

property exclude_fields#

Fields to exclude from the self dict.

classmethod from_file(fname: str, group_path: Optional[str] = None, **parse_obj_kwargs) tidy3d.components.base.Tidy3dBaseModel#

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

Parameters
  • fname (str) – Full path to the file to load the Tidy3dBaseModel from.

  • group_path (str, optional) – Path to a group inside the file to use as the base level. Only for hdf5 files. Starting / is optional.

  • **parse_obj_kwargs – Keyword arguments passed to either pydantic’s parse_obj function when loading model.

Returns

An instance of the component class calling load.

Return type

Tidy3dBaseModel

Example

>>> simulation = Simulation.from_file(fname='folder/sim.json') 
classmethod from_hdf5(fname: str, group_path: str = '', custom_decoders: Optional[List[Callable]] = None, **parse_obj_kwargs) tidy3d.components.base.Tidy3dBaseModel#

Loads Tidy3dBaseModel instance to .hdf5 file.

Parameters
  • fname (str) – Full path to the .hdf5 file to load the Tidy3dBaseModel from.

  • group_path (str, optional) – Path to a group inside the file to selectively load a sub-element of the model only. Starting / is optional.

  • custom_decoders (List[Callable]) – List of functions accepting (fname: str, group_path: str, model_dict: dict, key: str, value: Any) that store the value in the model dict after a custom decoding.

  • **parse_obj_kwargs – Keyword arguments passed to pydantic’s parse_obj method.

Example

>>> simulation = Simulation.from_hdf5(fname='folder/sim.hdf5') 
classmethod from_hdf5_gz(fname: str, group_path: str = '', custom_decoders: Optional[List[Callable]] = None, **parse_obj_kwargs) tidy3d.components.base.Tidy3dBaseModel#

Loads Tidy3dBaseModel instance to .hdf5.gz file.

Parameters
  • fname (str) – Full path to the .hdf5.gz file to load the Tidy3dBaseModel from.

  • group_path (str, optional) – Path to a group inside the file to selectively load a sub-element of the model only. Starting / is optional.

  • custom_decoders (List[Callable]) – List of functions accepting (fname: str, group_path: str, model_dict: dict, key: str, value: Any) that store the value in the model dict after a custom decoding.

  • **parse_obj_kwargs – Keyword arguments passed to pydantic’s parse_obj method.

Example

>>> simulation = Simulation.from_hdf5_gz(fname='folder/sim.hdf5.gz') 
classmethod from_json(fname: str, **parse_obj_kwargs) tidy3d.components.base.Tidy3dBaseModel#

Load a Tidy3dBaseModel from .json file.

Parameters

fname (str) – Full path to the .json file to load the Tidy3dBaseModel from.

Returns

  • Tidy3dBaseModel – An instance of the component class calling load.

  • **parse_obj_kwargs – Keyword arguments passed to pydantic’s parse_obj method.

Example

>>> simulation = Simulation.from_json(fname='folder/sim.json') 
classmethod from_structure(structure: tidy3d.components.structure.Structure) tidy3d.plugins.adjoint.components.structure.JaxStructure#

Convert Structure to JaxStructure.

classmethod from_tidy3d(tidy3d_obj: tidy3d.components.base.Tidy3dBaseModel) tidy3d.plugins.adjoint.components.base.JaxObject#

Convert Tidy3dBaseModel instance to JaxObject.

classmethod from_yaml(fname: str, **parse_obj_kwargs) tidy3d.components.base.Tidy3dBaseModel#

Loads Tidy3dBaseModel from .yaml file.

Parameters
  • fname (str) – Full path to the .yaml file to load the Tidy3dBaseModel from.

  • **parse_obj_kwargs – Keyword arguments passed to pydantic’s parse_obj method.

Returns

An instance of the component class calling from_yaml.

Return type

Tidy3dBaseModel

Example

>>> simulation = Simulation.from_yaml(fname='folder/sim.yaml') 
classmethod generate_docstring() str#

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

geometry_vjp(grad_data_fwd: tidy3d.components.data.monitor_data.FieldData, grad_data_adj: tidy3d.components.data.monitor_data.FieldData, grad_data_eps: tidy3d.components.data.monitor_data.PermittivityData, sim_bounds: Tuple[Tuple[float, float, float], Tuple[float, float, float]], eps_out: complex, num_proc: int = 1) Union[tidy3d.plugins.adjoint.components.geometry.JaxBox, tidy3d.plugins.adjoint.components.geometry.JaxPolySlab, tidy3d.plugins.adjoint.components.geometry.JaxGeometryGroup]#

Compute the VJP for the structure geometry.

classmethod get_jax_field_names() List[str]#

Returns list of field names that have a jax_field_type.

classmethod get_sub_model(group_path: str, model_dict: dict | list) dict#

Get the sub model for a given group path.

get_submodels_by_hash() Dict[int, List[Union[str, Tuple[str, int]]]]#

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

static get_tuple_group_name(index: int) str#

Get the group name of a tuple element.

static get_tuple_index(key_name: str) int#

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

help(methods: bool = False) None#

Prints message describing the fields and methods of a Tidy3dBaseModel.

Parameters

methods (bool = False) – Whether to also print out information about object’s methods.

Example

>>> simulation.help(methods=True) 
property jax_fields#

The fields that are jax-traced for this class.

json(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, models_as_dict: bool = True, **dumps_kwargs: Any) str#

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

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

make_grad_monitors(freqs: List[float], name: str) tidy3d.components.monitor.FieldMonitor#

Return gradient monitor associated with this object.

medium_vjp(grad_data_fwd: tidy3d.components.data.monitor_data.FieldData, grad_data_adj: tidy3d.components.data.monitor_data.FieldData, grad_data_eps: tidy3d.components.data.monitor_data.PermittivityData, sim_bounds: Tuple[Tuple[float, float, float], Tuple[float, float, float]]) Union[tidy3d.plugins.adjoint.components.medium.JaxMedium, tidy3d.plugins.adjoint.components.medium.JaxAnisotropicMedium, tidy3d.plugins.adjoint.components.medium.JaxCustomMedium]#

Compute the VJP for the structure medium.

plot(x: float = None, y: float = None, z: float = None, ax: matplotlib.axes._axes.Axes = None, **patch_kwargs) matplotlib.axes._axes.Axes#

Plot structure’s geometric cross section at single (x,y,z) coordinate.

Parameters
  • x (float = None) – Position of plane in x direction, only one of x,y,z can be specified to define plane.

  • y (float = None) – Position of plane in y direction, only one of x,y,z can be specified to define plane.

  • z (float = None) – Position of plane in z direction, only one of x,y,z can be specified to define plane.

  • ax (matplotlib.axes._subplots.Axes = None) – Matplotlib axes to plot on, if not specified, one is created.

  • **patch_kwargs – Optional keyword arguments passed to the matplotlib patch plotting of structure. For details on accepted values, refer to Matplotlib’s documentation.

Returns

The supplied or created matplotlib axes.

Return type

matplotlib.axes._subplots.Axes

store_vjp(grad_data_fwd: tidy3d.components.data.monitor_data.FieldData, grad_data_adj: tidy3d.components.data.monitor_data.FieldData, grad_data_eps: tidy3d.components.data.monitor_data.PermittivityData, sim_bounds: Tuple[Tuple[float, float, float], Tuple[float, float, float]], eps_out: complex, num_proc: int = 1) tidy3d.plugins.adjoint.components.structure.JaxStructure#

Returns the gradient of the structure parameters given forward and adjoint field data.

to_file(fname: str) None#

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

Parameters

fname (str) – Full path to the .yaml or .json file to save the Tidy3dBaseModel to.

Example

>>> simulation.to_file(fname='folder/sim.json') 
to_gds(cell, x: Optional[float] = None, y: Optional[float] = None, z: Optional[float] = None, permittivity_threshold: pydantic.v1.types.NonNegativeFloat = 1, frequency: pydantic.v1.types.PositiveFloat = 0, gds_layer: pydantic.v1.types.NonNegativeInt = 0, gds_dtype: pydantic.v1.types.NonNegativeInt = 0) None#

Append a structure’s planar slice to a .gds cell.

Parameters
  • cell (gdstk.Cell or gdspy.Cell) – Cell object to which the generated polygons are added.

  • x (float = None) – Position of plane in x direction, only one of x,y,z can be specified to define plane.

  • y (float = None) – Position of plane in y direction, only one of x,y,z can be specified to define plane.

  • z (float = None) – Position of plane in z direction, only one of x,y,z can be specified to define plane.

  • permittivity_threshold (float = 1.1) – Permitivitty value used to define the shape boundaries for structures with custom medim

  • frequency (float = 0) – Frequency for permittivity evaluaiton in case of custom medium (Hz).

  • gds_layer (int = 0) – Layer index to use for the shapes stored in the .gds file.

  • gds_dtype (int = 0) – Data-type index to use for the shapes stored in the .gds file.

to_gds_file(fname: str, x: Optional[float] = None, y: Optional[float] = None, z: Optional[float] = None, permittivity_threshold: pydantic.v1.types.NonNegativeFloat = 1, frequency: pydantic.v1.types.PositiveFloat = 0, gds_layer: pydantic.v1.types.NonNegativeInt = 0, gds_dtype: pydantic.v1.types.NonNegativeInt = 0, gds_cell_name: str = 'MAIN') None#

Export a structure’s planar slice to a .gds file.

Parameters
  • fname (str) – Full path to the .gds file to save the Structure slice to.

  • x (float = None) – Position of plane in x direction, only one of x,y,z can be specified to define plane.

  • y (float = None) – Position of plane in y direction, only one of x,y,z can be specified to define plane.

  • z (float = None) – Position of plane in z direction, only one of x,y,z can be specified to define plane.

  • permittivity_threshold (float = 1.1) – Permitivitty value used to define the shape boundaries for structures with custom medim

  • frequency (float = 0) – Frequency for permittivity evaluaiton in case of custom medium (Hz).

  • gds_layer (int = 0) – Layer index to use for the shapes stored in the .gds file.

  • gds_dtype (int = 0) – Data-type index to use for the shapes stored in the .gds file.

  • gds_cell_name (str = 'MAIN') – Name of the cell created in the .gds file to store the geometry.

to_gdspy(x: Optional[float] = None, y: Optional[float] = None, z: Optional[float] = None, gds_layer: pydantic.v1.types.NonNegativeInt = 0, gds_dtype: pydantic.v1.types.NonNegativeInt = 0) None#

Convert a structure’s planar slice to a .gds type polygon.

Parameters
  • x (float = None) – Position of plane in x direction, only one of x,y,z can be specified to define plane.

  • y (float = None) – Position of plane in y direction, only one of x,y,z can be specified to define plane.

  • z (float = None) – Position of plane in z direction, only one of x,y,z can be specified to define plane.

  • gds_layer (int = 0) – Layer index to use for the shapes stored in the .gds file.

  • gds_dtype (int = 0) – Data-type index to use for the shapes stored in the .gds file.

Returns

List of gdspy.Polygon and gdspy.PolygonSet.

Return type

List

to_gdstk(x: Optional[float] = None, y: Optional[float] = None, z: Optional[float] = None, permittivity_threshold: pydantic.v1.types.NonNegativeFloat = 1, frequency: pydantic.v1.types.PositiveFloat = 0, gds_layer: pydantic.v1.types.NonNegativeInt = 0, gds_dtype: pydantic.v1.types.NonNegativeInt = 0) None#

Convert a structure’s planar slice to a .gds type polygon.

Parameters
  • x (float = None) – Position of plane in x direction, only one of x,y,z can be specified to define plane.

  • y (float = None) – Position of plane in y direction, only one of x,y,z can be specified to define plane.

  • z (float = None) – Position of plane in z direction, only one of x,y,z can be specified to define plane.

  • permittivity_threshold (float = 1.1) – Permitivitty value used to define the shape boundaries for structures with custom medim

  • frequency (float = 0) – Frequency for permittivity evaluaiton in case of custom medium (Hz).

  • gds_layer (int = 0) – Layer index to use for the shapes stored in the .gds file.

  • gds_dtype (int = 0) – Data-type index to use for the shapes stored in the .gds file.

Returns

List of gdstk.Polygon

Return type

List

to_hdf5(fname: str, custom_encoders: Optional[List[Callable]] = None) None#

Exports JaxObject instance to .hdf5 file.

Parameters
  • fname (str) – Full path to the .hdf5 file to save the JaxObject to.

  • custom_encoders (List[Callable]) – List of functions accepting (fname: str, group_path: str, value: Any) that take the value supplied and write it to the hdf5 fname at group_path.

Example

>>> simulation.to_hdf5(fname='folder/sim.hdf5') 
to_hdf5_gz(fname: str, custom_encoders: Optional[List[Callable]] = None) None#

Exports Tidy3dBaseModel instance to .hdf5.gz file.

Parameters
  • fname (str) – Full path to the .hdf5.gz file to save the Tidy3dBaseModel to.

  • custom_encoders (List[Callable]) – List of functions accepting (fname: str, group_path: str, value: Any) that take the value supplied and write it to the hdf5 fname at group_path.

Example

>>> simulation.to_hdf5_gz(fname='folder/sim.hdf5.gz') 
to_json(fname: str) None#

Exports Tidy3dBaseModel instance to .json file

Parameters

fname (str) – Full path to the .json file to save the Tidy3dBaseModel to.

Example

>>> simulation.to_json(fname='folder/sim.json') 
to_structure() tidy3d.components.structure.Structure#

Convert JaxStructure instance to Structure

to_yaml(fname: str) None#

Exports Tidy3dBaseModel instance to .yaml file.

Parameters

fname (str) – Full path to the .yaml file to save the Tidy3dBaseModel to.

Example

>>> simulation.to_yaml(fname='folder/sim.yaml') 
tree_flatten() Tuple[list, dict]#

How to flatten a JaxObject instance into a pytree.

classmethod tree_unflatten(aux_data: dict, children: list) tidy3d.plugins.adjoint.components.base.JaxObject#

How to unflatten a pytree into a JaxObject instance.

classmethod tuple_to_dict(tuple_values: tuple) dict#

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

classmethod update_forward_refs(**localns: Any) None#

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

updated_copy(**kwargs) tidy3d.components.base.Tidy3dBaseModel#

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