47 #ifndef Xyce_N_NLS_MatrixFreeEpetraOperator_h
48 #define Xyce_N_NLS_MatrixFreeEpetraOperator_h
51 #include <Teuchos_RCP.hpp>
55 #include <Epetra_Operator.h>
56 #include <Epetra_MultiVector.h>
57 #include <Epetra_Comm.h>
58 #include <Epetra_Map.h>
62 #include <N_LAS_MultiVector.h>
89 RCP<NonLinearSolver> nonlinearSolver,
90 RCP<Linear::Vector> solVector,
91 RCP<Linear::Vector> rhsVector,
92 RCP<const Epetra_Map> solutionMap
116 int Apply(
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const;
117 int Apply(
const Linear::MultiVector& X, Linear::MultiVector& Y)
const;
131 int ApplyInverse(
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const;
132 int ApplyInverse(
const Linear::MultiVector& X, Linear::MultiVector& Y)
const;
143 const char *
Label()
const;
152 const Epetra_Comm &
Comm()
const;
170 RCP<NonLinearSolver> nonlinearSolver,
171 RCP<Linear::Vector> solVector,
172 RCP<Linear::Vector> rhsVector,
173 RCP<const Epetra_Map> solutionMap
179 #endif // Xyce_N_NLS_MatrixFreeEpetraOperator_h
bool UseTranspose() const
Returns the current UseTranspose setting.
Teuchos::RCP< Linear::Vector > rhsVectorRCPtr_
Teuchos::RCP< NonLinearSolver > nonlinearSolverRCPtr_
Pure virtual class to augment a linear system.
const char * Label() const
Returns a character string describing the operator.
int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y...
const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
const Epetra_Comm & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
MatrixFreeEpetraOperator()
int SetUseTranspose(bool UseTranspose)
If set true, transpose of this operator will be applied.
virtual ~MatrixFreeEpetraOperator()
void initialize(RCP< NonLinearSolver > nonlinearSolver, RCP< Linear::Vector > solVector, RCP< Linear::Vector > rhsVector, RCP< const Epetra_Map > solutionMap)
bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Teuchos::RCP< const Epetra_Map > solutionMap_
double NormInf() const
Returns the infinity norm of the global matrix.
Teuchos::RCP< Linear::Vector > solVectorRCPtr_
const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
RCP< MatrixFreeEpetraOperator > matrixFreeEpetraOperator(RCP< NonLinearSolver > nonlinearSolver, RCP< Linear::Vector > solVector, RCP< Linear::Vector > rhsVector, RCP< const Epetra_Map > solutionMap)
int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.