tidy3d.plugins.adjoint.JaxSimulationData#
- class JaxSimulationData[source]#
Bases:
SimulationData
,JaxObject
A
SimulationData
registered with jax.- Parameters:
simulation (JaxSimulation) – The jax-compatible simulation corresponding to the data.
data (Tuple[Annotated[Union[tidy3d.components.data.monitor_data.FieldData, tidy3d.components.data.monitor_data.FieldTimeData, tidy3d.components.data.monitor_data.PermittivityData, tidy3d.components.data.monitor_data.ModeSolverData, tidy3d.components.data.monitor_data.ModeData, tidy3d.components.data.monitor_data.FluxData, tidy3d.components.data.monitor_data.FluxTimeData, tidy3d.components.data.monitor_data.FieldProjectionKSpaceData, tidy3d.components.data.monitor_data.FieldProjectionCartesianData, tidy3d.components.data.monitor_data.FieldProjectionAngleData, tidy3d.components.data.monitor_data.DiffractionData], FieldInfo(default=PydanticUndefined, discriminator='type', extra={})], ...]) – List of
MonitorData
instances associated with the monitors of the originalSimulation
.log (Optional[str] = None) – A string containing the log information from the simulation run.
diverged (bool = False) – A boolean flag denoting whether the simulation run diverged.
output_data (Tuple[Union[JaxModeData, JaxDiffractionData, JaxFieldData], ...] = ()) – Tuple of Jax-compatible data associated with output monitors.
grad_data (Tuple[FieldData, ...] = ()) – Tuple of monitor data storing fields associated with the input structures.
grad_eps_data (Tuple[PermittivityData, ...] = ()) – Tuple of monitor data storing epsilon associated with the input structures.
task_id (Optional[str] = None) – Optional field storing the task_id for the original JaxSimulation.
Attributes
self.grad_data
but withsymmetry_expanded_copy
applied.self.grad_eps_data
but withsymmetry_expanded_copy
applied.Dictionary of
.output_data
monitor.name
to the corresponding data.Dictionary of
.output_data
monitor.name
to the corresponding data.Logging for Tidy3d.
Methods
from_sim_data
(sim_data, jax_info[, task_id])Construct a
JaxSimulationData
instance from aSimulationData
.make_adjoint_simulation
(fwidth, run_time)Make an adjoint simulation out of the data provided (generally, the vjp sim data).
Make copy of jax_sim_data with grad_data (fields) normalized by adjoint sources.
split_data
(mnt_data, jax_info)Split list of monitor data into data, output_data, grad_data, and grad_eps_data.
split_fwd_sim_data
(sim_data, jax_info)Split a
SimulationData
into two parts, containing user and gradient data.- output_data#
- grad_data#
- grad_eps_data#
- simulation#
- task_id#
- property grad_data_symmetry#
self.grad_data
but withsymmetry_expanded_copy
applied.
- property grad_eps_data_symmetry#
self.grad_eps_data
but withsymmetry_expanded_copy
applied.
- property output_monitor_data#
Dictionary of
.output_data
monitor.name
to the corresponding data.
- property monitor_data#
Dictionary of
.output_data
monitor.name
to the corresponding data.
- static split_data(mnt_data, jax_info)[source]#
Split list of monitor data into data, output_data, grad_data, and grad_eps_data.
- classmethod from_sim_data(sim_data, jax_info, task_id=None)[source]#
Construct a
JaxSimulationData
instance from aSimulationData
.
- classmethod split_fwd_sim_data(sim_data, jax_info)[source]#
Split a
SimulationData
into two parts, containing user and gradient data.
- make_adjoint_simulation(fwidth, run_time)[source]#
Make an adjoint simulation out of the data provided (generally, the vjp sim data).
- normalize_adjoint_fields()[source]#
Make copy of jax_sim_data with grad_data (fields) normalized by adjoint sources.
- __hash__()#
Hash method.