Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
test
UnitTest
Stokhos_SmolyakPseudoSpectralExpansionUnitTest.cpp
Go to the documentation of this file.
1
// $Id$
2
// $Source$
3
// @HEADER
4
// ***********************************************************************
5
//
6
// Stokhos Package
7
// Copyright (2009) Sandia Corporation
8
//
9
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
10
// license for use of this work by or on behalf of the U.S. Government.
11
//
12
// Redistribution and use in source and binary forms, with or without
13
// modification, are permitted provided that the following conditions are
14
// met:
15
//
16
// 1. Redistributions of source code must retain the above copyright
17
// notice, this list of conditions and the following disclaimer.
18
//
19
// 2. Redistributions in binary form must reproduce the above copyright
20
// notice, this list of conditions and the following disclaimer in the
21
// documentation and/or other materials provided with the distribution.
22
//
23
// 3. Neither the name of the Corporation nor the names of the
24
// contributors may be used to endorse or promote products derived from
25
// this software without specific prior written permission.
26
//
27
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
28
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
31
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
33
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
34
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
35
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38
//
39
// Questions? Contact Eric T. Phipps (etphipp@sandia.gov).
40
//
41
// ***********************************************************************
42
// @HEADER
43
44
#include "Teuchos_UnitTestHarness.hpp"
45
#include "Teuchos_TestingHelpers.hpp"
46
#include "Teuchos_UnitTestRepository.hpp"
47
#include "Teuchos_GlobalMPISession.hpp"
48
49
#include "
Stokhos.hpp
"
50
#include "
Stokhos_UnitTestHelpers.hpp
"
51
52
namespace
PseudoSpectralExpansionUnitTest
{
53
54
// Common setup for unit tests that defines what pseudospectral expansion
55
// we are testing
56
template
<
typename
OrdinalType,
typename
ValueType>
57
struct
UnitTestSetup
{
58
59
typedef
Stokhos::SmolyakBasis<OrdinalType,ValueType>
product_basis_type
;
60
ValueType
rtol
,
atol
;
61
ValueType
crtol
,
catol
;
62
OrdinalType
sz
;
63
Teuchos::RCP<const product_basis_type>
basis
;
64
Teuchos::RCP<const Stokhos::Quadrature<OrdinalType,ValueType> >
quad
;
65
Teuchos::RCP<const Stokhos::PseudoSpectralOperator<OrdinalType,ValueType> >
ps_op
;
66
Teuchos::RCP<Stokhos::Sparse3Tensor<int,double> >
Cijk
,
Cijk_linear
;
67
Teuchos::RCP< Stokhos::PseudoSpectralOrthogPolyExpansion<OrdinalType,ValueType> >
exp
,
exp_linear
;
68
Stokhos::OrthogPolyApprox<OrdinalType,ValueType>
x
,
y
,
u
,
u2
,
cx
,
cu
,
cu2
,
sx
,
su
,
su2
;
69
ValueType
a
;
70
71
UnitTestSetup
() {
72
rtol
= 1e-4;
73
atol
= 1e-5;
74
crtol
= 1e-12;
75
catol
= 1e-12;
76
a
= 3.1;
77
const
OrdinalType d = 2;
78
const
OrdinalType p = 7;
79
80
// Create product basis
81
Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<OrdinalType,ValueType> > > bases(d);
82
for
(OrdinalType i=0; i<d; i++)
83
bases[i] =
84
Teuchos::rcp(
new
Stokhos::LegendreBasis<OrdinalType,ValueType>
(p));
85
86
Stokhos::TotalOrderIndexSet<OrdinalType>
coeff_index_set(d, p);
87
basis
=
88
Teuchos::rcp(
new
product_basis_type
(bases, coeff_index_set));
89
90
// Tensor product quadrature
91
quad
=
92
Teuchos::rcp(
new
Stokhos::TensorProductQuadrature<OrdinalType,ValueType>
(
basis
));
93
94
// Tensor product pseudospectral operator
95
ps_op
=
96
Teuchos::rcp(
new
Stokhos::SmolyakPseudoSpectralOperator<OrdinalType,ValueType>
(*
basis
,
true
,
true
));
97
98
// Triple product tensor
99
Cijk
=
basis
->computeTripleProductTensor();
100
Cijk_linear
=
basis
->computeLinearTripleProductTensor();
101
102
// Quadrature expansion
103
exp
=
104
Teuchos::rcp(
new
Stokhos::PseudoSpectralOrthogPolyExpansion<OrdinalType,ValueType>
(
basis
,
Cijk
,
ps_op
));
105
exp_linear
=
106
Teuchos::rcp(
new
Stokhos::PseudoSpectralOrthogPolyExpansion<OrdinalType,ValueType>
(
basis
,
Cijk_linear
,
ps_op
));
107
108
// Create approximation
109
sz
=
basis
->size();
110
x
.reset(
basis
);
111
y
.reset(
basis
);
112
u
.reset(
basis
);
113
u2
.reset(
basis
);
114
cx
.reset(
basis
, 1);
115
x
.term(0, 0) = 1.0;
116
cx
.term(0, 0) =
a
;
117
cu
.reset(
basis
);
118
cu2
.reset(
basis
, 1);
119
sx
.reset(
basis
, d+1);
120
su
.reset(
basis
, d+1);
121
su2
.reset(
basis
, d+1);
122
for
(OrdinalType i=0; i<d; i++) {
123
x
.term(i, 1) = 0.1;
124
sx
.term(i, 1) = 0.0;
125
}
126
y
.term(0, 0) = 2.0;
127
for
(OrdinalType i=0; i<d; i++)
128
y
.term(i, 1) = 0.25;
129
}
130
131
};
132
133
// typedef int OrdinalType;
134
// typedef double ValueType;
135
UnitTestSetup<int,double>
setup
;
136
137
}
138
139
// Include unit tests for the above setup class
140
#include "
Stokhos_PseudoSpectralExpansionUnitTest.hpp
"
141
142
int
main
(
int
argc,
char
*
argv
[] ) {
143
Teuchos::GlobalMPISession mpiSession(&argc, &
argv
);
144
return
Teuchos::UnitTestRepository::runUnitTestsFromMain(argc,
argv
);
145
}
Stokhos.hpp
argv
char * argv[]
Definition
Stokhos_HouseTriDiagUnitTest.cpp:286
setup
UnitTestSetup< Kokkos::Cuda > setup
Definition
Stokhos_KokkosArrayKernelsUnitTest_Cuda.cpp:53
Stokhos_PseudoSpectralExpansionUnitTest.hpp
main
int main(int argc, char *argv[])
Definition
Stokhos_SmolyakPseudoSpectralExpansionUnitTest.cpp:142
Stokhos_UnitTestHelpers.hpp
Stokhos::LegendreBasis
Legendre polynomial basis.
Definition
Stokhos_LegendreBasis.hpp:68
Stokhos::OrthogPolyApprox
Class to store coefficients of a projection onto an orthogonal polynomial basis.
Definition
Stokhos_OrthogPolyApprox.hpp:63
Stokhos::PseudoSpectralOrthogPolyExpansion
Orthogonal polynomial expansions based on numerical quadrature.
Definition
Stokhos_PseudoSpectralOrthogPolyExpansion.hpp:63
Stokhos::SmolyakBasis
Multivariate orthogonal polynomial basis generated from a Smolyak sparse grid.
Definition
Stokhos_SmolyakBasis.hpp:63
Stokhos::SmolyakPseudoSpectralOperator
An operator for building pseudo-spectral coefficients using a sparse Smolyak construction.
Definition
Stokhos_SmolyakPseudoSpectralOperator.hpp:62
Stokhos::TensorProductQuadrature
Defines quadrature for a tensor product basis by tensor products of 1-D quadrature rules.
Definition
Stokhos_TensorProductQuadrature.hpp:58
Stokhos::TotalOrderIndexSet
An isotropic total order index set.
Definition
Stokhos_ProductBasisUtils.hpp:215
PseudoSpectralExpansionUnitTest
Definition
Stokhos_PseudoSpectralExpansionUnitTest.hpp:44
PseudoSpectralExpansionUnitTest::UnitTestSetup
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:57
PseudoSpectralExpansionUnitTest::UnitTestSetup::cu2
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > cu2
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
PseudoSpectralExpansionUnitTest::UnitTestSetup::exp
Teuchos::RCP< Stokhos::PseudoSpectralOrthogPolyExpansion< OrdinalType, ValueType > > exp
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:67
PseudoSpectralExpansionUnitTest::UnitTestSetup::sz
OrdinalType sz
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:62
PseudoSpectralExpansionUnitTest::UnitTestSetup::exp_linear
Teuchos::RCP< Stokhos::PseudoSpectralOrthogPolyExpansion< OrdinalType, ValueType > > exp_linear
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:67
PseudoSpectralExpansionUnitTest::UnitTestSetup::quad
Teuchos::RCP< const Stokhos::Quadrature< OrdinalType, ValueType > > quad
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:64
PseudoSpectralExpansionUnitTest::UnitTestSetup::u
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > u
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
PseudoSpectralExpansionUnitTest::UnitTestSetup::UnitTestSetup
UnitTestSetup()
Definition
Stokhos_SmolyakPseudoSpectralExpansionUnitTest.cpp:71
PseudoSpectralExpansionUnitTest::UnitTestSetup::x
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > x
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
PseudoSpectralExpansionUnitTest::UnitTestSetup::su
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > su
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
PseudoSpectralExpansionUnitTest::UnitTestSetup::Cijk
Teuchos::RCP< Stokhos::Sparse3Tensor< int, double > > Cijk
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:66
PseudoSpectralExpansionUnitTest::UnitTestSetup::rtol
ValueType rtol
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:60
PseudoSpectralExpansionUnitTest::UnitTestSetup::crtol
ValueType crtol
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:61
PseudoSpectralExpansionUnitTest::UnitTestSetup::cx
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > cx
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
PseudoSpectralExpansionUnitTest::UnitTestSetup::ps_op
Teuchos::RCP< const Stokhos::PseudoSpectralOperator< OrdinalType, ValueType > > ps_op
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:65
PseudoSpectralExpansionUnitTest::UnitTestSetup::a
ValueType a
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:69
PseudoSpectralExpansionUnitTest::UnitTestSetup::cu
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > cu
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
PseudoSpectralExpansionUnitTest::UnitTestSetup::Cijk_linear
Teuchos::RCP< Stokhos::Sparse3Tensor< int, double > > Cijk_linear
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:66
PseudoSpectralExpansionUnitTest::UnitTestSetup::atol
ValueType atol
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:60
PseudoSpectralExpansionUnitTest::UnitTestSetup::product_basis_type
Stokhos::TotalOrderBasis< OrdinalType, ValueType > product_basis_type
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:59
PseudoSpectralExpansionUnitTest::UnitTestSetup::u2
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > u2
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
PseudoSpectralExpansionUnitTest::UnitTestSetup::catol
ValueType catol
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:61
PseudoSpectralExpansionUnitTest::UnitTestSetup::y
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > y
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
PseudoSpectralExpansionUnitTest::UnitTestSetup::basis
Teuchos::RCP< const product_basis_type > basis
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:63
PseudoSpectralExpansionUnitTest::UnitTestSetup::su2
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > su2
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
PseudoSpectralExpansionUnitTest::UnitTestSetup::sx
Stokhos::OrthogPolyApprox< OrdinalType, ValueType > sx
Definition
Stokhos_QuadraturePseudoSpectralExpansionUnitTest.cpp:68
UnitTestSetup
Definition
Stokhos_SacadoMPVectorCommTests.cpp:71
Generated by
1.17.0