|
Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
|
Go to the documentation of this file.
42 #ifndef STOKHOS_MATRIX_FREE_OPERATOR_HPP
43 #define STOKHOS_MATRIX_FREE_OPERATOR_HPP
46 #include "EpetraExt_MultiComm.h"
119 virtual double NormInf()
const;
122 virtual const char*
Label ()
const;
266 #endif // STOKHOS_MATRIX_FREE_OPERATOR_HPP
virtual const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this matrix operator.
int expansion_size
Number of terms in expansion.
virtual bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Bi-directional iterator for traversing a sparse array.
Stokhos::Sparse3Tensor< int, double > Cijk_type
Short-hand for Cijk.
Teuchos::RCP< Epetra_Map > global_col_map_trans
Stores operator column SG map for transpose.
virtual const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this matrix operator.
Teuchos::RCP< Epetra_MultiVector > input_col_trans
Temporary to store result of importing input into column map (transpose)
virtual bool UseTranspose() const
Returns the current UseTranspose setting.
Teuchos::RCP< const Epetra_BlockMap > stoch_col_map
Stores stochastic part of column map.
bool useTranspose
Flag indicating whether transpose was selected.
Teuchos::RCP< const Cijk_type > Cijk
Stores triple product tensor.
virtual ~MatrixFreeOperator()
Destructor.
Teuchos::RCP< Epetra_MultiVector > tmp_trans
Temporary multivector used in Apply() for transpose.
double countApplyFlops() const
Return number of FLOPS for each call to Apply()
virtual int SetUseTranspose(bool UseTranspose)
Set to true if the transpose of the operator is requested.
Cijk_type::k_iterator k_begin
Starting k iterator.
virtual const char * Label() const
Returns a character string describing the operator.
Teuchos::RCP< const Stokhos::EpetraSparse3Tensor > epetraCijk
Stores Epetra Cijk tensor.
Teuchos::RCP< const Epetra_Map > range_base_map
Stores range base map.
Cijk_type::k_iterator k_end
Ending k iterator.
bool is_stoch_parallel
Whether we have parallelism over stochastic blocks.
Teuchos::RCP< Epetra_MultiVector > input_col
Temporary to store result of importing input into column map.
Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > block_ops
Stores operators.
Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > sg_basis
Stochastic Galerking basis.
int max_num_mat_vec
Maximum number of matvecs in Apply.
Teuchos::RCP< Epetra_Import > col_importer
Importer from domain map to column map.
bool scale_op
Flag indicating whether operator be scaled with <\psi_i^2>
int num_blocks
Number of Jacobian blocks (not necessarily equal to expansion_size)
An abstract class to represent a generic stochastic Galerkin operator as an Epetra_Operator.
virtual const Epetra_Comm & Comm() const
Returns a reference to the Epetra_Comm communicator associated with this operator.
virtual double NormInf() const
Returns an approximate infinity norm of the operator matrix.
Top-level namespace for Stokhos classes and functions.
Teuchos::RCP< const Epetra_Map > domain_base_map
Stores domain base map.
Teuchos::RCP< const Epetra_Map > domain_sg_map
Stores domain SG map.
Teuchos::RCP< Epetra_Map > global_col_map
Stores operator column SG map.
Teuchos::RCP< const Epetra_Map > range_sg_map
Stores range SG map.
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 ...
virtual Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > getSGPolynomial()
Get SG polynomial.
Teuchos::Array< Teuchos::RCP< Epetra_MultiVector > > result_block
MultiVectors for each block for Apply() result.
bool include_mean
Flag indicating whether to include mean term.
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 ...
Teuchos::RCP< const EpetraExt::MultiComm > sg_comm
Stores SG parallel communicator.
std::string label
Label for operator.
virtual void setupOperator(const Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > &poly)
Setup operator.
bool use_block_apply
Flag indicating whether to use block Epetra_MultiVector apply.
bool only_use_linear
Flag indicating whether to only use linear terms.
Teuchos::RCP< Epetra_Import > col_importer_trans
Importer from range map to column map.
Teuchos::Array< Teuchos::RCP< const Epetra_MultiVector > > input_block
MultiVectors for each block for Apply() input.
An Epetra operator representing the block stochastic Galerkin operator.
Teuchos::RCP< Epetra_MultiVector > tmp
Temporary multivector used in Apply()
MatrixFreeOperator & operator=(const MatrixFreeOperator &)
Private to prohibit copying.
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 > ¶ms)
Constructor.