Stokhos Development
Stokhos::KL::OneDExponentialCovarianceFunction< value_type > Class Template Reference

Class representing an exponential covariance function and its KL eigevalues/eigenfunctions. More...

#include <Stokhos_KL_OneDExponentialCovarianceFunction.hpp>

List of all members.

## Classes

struct  EigFuncCos
Nonlinear function whose roots define eigenvalues for cos() eigenfunction. More...
struct  EigFuncSin
Nonlinear function whose roots define eigenvalues for sin() eigenfunction. More...

## Public Member Functions

OneDExponentialCovarianceFunction (int M, const value_type &a, const value_type &b, const value_type &L, const std::string &dim_name, Teuchos::ParameterList &solverParams)
Constructor.
~OneDExponentialCovarianceFunction ()
Destructor.
value_type evaluateCovariance (const value_type &x, const value_type &xp) const
Evaluate covariance.
const Teuchos::Array
< OneDEigenPair< value_type > > &
getEigenPairs () const
Get eigenpairs.

## Protected Types

typedef Teuchos::ScalarTraits
< value_type >::magnitudeType
magnitude_type

## Protected Member Functions

template<class Func >
value_type newton (const Func &func, const value_type &a, const value_type &b, magnitude_type tol, int max_num_its)
A basic root finder based on Newton's method.
template<class Func >
value_type bisection (const Func &func, const value_type &a, const value_type &b, magnitude_type tol, int max_num_its)
A basic root finder based on bisection.

## Protected Attributes

value_type L
Correlation length.
Teuchos::Array< OneDEigenPair
< value_type > >
eig_pair
Eigenpairs.

## Detailed Description

### template<typename value_type> class Stokhos::KL::OneDExponentialCovarianceFunction< value_type >

Class representing an exponential covariance function and its KL eigevalues/eigenfunctions.

This class provides the exponential covariance function

The corresponding eigenfunctions can be shown to be and for where and satisfy

and

respectively, where and . Then

and the corresponding eigenvalues are given by

and

It is straightforward to show that for each , , and thus . Hence when sorted on decreasing eigenvalue, the eigenfunctions alternate between cosine and sine. See "Stochastic Finite Elements" by Ghanem and Spanos for a complete description of how to derive these relationships.

For a given value of , the code works by computing the eigenfunctions using a bisection root solver to compute the frequencies and .

Data for the root solver is passed through a Teuchos::ParameterList, which accepts the following parameters:

• "Bound Peturbation Size" -- [value_type] (1.0e-6) Perturbation away from for bounding the frequencies in the bisection algorithm
• "Nonlinear Solver Tolerance" -- [value_type] (1.0e-10) Tolerance for bisection nonlinear solver for computing frequencies
• "Maximum Nonlinear Solver Iterations" -- [int] (100) Maximum number of nonlinear solver iterations for computing the frequencies.

The documentation for this class was generated from the following files:
• Stokhos_KL_OneDExponentialCovarianceFunction.hpp
• Stokhos_KL_OneDExponentialCovarianceFunctionImp.hpp