Stratimikos
Version of the Day
|
Concrete LinearOpWithSolveBase
subclass that adapts any Amesos_BaseSolver
object.
More...
#include <Thyra_AmesosLinearOpWithSolve.hpp>
Constructors/initializers/accessors | |
AmesosLinearOpWithSolve () | |
Construct to uninitialized. More... | |
AmesosLinearOpWithSolve (const Teuchos::RCP< const LinearOpBase< double > > &fwdOp, const Teuchos::RCP< const LinearOpSourceBase< double > > &fwdOpSrc, const Teuchos::RCP< Epetra_LinearProblem > &epetraLP, const Teuchos::RCP< Amesos_BaseSolver > &amesosSolver, const EOpTransp amesosSolverTransp, const double amesosSolverScalar) | |
Calls this->initialize() . More... | |
void | initialize (const Teuchos::RCP< const LinearOpBase< double > > &fwdOp, const Teuchos::RCP< const LinearOpSourceBase< double > > &fwdOpSrc, const Teuchos::RCP< Epetra_LinearProblem > &epetraLP, const Teuchos::RCP< Amesos_BaseSolver > &amesosSolver, const EOpTransp amesosSolverTransp, const double amesosSolverScalar) |
First initialization. More... | |
Teuchos::RCP< const LinearOpSourceBase< double > > | extract_fwdOpSrc () |
Extract the LinearOpSourceBase<double> object so that it can be modified. More... | |
Teuchos::RCP< const LinearOpBase< double > > | get_fwdOp () const |
Teuchos::RCP< const LinearOpSourceBase< double > > | get_fwdOpSrc () const |
Teuchos::RCP < Epetra_LinearProblem > | get_epetraLP () const |
Teuchos::RCP< Amesos_BaseSolver > | get_amesosSolver () const |
EOpTransp | get_amesosSolverTransp () const |
double | get_amesosSolverScalar () const |
void | uninitialize (Teuchos::RCP< const LinearOpBase< double > > *fwdOp=NULL, Teuchos::RCP< const LinearOpSourceBase< double > > *fwdOpSrc=NULL, Teuchos::RCP< Epetra_LinearProblem > *epetraLP=NULL, Teuchos::RCP< Amesos_BaseSolver > *amesosSolver=NULL, EOpTransp *amesosSolverTransp=NULL, double *amesosSolverScalar=NULL) |
Uninitialize. More... | |
Overridden public functions from LinearOpBase | |
Teuchos::RCP< const VectorSpaceBase< double > > | range () const |
Teuchos::RCP< const VectorSpaceBase< double > > | domain () const |
Teuchos::RCP< const LinearOpBase< double > > | clone () const |
Overridden public functions from Teuchos::Describable | |
std::string | description () const |
void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
Overridden from LinearOpBase | |
virtual bool | opSupportedImpl (EOpTransp M_trans) const |
virtual void | applyImpl (const EOpTransp M_trans, const MultiVectorBase< double > &X, const Ptr< MultiVectorBase< double > > &Y, const double alpha, const double beta) const |
Overridden from LinearOpWithSolveBase. | |
virtual bool | solveSupportsImpl (EOpTransp M_trans) const |
virtual bool | solveSupportsSolveMeasureTypeImpl (EOpTransp M_trans, const SolveMeasureType &solveMeasureType) const |
SolveStatus< double > | solveImpl (const EOpTransp M_trans, const MultiVectorBase< double > &B, const Ptr< MultiVectorBase< double > > &X, const Ptr< const SolveCriteria< double > > solveCriteria) const |
Concrete LinearOpWithSolveBase
subclass that adapts any Amesos_BaseSolver
object.
See the LinearOpWithSolveBase
interface for a description of how to use objects of this type.
Note: Clients should not generally directly create objects of this type but instead should use AmesosLinearOpWithSolveFactory
. Only very sophisticated users should ever directly interact with an object through this subclass interface.
Definition at line 36 of file Thyra_AmesosLinearOpWithSolve.hpp.
Thyra::AmesosLinearOpWithSolve::AmesosLinearOpWithSolve | ( | ) |
Construct to uninitialized.
Definition at line 23 of file Thyra_AmesosLinearOpWithSolve.cpp.
Thyra::AmesosLinearOpWithSolve::AmesosLinearOpWithSolve | ( | const Teuchos::RCP< const LinearOpBase< double > > & | fwdOp, |
const Teuchos::RCP< const LinearOpSourceBase< double > > & | fwdOpSrc, | ||
const Teuchos::RCP< Epetra_LinearProblem > & | epetraLP, | ||
const Teuchos::RCP< Amesos_BaseSolver > & | amesosSolver, | ||
const EOpTransp | amesosSolverTransp, | ||
const double | amesosSolverScalar | ||
) |
Calls this->initialize()
.
Definition at line 29 of file Thyra_AmesosLinearOpWithSolve.cpp.
void Thyra::AmesosLinearOpWithSolve::initialize | ( | const Teuchos::RCP< const LinearOpBase< double > > & | fwdOp, |
const Teuchos::RCP< const LinearOpSourceBase< double > > & | fwdOpSrc, | ||
const Teuchos::RCP< Epetra_LinearProblem > & | epetraLP, | ||
const Teuchos::RCP< Amesos_BaseSolver > & | amesosSolver, | ||
const EOpTransp | amesosSolverTransp, | ||
const double | amesosSolverScalar | ||
) |
First initialization.
fwdOp | [in] The forward operator for which the factorization exists. |
epetraLP | [in] The Epetra_LinearProblem object that was used to create the Amesos_BaseSolver object *amesosSolver . Note that the RHS and the LHS multi-vector pointers in this object will be set and unset here. |
amesosSolver | [in] Contains the factored, and ready to go, Amesos_BaseSolver object ready to solve linear system. |
amesosSolverTransp | [in] Determines if the Amesos solver should be used as its transpose or not. |
amesosSolverScalar | [in] Determines the scaling factor associated with the Amesos solver. The solution to the linear solve is scaled by 1/amesosSolverScalar . |
Preconditions:
fwdOp.get()!=NULL
epetraLP.get()!=NULL
amesosSolver.get()!=NULL
*epetraLP->GetOperator()
is compatible with *fwdOp
epetraLP->GetLHS()==NULL
epetraLP->GetRHS()==NULL
*amesosSolver
contains the factorization of *fwdOp
and is ready to solve linear systems! Postconditions:
this->get_fwdOp().get() == fwdOp.get()
this->get_epetraLP().get() == epetraLP.get()
this->get_amesosSolver().get() == amesosSolver.get()
this->get_amesosSolverTransp() == amesosSolverTransp
this->get_amesosSolverScalar() == amesosSolverScalar
Definition at line 43 of file Thyra_AmesosLinearOpWithSolve.cpp.
Teuchos::RCP< const LinearOpSourceBase< double > > Thyra::AmesosLinearOpWithSolve::extract_fwdOpSrc | ( | ) |
Extract the LinearOpSourceBase<double>
object so that it can be modified.
Postconditions:
return.get()
is the same as this->get_fwdOpSrc().get()
before call. this->get_fwdOpSrc().get()==NULL
Definition at line 73 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
inline |
Definition at line 217 of file Thyra_AmesosLinearOpWithSolve.hpp.
|
inline |
Definition at line 224 of file Thyra_AmesosLinearOpWithSolve.hpp.
|
inline |
Definition at line 231 of file Thyra_AmesosLinearOpWithSolve.hpp.
|
inline |
Definition at line 238 of file Thyra_AmesosLinearOpWithSolve.hpp.
|
inline |
Definition at line 244 of file Thyra_AmesosLinearOpWithSolve.hpp.
|
inline |
Definition at line 250 of file Thyra_AmesosLinearOpWithSolve.hpp.
void Thyra::AmesosLinearOpWithSolve::uninitialize | ( | Teuchos::RCP< const LinearOpBase< double > > * | fwdOp = NULL , |
Teuchos::RCP< const LinearOpSourceBase< double > > * | fwdOpSrc = NULL , |
||
Teuchos::RCP< Epetra_LinearProblem > * | epetraLP = NULL , |
||
Teuchos::RCP< Amesos_BaseSolver > * | amesosSolver = NULL , |
||
EOpTransp * | amesosSolverTransp = NULL , |
||
double * | amesosSolverScalar = NULL |
||
) |
Uninitialize.
Definition at line 82 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
virtual |
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 113 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
virtual |
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 120 of file Thyra_AmesosLinearOpWithSolve.cpp.
Teuchos::RCP< const LinearOpBase< double > > Thyra::AmesosLinearOpWithSolve::clone | ( | ) | const |
Definition at line 127 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
virtual |
Reimplemented from Teuchos::Describable.
Definition at line 136 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
virtual |
Reimplemented from Teuchos::Describable.
Definition at line 149 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
protectedvirtual |
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 191 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
protectedvirtual |
Definition at line 197 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
protectedvirtual |
Reimplemented from Thyra::LinearOpWithSolveBase< double >.
Definition at line 212 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
protectedvirtual |
Reimplemented from Thyra::LinearOpWithSolveBase< double >.
Definition at line 232 of file Thyra_AmesosLinearOpWithSolve.cpp.
|
protectedvirtual |
Implements Thyra::LinearOpWithSolveBase< double >.
Definition at line 241 of file Thyra_AmesosLinearOpWithSolve.cpp.