Class representing a KL expansion of an exponential random field. More...
#include <Stokhos_KL_ExponentialRandomField.hpp>
Public Member Functions | |
| ExponentialRandomField (Teuchos::ParameterList &solverParams) | |
| Constructor. | |
| ~ExponentialRandomField () | |
| Destructor. | |
| int | spatialDimension () const |
| Return spatial dimension of the field. | |
| int | stochasticDimension () const |
| Return stochastic dimension of the field. | |
| template<typename rvar_type > | |
| Teuchos::PromotionTraits < rvar_type, value_type > ::promote | evaluate (const Teuchos::Array< value_type > &point, const Teuchos::Array< rvar_type > &random_variables) const |
| Evaluate random field at a point. | |
| value_type | evaluate_mean (const Teuchos::Array< value_type > &point) const |
| Evaluate mean of random field at a point. | |
| value_type | evaluate_standard_deviation (const Teuchos::Array< value_type > &point) const |
| Evaluate standard deviation of random field at a point. | |
| value_type | evaluate_eigenfunction (const Teuchos::Array< value_type > &point, int i) const |
| Evaluate given eigenfunction at a point. | |
|
const Teuchos::Array < ProductEigenPair< value_type > > & | getEigenPairs () const |
| Get eigenpairs. | |
| void | print (std::ostream &os) const |
| Print KL expansion. | |
Protected Attributes | |
| int | num_KL |
| Number of KL terms. | |
| int | dim |
| Dimension of expansion. | |
| Teuchos::Array< value_type > | domain_upper_bound |
| Domain upper bounds. | |
| Teuchos::Array< value_type > | domain_lower_bound |
| Domeain lower bounds. | |
| Teuchos::Array< value_type > | correlation_length |
| Correlation lengths. | |
| value_type | mean |
| Mean of random field. | |
| value_type | std_dev |
| Standard deviation of random field. | |
|
Teuchos::Array < ProductEigenPair< value_type > > | product_eig_pairs |
| Product eigenfunctions. | |
Class representing a KL expansion of an exponential random field.
This class provides a means for evaluating a random field
,
,
through the KL expansion
where
is a
-dimensional hyper-rectangle, for the case when the covariance function of
is exponential:
In this case, the covariance function and domain factor into a product 1-dimensional covariance functions over 1-dimensional domains, and thus the eigenfunctions
and eigenvalues
factor into a product of corresponding 1-dimensional eigenfunctions and values. These are computed by the OneDExponentialCovarianceFunction class For a given value of
, the code works by computing the
eigenfunctions for each direction using this class. Then all possible tensor products of these one-dimensional eigenfunctions are formed, with corresponding eigenvalue given by the product of the one-dimensional eigenvalues. These eigenvalues are then sorted in increasing order, and the first
are chosen as the
KL eigenpairs. Then given values for the random variables
, the class provides a routine for evaluating a realization of the random field.
The idea for this approach was provided by Chris Miller.
All data is passed into this class through a Teuchos::ParameterList, which accepts the following parameters:
of KL terms
for each dimension
for each dimension
for each dimension
of the random field
of the random field Additionally parameters for the OneDExponentialCovarianceFunction are also accepted.
1.7.6.1