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

An Epetra operator representing applying the mean in a block stochastic Galerkin expansion. More...

#include <Stokhos_KroneckerProductPreconditioner.hpp>

Inheritance diagram for Stokhos::KroneckerProductPreconditioner:
Collaboration diagram for Stokhos::KroneckerProductPreconditioner:

Public Member Functions

 KroneckerProductPreconditioner (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 > &base_map, const Teuchos::RCP< const Epetra_Map > &sg_map, const Teuchos::RCP< Stokhos::AbstractPreconditionerFactory > &mean_prec_factory, const Teuchos::RCP< Stokhos::AbstractPreconditionerFactory > &G_prec_factory, const Teuchos::RCP< Teuchos::ParameterList > &params)
 Constructor.
virtual ~KroneckerProductPreconditioner ()
 Destructor.
Stokhos::SGPreconditioner methods
virtual void setupPreconditioner (const Teuchos::RCP< Stokhos::SGOperator > &sg_op, const Epetra_Vector &x)
 Setup preconditioner.
Public Member Functions inherited from Stokhos::SGPreconditioner
 SGPreconditioner ()
 Constructor.
virtual ~SGPreconditioner ()
 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 > base_map
 Stores base map.
Teuchos::RCP< const Epetra_Map > sg_map
 Stores SG map.
Teuchos::RCP< Stokhos::AbstractPreconditionerFactorymean_prec_factory
 Stores factory for building mean preconditioner.
Teuchos::RCP< Stokhos::AbstractPreconditionerFactoryG_prec_factory
 Stores factory for building G preconditioner.
Teuchos::RCP< Teuchos::ParameterList > params
 Preconditioner parameters.
Teuchos::RCP< Epetra_Operator > mean_prec
 Stores mean preconditioner.
Teuchos::RCP< Epetra_Operator > G_prec
 Stores G preconditioner.
bool useTranspose
 Flag indicating whether transpose was selected.
Teuchos::RCP< Stokhos::SGOperatorsg_op
 Pointer to the SG operator.
Teuchos::RCP< Stokhos::EpetraOperatorOrthogPolysg_poly
 Pointer to the PCE expansion of Jacobian.
Teuchos::RCP< const Cijk_typeCijk
 Stores triple product tensor.
Teuchos::RCP< Epetra_CrsMatrix > G
 Pointer to CrsMatrix G.
bool scale_op
 Flag indicating whether operator be scaled with <\psi_i^2>.
bool only_use_linear
 Limit construction of G to linear terms.
Teuchos::RCP< Epetra_MultiVector > result_MVT
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.
double MatrixTrace (const Epetra_CrsMatrix &A, const Epetra_CrsMatrix &B) const
 Compute trace of matrix A'B.

Detailed Description

An Epetra operator representing applying the mean in a block stochastic Galerkin expansion.

Constructor & Destructor Documentation

◆ KroneckerProductPreconditioner()

Stokhos::KroneckerProductPreconditioner::KroneckerProductPreconditioner ( 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 > & base_map,
const Teuchos::RCP< const Epetra_Map > & sg_map,
const Teuchos::RCP< Stokhos::AbstractPreconditionerFactory > & mean_prec_factory,
const Teuchos::RCP< Stokhos::AbstractPreconditionerFactory > & G_prec_factory,
const Teuchos::RCP< Teuchos::ParameterList > & params )

Member Function Documentation

◆ Apply()

int Stokhos::KroneckerProductPreconditioner::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 base_map, G, G_prec, and mean_prec.

◆ ApplyInverse()

int Stokhos::KroneckerProductPreconditioner::ApplyInverse ( const Epetra_MultiVector & X,
Epetra_MultiVector & Y ) const
virtual

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

References base_map, G, G_prec, and mean_prec.

◆ Comm()

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

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

References sg_comm.

◆ HasNormInf()

bool Stokhos::KroneckerProductPreconditioner::HasNormInf ( ) const
virtual

Returns true if the this object can provide an approximate Inf-norm, false otherwise.

References G_prec, and mean_prec.

◆ Label()

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

Returns a character string describing the operator.

References label.

◆ MatrixTrace()

double Stokhos::KroneckerProductPreconditioner::MatrixTrace ( const Epetra_CrsMatrix & A,
const Epetra_CrsMatrix & B ) const
protected

Compute trace of matrix A'B.

Referenced by setupPreconditioner().

◆ NormInf()

double Stokhos::KroneckerProductPreconditioner::NormInf ( ) const
virtual

Returns an approximate infinity norm of the operator matrix.

References G_prec, and mean_prec.

◆ OperatorDomainMap()

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

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

References sg_map.

◆ OperatorRangeMap()

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

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

References sg_map.

◆ setupPreconditioner()

void Stokhos::KroneckerProductPreconditioner::setupPreconditioner ( const Teuchos::RCP< Stokhos::SGOperator > & sg_op,
const Epetra_Vector & x )
virtual

◆ SetUseTranspose()

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

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

References mean_prec, UseTranspose(), and useTranspose.

◆ UseTranspose()

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

Returns the current UseTranspose setting.

References useTranspose.

Referenced by SetUseTranspose().

Member Data Documentation

◆ base_map

Teuchos::RCP<const Epetra_Map> Stokhos::KroneckerProductPreconditioner::base_map
protected

Stores base map.

Referenced by Apply(), ApplyInverse(), and KroneckerProductPreconditioner().

◆ Cijk

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

Stores triple product tensor.

Referenced by KroneckerProductPreconditioner(), and setupPreconditioner().

◆ epetraCijk

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

Stores Epetra Cijk tensor.

Referenced by KroneckerProductPreconditioner(), and setupPreconditioner().

◆ G

Teuchos::RCP<Epetra_CrsMatrix> Stokhos::KroneckerProductPreconditioner::G
protected

Pointer to CrsMatrix G.

Referenced by Apply(), ApplyInverse(), and setupPreconditioner().

◆ G_prec

Teuchos::RCP<Epetra_Operator> Stokhos::KroneckerProductPreconditioner::G_prec
protected

Stores G preconditioner.

Referenced by Apply(), ApplyInverse(), HasNormInf(), NormInf(), and setupPreconditioner().

◆ G_prec_factory

Teuchos::RCP<Stokhos::AbstractPreconditionerFactory> Stokhos::KroneckerProductPreconditioner::G_prec_factory
protected

Stores factory for building G preconditioner.

Referenced by KroneckerProductPreconditioner(), and setupPreconditioner().

◆ label

std::string Stokhos::KroneckerProductPreconditioner::label
protected

Label for operator.

Referenced by KroneckerProductPreconditioner(), Label(), and setupPreconditioner().

◆ mean_prec

Teuchos::RCP<Epetra_Operator> Stokhos::KroneckerProductPreconditioner::mean_prec
protected

◆ mean_prec_factory

Teuchos::RCP<Stokhos::AbstractPreconditionerFactory> Stokhos::KroneckerProductPreconditioner::mean_prec_factory
protected

Stores factory for building mean preconditioner.

Referenced by KroneckerProductPreconditioner(), and setupPreconditioner().

◆ only_use_linear

bool Stokhos::KroneckerProductPreconditioner::only_use_linear
protected

Limit construction of G to linear terms.

Referenced by KroneckerProductPreconditioner(), and setupPreconditioner().

◆ params

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

Preconditioner parameters.

Referenced by KroneckerProductPreconditioner().

◆ scale_op

bool Stokhos::KroneckerProductPreconditioner::scale_op
protected

Flag indicating whether operator be scaled with <\psi_i^2>.

Referenced by KroneckerProductPreconditioner(), and setupPreconditioner().

◆ sg_basis

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

Stochastic Galerking basis.

Referenced by KroneckerProductPreconditioner(), and setupPreconditioner().

◆ sg_comm

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

Stores SG parallel communicator.

Referenced by Comm(), and KroneckerProductPreconditioner().

◆ sg_map

Teuchos::RCP<const Epetra_Map> Stokhos::KroneckerProductPreconditioner::sg_map
protected

◆ sg_op

Teuchos::RCP<Stokhos::SGOperator> Stokhos::KroneckerProductPreconditioner::sg_op
protected

Pointer to the SG operator.

Referenced by KroneckerProductPreconditioner(), and setupPreconditioner().

◆ sg_poly

Teuchos::RCP<Stokhos::EpetraOperatorOrthogPoly > Stokhos::KroneckerProductPreconditioner::sg_poly
protected

Pointer to the PCE expansion of Jacobian.

Referenced by KroneckerProductPreconditioner(), and setupPreconditioner().

◆ useTranspose

bool Stokhos::KroneckerProductPreconditioner::useTranspose
protected

Flag indicating whether transpose was selected.

Referenced by KroneckerProductPreconditioner(), SetUseTranspose(), and UseTranspose().


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