watertap.tools package
Submodules
watertap.tools.parameter_sweep module
- class watertap.tools.parameter_sweep.FixedSample(pyomo_object, *args, **kwargs)[source]
Bases:
watertap.tools.parameter_sweep._Sample
- class watertap.tools.parameter_sweep.LatinHypercubeSample(pyomo_object, *args, **kwargs)[source]
Bases:
watertap.tools.parameter_sweep._Sample
- class watertap.tools.parameter_sweep.RandomSample(pyomo_object, *args, **kwargs)[source]
Bases:
watertap.tools.parameter_sweep._Sample
- watertap.tools.parameter_sweep.parameter_sweep(model, sweep_params, outputs, results_file=None, optimize_function=<function _default_optimize>, optimize_kwargs=None, reinitialize_function=None, reinitialize_kwargs=None, mpi_comm=None, debugging_data_dir=None, interpolate_nan_outputs=False, num_samples=None, seed=None)[source]
This function offers a general way to perform repeated optimizations of a model for the purposes of exploring a parameter space while monitoring multiple outputs. If provided, writes single CSV file to
results_file
with all inputs and resulting outputs.- Parameters
model – A Pyomo ConcreteModel containing a watertap flowsheet, for best results it should be initialized before being passed to this function.
sweep_params – A dictionary containing the values to vary with the format
sweep_params['Short/Pretty-print Name'] = (model.fs.variable_or_param[index], lower_limit, upper_limit, num_samples)
. A uniform number of samplesnum_samples
will be take between thelower_limit
andupper_limit
.outputs – A dictionary containing “short names” as keys and and Pyomo objects on
model
whose values to report as values. E.g.,outputs['Short/Pretty-print Name'] = model.fs.variable_or_expression_to_report
.results_file (optional) – The path and file name where the results are to be saved; subdirectories will be created as needed.
optimize_function (optional) – A user-defined function to perform the optimization of flowsheet
model
and loads the results back intomodel
. The first argument of this function ismodel
. The default uses the default IDAES solver, raising an exception if the termination condition is not optimal.optimize_kwargs (optional) – Dictionary of kwargs to pass into every call to
optimize_function
. The first arg will always bemodel
, e.g.,optimize_function(model, **optimize_kwargs)
. The default uses no kwargs.reinitialize_function (optional) – A user-defined function to perform the re-initialize the flowsheet
model
if the first call tooptimize_function
fails for any reason. Afterreinitialize_function
, the parameter sweep tool will immediately calloptimize_function
again.reinitialize_kwargs (optional) – Dictionary or kwargs to pass into every call to
reinitialize_function
. The first arg will always bemodel
, e.g.,reinitialize_function(model, **reinitialize_kwargs)
. The default uses no kwargs.mpi_comm (optional) – User-provided MPI communicator for parallel parameter sweeps. If None COMM_WORLD will be used. The default is sufficient for most users.
debugging_data_dir (optional) – Save results on a per-process basis for parallel debugging purposes. If None no debugging data will be saved.
interpolate_nan_outputs (optional) – When the parameter sweep has finished, interior values of np.nan will be replaced with a value obtained via a linear interpolation of their surrounding valid neighbors. If true, a second output file with the extension “_clean” will be saved alongside the raw (un-interpolated) values.
num_samples (optional) – If the user is using sampling techniques rather than a linear grid of values, they need to set the number of samples
seed (optional) – If the user is using a random sampling technique, this sets the seed
- Returns
- A list were the first N columns are the values of the parameters passed
by
sweep_params
and the remaining columns are the values of the simulation identified by theoutputs
argument.
- Return type
save_data