Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Stokhos_KL_OneDExponentialCovarianceFunction.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Stokhos Package
5
// Copyright (2009) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Eric T. Phipps (etphipp@sandia.gov).
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
#ifndef STOKHOS_KL_ONE_D_EXPONENTIAL_COVARIANCE_FUNCTION_HPP
43
#define STOKHOS_KL_ONE_D_EXPONENTIAL_COVARIANCE_FUNCTION_HPP
44
45
#include <string>
46
#include <cmath>
47
#include "Teuchos_ParameterList.hpp"
48
#include "Teuchos_ScalarTraits.hpp"
49
#include "
Stokhos_KL_OneDExponentialEigenPair.hpp
"
50
51
namespace
Stokhos
{
52
53
namespace
KL
{
54
118
template
<
typename
value_type>
119
class
OneDExponentialCovarianceFunction
{
120
public
:
121
122
typedef
ExponentialOneDEigenFunction<value_type>
eigen_function_type
;
123
typedef
OneDEigenPair<eigen_function_type>
eigen_pair_type
;
124
126
OneDExponentialCovarianceFunction
(
int
M,
127
const
value_type
& a,
128
const
value_type
& b,
129
const
value_type
&
L
,
130
const
int
dim_name,
131
Teuchos::ParameterList& solverParams);
132
134
~OneDExponentialCovarianceFunction
() {}
135
137
value_type
evaluateCovariance
(
const
value_type
& x,
138
const
value_type
& xp)
const
{
139
return
std::exp(-std::abs(x-xp)/
L
);
140
}
141
143
const
Teuchos::Array<eigen_pair_type>&
getEigenPairs
()
const
{
144
return
eig_pair
;
145
}
146
147
private
:
148
150
OneDExponentialCovarianceFunction
(
const
OneDExponentialCovarianceFunction
&);
151
153
OneDExponentialCovarianceFunction
&
operator=
(
const
OneDExponentialCovarianceFunction
&);
154
155
protected
:
156
157
typedef
typename
Teuchos::ScalarTraits<value_type>::magnitudeType
magnitude_type
;
158
160
value_type
L
;
161
163
Teuchos::Array<eigen_pair_type>
eig_pair
;
164
166
template
<
class
Func>
167
value_type
newton
(
const
Func& func,
const
value_type
& a,
168
const
value_type
& b,
magnitude_type
tol,
169
int
max_num_its);
170
172
template
<
class
Func>
173
value_type
bisection
(
const
Func& func,
const
value_type
& a,
174
const
value_type
& b,
magnitude_type
tol,
175
int
max_num_its);
176
181
struct
EigFuncSin
{
182
const
value_type
&
alpha
;
183
EigFuncSin
(
const
value_type
& alpha_) :
alpha
(alpha_) {}
184
value_type
eval
(
const
value_type
& u)
const
{
185
return
alpha
*std::tan(u) + u; }
186
value_type
deriv
(
const
value_type
& u)
const
{
187
return
alpha
/(std::cos(u)*std::cos(u)) + 1.0; }
188
};
189
194
struct
EigFuncCos
{
195
const
value_type
&
alpha
;
196
EigFuncCos
(
const
value_type
& alpha_) :
alpha
(alpha_) {}
197
value_type
eval
(
const
value_type
& u)
const
{
198
return
alpha
- u*std::tan(u); }
199
value_type
deriv
(
const
value_type
& u)
const
{
200
return
-std::tan(u) - u/(std::cos(u)*std::cos(u)); }
201
};
202
203
};
// class OneDExponentialCovarianceFunction
204
205
}
// namespace KL
206
207
}
// namespace Stokhos
208
209
// Include template definitions
210
#include "
Stokhos_KL_OneDExponentialCovarianceFunctionImp.hpp
"
211
212
#endif
// STOKHOS_KL_ONE_D_EXPONENTIAL_COVARIANCE_FUNCTION_HPP
Stokhos_KL_OneDExponentialCovarianceFunctionImp.hpp
Stokhos_KL_OneDExponentialEigenPair.hpp
Stokhos::KL::ExponentialOneDEigenFunction
One-dimensional eigenfunction for exponential covariance function.
Definition
Stokhos_KL_OneDExponentialEigenPair.hpp:73
Stokhos::KL::OneDExponentialCovarianceFunction::eigen_pair_type
OneDEigenPair< eigen_function_type > eigen_pair_type
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:123
Stokhos::KL::OneDExponentialCovarianceFunction::bisection
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.
Definition
Stokhos_KL_OneDExponentialCovarianceFunctionImp.hpp:124
Stokhos::KL::OneDExponentialCovarianceFunction::eig_pair
Teuchos::Array< eigen_pair_type > eig_pair
Eigenpairs.
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:163
Stokhos::KL::OneDExponentialCovarianceFunction::L
value_type L
Correlation length.
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:160
Stokhos::KL::OneDExponentialCovarianceFunction::evaluateCovariance
value_type evaluateCovariance(const value_type &x, const value_type &xp) const
Evaluate covariance.
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:137
Stokhos::KL::OneDExponentialCovarianceFunction::eigen_function_type
ExponentialOneDEigenFunction< value_type > eigen_function_type
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:122
Stokhos::KL::OneDExponentialCovarianceFunction::getEigenPairs
const Teuchos::Array< eigen_pair_type > & getEigenPairs() const
Get eigenpairs.
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:143
Stokhos::KL::OneDExponentialCovarianceFunction::magnitude_type
Teuchos::ScalarTraits< value_type >::magnitudeType magnitude_type
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:157
Stokhos::KL::OneDExponentialCovarianceFunction::OneDExponentialCovarianceFunction
OneDExponentialCovarianceFunction(const OneDExponentialCovarianceFunction &)
Prohibit copying.
Stokhos::KL::OneDExponentialCovarianceFunction::newton
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.
Definition
Stokhos_KL_OneDExponentialCovarianceFunctionImp.hpp:100
Stokhos::KL::OneDExponentialCovarianceFunction::~OneDExponentialCovarianceFunction
~OneDExponentialCovarianceFunction()
Destructor.
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:134
Stokhos::KL::OneDExponentialCovarianceFunction::operator=
OneDExponentialCovarianceFunction & operator=(const OneDExponentialCovarianceFunction &)
Prohibit copying.
Stokhos::KL::OneDExponentialCovarianceFunction::OneDExponentialCovarianceFunction
OneDExponentialCovarianceFunction(int M, const value_type &a, const value_type &b, const value_type &L, const int dim_name, Teuchos::ParameterList &solverParams)
Constructor.
Definition
Stokhos_KL_OneDExponentialCovarianceFunctionImp.hpp:46
Stokhos::value_type
Stokhos::KL
Namespace for analytic KL expansions.
Definition
Stokhos_KL_ExponentialRandomField.hpp:54
Stokhos
Top-level namespace for Stokhos classes and functions.
Definition
Stokhos_AbstractPreconditionerFactory.hpp:48
Stokhos::KL::OneDEigenPair
Container for one-dimensional eigenfunction and eigenvalue.
Definition
Stokhos_KL_OneDExponentialEigenPair.hpp:57
Stokhos::KL::OneDExponentialCovarianceFunction::EigFuncCos::deriv
value_type deriv(const value_type &u) const
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:199
Stokhos::KL::OneDExponentialCovarianceFunction::EigFuncCos::EigFuncCos
EigFuncCos(const value_type &alpha_)
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:196
Stokhos::KL::OneDExponentialCovarianceFunction::EigFuncCos::eval
value_type eval(const value_type &u) const
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:197
Stokhos::KL::OneDExponentialCovarianceFunction::EigFuncCos::alpha
const value_type & alpha
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:195
Stokhos::KL::OneDExponentialCovarianceFunction::EigFuncSin::EigFuncSin
EigFuncSin(const value_type &alpha_)
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:183
Stokhos::KL::OneDExponentialCovarianceFunction::EigFuncSin::deriv
value_type deriv(const value_type &u) const
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:186
Stokhos::KL::OneDExponentialCovarianceFunction::EigFuncSin::eval
value_type eval(const value_type &u) const
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:184
Stokhos::KL::OneDExponentialCovarianceFunction::EigFuncSin::alpha
const value_type & alpha
Definition
Stokhos_KL_OneDExponentialCovarianceFunction.hpp:182
Generated by
1.17.0