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

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

#include <Stokhos_KLMatrixFreeOperator.hpp>

Inheritance diagram for Stokhos::KLMatrixFreeOperator:
Collaboration diagram for Stokhos::KLMatrixFreeOperator:

Public Member Functions

 KLMatrixFreeOperator (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 ~KLMatrixFreeOperator ()
 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.
bool is_stoch_parallel
 Whether we have parallelism over stochastic blocks.
Teuchos::RCP< Epetra_Map > global_col_map
 Stores operator column SG map.
Teuchos::RCP< Epetra_Map > global_col_map_trans
 Stores operator column SG map for transpose.
Teuchos::RCP< const Epetra_BlockMap > stoch_col_map
 Stores stochastic part of column map.
Teuchos::RCP< Epetra_Import > col_importer
 Importer from domain map to column map.
Teuchos::RCP< Epetra_Import > col_importer_trans
 Importer from range map to column map.
Teuchos::RCP< const Cijk_typeCijk
 Stores triple product tensor.
Teuchos::RCP< Stokhos::EpetraOperatorOrthogPolyblock_ops
 Stores operators.
bool scale_op
 Flag indicating whether operator be scaled with <\psi_i^2>.
bool include_mean
 Flag indicating whether to include mean term.
bool useTranspose
 Flag indicating whether transpose was selected.
int expansion_size
 Number of terms in expansion.
int num_blocks
 Number of Jacobian blocks (not necessarily equal to expansion_size).
int max_num_mat_vec
 Maximum number of matvecs in Apply.
Teuchos::RCP< Epetra_MultiVector > input_col
 Temporary to store result of importing input into column map.
Teuchos::RCP< Epetra_MultiVector > input_col_trans
 Temporary to store result of importing input into column map (transpose).
Teuchos::Array< Teuchos::RCP< const Epetra_MultiVector > > input_block
 MultiVectors for each block for Apply() input.
Teuchos::Array< Teuchos::RCP< Epetra_MultiVector > > result_block
 MultiVectors for each block for Apply() result.
Teuchos::RCP< Epetra_MultiVector > tmp
 Temporary multivector used in Apply().
Teuchos::RCP< Epetra_MultiVector > tmp_trans
 Temporary multivector used in Apply() for transpose.
Cijk_type::k_iterator k_begin
 Starting k iterator.
Cijk_type::k_iterator k_end
 Ending k iterator.
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 std::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.

Detailed Description

An Epetra operator representing the block stochastic Galerkin operator.

Constructor & Destructor Documentation

◆ KLMatrixFreeOperator()

Stokhos::KLMatrixFreeOperator::KLMatrixFreeOperator ( 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::KLMatrixFreeOperator::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 Cijk, col_importer, col_importer_trans, domain_base_map, epetraCijk, expansion_size, global_col_map, global_col_map_trans, input_block, input_col, input_col_trans, is_stoch_parallel, k_begin, k_end, max_num_mat_vec, range_base_map, result_block, scale_op, sg_basis, tmp, tmp_trans, and useTranspose.

◆ Comm()

const Epetra_Comm & Stokhos::KLMatrixFreeOperator::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::KLMatrixFreeOperator::getSGPolynomial ( )
virtual

Get SG polynomial.

Implements Stokhos::SGOperator.

References block_ops.

◆ getSGPolynomial() [2/2]

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

Get SG polynomial.

Implements Stokhos::SGOperator.

References block_ops.

◆ Label()

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

Returns a character std::string describing the operator.

References label.

◆ OperatorDomainMap()

const Epetra_Map & Stokhos::KLMatrixFreeOperator::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::KLMatrixFreeOperator::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.

◆ setupOperator()

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

Setup operator.

Implements Stokhos::SGOperator.

References block_ops, num_blocks, and sg_basis.

◆ SetUseTranspose()

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

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

References block_ops, num_blocks, and useTranspose.

◆ UseTranspose()

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

Returns the current UseTranspose setting.

References useTranspose.

Member Data Documentation

◆ block_ops

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

◆ Cijk

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

Stores triple product tensor.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ col_importer

Teuchos::RCP<Epetra_Import> Stokhos::KLMatrixFreeOperator::col_importer
protected

Importer from domain map to column map.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ col_importer_trans

Teuchos::RCP<Epetra_Import> Stokhos::KLMatrixFreeOperator::col_importer_trans
protected

Importer from range map to column map.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ domain_base_map

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

Stores domain base map.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ domain_sg_map

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

Stores domain SG map.

Referenced by KLMatrixFreeOperator(), OperatorDomainMap(), and OperatorRangeMap().

◆ epetraCijk

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

Stores Epetra Cijk tensor.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ expansion_size

int Stokhos::KLMatrixFreeOperator::expansion_size
protected

Number of terms in expansion.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ global_col_map

Teuchos::RCP<Epetra_Map> Stokhos::KLMatrixFreeOperator::global_col_map
protected

Stores operator column SG map.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ global_col_map_trans

Teuchos::RCP<Epetra_Map> Stokhos::KLMatrixFreeOperator::global_col_map_trans
protected

Stores operator column SG map for transpose.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ include_mean

bool Stokhos::KLMatrixFreeOperator::include_mean
protected

Flag indicating whether to include mean term.

Referenced by KLMatrixFreeOperator().

◆ input_block

Teuchos::Array< Teuchos::RCP<const Epetra_MultiVector> > Stokhos::KLMatrixFreeOperator::input_block
mutableprotected

MultiVectors for each block for Apply() input.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ input_col

Teuchos::RCP<Epetra_MultiVector> Stokhos::KLMatrixFreeOperator::input_col
mutableprotected

Temporary to store result of importing input into column map.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ input_col_trans

Teuchos::RCP<Epetra_MultiVector> Stokhos::KLMatrixFreeOperator::input_col_trans
mutableprotected

Temporary to store result of importing input into column map (transpose).

Referenced by Apply(), and KLMatrixFreeOperator().

◆ is_stoch_parallel

bool Stokhos::KLMatrixFreeOperator::is_stoch_parallel
protected

Whether we have parallelism over stochastic blocks.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ k_begin

Cijk_type::k_iterator Stokhos::KLMatrixFreeOperator::k_begin
protected

Starting k iterator.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ k_end

Cijk_type::k_iterator Stokhos::KLMatrixFreeOperator::k_end
protected

Ending k iterator.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ label

std::string Stokhos::KLMatrixFreeOperator::label
protected

Label for operator.

Referenced by KLMatrixFreeOperator(), and Label().

◆ max_num_mat_vec

int Stokhos::KLMatrixFreeOperator::max_num_mat_vec
protected

Maximum number of matvecs in Apply.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ num_blocks

int Stokhos::KLMatrixFreeOperator::num_blocks
protected

Number of Jacobian blocks (not necessarily equal to expansion_size).

Referenced by KLMatrixFreeOperator(), setupOperator(), and SetUseTranspose().

◆ range_base_map

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

Stores range base map.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ range_sg_map

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

Stores range SG map.

Referenced by KLMatrixFreeOperator(), OperatorDomainMap(), and OperatorRangeMap().

◆ result_block

Teuchos::Array< Teuchos::RCP<Epetra_MultiVector> > Stokhos::KLMatrixFreeOperator::result_block
mutableprotected

MultiVectors for each block for Apply() result.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ scale_op

bool Stokhos::KLMatrixFreeOperator::scale_op
protected

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

Referenced by Apply(), and KLMatrixFreeOperator().

◆ sg_basis

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

Stochastic Galerking basis.

Referenced by Apply(), KLMatrixFreeOperator(), and setupOperator().

◆ sg_comm

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

Stores SG parallel communicator.

Referenced by Comm(), and KLMatrixFreeOperator().

◆ stoch_col_map

Teuchos::RCP<const Epetra_BlockMap> Stokhos::KLMatrixFreeOperator::stoch_col_map
protected

Stores stochastic part of column map.

Referenced by KLMatrixFreeOperator().

◆ tmp

Teuchos::RCP<Epetra_MultiVector> Stokhos::KLMatrixFreeOperator::tmp
mutableprotected

Temporary multivector used in Apply().

Referenced by Apply(), and KLMatrixFreeOperator().

◆ tmp_trans

Teuchos::RCP<Epetra_MultiVector> Stokhos::KLMatrixFreeOperator::tmp_trans
mutableprotected

Temporary multivector used in Apply() for transpose.

Referenced by Apply(), and KLMatrixFreeOperator().

◆ useTranspose

bool Stokhos::KLMatrixFreeOperator::useTranspose
protected

Flag indicating whether transpose was selected.

Referenced by Apply(), KLMatrixFreeOperator(), OperatorDomainMap(), OperatorRangeMap(), SetUseTranspose(), and UseTranspose().


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