Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
test
UnitTest
Stokhos_SparseGridQuadratureUnitTest.cpp
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
#include "Teuchos_UnitTestHarness.hpp"
43
#include "Teuchos_TestingHelpers.hpp"
44
#include "Teuchos_UnitTestRepository.hpp"
45
#include "Teuchos_GlobalMPISession.hpp"
46
47
#include "
Stokhos.hpp
"
48
#include "
Stokhos_UnitTestHelpers.hpp
"
49
50
namespace
SparseGridQuadratureUnitTest
{
51
52
// Common setup for unit tests
53
template
<
typename
OrdinalType,
typename
ValueType>
54
struct
UnitTestSetup
{
55
Teuchos::RCP<const Stokhos::CompletePolynomialBasis<OrdinalType,ValueType> >
basis
;
56
const
OrdinalType
d
;
57
const
OrdinalType
p
;
58
59
UnitTestSetup
() :
d
(2),
p
(5) {
60
61
// Create product basis
62
Teuchos::Array< Teuchos::RCP<const Stokhos::OneDOrthogPolyBasis<OrdinalType,ValueType> > > bases(
d
);
63
for
(OrdinalType i=0; i<
d
; i++)
64
bases[i] =
65
Teuchos::rcp(
new
Stokhos::LegendreBasis<OrdinalType,ValueType>
(
66
p
,
true
,
Stokhos::MODERATE_GROWTH
));
67
basis
=
68
Teuchos::rcp(
new
Stokhos::CompletePolynomialBasis<OrdinalType,ValueType>
(bases));
69
}
70
71
};
72
73
UnitTestSetup<int,double>
setup
;
74
75
#ifdef HAVE_STOKHOS_DAKOTA
76
77
TEUCHOS_UNIT_TEST
( Stokhos_SparseGridQuadrature, NumPoints ) {
78
const
Stokhos::SparseGridQuadrature<int,double> quad(
79
setup
.basis,
setup
.p, 1e-12, Pecos::MODERATE_RESTRICTED_GROWTH);
80
const
Teuchos::Array<double>& weights = quad.getQuadWeights();
81
int
nqp = weights.size();
82
int
nqp_gold = 181;
83
84
if
(nqp == nqp_gold)
85
success =
true
;
86
else
87
success =
false
;
88
89
out << std::endl
90
<<
"Check: quad_weight.size() = "
<< nqp <<
" == "
<< nqp_gold
91
<<
" : "
;
92
if
(success) out <<
"Passed."
;
93
else
94
out <<
"Failed!"
;
95
out << std::endl;
96
}
97
98
#endif
99
100
TEUCHOS_UNIT_TEST
( Stokhos_SmolyakSparseGridQuadrature, NumPoints ) {
101
const
Stokhos::TotalOrderIndexSet<int>
index_set(
setup
.d,
setup
.p);
102
const
Stokhos::SmolyakSparseGridQuadrature<int,double>
quad(
103
setup
.basis, index_set, 1e-12);
104
const
Teuchos::Array<double>& weights = quad.
getQuadWeights
();
105
int
nqp = weights.size();
106
int
nqp_gold = 181;
107
108
if
(nqp == nqp_gold)
109
success =
true
;
110
else
111
success =
false
;
112
113
out << std::endl
114
<<
"Check: quad_weight.size() = "
<< nqp <<
" == "
<< nqp_gold
115
<<
" : "
;
116
if
(success) out <<
"Passed."
;
117
else
118
out <<
"Failed!"
;
119
out << std::endl;
120
}
121
122
}
123
124
int
main
(
int
argc,
char
*
argv
[] ) {
125
Teuchos::GlobalMPISession mpiSession(&argc, &
argv
);
126
return
Teuchos::UnitTestRepository::runUnitTestsFromMain(argc,
argv
);
127
}
Stokhos.hpp
argv
char * argv[]
Definition
Stokhos_HouseTriDiagUnitTest.cpp:286
main
int main(int argc, char *argv[])
Definition
Stokhos_SparseGridQuadratureUnitTest.cpp:124
Stokhos_UnitTestHelpers.hpp
Stokhos::CompletePolynomialBasis
Multivariate orthogonal polynomial basis generated from a total-order complete-polynomial tensor prod...
Definition
Stokhos_CompletePolynomialBasis.hpp:74
Stokhos::LegendreBasis
Legendre polynomial basis.
Definition
Stokhos_LegendreBasis.hpp:68
Stokhos::SmolyakSparseGridQuadrature
Defines quadrature for a tensor product basis by Smolyak sparse grids.
Definition
Stokhos_SmolyakSparseGridQuadrature.hpp:64
Stokhos::SmolyakSparseGridQuadrature::getQuadWeights
virtual const Teuchos::Array< value_type > & getQuadWeights() const
Get quadrature weights.
Definition
Stokhos_SmolyakSparseGridQuadratureImp.hpp:93
Stokhos::TotalOrderIndexSet
An isotropic total order index set.
Definition
Stokhos_ProductBasisUtils.hpp:215
SparseGridQuadratureUnitTest
Definition
Stokhos_SparseGridQuadratureUnitTest.cpp:50
SparseGridQuadratureUnitTest::setup
UnitTestSetup< int, double > setup
Definition
Stokhos_SparseGridQuadratureUnitTest.cpp:73
SparseGridQuadratureUnitTest::TEUCHOS_UNIT_TEST
TEUCHOS_UNIT_TEST(Stokhos_SmolyakSparseGridQuadrature, NumPoints)
Definition
Stokhos_SparseGridQuadratureUnitTest.cpp:100
Stokhos::MODERATE_GROWTH
@ MODERATE_GROWTH
Definition
Stokhos_RecurrenceBasis.hpp:52
SparseGridQuadratureUnitTest::UnitTestSetup
Definition
Stokhos_SparseGridQuadratureUnitTest.cpp:54
SparseGridQuadratureUnitTest::UnitTestSetup::UnitTestSetup
UnitTestSetup()
Definition
Stokhos_SparseGridQuadratureUnitTest.cpp:59
SparseGridQuadratureUnitTest::UnitTestSetup::basis
Teuchos::RCP< const Stokhos::CompletePolynomialBasis< OrdinalType, ValueType > > basis
Definition
Stokhos_SparseGridQuadratureUnitTest.cpp:55
SparseGridQuadratureUnitTest::UnitTestSetup::d
const OrdinalType d
Definition
Stokhos_SparseGridQuadratureUnitTest.cpp:56
SparseGridQuadratureUnitTest::UnitTestSetup::p
const OrdinalType p
Definition
Stokhos_SparseGridQuadratureUnitTest.cpp:57
Generated by
1.17.0