Source code for dakotathon.method.vector_parameter_study
#! /usr/bin/env python
"""Implementation of a Dakota vector parameter study."""
from .base import MethodBase
from ..utils import to_iterable
classname = "VectorParameterStudy"
[docs]class VectorParameterStudy(MethodBase):
"""Define parameters for a Dakota vector parameter study."""
[docs] def __init__(self, final_point=(1.1, 1.3), n_steps=10, **kwargs):
"""Create a new Dakota vector parameter study.
Parameters
----------
final_point : array_like of float
End point for the parameter study.
n_steps : int
Number of steps along vector.
Examples
--------
Create a default vector parameter study experiment:
>>> v = VectorParameterStudy()
"""
MethodBase.__init__(self, **kwargs)
self.method = self.__module__.rsplit(".")[-1]
self._final_point = final_point
self._n_steps = n_steps
@property
def final_point(self):
"""End points used by study variables."""
return self._final_point
@final_point.setter
def final_point(self, value):
"""Set end points used by study variables.
Parameters
----------
value : list or tuple of numbers
The new final points.
"""
if not isinstance(value, (tuple, list)):
raise TypeError("Final points must be a tuple or a list")
self._final_point = value
@property
def n_steps(self):
"""Number of steps along vector."""
return self._n_steps
@n_steps.setter
def n_steps(self, value):
"""Set number of steps along vector.
Parameters
----------
value : int
The number of steps.
"""
if not isinstance(value, int):
raise TypeError("Number of steps must be an int")
self._n_steps = value
[docs] def __str__(self):
"""Define a vector parameter study method block for a Dakota input file.
See Also
--------
dakotathon.method.base.MethodBase.__str__
"""
s = MethodBase.__str__(self)
final_point = to_iterable(self.final_point)
s += " final_point ="
for pt in final_point:
s += " {}".format(pt)
s += "\n" + " num_steps = {}\n\n".format(self.n_steps)
return s