Stokhos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Types | Protected Attributes | Private Member Functions | List of all members
Stokhos::MatrixFreeOperator Class Reference

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

#include <Stokhos_MatrixFreeOperator.hpp>

Inheritance diagram for Stokhos::MatrixFreeOperator:
Inheritance graph
[legend]

Public Member Functions

 MatrixFreeOperator (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. More...
 
virtual ~MatrixFreeOperator ()
 Destructor. More...
 
double countApplyFlops () const
 Return number of FLOPS for each call to Apply() More...
 
- Public Member Functions inherited from Stokhos::SGOperator
 SGOperator ()
 Constructor. More...
 
virtual ~SGOperator ()
 Destructor. More...
 

Protected Types

typedef Stokhos::Sparse3Tensor
< int, double
Cijk_type
 Short-hand for Cijk. More...
 

Protected Attributes

std::string label
 Label for operator. More...
 
Teuchos::RCP< const
EpetraExt::MultiComm > 
sg_comm
 Stores SG parallel communicator. More...
 
Teuchos::RCP< const
Stokhos::OrthogPolyBasis< int,
double > > 
sg_basis
 Stochastic Galerking basis. More...
 
Teuchos::RCP< const
Stokhos::EpetraSparse3Tensor
epetraCijk
 Stores Epetra Cijk tensor. More...
 
Teuchos::RCP< const Epetra_Mapdomain_base_map
 Stores domain base map. More...
 
Teuchos::RCP< const Epetra_Maprange_base_map
 Stores range base map. More...
 
Teuchos::RCP< const Epetra_Mapdomain_sg_map
 Stores domain SG map. More...
 
Teuchos::RCP< const Epetra_Maprange_sg_map
 Stores range SG map. More...
 
bool is_stoch_parallel
 Whether we have parallelism over stochastic blocks. More...
 
Teuchos::RCP< Epetra_Mapglobal_col_map
 Stores operator column SG map. More...
 
Teuchos::RCP< Epetra_Mapglobal_col_map_trans
 Stores operator column SG map for transpose. More...
 
Teuchos::RCP< const
Epetra_BlockMap
stoch_col_map
 Stores stochastic part of column map. More...
 
Teuchos::RCP< Epetra_Importcol_importer
 Importer from domain map to column map. More...
 
Teuchos::RCP< Epetra_Importcol_importer_trans
 Importer from range map to column map. More...
 
Teuchos::RCP< const Cijk_typeCijk
 Stores triple product tensor. More...
 
Teuchos::RCP
< Stokhos::EpetraOperatorOrthogPoly
block_ops
 Stores operators. More...
 
bool scale_op
 Flag indicating whether operator be scaled with <^2> More...
 
bool include_mean
 Flag indicating whether to include mean term. More...
 
bool only_use_linear
 Flag indicating whether to only use linear terms. More...
 
bool useTranspose
 Flag indicating whether transpose was selected. More...
 
bool use_block_apply
 Flag indicating whether to use block Epetra_MultiVector apply. More...
 
int expansion_size
 Number of terms in expansion. More...
 
int num_blocks
 Number of Jacobian blocks (not necessarily equal to expansion_size) More...
 
int max_num_mat_vec
 Maximum number of matvecs in Apply. More...
 
Teuchos::RCP< Epetra_MultiVectorinput_col
 Temporary to store result of importing input into column map. More...
 
Teuchos::RCP< Epetra_MultiVectorinput_col_trans
 Temporary to store result of importing input into column map (transpose) More...
 
Teuchos::Array< Teuchos::RCP
< const Epetra_MultiVector > > 
input_block
 MultiVectors for each block for Apply() input. More...
 
Teuchos::Array< Teuchos::RCP
< Epetra_MultiVector > > 
result_block
 MultiVectors for each block for Apply() result. More...
 
Teuchos::RCP< Epetra_MultiVectortmp
 Temporary multivector used in Apply() More...
 
Teuchos::RCP< Epetra_MultiVectortmp_trans
 Temporary multivector used in Apply() for transpose. More...
 
Cijk_type::k_iterator k_begin
 Starting k iterator. More...
 
Cijk_type::k_iterator k_end
 Ending k iterator. More...
 

Private Member Functions

 MatrixFreeOperator (const MatrixFreeOperator &)
 Private to prohibit copying. More...
 
MatrixFreeOperatoroperator= (const MatrixFreeOperator &)
 Private to prohibit copying. More...
 

Stokhos::SGOperator methods

virtual void setupOperator (const Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > &poly)
 Setup operator. More...
 
virtual Teuchos::RCP
< Stokhos::EpetraOperatorOrthogPoly
getSGPolynomial ()
 Get SG polynomial. More...
 
virtual Teuchos::RCP< const
Stokhos::EpetraOperatorOrthogPoly
getSGPolynomial () const
 Get SG polynomial. More...
 

Epetra_Operator methods

virtual int SetUseTranspose (bool UseTranspose)
 Set to true if the transpose of the operator is requested. More...
 
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. More...
 
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. More...
 
virtual double NormInf () const
 Returns an approximate infinity norm of the operator matrix. More...
 
virtual const char * Label () const
 Returns a character string describing the operator. More...
 
virtual bool UseTranspose () const
 Returns the current UseTranspose setting. More...
 
virtual bool HasNormInf () const
 Returns true if the this object can provide an approximate Inf-norm, false otherwise. More...
 
virtual const Epetra_CommComm () const
 Returns a reference to the Epetra_Comm communicator associated with this operator. More...
 
virtual const Epetra_MapOperatorDomainMap () const
 Returns the Epetra_Map object associated with the domain of this matrix operator. More...
 
virtual const Epetra_MapOperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this matrix operator. More...
 

Detailed Description

An Epetra operator representing the block stochastic Galerkin operator.

Definition at line 60 of file Stokhos_MatrixFreeOperator.hpp.

Member Typedef Documentation

Short-hand for Cijk.

Definition at line 206 of file Stokhos_MatrixFreeOperator.hpp.

Constructor & Destructor Documentation

Stokhos::MatrixFreeOperator::MatrixFreeOperator ( 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.

Definition at line 48 of file Stokhos_MatrixFreeOperator.cpp.

Stokhos::MatrixFreeOperator::~MatrixFreeOperator ( )
virtual

Destructor.

Definition at line 141 of file Stokhos_MatrixFreeOperator.cpp.

Stokhos::MatrixFreeOperator::MatrixFreeOperator ( const MatrixFreeOperator )
private

Private to prohibit copying.

Member Function Documentation

double Stokhos::MatrixFreeOperator::countApplyFlops ( ) const

Return number of FLOPS for each call to Apply()

Definition at line 147 of file Stokhos_MatrixFreeOperator.cpp.

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

Setup operator.

Implements Stokhos::SGOperator.

Definition at line 173 of file Stokhos_MatrixFreeOperator.cpp.

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

Get SG polynomial.

Implements Stokhos::SGOperator.

Definition at line 184 of file Stokhos_MatrixFreeOperator.cpp.

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

Get SG polynomial.

Implements Stokhos::SGOperator.

Definition at line 191 of file Stokhos_MatrixFreeOperator.cpp.

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

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

Implements Epetra_Operator.

Definition at line 198 of file Stokhos_MatrixFreeOperator.cpp.

int Stokhos::MatrixFreeOperator::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.

Implements Epetra_Operator.

Definition at line 209 of file Stokhos_MatrixFreeOperator.cpp.

int Stokhos::MatrixFreeOperator::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.

Implements Epetra_Operator.

Definition at line 357 of file Stokhos_MatrixFreeOperator.cpp.

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

Returns an approximate infinity norm of the operator matrix.

Implements Epetra_Operator.

Definition at line 365 of file Stokhos_MatrixFreeOperator.cpp.

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

Returns a character string describing the operator.

Implements Epetra_Operator.

Definition at line 372 of file Stokhos_MatrixFreeOperator.cpp.

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

Returns the current UseTranspose setting.

Implements Epetra_Operator.

Definition at line 378 of file Stokhos_MatrixFreeOperator.cpp.

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

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

Implements Epetra_Operator.

Definition at line 384 of file Stokhos_MatrixFreeOperator.cpp.

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

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

Implements Epetra_Operator.

Definition at line 390 of file Stokhos_MatrixFreeOperator.cpp.

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

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

Implements Epetra_Operator.

Definition at line 395 of file Stokhos_MatrixFreeOperator.cpp.

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

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

Implements Epetra_Operator.

Definition at line 403 of file Stokhos_MatrixFreeOperator.cpp.

MatrixFreeOperator& Stokhos::MatrixFreeOperator::operator= ( const MatrixFreeOperator )
private

Private to prohibit copying.

Member Data Documentation

std::string Stokhos::MatrixFreeOperator::label
protected

Label for operator.

Definition at line 164 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores SG parallel communicator.

Definition at line 167 of file Stokhos_MatrixFreeOperator.hpp.

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

Stochastic Galerking basis.

Definition at line 170 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores Epetra Cijk tensor.

Definition at line 173 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores domain base map.

Definition at line 176 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores range base map.

Definition at line 179 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores domain SG map.

Definition at line 182 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores range SG map.

Definition at line 185 of file Stokhos_MatrixFreeOperator.hpp.

bool Stokhos::MatrixFreeOperator::is_stoch_parallel
protected

Whether we have parallelism over stochastic blocks.

Definition at line 188 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores operator column SG map.

Definition at line 191 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores operator column SG map for transpose.

Definition at line 194 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores stochastic part of column map.

Definition at line 197 of file Stokhos_MatrixFreeOperator.hpp.

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

Importer from domain map to column map.

Definition at line 200 of file Stokhos_MatrixFreeOperator.hpp.

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

Importer from range map to column map.

Definition at line 203 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores triple product tensor.

Definition at line 209 of file Stokhos_MatrixFreeOperator.hpp.

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

Stores operators.

Definition at line 212 of file Stokhos_MatrixFreeOperator.hpp.

bool Stokhos::MatrixFreeOperator::scale_op
protected

Flag indicating whether operator be scaled with <^2>

Definition at line 215 of file Stokhos_MatrixFreeOperator.hpp.

bool Stokhos::MatrixFreeOperator::include_mean
protected

Flag indicating whether to include mean term.

Definition at line 218 of file Stokhos_MatrixFreeOperator.hpp.

bool Stokhos::MatrixFreeOperator::only_use_linear
protected

Flag indicating whether to only use linear terms.

Definition at line 221 of file Stokhos_MatrixFreeOperator.hpp.

bool Stokhos::MatrixFreeOperator::useTranspose
protected

Flag indicating whether transpose was selected.

Definition at line 224 of file Stokhos_MatrixFreeOperator.hpp.

bool Stokhos::MatrixFreeOperator::use_block_apply
protected

Flag indicating whether to use block Epetra_MultiVector apply.

Definition at line 227 of file Stokhos_MatrixFreeOperator.hpp.

int Stokhos::MatrixFreeOperator::expansion_size
protected

Number of terms in expansion.

Definition at line 230 of file Stokhos_MatrixFreeOperator.hpp.

int Stokhos::MatrixFreeOperator::num_blocks
protected

Number of Jacobian blocks (not necessarily equal to expansion_size)

Definition at line 233 of file Stokhos_MatrixFreeOperator.hpp.

int Stokhos::MatrixFreeOperator::max_num_mat_vec
protected

Maximum number of matvecs in Apply.

Definition at line 236 of file Stokhos_MatrixFreeOperator.hpp.

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

Temporary to store result of importing input into column map.

Definition at line 239 of file Stokhos_MatrixFreeOperator.hpp.

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

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

Definition at line 242 of file Stokhos_MatrixFreeOperator.hpp.

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

MultiVectors for each block for Apply() input.

Definition at line 245 of file Stokhos_MatrixFreeOperator.hpp.

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

MultiVectors for each block for Apply() result.

Definition at line 248 of file Stokhos_MatrixFreeOperator.hpp.

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

Temporary multivector used in Apply()

Definition at line 251 of file Stokhos_MatrixFreeOperator.hpp.

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

Temporary multivector used in Apply() for transpose.

Definition at line 254 of file Stokhos_MatrixFreeOperator.hpp.

Cijk_type::k_iterator Stokhos::MatrixFreeOperator::k_begin
protected

Starting k iterator.

Definition at line 257 of file Stokhos_MatrixFreeOperator.hpp.

Cijk_type::k_iterator Stokhos::MatrixFreeOperator::k_end
protected

Ending k iterator.

Definition at line 260 of file Stokhos_MatrixFreeOperator.hpp.


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