43#ifndef IFPACK_TRIDICONTAINER_H
44#define IFPACK_TRIDICONTAINER_H
202 for (
int i = 0 ; i <
NumRows_ ; ++i)
215 virtual double&
LHS(
const int i,
const int Vector = 0);
218 virtual double&
RHS(
const int i,
const int Vector = 0);
230 virtual int&
ID(
const int i);
341 virtual std::ostream&
Print(std::ostream& os)
const;
#define IFPACK_CHK_ERR(ifpack_err)
int Reshape(int NumRows, int NumCols)
Ifpack_Container: a pure virtual class for creating and solving local linear problems.
Ifpack_SerialTriDiMatrix: A class for constructing and using real double precision general TriDi matr...
Ifpack_SerialTriDiSolver: A class for solving TriDi linear problems.
int SetVectors(Epetra_SerialDenseMatrix &X, Epetra_SerialDenseMatrix &B)
Sets the pointers for left and right hand side vector(s).
Ifpack_TriDiContainer: a class to define containers for dense matrices.
virtual double ComputeFlops() const
Returns the flops in Compute().
virtual bool IsInitialized() const
Returns true is the container has been successfully initialized.
virtual int Compute(const Epetra_RowMatrix &Matrix_in)
Finalizes the linear system matrix and prepares for the application of the inverse.
double ApplyFlops_
Flops in Apply().
virtual int ApplyInverse()
Apply the inverse of the matrix to RHS, results are stored in LHS.
virtual double & LHS(const int i, const int Vector=0)
Returns the i-th component of the vector Vector of LHS.
virtual const char * Label() const
Returns the label of this container.
virtual const Ifpack_SerialTriDiMatrix & NonFactoredMatrix() const
Returns the non-factored dense matrix (only if stored).
virtual double & RHS(const int i, const int Vector=0)
Returns the i-th component of the vector Vector of RHS.
virtual const Epetra_SerialDenseMatrix & RHS() const
Returns the dense vector containing the RHS.
virtual int Initialize()
Initialize the container.
int NumRows_
Number of rows in the container.
Ifpack_TriDiContainer(const Ifpack_TriDiContainer &rhs)
Copy constructor.
virtual int Apply()
Apply the matrix to RHS, results are stored in LHS.
Epetra_SerialDenseMatrix LHS_
SerialDense vector representing the LHS.
Epetra_SerialDenseMatrix RHS_
SerialDense vector representing the RHS.
virtual double ApplyInverseFlops() const
Returns the flops in ApplyInverse().
Ifpack_SerialTriDiMatrix NonFactoredMatrix_
TriDi matrix, that contains the non-factored matrix.
virtual int SetKeepNonFactoredMatrix(const bool flag)
If flag is true, keeps a copy of the non-factored matrix.
Ifpack_TriDiContainer(const int NumRows_in, const int NumVectors_in=1)
Default constructor.
virtual double ApplyFlops() const
Returns the flops in Apply().
double ApplyInverseFlops_
Flops in ApplyInverse().
virtual int SetMatrixElement(const int row, const int col, const double value)
Set the matrix element (row,col) to value.
Epetra_IntSerialDenseVector ID_
Sets of local rows.
Ifpack_SerialTriDiMatrix Matrix_
TriDi matrix.
virtual int SetParameters(Teuchos::ParameterList &)
Sets all necessary parameters.
virtual const Epetra_IntSerialDenseVector & ID() const
Returns the integer dense vector of IDs.
Ifpack_TriDiContainer & operator=(const Ifpack_TriDiContainer &rhs)
Operator=.
bool IsComputed_
If true, the container has been successfully computed.
virtual const Ifpack_SerialTriDiMatrix & Matrix() const
Returns the dense matrix or its factors.
Ifpack_SerialTriDiSolver Solver_
TriDi solver (solution will be get using LAPACK).
bool IsInitialized_
If true, the container has been successfully initialized.
virtual int Extract(const Epetra_RowMatrix &Matrix_in)
Extract the submatrices identified by the ID set int ID().
virtual int NumRows() const
Returns the number of rows of the matrix and LHS/RHS.
virtual int SetNumVectors(const int NumVectors_in)
Sets the number of vectors for LHS/RHS.
virtual bool KeepNonFactoredMatrix() const
Returns KeepNonFactoredMatrix_.
std::string Label_
Label for this object.
virtual bool IsComputed() const
Returns true is the container has been successfully computed.
virtual int & ID(const int i)
Returns the ID associated to local row i.
virtual double InitializeFlops() const
Returns the flops in Initialize().
double ComputeFlops_
Flops in Compute().
virtual const Epetra_SerialDenseMatrix & LHS() const
Returns the dense vector containing the LHS.
virtual ~Ifpack_TriDiContainer()
Destructor.
bool KeepNonFactoredMatrix_
If true, keeps a copy of the non-factored matrix.
int NumVectors_
Number of vectors in the container.
virtual std::ostream & Print(std::ostream &os) const
Prints basic information on iostream. This function is used by operator<<.
virtual int NumVectors() const
Returns the number of vectors in LHS/RHS.