This class implements the pure virtual class Epetra_Operator for the AztecOO iterative solve which only uses the Apply() method to compute the matrix vector product.
More...
#include <trilinos_impl.h>
|
| int | Apply (const Epetra_MultiVector &x, Epetra_MultiVector &y) const |
| |
| int | SetUseTranspose (bool use_transpose) |
| |
| int | ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
| | Computes A_inv*x.
|
| |
| double | NormInf () const |
| | Infinity norm for global stiffness does not add in the boundary term.
|
| |
| const char * | Label () const |
| | Returns a character string describing the operator.
|
| |
| bool | UseTranspose () const |
| | Returns current UseTranspose setting.
|
| |
| bool | HasNormInf () const |
| | Returns true if this object can provide an approx Inf-norm false otherwise.
|
| |
| const Epetra_Comm & | Comm () const |
| | Returns pointer to Epetra_Comm communicator associated with this operator.
|
| |
| const Epetra_Map & | OperatorDomainMap () const |
| | Returns Epetra_Map object assoicated with domain of this operator.
|
| |
| const Epetra_Map & | OperatorRangeMap () const |
| | Returns the Epetra_Map object associated with teh range of this operator.
|
| |
This class implements the pure virtual class Epetra_Operator for the AztecOO iterative solve which only uses the Apply() method to compute the matrix vector product.
◆ Apply()
| int TrilinosMatVec::Apply |
( |
const Epetra_MultiVector & |
x, |
|
|
Epetra_MultiVector & |
y |
|
) |
| const |
Define matrix vector operation at each iteration of the linear solver adds on the coupled neuman boundary contribution to the matrix
- Parameters
-
| x | vector to be applied on the operator |
| y | result of sprase matrix vector multiplication |
Define the matrix vector multiplication operation to do at each iteration of an iterative linear solver. This function is called by the AztecOO (K + v1*v1' + v2*v2' + ...) x = K*x + v1(v1'x) + v2(v2'*x), where [v1, v2, ...] = bdryVec_list
For coupled Neumann boundary terms (v1*v1', v2*v2'), we use efficient an vectorized operation rather than explicitly forming the rank 1 outer product matrix and adding it to the global stiffness matrix K.
- Parameters
-
| x | vector to be applied on the operator |
| y | result of sprase matrix vector multiplication |
◆ ApplyInverse()
| int TrilinosMatVec::ApplyInverse |
( |
const Epetra_MultiVector & |
X, |
|
|
Epetra_MultiVector & |
Y |
|
) |
| const |
|
inline |
◆ Comm()
| const Epetra_Comm & TrilinosMatVec::Comm |
( |
| ) |
const |
|
inline |
Returns pointer to Epetra_Comm communicator associated with this operator.
◆ HasNormInf()
| bool TrilinosMatVec::HasNormInf |
( |
| ) |
const |
|
inline |
Returns true if this object can provide an approx Inf-norm false otherwise.
◆ Label()
| const char * TrilinosMatVec::Label |
( |
| ) |
const |
|
inline |
Returns a character string describing the operator.
◆ NormInf()
| double TrilinosMatVec::NormInf |
( |
| ) |
const |
|
inline |
Infinity norm for global stiffness does not add in the boundary term.
◆ OperatorDomainMap()
| const Epetra_Map & TrilinosMatVec::OperatorDomainMap |
( |
| ) |
const |
|
inline |
Returns Epetra_Map object assoicated with domain of this operator.
◆ OperatorRangeMap()
| const Epetra_Map & TrilinosMatVec::OperatorRangeMap |
( |
| ) |
const |
|
inline |
Returns the Epetra_Map object associated with teh range of this operator.
◆ SetUseTranspose()
| int TrilinosMatVec::SetUseTranspose |
( |
bool |
use_transpose | ) |
|
|
inline |
Tells whether to use the transpose of the matrix in each matrix vector product
◆ UseTranspose()
| bool TrilinosMatVec::UseTranspose |
( |
| ) |
const |
|
inline |
Returns current UseTranspose setting.
The documentation for this class was generated from the following files: