Stokhos Development
Loading...
Searching...
No Matches
Stokhos::KLReducedMatrixFreeOperator Class Reference

An Epetra operator representing the block stochastic Galerkin operator. More...

#include <Stokhos_KLReducedMatrixFreeOperator.hpp>

Inheritance diagram for Stokhos::KLReducedMatrixFreeOperator:
Collaboration diagram for Stokhos::KLReducedMatrixFreeOperator:

Public Member Functions

 KLReducedMatrixFreeOperator (const Teuchos::RCP< const EpetraExt::MultiComm > &sg_comm, const Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > &sg_basis, const Teuchos::RCP< const Stokhos::EpetraSparse3Tensor > &epetraCijk, const Teuchos::RCP< const Epetra_Map > &domain_base_map, const Teuchos::RCP< const Epetra_Map > &range_base_map, const Teuchos::RCP< const Epetra_Map > &domain_sg_map, const Teuchos::RCP< const Epetra_Map > &range_sg_map, const Teuchos::RCP< Teuchos::ParameterList > &params)
 Constructor.
virtual ~KLReducedMatrixFreeOperator ()
 Destructor.
Stokhos::SGOperator methods
virtual void setupOperator (const Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > &poly)
 Setup operator.
virtual Teuchos::RCP< Stokhos::EpetraOperatorOrthogPolygetSGPolynomial ()
 Get SG polynomial.
virtual Teuchos::RCP< const Stokhos::EpetraOperatorOrthogPolygetSGPolynomial () const
 Get SG polynomial.
Public Member Functions inherited from Stokhos::SGOperator
 SGOperator ()
 Constructor.
virtual ~SGOperator ()
 Destructor.

Epetra_Operator methods

typedef Stokhos::Sparse3Tensor< int, double > Cijk_type
 Short-hand for Cijk.
std::string label
 Label for operator.
Teuchos::RCP< const EpetraExt::MultiComm > sg_comm
 Stores SG parallel communicator.
Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > sg_basis
 Stochastic Galerking basis.
Teuchos::RCP< const Stokhos::EpetraSparse3TensorepetraCijk
 Stores Epetra Cijk tensor.
Teuchos::RCP< const Epetra_Map > domain_base_map
 Stores domain base map.
Teuchos::RCP< const Epetra_Map > range_base_map
 Stores range base map.
Teuchos::RCP< const Epetra_Map > domain_sg_map
 Stores domain SG map.
Teuchos::RCP< const Epetra_Map > range_sg_map
 Stores range SG map.
Teuchos::RCP< const Cijk_typeCijk
 Stores triple product tensor.
Teuchos::RCP< Stokhos::EpetraOperatorOrthogPolyblock_ops
 Stores operators.
Teuchos::RCP< Teuchos::ParameterList > params
 Algorithmic parameters.
bool useTranspose
 Flag indicating whether transpose was selected.
int expansion_size
 Number of terms in expansion.
int num_blocks
 Number of blocks.
int num_KL
 Number of KL terms.
int num_KL_computed
 Number of computed KL terms.
Teuchos::RCP< Epetra_CrsMatrix > mean
 Mean block.
Teuchos::RCP< Epetra_Map > block_vec_map
 Block map for vectorized-matrices.
Teuchos::RCP< Stokhos::EpetraVectorOrthogPolyblock_vec_poly
 Polynomial sorting vectorized matrix coefficients.
Teuchos::Array< Teuchos::Array< double > > dot_products
 Dot products of KL eigenvectors and Jacobian blocks.
Teuchos::RCP< Stokhos::Sparse3Tensor< int, double > > sparse_kl_coeffs
 Sparse KL coefficients.
Teuchos::Array< Teuchos::RCP< Epetra_CrsMatrix > > kl_blocks
 KL blocks.
Teuchos::RCP< Stokhos::EpetraOperatorOrthogPolykl_ops
 KL blocks as operators.
Teuchos::RCP< Stokhos::MatrixFreeOperatorkl_mat_free_op
 Matrix-Free operator using KL operators.
double drop_tolerance
 Tolerance for dropping entries in sparse 3 tensor.
bool do_error_tests
 Whether to do KL error tests (can be expensive).
virtual int SetUseTranspose (bool UseTranspose)
 Set to true if the transpose of the operator is requested.
virtual int Apply (const Epetra_MultiVector &Input, Epetra_MultiVector &Result) const
 Returns the result of a Epetra_Operator applied to a Epetra_MultiVector Input in Result as described above.
virtual int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of the inverse of the operator applied to a Epetra_MultiVector Input in Result as described above.
virtual double NormInf () const
 Returns an approximate infinity norm of the operator matrix.
virtual const char * Label () const
 Returns a character string describing the operator.
virtual bool UseTranspose () const
 Returns the current UseTranspose setting.
virtual bool HasNormInf () const
 Returns true if the this object can provide an approximate Inf-norm, false otherwise.
virtual const Epetra_Comm & Comm () const
 Returns a reference to the Epetra_Comm communicator associated with this operator.
virtual const Epetra_Map & OperatorDomainMap () const
 Returns the Epetra_Map object associated with the domain of this matrix operator.
virtual const Epetra_Map & OperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this matrix operator.
void setup ()
 Setup KL blocks.

Detailed Description

An Epetra operator representing the block stochastic Galerkin operator.

Constructor & Destructor Documentation

◆ KLReducedMatrixFreeOperator()

Stokhos::KLReducedMatrixFreeOperator::KLReducedMatrixFreeOperator ( const Teuchos::RCP< const EpetraExt::MultiComm > & sg_comm,
const Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > & sg_basis,
const Teuchos::RCP< const Stokhos::EpetraSparse3Tensor > & epetraCijk,
const Teuchos::RCP< const Epetra_Map > & domain_base_map,
const Teuchos::RCP< const Epetra_Map > & range_base_map,
const Teuchos::RCP< const Epetra_Map > & domain_sg_map,
const Teuchos::RCP< const Epetra_Map > & range_sg_map,
const Teuchos::RCP< Teuchos::ParameterList > & params )

Member Function Documentation

◆ Apply()

int Stokhos::KLReducedMatrixFreeOperator::Apply ( const Epetra_MultiVector & Input,
Epetra_MultiVector & Result ) const
virtual

Returns the result of a Epetra_Operator applied to a Epetra_MultiVector Input in Result as described above.

References kl_mat_free_op.

Referenced by setup().

◆ Comm()

const Epetra_Comm & Stokhos::KLReducedMatrixFreeOperator::Comm ( ) const
virtual

Returns a reference to the Epetra_Comm communicator associated with this operator.

References sg_comm.

◆ getSGPolynomial() [1/2]

Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > Stokhos::KLReducedMatrixFreeOperator::getSGPolynomial ( )
virtual

Get SG polynomial.

Implements Stokhos::SGOperator.

References block_ops.

◆ getSGPolynomial() [2/2]

Teuchos::RCP< const Stokhos::EpetraOperatorOrthogPoly > Stokhos::KLReducedMatrixFreeOperator::getSGPolynomial ( ) const
virtual

Get SG polynomial.

Implements Stokhos::SGOperator.

References block_ops.

◆ Label()

const char * Stokhos::KLReducedMatrixFreeOperator::Label ( ) const
virtual

Returns a character string describing the operator.

References label.

◆ OperatorDomainMap()

const Epetra_Map & Stokhos::KLReducedMatrixFreeOperator::OperatorDomainMap ( ) const
virtual

Returns the Epetra_Map object associated with the domain of this matrix operator.

References domain_sg_map, range_sg_map, and useTranspose.

◆ OperatorRangeMap()

const Epetra_Map & Stokhos::KLReducedMatrixFreeOperator::OperatorRangeMap ( ) const
virtual

Returns the Epetra_Map object associated with the range of this matrix operator.

References domain_sg_map, range_sg_map, and useTranspose.

◆ setup()

◆ setupOperator()

void Stokhos::KLReducedMatrixFreeOperator::setupOperator ( const Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > & poly)
virtual

◆ SetUseTranspose()

int Stokhos::KLReducedMatrixFreeOperator::SetUseTranspose ( bool UseTranspose)
virtual

Set to true if the transpose of the operator is requested.

References block_ops, kl_mat_free_op, num_blocks, and useTranspose.

◆ UseTranspose()

bool Stokhos::KLReducedMatrixFreeOperator::UseTranspose ( ) const
virtual

Returns the current UseTranspose setting.

References useTranspose.

Member Data Documentation

◆ block_ops

Teuchos::RCP<Stokhos::EpetraOperatorOrthogPoly > Stokhos::KLReducedMatrixFreeOperator::block_ops
protected

◆ block_vec_map

Teuchos::RCP<Epetra_Map> Stokhos::KLReducedMatrixFreeOperator::block_vec_map
protected

Block map for vectorized-matrices.

Referenced by KLReducedMatrixFreeOperator(), setup(), and setupOperator().

◆ block_vec_poly

Teuchos::RCP< Stokhos::EpetraVectorOrthogPoly> Stokhos::KLReducedMatrixFreeOperator::block_vec_poly
protected

Polynomial sorting vectorized matrix coefficients.

Referenced by KLReducedMatrixFreeOperator(), setup(), and setupOperator().

◆ Cijk

Teuchos::RCP<const Cijk_type> Stokhos::KLReducedMatrixFreeOperator::Cijk
protected

Stores triple product tensor.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ do_error_tests

bool Stokhos::KLReducedMatrixFreeOperator::do_error_tests
protected

Whether to do KL error tests (can be expensive).

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ domain_base_map

Teuchos::RCP<const Epetra_Map> Stokhos::KLReducedMatrixFreeOperator::domain_base_map
protected

Stores domain base map.

Referenced by KLReducedMatrixFreeOperator(), setup(), and setupOperator().

◆ domain_sg_map

Teuchos::RCP<const Epetra_Map> Stokhos::KLReducedMatrixFreeOperator::domain_sg_map
protected

Stores domain SG map.

Referenced by KLReducedMatrixFreeOperator(), OperatorDomainMap(), OperatorRangeMap(), and setup().

◆ dot_products

Teuchos::Array< Teuchos::Array<double> > Stokhos::KLReducedMatrixFreeOperator::dot_products
protected

Dot products of KL eigenvectors and Jacobian blocks.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ drop_tolerance

double Stokhos::KLReducedMatrixFreeOperator::drop_tolerance
protected

Tolerance for dropping entries in sparse 3 tensor.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ epetraCijk

Teuchos::RCP<const Stokhos::EpetraSparse3Tensor> Stokhos::KLReducedMatrixFreeOperator::epetraCijk
protected

Stores Epetra Cijk tensor.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ expansion_size

int Stokhos::KLReducedMatrixFreeOperator::expansion_size
protected

Number of terms in expansion.

Referenced by KLReducedMatrixFreeOperator().

◆ kl_blocks

Teuchos::Array< Teuchos::RCP<Epetra_CrsMatrix> > Stokhos::KLReducedMatrixFreeOperator::kl_blocks
protected

KL blocks.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ kl_mat_free_op

Teuchos::RCP< Stokhos::MatrixFreeOperator > Stokhos::KLReducedMatrixFreeOperator::kl_mat_free_op
protected

Matrix-Free operator using KL operators.

Referenced by Apply(), setup(), and SetUseTranspose().

◆ kl_ops

Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > Stokhos::KLReducedMatrixFreeOperator::kl_ops
protected

KL blocks as operators.

Referenced by setup().

◆ label

std::string Stokhos::KLReducedMatrixFreeOperator::label
protected

Label for operator.

Referenced by KLReducedMatrixFreeOperator(), and Label().

◆ mean

Teuchos::RCP<Epetra_CrsMatrix> Stokhos::KLReducedMatrixFreeOperator::mean
protected

Mean block.

Referenced by KLReducedMatrixFreeOperator(), setup(), and setupOperator().

◆ num_blocks

int Stokhos::KLReducedMatrixFreeOperator::num_blocks
protected

◆ num_KL

int Stokhos::KLReducedMatrixFreeOperator::num_KL
protected

Number of KL terms.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ num_KL_computed

int Stokhos::KLReducedMatrixFreeOperator::num_KL_computed
protected

Number of computed KL terms.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ params

Teuchos::RCP<Teuchos::ParameterList> Stokhos::KLReducedMatrixFreeOperator::params
protected

Algorithmic parameters.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ range_base_map

Teuchos::RCP<const Epetra_Map> Stokhos::KLReducedMatrixFreeOperator::range_base_map
protected

Stores range base map.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ range_sg_map

Teuchos::RCP<const Epetra_Map> Stokhos::KLReducedMatrixFreeOperator::range_sg_map
protected

◆ sg_basis

Teuchos::RCP<const Stokhos::OrthogPolyBasis<int,double> > Stokhos::KLReducedMatrixFreeOperator::sg_basis
protected

Stochastic Galerking basis.

Referenced by KLReducedMatrixFreeOperator(), setup(), and setupOperator().

◆ sg_comm

Teuchos::RCP<const EpetraExt::MultiComm> Stokhos::KLReducedMatrixFreeOperator::sg_comm
protected

Stores SG parallel communicator.

Referenced by Comm(), KLReducedMatrixFreeOperator(), setup(), and setupOperator().

◆ sparse_kl_coeffs

Teuchos::RCP< Stokhos::Sparse3Tensor<int,double> > Stokhos::KLReducedMatrixFreeOperator::sparse_kl_coeffs
protected

Sparse KL coefficients.

Referenced by KLReducedMatrixFreeOperator(), and setup().

◆ useTranspose

bool Stokhos::KLReducedMatrixFreeOperator::useTranspose
protected

Flag indicating whether transpose was selected.

Referenced by KLReducedMatrixFreeOperator(), OperatorDomainMap(), OperatorRangeMap(), SetUseTranspose(), and UseTranspose().


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