tidy3d.plugins.adjoint.JaxMedium
tidy3d.plugins.adjoint.JaxMedium#
- class tidy3d.plugins.adjoint.JaxMedium#
A
Medium
registered with jax.- Parameters
name (Optional[str] = None) – Optional unique name for medium.
frequency_range (Optional[Tuple[float, float]] = None) – [units = (Hz, Hz)]. Optional range of validity for the medium.
permittivity (Union[float, ndarray, DeviceArray, JVPTracer] = 1.0) – Relative permittivity of the medium. May be a
jax
DeviceArray
.conductivity (ConstrainedFloatValue = 0.0) – [units = S/um]. Electric conductivity. Defined such that the imaginary part of the complex permittivity at angular frequency omega is given by conductivity/omega.
Show JSON schema
{ "title": "JaxMedium", "description": "Parameters\n----------\nname : Optional[str] = None\n Optional unique name for medium.\nfrequency_range : Optional[Tuple[float, float]] = None\n [units = (Hz, Hz)]. Optional range of validity for the medium.\npermittivity : Optional[Any] = None\n conductivity : ConstrainedFloatValue = 0.0\n [units = S/um]. Electric conductivity. Defined such that the imaginary part of the complex permittivity at angular frequency omega is given by conductivity/omega.", "type": "object", "properties": { "type": { "title": "Type", "default": "JaxMedium", "enum": [ "JaxMedium" ], "type": "string" }, "name": { "title": "Name", "description": "Optional unique name for medium.", "type": "string" }, "frequency_range": { "title": "Frequency Range", "description": "Optional range of validity for the medium.", "units": [ "Hz", "Hz" ], "type": "array", "minItems": 2, "maxItems": 2, "items": [ { "type": "number" }, { "type": "number" } ] }, "permittivity": { "title": "Permittivity" }, "conductivity": { "title": "Conductivity", "description": "Electric conductivity. Defined such that the imaginary part of the complex permittivity at angular frequency omega is given by conductivity/omega.", "default": 0.0, "minimum": 0.0, "units": "S/um", "type": "number" } }, "additionalProperties": false }
- attribute permittivity: JaxFloat = 1.0#
Relative permittivity of the medium. May be a
jax
DeviceArray
.- Validated by
sanitize_validator_fn
- field_contribution(field: Literal['Ex', 'Ey', 'Ez'], grad_data_fwd: tidy3d.components.data.monitor_data.FieldData, grad_data_adj: tidy3d.components.data.monitor_data.FieldData, sim_bounds: Tuple[Tuple[float, float, float], Tuple[float, float, float]], wvl_mat: float) float #
Compute the contribution to the VJP from a given field component.
- store_vjp(grad_data_fwd: tidy3d.components.data.monitor_data.FieldData, grad_data_adj: tidy3d.components.data.monitor_data.FieldData, sim_bounds: Tuple[Tuple[float, float, float], Tuple[float, float, float]], wvl_mat: float) tidy3d.plugins.adjoint.components.medium.JaxMedium #
Returns the gradient of the medium parameters given forward and adjoint field data.
- to_medium() tidy3d.components.medium.Medium #