LinearOpWithSolveBase subclass that adapts any Amesos_BaseSolver object.
More...
#include <Thyra_AmesosLinearOpWithSolve.hpp>

Constructors/initializers/accessors | |
| AmesosLinearOpWithSolve () | |
| Construct to uninitialized. | |
| 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(). | |
| 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. | |
| Teuchos::RCP< const LinearOpSourceBase< double > > | extract_fwdOpSrc () |
Extract the LinearOpSourceBase<double> object so that it can be modified. | |
| 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. | |
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 protected functions from SingleScalarLinearOpBase | |
| bool | opSupported (EOpTransp M_trans) const |
| | |
| void | apply (const EOpTransp M_trans, const MultiVectorBase< double > &X, MultiVectorBase< double > *Y, const double alpha, const double beta) const |
| | |
Overridden protected functions from SingleScalarLinearOpWithSolveBase | |
| bool | solveSupportsTrans (EOpTransp M_trans) const |
| | |
| bool | solveSupportsSolveMeasureType (EOpTransp M_trans, const SolveMeasureType &solveMeasureType) const |
| | |
| void | solve (const EOpTransp M_trans, const MultiVectorBase< double > &B, MultiVectorBase< double > *X, const int numBlocks, const BlockSolveCriteria< double > blockSolveCriteria[], SolveStatus< double > blockSolveStatus[]) const |
| | |
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 55 of file Thyra_AmesosLinearOpWithSolve.hpp.
| Thyra::AmesosLinearOpWithSolve::AmesosLinearOpWithSolve | ( | ) |
| 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 | |||
| ) |
| 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. |
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 63 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 93 of file Thyra_AmesosLinearOpWithSolve.cpp.
| Teuchos::RCP< const LinearOpBase< double > > Thyra::AmesosLinearOpWithSolve::get_fwdOp | ( | ) | const [inline] |
| Teuchos::RCP< const LinearOpSourceBase< double > > Thyra::AmesosLinearOpWithSolve::get_fwdOpSrc | ( | ) | const [inline] |
| Teuchos::RCP< Epetra_LinearProblem > Thyra::AmesosLinearOpWithSolve::get_epetraLP | ( | ) | const [inline] |
| Teuchos::RCP< Amesos_BaseSolver > Thyra::AmesosLinearOpWithSolve::get_amesosSolver | ( | ) | const [inline] |
| EOpTransp Thyra::AmesosLinearOpWithSolve::get_amesosSolverTransp | ( | ) | const [inline] |
| double Thyra::AmesosLinearOpWithSolve::get_amesosSolverScalar | ( | ) | const [inline] |
| 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 | |||
| ) |
| Teuchos::RCP< const VectorSpaceBase< double > > Thyra::AmesosLinearOpWithSolve::range | ( | ) | const [virtual] |
Implements Thyra::LinearOpBase< double, DomainScalar >.
Definition at line 133 of file Thyra_AmesosLinearOpWithSolve.cpp.
| Teuchos::RCP< const VectorSpaceBase< double > > Thyra::AmesosLinearOpWithSolve::domain | ( | ) | const [virtual] |
Implements Thyra::LinearOpBase< double, DomainScalar >.
Definition at line 140 of file Thyra_AmesosLinearOpWithSolve.cpp.
| Teuchos::RCP< const LinearOpBase< double > > Thyra::AmesosLinearOpWithSolve::clone | ( | ) | const [virtual] |
Reimplemented from Thyra::LinearOpBase< double, DomainScalar >.
Definition at line 147 of file Thyra_AmesosLinearOpWithSolve.cpp.
| std::string Thyra::AmesosLinearOpWithSolve::description | ( | ) | const [virtual] |
Reimplemented from Teuchos::Describable.
Definition at line 156 of file Thyra_AmesosLinearOpWithSolve.cpp.
| void Thyra::AmesosLinearOpWithSolve::describe | ( | Teuchos::FancyOStream & | out, | |
| const Teuchos::EVerbosityLevel | verbLevel | |||
| ) | const [virtual] |
Reimplemented from Teuchos::Describable.
Definition at line 169 of file Thyra_AmesosLinearOpWithSolve.cpp.
| bool Thyra::AmesosLinearOpWithSolve::opSupported | ( | EOpTransp | M_trans | ) | const [protected] |
| void Thyra::AmesosLinearOpWithSolve::apply | ( | const EOpTransp | M_trans, | |
| const MultiVectorBase< double > & | X, | |||
| MultiVectorBase< double > * | Y, | |||
| const double | alpha, | |||
| const double | beta | |||
| ) | const [protected] |
| bool Thyra::AmesosLinearOpWithSolve::solveSupportsTrans | ( | EOpTransp | M_trans | ) | const [protected, virtual] |
Implements Thyra::SingleScalarLinearOpWithSolveBase< double >.
Definition at line 232 of file Thyra_AmesosLinearOpWithSolve.cpp.
| bool Thyra::AmesosLinearOpWithSolve::solveSupportsSolveMeasureType | ( | EOpTransp | M_trans, | |
| const SolveMeasureType & | solveMeasureType | |||
| ) | const [protected, virtual] |
Implements Thyra::SingleScalarLinearOpWithSolveBase< double >.
Definition at line 238 of file Thyra_AmesosLinearOpWithSolve.cpp.
| void Thyra::AmesosLinearOpWithSolve::solve | ( | const EOpTransp | M_trans, | |
| const MultiVectorBase< double > & | B, | |||
| MultiVectorBase< double > * | X, | |||
| const int | numBlocks, | |||
| const BlockSolveCriteria< double > | blockSolveCriteria[], | |||
| SolveStatus< double > | blockSolveStatus[] | |||
| ) | const [protected, virtual] |
Implements Thyra::SingleScalarLinearOpWithSolveBase< double >.
Definition at line 249 of file Thyra_AmesosLinearOpWithSolve.cpp.
1.5.8