tidy3d.plugins.invdes.InverseDesign#
- class InverseDesign[source]#
Bases:
AbstractInverseDesign
Container for an inverse design problem.
- Parameters:
attrs (dict = {}) β Dictionary storing arbitrary metadata for a Tidy3D object. This dictionary can be freely used by the user for storing data without affecting the operation of Tidy3D as it is not used internally. Note that, unlike regular Tidy3D fields,
attrs
are mutable. For example, the following is allowed for setting anattr
obj.attrs['foo'] = bar
. Also note that Tidy3D` will raise aTypeError
ifattrs
contain objects that can not be serialized. One can check ifattrs
are serializable by callingobj.json()
.design_region (TopologyDesignRegion) β Region within which we will optimize the simulation.
task_name (str) β Task name to use in the objective function when running the
JaxSimulation
.verbose (bool = False) β If
True
, will print the regular output fromweb
functions.metric (Union[Annotated[Union[tidy3d.plugins.expressions.operators.Add, tidy3d.plugins.expressions.operators.Subtract, tidy3d.plugins.expressions.operators.Multiply, tidy3d.plugins.expressions.operators.Divide, tidy3d.plugins.expressions.operators.Power, tidy3d.plugins.expressions.operators.Modulus, tidy3d.plugins.expressions.operators.FloorDivide, tidy3d.plugins.expressions.operators.MatMul, tidy3d.plugins.expressions.operators.Negate, tidy3d.plugins.expressions.operators.Abs], FieldInfo(default=PydanticUndefined, discriminator='type', extra={})], Annotated[Union[tidy3d.plugins.expressions.functions.Sin, tidy3d.plugins.expressions.functions.Cos, tidy3d.plugins.expressions.functions.Tan, tidy3d.plugins.expressions.functions.Exp, tidy3d.plugins.expressions.functions.Log, tidy3d.plugins.expressions.functions.Log10, tidy3d.plugins.expressions.functions.Sqrt], FieldInfo(default=PydanticUndefined, discriminator='type', extra={})], Annotated[Union[tidy3d.plugins.expressions.variables.Constant, tidy3d.plugins.expressions.variables.Variable, tidy3d.plugins.expressions.metrics.ModeAmp, tidy3d.plugins.expressions.metrics.ModePower], FieldInfo(default=PydanticUndefined, discriminator='type', extra={})], NoneType] = None) β Serializable expression defining the objective function.
simulation (Simulation) β Simulation without the design regions or monitors used in the objective fn.
output_monitor_names (Optional[Tuple[str, ...]] = None) β Optional names of monitors whose data the differentiable output depends on.If this field is left
None
, the plugin will try to add all compatible monitors toJaxSimulation.output_monitors
. While this will work, there may be warnings if the monitors are not compatible with theadjoint
plugin, for example if there areFieldMonitor
instances with.colocate != False
.
Attributes
Methods
is_output_monitor
(monitor)Whether a monitor is added to the
JaxSimulation
as anoutput_monitor
.separate_output_monitors
(monitors)Separate monitors into output_monitors and regular monitors.
to_simulation
(params)Convert the
InverseDesign
to a correspondingtd.Simulation
with traced fields.to_simulation_data
(params,Β **kwargs)Convert the
InverseDesign
to atd.Simulation
and run it.Inherited Common Usage
- simulation#
- output_monitor_names#
- is_output_monitor(monitor)[source]#
Whether a monitor is added to the
JaxSimulation
as anoutput_monitor
.
- separate_output_monitors(monitors)[source]#
Separate monitors into output_monitors and regular monitors.
- to_simulation(params)[source]#
Convert the
InverseDesign
to a correspondingtd.Simulation
with traced fields.
- to_simulation_data(params, **kwargs)[source]#
Convert the
InverseDesign
to atd.Simulation
and run it.
- __hash__()#
Hash method.