Opm::Tabulated1DFunction< Scalar > Class Template Reference Implements a linearly interpolated scalar function that depends on one variable. More...
Detailed Descriptiontemplate<class Scalar>
|
|
inline |
Default constructor for a piecewise linear function.
To specfiy the acutal curve, use one of the set() methods.
|
inline |
Convenience constructor for a piecewise linear function.
nSamples | The number of sampling points (must be >= 2) |
x | An array containing the values of the spline's sampling points |
y | An array containing the values of the spline's sampling points |
References Opm::Tabulated1DFunction< Scalar >::setXYArrays().
|
inline |
Convenience constructor for a piecewise linear function.
x | An array containing the values of the spline's sampling points (must have a size() method) |
y | An array containing the values of the spline's sampling points (must have a size() method) |
References Opm::Tabulated1DFunction< Scalar >::setXYContainers().
|
inline |
Convenience constructor for a piecewise linear function.
points | A container of tuples of the spline's sampling points (must have a size() method) |
References Opm::Tabulated1DFunction< Scalar >::setContainerOfTuples().
|
inline |
Return true iff the given x is in range [x1, xn].
References Opm::Tabulated1DFunction< Scalar >::numSamples().
Referenced by Opm::Tabulated1DFunction< Scalar >::evalSecondDerivative(), Opm::Tabulated1DFunction< Scalar >::evalThirdDerivative(), and Opm::Tabulated1DFunction< Scalar >::printCSV().
|
inline |
Evaluate the spline at a given position.
x | The value on the abscissa where the function ought to be evaluated |
extrapolate | If this parameter is set to true, the function will be extended beyond its range by straight lines, if false calling extrapolate for will cause a failed assertation. |
References Opm::Tabulated1DFunction< Scalar >::numSamples().
Referenced by Opm::Tabulated1DFunction< Scalar >::printCSV().
|
inline |
Evaluate the spline at a given position.
x | The value on the abscissa where the function ought to be evaluated |
extrapolate | If this parameter is set to true, the function will be extended beyond its range by straight lines, if false calling extrapolate for will cause a failed assertation. |
References Opm::Tabulated1DFunction< Scalar >::numSamples().
|
inline |
Evaluate the spline's derivative at a given position.
x | The value on the abscissa where the function's derivative ought to be evaluated |
extrapolate | If this parameter is set to true, the spline will be extended beyond its range by straight lines, if false calling extrapolate for will cause a failed assertation. |
Referenced by Opm::Tabulated1DFunction< Scalar >::printCSV().
|
inline |
Evaluate the function's second derivative at a given position.
Since this class represents a piecewise linear function, this method will always return 0.
x | The value on the abscissa where the function's derivative ought to be evaluated |
extrapolate | If this parameter is set to true, the function will be extended beyond its range by straight lines, if false calling extrapolate for will cause a failed assertation. |
References Opm::Tabulated1DFunction< Scalar >::applies().
|
inline |
Evaluate the function's third derivative at a given position.
Since this class represents a piecewise linear function, this method will always return 0.
x | The value on the abscissa where the function's derivative ought to be evaluated |
extrapolate | If this parameter is set to true, the function will be extended beyond its range by straight lines, if false calling extrapolate for will cause a failed assertation. |
References Opm::Tabulated1DFunction< Scalar >::applies().
|
inline |
Returns 1 if the function is monotonically increasing, -1 if the function is mononously decreasing and 0 if the function is not monotonous in the interval (x0, x1).
In the corner case that the function is constant within the given interval, this method returns 3.
References Opm::Tabulated1DFunction< Scalar >::numSamples(), Opm::Tabulated1DFunction< Scalar >::xMax(), and Opm::Tabulated1DFunction< Scalar >::xMin().
|
inline |
Same as monotonic(x0, x1), but with the entire range of the function as interval.
References Opm::Tabulated1DFunction< Scalar >::xMax(), and Opm::Tabulated1DFunction< Scalar >::xMin().
|
inline |
Returns the number of sampling points.
Referenced by Opm::Tabulated1DFunction< Scalar >::applies(), Opm::Tabulated1DFunction< Scalar >::eval(), Opm::Tabulated1DFunction< Scalar >::monotonic(), Opm::Tabulated1DFunction< Scalar >::printCSV(), Opm::Tabulated1DFunction< Scalar >::setArrayOfPoints(), Opm::Tabulated1DFunction< Scalar >::setContainerOfTuples(), Opm::Tabulated1DFunction< Scalar >::setXYArrays(), Opm::Tabulated1DFunction< Scalar >::setXYContainers(), and Opm::Tabulated1DFunction< Scalar >::xMax().
|
inline |
Prints k tuples of the format (x, y, dx/dy, isMonotonic) to stdout.
If the function does not apply for parts of [x0, x1] it is extrapolated using a straight line. The result can be inspected using the following commands:
--------— snip --------— ./yourProgramm > function.csv gnuplot
gnuplot> plot "function.csv" using 1:2 w l ti "Curve", \ "function.csv" using 1:3 w l ti "Derivative" --------— snap --------—
References Opm::Tabulated1DFunction< Scalar >::applies(), Opm::Tabulated1DFunction< Scalar >::eval(), Opm::Tabulated1DFunction< Scalar >::evalDerivative(), Opm::LocalAd::max(), Opm::LocalAd::min(), and Opm::Tabulated1DFunction< Scalar >::numSamples().
|
inline |
Set the sampling points for the piecewise linear function.
References Opm::Tabulated1DFunction< Scalar >::numSamples().
|
inline |
Set the sampling points of the piecewise linear function using a STL-compatible container of tuple-like objects.
This method uses a single STL-compatible container of sampling points, which are assumed to be tuple-like objects storing the X and Y coordinates. "tuple-like" means that the objects provide access to the x values via std::get<0>(obj) and to the y value via std::get<1>(obj) (e.g. std::tuple or std::pair). "STL-compatible" means that the container provides access to iterators using the begin(), end() methods and also provides a size() method. Also, the number of entries in the X and the Y containers must be equal and larger than 1.
References Opm::Tabulated1DFunction< Scalar >::numSamples().
Referenced by Opm::Tabulated1DFunction< Scalar >::Tabulated1DFunction().
|
inline |
Set the sampling points for the piecewise linear function.
This method takes C-style arrays (pointers) as arguments.
References Opm::Tabulated1DFunction< Scalar >::numSamples().
Referenced by Opm::Tabulated1DFunction< Scalar >::Tabulated1DFunction().
|
inline |
Set the sampling points for the piecewise linear function.
This method takes STL compatible containers as arguments.
References Opm::Tabulated1DFunction< Scalar >::numSamples().
Referenced by Opm::Tabulated1DFunction< Scalar >::Tabulated1DFunction().
|
inline |
Return the value of the a sample point with a given index.
|
inline |
Return the x value of the a sample point with a given index.
|
inline |
Return the x value of the rightmost sampling point.
References Opm::Tabulated1DFunction< Scalar >::numSamples().
Referenced by Opm::Tabulated1DFunction< Scalar >::monotonic().
|
inline |
Return the x value of the leftmost sampling point.
Referenced by Opm::Tabulated1DFunction< Scalar >::monotonic().