|
Stokhos
Development
|
A stochastic preconditioner based on applying the approximate Schur complement preconditioner as defined by Sousedik, Ghanem, and Phipps, Numerical Linear Algebra and Applications, 2012. More...
#include <Stokhos_ApproxSchurComplementPreconditioner.hpp>


Public Member Functions | |
| ApproxSchurComplementPreconditioner (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 > &prec_factory, const Teuchos::RCP< Teuchos::ParameterList > ¶ms) | |
| Constructor. | |
| virtual | ~ApproxSchurComplementPreconditioner () |
| Destructor. | |
Stokhos::SGPreconditioner methods | |
| virtual void | setupPreconditioner (const Teuchos::RCP< Stokhos::SGOperator > &sg_op, const Epetra_Vector &x) |
| Setup preconditioner. | |
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::SGPreconditioner | |
| SGPreconditioner () | |
| Constructor. | |
| virtual | ~SGPreconditioner () |
| Destructor. | |
Protected Types | |
|
typedef Stokhos::Sparse3Tensor < int, double > | Cijk_type |
| Short-hand for Cijk. | |
Protected Member Functions | |
| void | multiply_block (const Teuchos::RCP< const Stokhos::Sparse3Tensor< int, double > > &cijk, double alpha, const EpetraExt::BlockMultiVector &Input, EpetraExt::BlockMultiVector &Result) const |
| void | divide_diagonal_block (int row_begin, int row_end, const EpetraExt::BlockMultiVector &Input, EpetraExt::BlockMultiVector &Result) const |
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 > | base_map |
| Stores base map. | |
| Teuchos::RCP< const Epetra_Map > | sg_map |
| Stores SG map. | |
|
Teuchos::RCP < Stokhos::AbstractPreconditionerFactory > | prec_factory |
| Stores factory for building mean preconditioner. | |
| Teuchos::RCP< Epetra_Operator > | mean_prec |
| Stores mean preconditioner. | |
| bool | useTranspose |
| Flag indicating whether transpose was selected. | |
| Teuchos::RCP< Stokhos::SGOperator > | sg_op |
| Pointer to the SG operator. | |
|
Teuchos::RCP < Stokhos::EpetraOperatorOrthogPoly > | sg_poly |
| Pointer to the PCE expansion of Jacobian. | |
| Teuchos::RCP< const Cijk_type > | Cijk |
| Pointer to triple product. | |
| int | P |
| Total polynomial order. | |
| Teuchos::Array< int > | block_indices |
| Starting block indices. | |
|
Teuchos::Array< Teuchos::RCP < Cijk_type > > | upper_block_Cijk |
| Triple product tensor for each sub-block. | |
|
Teuchos::Array< Teuchos::RCP < Cijk_type > > | lower_block_Cijk |
| bool | scale_op |
| Flag indicating whether operator be scaled with <^2> | |
| bool | symmetric |
| Use symmetric Gauss-Seidel. | |
| bool | only_use_linear |
| Limit Gauss-Seidel loop to linear terms. | |
| int | max_num_mat_vec |
| Maximum number of matvecs in Apply. | |
| Teuchos::RCP< Epetra_MultiVector > | tmp |
| Temporary vector for storing matrix-vector products. | |
|
Teuchos::RCP < EpetraExt::BlockMultiVector > | rhs_block |
| Temporary vector for storing rhs in Gauss-Seidel loop. | |
| Teuchos::Array< double * > | j_ptr |
| Teuchos::Array< int > | mj_indices |
A stochastic preconditioner based on applying the approximate Schur complement preconditioner as defined by Sousedik, Ghanem, and Phipps, Numerical Linear Algebra and Applications, 2012.
1.8.5