Stokhos  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Member Functions | Protected Types | Protected Attributes | 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]
Collaboration diagram for Stokhos::MatrixFreeOperator:
Collaboration 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.
 
virtual ~MatrixFreeOperator ()
 Destructor.
 
double countApplyFlops () const
 Return number of FLOPS for each call to Apply()
 
Stokhos::SGOperator methods
virtual void setupOperator (const Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > &poly)
 Setup operator.
 
virtual Teuchos::RCP
< Stokhos::EpetraOperatorOrthogPoly
getSGPolynomial ()
 Get SG polynomial.
 
virtual Teuchos::RCP< const
Stokhos::EpetraOperatorOrthogPoly
getSGPolynomial () const
 Get SG polynomial.
 
Epetra_Operator methods
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.
 
- Public Member Functions inherited from Stokhos::SGOperator
 SGOperator ()
 Constructor.
 
virtual ~SGOperator ()
 Destructor.
 

Protected Types

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

Protected Attributes

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::EpetraSparse3Tensor
epetraCijk
 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::EpetraOperatorOrthogPoly
block_ops
 Stores operators.
 
bool scale_op
 Flag indicating whether operator be scaled with <^2>
 
bool include_mean
 Flag indicating whether to include mean term.
 
bool only_use_linear
 Flag indicating whether to only use linear terms.
 
bool useTranspose
 Flag indicating whether transpose was selected.
 
bool use_block_apply
 Flag indicating whether to use block Epetra_MultiVector apply.
 
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.
 

Detailed Description

An Epetra operator representing the block stochastic Galerkin operator.


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