Source code for dakotathon.method.multidim_parameter_study
#! /usr/bin/env python
"""Implementation of a Dakota multidim parameter study."""
from .base import MethodBase
from ..utils import to_iterable
classname = "MultidimParameterStudy"
[docs]class MultidimParameterStudy(MethodBase):
"""Define parameters for a Dakota multidim parameter study."""
[docs] def __init__(self, partitions=(10, 8), **kwargs):
"""Create a new Dakota multidim parameter study.
Parameters
----------
partitions : array_like of int
Number of intervals between lower and upper bounds for each study
parameter.
Examples
--------
Create a default multidim parameter study experiment:
>>> m = MultidimParameterStudy()
"""
MethodBase.__init__(self, **kwargs)
self.method = self.__module__.rsplit(".")[-1]
self._partitions = partitions
@property
def partitions(self):
"""The number of evaluation intervals for each parameter."""
return self._partitions
@partitions.setter
def partitions(self, value):
"""Set the number of evaluation intervals for each parameter.
Parameters
----------
value : list or tuple of int
The new number of partitions.
"""
if not isinstance(value, (tuple, list)):
raise TypeError("Partitions must be a tuple or a list")
self._partitions = value
[docs] def __str__(self):
"""Define a multidim parameter study method block.
See Also
--------
dakotathon.method.base.MethodBase.__str__
"""
s = MethodBase.__str__(self)
partitions = to_iterable(self.partitions)
s += " partitions ="
for p in partitions:
s += " {}".format(p)
s += "\n\n"
return s