#include <Ifpack_SparseContainer.h>


Public Member Functions | |
| virtual double | InitializeFlops () const |
| Returns the flops in Compute(). | |
| virtual double | ComputeFlops () const |
| Returns the flops in Compute(). | |
| virtual double | ApplyFlops () const |
| Returns the flops in Apply(). | |
| virtual double | ApplyInverseFlops () const |
| Returns the flops in ApplyInverse(). | |
| virtual ostream & | Print (std::ostream &os) const |
| Prints basic information on iostream. This function is used by operator<<. | |
| Ifpack_SparseContainer (const int NumRows, const int NumVectors=1) | |
| Constructor. | |
| Ifpack_SparseContainer (const Ifpack_SparseContainer< T > &rhs) | |
| Copy constructor. | |
| virtual | ~Ifpack_SparseContainer () |
| Destructor. | |
| Ifpack_SparseContainer & | operator= (const Ifpack_SparseContainer< T > &rhs) |
| Operator =. | |
| virtual int | NumRows () const |
| Returns the number of rows of the matrix and LHS/RHS. | |
| virtual int | NumVectors () const |
| Returns the number of vectors in LHS/RHS. | |
| virtual int | SetNumVectors (const int NumVectors_in) |
| Sets the number of vectors for LHS/RHS. | |
| virtual double & | LHS (const int i, const int Vector=0) |
| Returns the i-th component of the vector Vector of LHS. | |
| virtual double & | RHS (const int i, const int Vector=0) |
| Returns the i-th component of the vector Vector of RHS. | |
| virtual int & | ID (const int i) |
| Returns the ID associated to local row i. | |
| virtual int | SetMatrixElement (const int row, const int col, const double value) |
Set the matrix element (row,col) to value. | |
| virtual bool | IsInitialized () const |
Returns true is the container has been successfully initialized. | |
| virtual bool | IsComputed () const |
Returns true is the container has been successfully computed. | |
| virtual int | SetParameters (Teuchos::ParameterList &List) |
| Sets all necessary parameters. | |
| virtual const char * | Label () const |
| Returns the label of this container. | |
| const Epetra_Map * | Map () const |
| Returns a pointer to the internally stored map. | |
| const Epetra_MultiVector * | LHS () const |
| Returns a pointer to the internally stored solution multi-vector. | |
| const Epetra_MultiVector * | RHS () const |
| Returns a pointer to the internally stored rhs multi-vector. | |
| const Epetra_CrsMatrix * | Matrix () const |
| Returns a pointer to the internally stored matrix. | |
| const Epetra_IntSerialDenseVector * | ID () const |
| Returns a pointer to the internally stored ID's. | |
| const T * | Inverse () const |
| Returns a pointer to the internally stored inverse operator. | |
| virtual int | Initialize () |
| Initializes the container, by completing all the operations based on matrix structure. | |
| virtual int | Compute (const Epetra_RowMatrix &Matrix_in) |
| Finalizes the linear system matrix and prepares for the application of the inverse. | |
| virtual int | Apply () |
| Apply the matrix to RHS, result is stored in LHS. | |
| virtual int | ApplyInverse () |
| Apply the inverse of the matrix to RHS, result is stored in LHS. | |
| virtual int | Destroy () |
| Destroys all data. | |
To understand what an IFPACK container is, please refer to the documentation of the pure virtual class Ifpack_Container. Currently, containers are used by class Ifpack_BlockRelaxation.
Using block methods, one needs to store all diagonal blocks and to be also to apply the inverse of each diagonal block. Using class Ifpack_DenseContainer, one can store the blocks as sparse matrices (Epetra_CrsMatrix), which can be advantageous when the blocks are large. Otherwise, class Ifpack_DenseContainer is probably more appropriate.
Sparse containers are templated with a type T, which represent the class to use in the application of the inverse. (T is not used in Ifpack_DenseContainer). In SparseContainer, T must be an Ifpack_Preconditioner derived class. The container will allocate a T object, use SetParameters() and Compute(), then use T every time the linear system as to be solved (using the ApplyInverse() method of T).
| Ifpack_SparseContainer< T >::Ifpack_SparseContainer | ( | const int | NumRows, | |
| const int | NumVectors = 1 | |||
| ) | [inline] |
Constructor.
| Ifpack_SparseContainer< T >::Ifpack_SparseContainer | ( | const Ifpack_SparseContainer< T > & | rhs | ) | [inline] |
Copy constructor.
| Ifpack_SparseContainer< T >::~Ifpack_SparseContainer | ( | ) | [inline, virtual] |
Destructor.
| int Ifpack_SparseContainer< T >::Apply | ( | ) | [inline, virtual] |
| virtual double Ifpack_SparseContainer< T >::ApplyFlops | ( | ) | const [inline, virtual] |
| int Ifpack_SparseContainer< T >::ApplyInverse | ( | ) | [inline, virtual] |
| virtual double Ifpack_SparseContainer< T >::ApplyInverseFlops | ( | ) | const [inline, virtual] |
| int Ifpack_SparseContainer< T >::Compute | ( | const Epetra_RowMatrix & | Matrix_in | ) | [inline, virtual] |
Finalizes the linear system matrix and prepares for the application of the inverse.
Implements Ifpack_Container.
| virtual double Ifpack_SparseContainer< T >::ComputeFlops | ( | ) | const [inline, virtual] |
| int Ifpack_SparseContainer< T >::Destroy | ( | ) | [inline, virtual] |
Destroys all data.
| const Epetra_IntSerialDenseVector* Ifpack_SparseContainer< T >::ID | ( | ) | const [inline] |
Returns a pointer to the internally stored ID's.
| int & Ifpack_SparseContainer< T >::ID | ( | const int | i | ) | [inline, virtual] |
Returns the ID associated to local row i.
The set of (local) rows assigned to this container is defined by calling ID(i) = j, where i (from 0 to NumRows()) indicates the container-row, and j indicates the local row in the calling process.
This is usually used to recorder the local row ID (on calling process) of the i-th row in the container.
Implements Ifpack_Container.
| int Ifpack_SparseContainer< T >::Initialize | ( | ) | [inline, virtual] |
Initializes the container, by completing all the operations based on matrix structure.
Implements Ifpack_Container.
| virtual double Ifpack_SparseContainer< T >::InitializeFlops | ( | ) | const [inline, virtual] |
| const T* Ifpack_SparseContainer< T >::Inverse | ( | ) | const [inline] |
Returns a pointer to the internally stored inverse operator.
| virtual bool Ifpack_SparseContainer< T >::IsComputed | ( | ) | const [inline, virtual] |
| virtual bool Ifpack_SparseContainer< T >::IsInitialized | ( | ) | const [inline, virtual] |
| virtual const char* Ifpack_SparseContainer< T >::Label | ( | ) | const [inline, virtual] |
| const Epetra_MultiVector* Ifpack_SparseContainer< T >::LHS | ( | ) | const [inline] |
Returns a pointer to the internally stored solution multi-vector.
| double & Ifpack_SparseContainer< T >::LHS | ( | const int | i, | |
| const int | Vector = 0 | |||
| ) | [inline, virtual] |
| const Epetra_Map* Ifpack_SparseContainer< T >::Map | ( | ) | const [inline] |
Returns a pointer to the internally stored map.
| const Epetra_CrsMatrix* Ifpack_SparseContainer< T >::Matrix | ( | ) | const [inline] |
Returns a pointer to the internally stored matrix.
| int Ifpack_SparseContainer< T >::NumRows | ( | ) | const [inline, virtual] |
| virtual int Ifpack_SparseContainer< T >::NumVectors | ( | ) | const [inline, virtual] |
| Ifpack_SparseContainer& Ifpack_SparseContainer< T >::operator= | ( | const Ifpack_SparseContainer< T > & | rhs | ) |
Operator =.
| virtual ostream& Ifpack_SparseContainer< T >::Print | ( | std::ostream & | os | ) | const [virtual] |
Prints basic information on iostream. This function is used by operator<<.
Implements Ifpack_Container.
| const Epetra_MultiVector* Ifpack_SparseContainer< T >::RHS | ( | ) | const [inline] |
Returns a pointer to the internally stored rhs multi-vector.
| double & Ifpack_SparseContainer< T >::RHS | ( | const int | i, | |
| const int | Vector = 0 | |||
| ) | [inline, virtual] |
| int Ifpack_SparseContainer< T >::SetMatrixElement | ( | const int | row, | |
| const int | col, | |||
| const double | value | |||
| ) | [inline, virtual] |
| virtual int Ifpack_SparseContainer< T >::SetNumVectors | ( | const int | NumVectors_in | ) | [inline, virtual] |
| int Ifpack_SparseContainer< T >::SetParameters | ( | Teuchos::ParameterList & | List | ) | [inline, virtual] |
1.5.9