tidy3d.plugins.design.DesignSpace#
- class DesignSpace[source]#
- Bases: - Tidy3dBaseModel- Specification of a design problem / combination of several parameters + algorithm. - 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, - attrsare mutable. For example, the following is allowed for setting an- attr- obj.attrs['foo'] = bar. Also note that Tidy3D` will raise a- TypeErrorif- attrscontain objects that can not be serialized. One can check if- attrsare serializable by calling- obj.json().
- parameters (Tuple[Union[ParameterInt, ParameterFloat, ParameterAny], ...] = ()) β Set of parameters defining the dimensions and allowed values for the design space. 
- method (Union[MethodMonteCarlo, MethodGrid, MethodRandom, MethodRandomCustom]) β Specifications for the procedure used to explore the parameter space. 
- name (Optional[str] = None) β Optional name for the design space. 
 
 - Example - >>> import tidy3d.plugins.design as tdd >>> param = tdd.ParameterFloat(name="x", span=(0,1)) >>> method = tdd.MethodMonteCarlo(num_points=10) >>> design_space = tdd.DesignSpace(parameters=[param], method=method) >>> fn = lambda x: x**2 >>> result = design_space.run(fn) >>> df = result.to_dataframe() >>> im = df.plot() - Attributes - Mapping of design parameter name to design parameter. - dimensions defined by the design parameter names. - method- Defines the methods used for parameter sweep. - Methods - get_fn_source(function)- Get the function source as a string, return - Noneif not available.- run(function,Β **kwargs)- Run the design problem on a user defined function of the design parameters. - run_batch(fn_pre,Β fn_post[,Β path_dir])- Run a design problem where the function is split into pre and post processing steps. - Inherited Common Usage - parameters#
 - method#
 - name#
 - property dims#
- dimensions defined by the design parameter names. 
 - property design_parameter_dict#
- Mapping of design parameter name to design parameter. 
 - static get_fn_source(function)[source]#
- Get the function source as a string, return - Noneif not available.
 - run(function, **kwargs)[source]#
- Run the design problem on a user defined function of the design parameters. - Parameters:
- function (Callable) β Function accepting arguments that correspond to the - .namefields of the- DesignSpace.parameters.
- Returns:
- Object containing the results of the design space exploration. Can be converted to - pandas.DataFramewith- .to_dataframe().
- Return type:
 
 - run_batch(fn_pre, fn_post, path_dir=None, **batch_kwargs)[source]#
- Run a design problem where the function is split into pre and post processing steps. - Parameters:
- fn_pre (Callable[Union[SimulationData, List[SimulationData], Dict[str, SimulationData]], Any]) β Function accepting arguments that correspond to the - .namefields of the- DesignSpace.parameters. Returns either a- Simulation, list of- Simulation`s or a `dictof :class:`.Simulation`s to be run in a batch.
- fn_pre β Function accepting the - SimulationDataobject(s) corresponding to the- fn_preand returning the result of the parameter sweep function. If- fn_prereturns a single simulation, it will be passed as a single argument to- fn_post. If- fn_prereturns a list of simulations, their data will be passed as- *args. If- fn_prereturns a dict of simulations, their data will be passed as- **kwargswith the keys corresponding to the argument names.
- path_dir (str = None) β Optional directory in which to store the batch results. 
 
- Returns:
- Object containing the results of the design space exploration. Can be converted to - pandas.DataFramewith- .to_dataframe().
- Return type:
 
 - __hash__()#
- Hash method.