Stokhos Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Stokhos::LanczosProjPCEBasis< ordinal_type, value_type > Class Template Reference

Generates three-term recurrence using the Lanczos procedure applied to a polynomial chaos expansion in another basis. More...

#include <Stokhos_LanczosProjPCEBasis.hpp>

Inheritance diagram for Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >:
Inheritance graph
[legend]

Public Member Functions

 LanczosProjPCEBasis (ordinal_type p, const Teuchos::RCP< const Stokhos::OrthogPolyApprox< ordinal_type, value_type > > &pce, const Teuchos::RCP< const Stokhos::Sparse3Tensor< ordinal_type, value_type > > &Cijk, bool normalize, bool limit_integration_order=false)
 Constructor.
 
 ~LanczosProjPCEBasis ()
 Destructor.
 
- Public Member Functions inherited from Stokhos::RecurrenceBasis< ordinal_type, value_type >
virtual ~RecurrenceBasis ()
 Destructor.
 
virtual ordinal_type order () const
 Return order of basis (largest monomial degree $P$).
 
virtual ordinal_type size () const
 Return total size of basis (given by order() + 1).
 
virtual const Teuchos::Array< value_type > & norm_squared () const
 Return array storing norm-squared of each basis polynomial.
 
virtual const value_type & norm_squared (ordinal_type i) const
 Return norm squared of basis polynomial i.
 
virtual Teuchos::RCP< Stokhos::Dense3Tensor< ordinal_type, value_type > > computeTripleProductTensor () const
 Compute triple product tensor.
 
virtual Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > computeSparseTripleProductTensor (ordinal_type order) const
 Compute triple product tensor.
 
virtual Teuchos::RCP< Teuchos::SerialDenseMatrix< ordinal_type, value_type > > computeDerivDoubleProductTensor () const
 Compute derivative double product tensor.
 
virtual void evaluateBases (const value_type &point, Teuchos::Array< value_type > &basis_pts) const
 Evaluate each basis polynomial at given point point.
 
virtual value_type evaluate (const value_type &point, ordinal_type order) const
 Evaluate basis polynomial given by order order at given point point.
 
virtual void print (std::ostream &os) const
 Print basis to stream os.
 
virtual const std::string & getName () const
 Return string name of basis.
 
virtual ordinal_type quadDegreeOfExactness (ordinal_type n) const
 
virtual ordinal_type coefficientGrowth (ordinal_type n) const
 Evaluate coefficient growth rule for Smolyak-type bases.
 
virtual ordinal_type pointGrowth (ordinal_type n) const
 Evaluate point growth rule for Smolyak-type bases.
 
virtual LevelToOrderFnPtr getSparseGridGrowthRule () const
 Get sparse grid level_to_order mapping function.
 
virtual void setSparseGridGrowthRule (LevelToOrderFnPtr ptr)
 Set sparse grid rule.
 
virtual void getRecurrenceCoefficients (Teuchos::Array< value_type > &alpha, Teuchos::Array< value_type > &beta, Teuchos::Array< value_type > &delta, Teuchos::Array< value_type > &gamma) const
 Return recurrence coefficients defined by above formula.
 
virtual void evaluateBasesAndDerivatives (const value_type &point, Teuchos::Array< value_type > &vals, Teuchos::Array< value_type > &derivs) const
 Evaluate basis polynomials and their derivatives at given point point.
 
virtual void setQuadZeroTol (value_type tol)
 Set tolerance for zero in quad point generation.
 
- Public Member Functions inherited from Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >
 OneDOrthogPolyBasis ()
 Default constructor.
 
virtual ~OneDOrthogPolyBasis ()
 Destructor.
 
virtual ordinal_type order () const =0
 Return order of basis (largest monomial degree $P$).
 
virtual ordinal_type size () const =0
 Return total size of basis (given by order() + 1).
 
virtual const Teuchos::Array< value_type > & norm_squared () const =0
 Return array storing norm-squared of each basis polynomial.
 
virtual const value_type & norm_squared (ordinal_type i) const =0
 Return norm squared of basis polynomial i.
 
virtual Teuchos::RCP< Stokhos::Dense3Tensor< ordinal_type, value_type > > computeTripleProductTensor () const =0
 Compute triple product tensor.
 
virtual Teuchos::RCP< Stokhos::Sparse3Tensor< ordinal_type, value_type > > computeSparseTripleProductTensor (ordinal_type order) const =0
 Compute triple product tensor.
 
virtual Teuchos::RCP< Teuchos::SerialDenseMatrix< ordinal_type, value_type > > computeDerivDoubleProductTensor () const =0
 Compute derivative double product tensor.
 
virtual void evaluateBases (const value_type &point, Teuchos::Array< value_type > &basis_pts) const =0
 Evaluate each basis polynomial at given point point.
 
virtual value_type evaluate (const value_type &point, ordinal_type order) const =0
 Evaluate basis polynomial given by order order at given point point.
 
virtual void print (std::ostream &os) const
 Print basis to stream os.
 
virtual const std::string & getName () const =0
 Return string name of basis.
 
virtual void getQuadPoints (ordinal_type quad_order, Teuchos::Array< value_type > &points, Teuchos::Array< value_type > &weights, Teuchos::Array< Teuchos::Array< value_type > > &values) const =0
 Compute quadrature points, weights, and values of basis polynomials at given set of points points.
 
virtual ordinal_type quadDegreeOfExactness (ordinal_type n) const =0
 
virtual Teuchos::RCP< OneDOrthogPolyBasis< ordinal_type, value_type > > cloneWithOrder (ordinal_type p) const =0
 Clone this object with the option of building a higher order basis.
 
virtual ordinal_type coefficientGrowth (ordinal_type n) const =0
 Evaluate coefficient growth rule for Smolyak-type bases.
 
virtual ordinal_type pointGrowth (ordinal_type n) const =0
 Evaluate point growth rule for Smolyak-type bases.
 
virtual LevelToOrderFnPtr getSparseGridGrowthRule () const =0
 Get sparse grid level_to_order mapping function.
 
virtual void setSparseGridGrowthRule (LevelToOrderFnPtr ptr)=0
 Set sparse grid rule.
 

Implementation of Stokhos::RecurrenceBasis methods

typedef WeightedVectorSpace< ordinal_type, value_type > vectorspace_type
 
typedef DenseOperator< ordinal_type, value_type > operator_type
 
typedef Stokhos::Lanczos< vectorspace_type, operator_typelanczos_type
 
typedef lanczos_type::matrix_type matrix_type
 
typedef lanczos_type::vector_type vector_type
 
Teuchos::RCP< const Stokhos::OrthogPolyApprox< ordinal_type, value_type > > pce
 PCE Lanczos procedure is based on.
 
bool limit_integration_order
 Flag indicating whether to limit the integration order.
 
ordinal_type pce_sz
 Size of PC expansion.
 
Teuchos::Array< value_type > pce_norms
 Basis norms.
 
matrix_type Cijk_matrix
 Triple-product matrix used in generating lanczos vectors.
 
vector_type weights
 Weighting vector used in inner-products.
 
vector_type u0
 Initial Lanczos vector.
 
matrix_type lanczos_vecs
 Lanczos vectors.
 
vector_type new_pce
 Projection of pce in new basis.
 
virtual bool computeRecurrenceCoefficients (ordinal_type n, Teuchos::Array< value_type > &alpha, Teuchos::Array< value_type > &beta, Teuchos::Array< value_type > &delta, Teuchos::Array< value_type > &gamma) const
 Compute recurrence coefficients.
 
virtual void setup ()
 Setup basis after computing recurrence coefficients.
 
 LanczosProjPCEBasis (ordinal_type p, const LanczosProjPCEBasis &basis)
 Copy constructor with specified order.
 
 LanczosProjPCEBasis (const LanczosProjPCEBasis &)
 
LanczosProjPCEBasisoperator= (const LanczosProjPCEBasis &b)
 

Implementation of Stokhos::OneDOrthogPolyBasis methods

virtual void getQuadPoints (ordinal_type quad_order, Teuchos::Array< value_type > &points, Teuchos::Array< value_type > &weights, Teuchos::Array< Teuchos::Array< value_type > > &values) const
 Get Gauss quadrature points, weights, and values of basis at points.
 
virtual Teuchos::RCP< OneDOrthogPolyBasis< ordinal_type, value_type > > cloneWithOrder (ordinal_type p) const
 Clone this object with the option of building a higher order basis.
 
value_type getNewCoeffs (ordinal_type i) const
 Get new coefficients in this new basis.
 
void transformCoeffsFromLanczos (const value_type *in, value_type *out) const
 Map expansion coefficients from this basis to original.
 

Additional Inherited Members

- Public Types inherited from Stokhos::RecurrenceBasis< ordinal_type, value_type >
typedef OneDOrthogPolyBasis< ordinal_type, value_type >::LevelToOrderFnPtr LevelToOrderFnPtr
 Function pointer needed for level_to_order mappings.
 
- Public Types inherited from Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >
typedef int(* LevelToOrderFnPtr) (int level, int growth)
 Function pointer needed for level_to_order mappings.
 
- Protected Member Functions inherited from Stokhos::RecurrenceBasis< ordinal_type, value_type >
 RecurrenceBasis (const std::string &name, ordinal_type p, bool normalize, GrowthPolicy growth=SLOW_GROWTH)
 Constructor to be called by derived classes.
 
 RecurrenceBasis (ordinal_type p, const RecurrenceBasis &basis)
 Copy constructor with specified order.
 
void normalizeRecurrenceCoefficients (Teuchos::Array< value_type > &alpha, Teuchos::Array< value_type > &beta, Teuchos::Array< value_type > &delta, Teuchos::Array< value_type > &gamma) const
 Normalize coefficients.
 
- Protected Attributes inherited from Stokhos::RecurrenceBasis< ordinal_type, value_type >
std::string name
 Name of basis.
 
ordinal_type p
 Order of basis.
 
bool normalize
 Normalize basis.
 
GrowthPolicy growth
 Smolyak growth policy.
 
value_type quad_zero_tol
 Tolerance for quadrature points near zero.
 
LevelToOrderFnPtr sparse_grid_growth_rule
 Sparse grid growth rule (as determined by Pecos)
 
Teuchos::Array< value_type > alpha
 Recurrence $\alpha$ coefficients.
 
Teuchos::Array< value_type > beta
 Recurrence $\beta$ coefficients.
 
Teuchos::Array< value_type > delta
 Recurrence $\delta$ coefficients.
 
Teuchos::Array< value_type > gamma
 Recurrence $\gamma$ coefficients.
 
Teuchos::Array< value_type > norms
 Norms.
 

Detailed Description

template<typename ordinal_type, typename value_type>
class Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >

Generates three-term recurrence using the Lanczos procedure applied to a polynomial chaos expansion in another basis.

Definition at line 84 of file Stokhos_LanczosProjPCEBasis.hpp.

Member Typedef Documentation

◆ vectorspace_type

template<typename ordinal_type , typename value_type >
typedef WeightedVectorSpace<ordinal_type,value_type> Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::vectorspace_type
protected

Definition at line 166 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ operator_type

template<typename ordinal_type , typename value_type >
typedef DenseOperator<ordinal_type,value_type> Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::operator_type
protected

Definition at line 167 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ lanczos_type

template<typename ordinal_type , typename value_type >
typedef Stokhos::Lanczos<vectorspace_type, operator_type> Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::lanczos_type
protected

Definition at line 168 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ matrix_type

template<typename ordinal_type , typename value_type >
typedef lanczos_type::matrix_type Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::matrix_type
protected

Definition at line 169 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ vector_type

template<typename ordinal_type , typename value_type >
typedef lanczos_type::vector_type Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::vector_type
protected

Definition at line 170 of file Stokhos_LanczosProjPCEBasis.hpp.

Constructor & Destructor Documentation

◆ LanczosProjPCEBasis() [1/3]

template<typename ordinal_type , typename value_type >
Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::LanczosProjPCEBasis ( ordinal_type  p,
const Teuchos::RCP< const Stokhos::OrthogPolyApprox< ordinal_type, value_type > > &  pce,
const Teuchos::RCP< const Stokhos::Sparse3Tensor< ordinal_type, value_type > > &  Cijk,
bool  normalize,
bool  limit_integration_order = false 
)

Constructor.

Parameters
porder of the basis
pcepolynomial chaos expansion defining new density function
quadquadrature data for basis of PC expansion

Definition at line 47 of file Stokhos_LanczosProjPCEBasisImp.hpp.

◆ ~LanczosProjPCEBasis()

template<typename ordinal_type , typename value_type >
Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::~LanczosProjPCEBasis

Destructor.

Definition at line 102 of file Stokhos_LanczosProjPCEBasisImp.hpp.

◆ LanczosProjPCEBasis() [2/3]

template<typename ordinal_type , typename value_type >
Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::LanczosProjPCEBasis ( ordinal_type  p,
const LanczosProjPCEBasis< ordinal_type, value_type > &  basis 
)
protected

Copy constructor with specified order.

Definition at line 252 of file Stokhos_LanczosProjPCEBasisImp.hpp.

◆ LanczosProjPCEBasis() [3/3]

template<typename ordinal_type , typename value_type >
Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::LanczosProjPCEBasis ( const LanczosProjPCEBasis< ordinal_type, value_type > &  )
private

Member Function Documentation

◆ getQuadPoints()

template<typename ordinal_type , typename value_type >
void Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::getQuadPoints ( ordinal_type  quad_order,
Teuchos::Array< value_type > &  points,
Teuchos::Array< value_type > &  weights,
Teuchos::Array< Teuchos::Array< value_type > > &  values 
) const
virtual

Get Gauss quadrature points, weights, and values of basis at points.

Reimplemented from Stokhos::RecurrenceBasis< ordinal_type, value_type >.

Definition at line 109 of file Stokhos_LanczosProjPCEBasisImp.hpp.

◆ cloneWithOrder()

template<typename ordinal_type , typename value_type >
Teuchos::RCP< Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type > > Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::cloneWithOrder ( ordinal_type  p) const
virtual

Clone this object with the option of building a higher order basis.

This method is following the Prototype pattern (see Design Pattern's textbook). The slight variation is that it allows the order of the polynomial to be modified, otherwise an exact copy is formed. The use case for this is creating basis functions for column indices in a spatially varying adaptive refinement context.

Implements Stokhos::OneDOrthogPolyBasis< ordinal_type, value_type >.

Definition at line 149 of file Stokhos_LanczosProjPCEBasisImp.hpp.

◆ getNewCoeffs()

template<typename ordinal_type , typename value_type >
value_type Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::getNewCoeffs ( ordinal_type  i) const

Get new coefficients in this new basis.

Definition at line 159 of file Stokhos_LanczosProjPCEBasisImp.hpp.

◆ transformCoeffsFromLanczos()

template<typename ordinal_type , typename value_type >
void Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::transformCoeffsFromLanczos ( const value_type *  in,
value_type *  out 
) const

Map expansion coefficients from this basis to original.

Definition at line 167 of file Stokhos_LanczosProjPCEBasisImp.hpp.

◆ computeRecurrenceCoefficients()

template<typename ordinal_type , typename value_type >
bool Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::computeRecurrenceCoefficients ( ordinal_type  n,
Teuchos::Array< value_type > &  alpha,
Teuchos::Array< value_type > &  beta,
Teuchos::Array< value_type > &  delta,
Teuchos::Array< value_type > &  gamma 
) const
protectedvirtual

Compute recurrence coefficients.

Implements Stokhos::RecurrenceBasis< ordinal_type, value_type >.

Definition at line 183 of file Stokhos_LanczosProjPCEBasisImp.hpp.

◆ setup()

template<typename ordinal_type , typename value_type >
void Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::setup
protectedvirtual

Setup basis after computing recurrence coefficients.

Reimplemented from Stokhos::RecurrenceBasis< ordinal_type, value_type >.

Definition at line 236 of file Stokhos_LanczosProjPCEBasisImp.hpp.

◆ operator=()

template<typename ordinal_type , typename value_type >
LanczosProjPCEBasis & Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::operator= ( const LanczosProjPCEBasis< ordinal_type, value_type > &  b)
private

Member Data Documentation

◆ pce

template<typename ordinal_type , typename value_type >
Teuchos::RCP< const Stokhos::OrthogPolyApprox<ordinal_type, value_type> > Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::pce
protected

PCE Lanczos procedure is based on.

Definition at line 173 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ limit_integration_order

template<typename ordinal_type , typename value_type >
bool Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::limit_integration_order
protected

Flag indicating whether to limit the integration order.

Definition at line 176 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ pce_sz

template<typename ordinal_type , typename value_type >
ordinal_type Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::pce_sz
protected

Size of PC expansion.

Definition at line 179 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ pce_norms

template<typename ordinal_type , typename value_type >
Teuchos::Array<value_type> Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::pce_norms
protected

Basis norms.

Definition at line 182 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ Cijk_matrix

template<typename ordinal_type , typename value_type >
matrix_type Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::Cijk_matrix
protected

Triple-product matrix used in generating lanczos vectors.

Definition at line 185 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ weights

template<typename ordinal_type , typename value_type >
vector_type Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::weights
protected

Weighting vector used in inner-products.

Definition at line 188 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ u0

template<typename ordinal_type , typename value_type >
vector_type Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::u0
protected

Initial Lanczos vector.

Definition at line 191 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ lanczos_vecs

template<typename ordinal_type , typename value_type >
matrix_type Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::lanczos_vecs
mutableprotected

Lanczos vectors.

Definition at line 194 of file Stokhos_LanczosProjPCEBasis.hpp.

◆ new_pce

template<typename ordinal_type , typename value_type >
vector_type Stokhos::LanczosProjPCEBasis< ordinal_type, value_type >::new_pce
protected

Projection of pce in new basis.

Definition at line 197 of file Stokhos_LanczosProjPCEBasis.hpp.


The documentation for this class was generated from the following files: