tidy3d.plugins.adjoint.JaxSimulationData#

class JaxSimulationData[source]#

Bases: SimulationData, JaxObject

A SimulationData registered with jax.

Parameters:

Attributes

grad_data_symmetry

self.grad_data but with symmetry_expanded_copy applied.

grad_eps_data_symmetry

self.grad_eps_data but with symmetry_expanded_copy applied.

monitor_data

Dictionary of .output_data monitor .name to the corresponding data.

output_monitor_data

Dictionary of .output_data monitor .name to the corresponding data.

attrs

Methods

from_sim_data(sim_data, jax_info[, task_id])

Construct a JaxSimulationData instance from a SimulationData.

get_poynting_vector(field_monitor_name)

return xarray.Dataset of the Poynting vector at Yee cell centers.

make_adjoint_simulation(fwidth, run_time)

Make an adjoint simulation out of the data provided (generally, the vjp sim data).

normalize_adjoint_fields()

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.

Inherited Common Usage

output_data#
grad_data#
grad_eps_data#
simulation#
task_id#
get_poynting_vector(field_monitor_name)[source]#

return xarray.Dataset of the Poynting vector at Yee cell centers.

Calculated values represent the instantaneous Poynting vector for time-domain fields and the complex vector for frequency-domain: S = 1/2 E × conj(H).

Only the available components are returned, e.g., if the indicated monitor doesn’t include field component “Ex”, then “Sy” and “Sz” will not be calculated.

Parameters:

field_monitor_name (str) – Name of field monitor used in the original Simulation.

Returns:

DataArray containing the Poynting vector calculated based on the field components colocated at the center locations of the Yee grid.

Return type:

xarray.DataArray

property grad_data_symmetry#

self.grad_data but with symmetry_expanded_copy applied.

property grad_eps_data_symmetry#

self.grad_eps_data but with symmetry_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 a SimulationData.

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.