Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Stokhos_GramSchmidtBasis.hpp
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
#ifndef STOKHOS_GRAMSCHMIDTBASIS_HPP
45
#define STOKHOS_GRAMSCHMIDTBASIS_HPP
46
47
#include "Teuchos_RCP.hpp"
48
#include "Teuchos_SerialDenseMatrix.hpp"
49
50
#include "
Stokhos_OrthogPolyBasis.hpp
"
51
52
namespace
Stokhos
{
53
71
template
<
typename
ordinal_type,
typename
value_type>
72
class
GramSchmidtBasis
:
73
public
OrthogPolyBasis
<ordinal_type,value_type> {
74
public
:
75
77
83
GramSchmidtBasis
(
84
const
Teuchos::RCP<
const
OrthogPolyBasis<ordinal_type,value_type>
>& basis,
85
const
Teuchos::Array< Teuchos::Array<value_type> >& points,
86
const
Teuchos::Array<value_type>& weights,
87
const
value_type
& sparse_tol = 1.0e-15);
88
90
virtual
~GramSchmidtBasis
();
91
93
94
96
ordinal_type
order
()
const
;
97
99
ordinal_type
dimension
()
const
;
100
102
virtual
ordinal_type
size
()
const
;
103
105
109
virtual
const
Teuchos::Array<value_type>&
norm_squared
()
const
;
110
112
virtual
const
value_type
&
norm_squared
(
ordinal_type
i)
const
;
113
115
121
virtual
122
Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> >
123
computeTripleProductTensor
()
const
;
124
126
virtual
127
Teuchos::RCP< Stokhos::Sparse3Tensor<ordinal_type, value_type> >
128
computeLinearTripleProductTensor
()
const
;
129
131
virtual
value_type
evaluateZero
(
ordinal_type
i)
const
;
132
134
138
virtual
void
evaluateBases
(
139
const
Teuchos::ArrayView<const value_type>& point,
140
Teuchos::Array<value_type>& basis_vals)
const
;
141
143
virtual
void
print
(std::ostream& os)
const
;
144
146
virtual
const
std::string&
getName
()
const
;
147
149
151
void
transformCoeffs(
const
value_type
*in,
value_type
*out)
const
;
152
153
private
:
154
155
// Prohibit copying
156
GramSchmidtBasis
(
const
GramSchmidtBasis
&);
157
158
// Prohibit Assignment
159
GramSchmidtBasis
&
operator=
(
const
GramSchmidtBasis
& b);
160
161
protected
:
162
164
std::string name;
165
167
Teuchos::RCP<const OrthogPolyBasis<ordinal_type, value_type> > basis;
168
170
Teuchos::Array<value_type> weights;
171
173
Teuchos::Array< Teuchos::Array<value_type> > basis_values;
174
176
value_type
sparse_tol;
177
179
ordinal_type
p;
180
182
ordinal_type
d;
183
185
ordinal_type
sz;
186
188
Teuchos::Array<value_type> norms;
189
191
Teuchos::SerialDenseMatrix<ordinal_type, value_type> gs_mat;
192
194
mutable
Teuchos::Array<value_type> basis_vals_tmp;
195
196
};
// class GramSchmidtBasis
197
198
}
// Namespace Stokhos
199
200
// Include template definitions
201
#include "
Stokhos_GramSchmidtBasisImp.hpp
"
202
203
#endif
Stokhos_GramSchmidtBasisImp.hpp
Stokhos_OrthogPolyBasis.hpp
Stokhos::GramSchmidtBasis
Transforms a non-orthogonal multivariate basis to an orthogonal one using the Gram-Schmit procedure.
Definition
Stokhos_GramSchmidtBasis.hpp:73
Stokhos::OrthogPolyBasis::operator=
OrthogPolyBasis & operator=(const OrthogPolyBasis &b)
Stokhos::OrthogPolyBasis::evaluateZero
virtual value_type evaluateZero(ordinal_type i) const =0
Evaluate basis polynomial i at zero.
Stokhos::OrthogPolyBasis::OrthogPolyBasis
OrthogPolyBasis()
Constructor.
Definition
Stokhos_OrthogPolyBasis.hpp:78
Stokhos::OrthogPolyBasis::norm_squared
virtual const Teuchos::Array< value_type > & norm_squared() const =0
Return array storing norm-squared of each basis polynomial.
Stokhos::OrthogPolyBasis::computeTripleProductTensor
virtual Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > computeTripleProductTensor() const =0
Compute triple product tensor.
Stokhos::OrthogPolyBasis::order
virtual ordinal_type order() const =0
Return order of basis.
Stokhos::OrthogPolyBasis::size
virtual ordinal_type size() const =0
Return total size of basis.
Stokhos::OrthogPolyBasis::dimension
virtual ordinal_type dimension() const =0
Return dimension of basis.
Stokhos::OrthogPolyBasis::computeLinearTripleProductTensor
virtual Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > computeLinearTripleProductTensor() const =0
Compute linear triple product tensor where k = 0,1.
Stokhos::OrthogPolyBasis::getName
virtual const std::string & getName() const =0
Return string name of basis.
Stokhos::OrthogPolyBasis::evaluateBases
virtual void evaluateBases(const Teuchos::ArrayView< const value_type > &point, Teuchos::Array< value_type > &basis_vals) const =0
Evaluate basis polynomials at given point point.
Stokhos::OrthogPolyBasis::print
virtual void print(std::ostream &os) const =0
Print basis to stream os.
Stokhos::value_type
Stokhos
Top-level namespace for Stokhos classes and functions.
Definition
Stokhos_AbstractPreconditionerFactory.hpp:48
Generated by
1.17.0