Stratimikos
Version of the Day
|
Concrete LinearOpWithSolveFactoryBase
adapter subclass that uses Amesos direct solvers.
More...
#include <Thyra_AmesosLinearOpWithSolveFactory.hpp>
Parameter names for Paramter List | |
static const std::string | SolverType_name = "Solver Type" |
static const std::string | RefactorizationPolicy_name = "Refactorization Policy" |
static const std::string | ThrowOnPreconditionerInput_name = "Throw on Preconditioner Input" |
static const std::string | Amesos_Settings_name = "Amesos Settings" |
Constructors/initializers/accessors | |
~AmesosLinearOpWithSolveFactory () | |
AmesosLinearOpWithSolveFactory (const Amesos::ESolverType solverType=Amesos::LAPACK, const Amesos::ERefactorizationPolicy refactorizationPolicy=Amesos::REPIVOT_ON_REFACTORIZATION, const bool throwOnPrecInput=true) | |
Constructor which sets the defaults. More... | |
STANDARD_COMPOSITION_MEMBERS (EpetraOperatorViewExtractorBase, epetraFwdOpViewExtractor) | |
Set the strategy object used to extract an Epetra_Operator view of an input forward operator. More... | |
Overridden public functions from LinearOpWithSolveFactoryBase | |
bool | isCompatible (const LinearOpSourceBase< double > &fwdOpSrc) const |
Returns true if dynamic_cast<const EpetraLinearOpBase*>(fwdOpSrc)!=NULL . More... | |
Teuchos::RCP < LinearOpWithSolveBase < double > > | createOp () const |
void | initializeOp (const Teuchos::RCP< const LinearOpSourceBase< double > > &fwdOpSrc, LinearOpWithSolveBase< double > *Op, const ESupportSolveUse supportSolveUse) const |
bool | supportsPreconditionerInputType (const EPreconditionerInputType precOpType) const |
Returns false . More... | |
void | initializePreconditionedOp (const Teuchos::RCP< const LinearOpSourceBase< double > > &fwdOpSrc, const Teuchos::RCP< const PreconditionerBase< double > > &prec, LinearOpWithSolveBase< double > *Op, const ESupportSolveUse supportSolveUse) const |
Throws exception if this->throwOnPrecInput()==true and calls this->initializeOp(fwdOpSrc,Op) otherwise. More... | |
void | initializePreconditionedOp (const Teuchos::RCP< const LinearOpSourceBase< double > > &fwdOpSrc, const Teuchos::RCP< const LinearOpSourceBase< double > > &approxFwdOpSrc, LinearOpWithSolveBase< double > *Op, const ESupportSolveUse supportSolveUse) const |
Throws exception if this->throwOnPrecInput()==true and calls this->initializeOp(fwdOpSrc,Op) otherwise. More... | |
void | uninitializeOp (LinearOpWithSolveBase< double > *Op, Teuchos::RCP< const LinearOpSourceBase< double > > *fwdOpSrc, Teuchos::RCP< const PreconditionerBase< double > > *prec, Teuchos::RCP< const LinearOpSourceBase< double > > *approxFwdOpSrc, ESupportSolveUse *supportSolveUse) const |
Overridden from ParameterListAcceptor | |
void | setParameterList (Teuchos::RCP< Teuchos::ParameterList > const ¶mList) |
Teuchos::RCP < Teuchos::ParameterList > | getNonconstParameterList () |
Teuchos::RCP < Teuchos::ParameterList > | unsetParameterList () |
Teuchos::RCP< const Teuchos::ParameterList > | getParameterList () const |
Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
Public functions overridden from Teuchos::Describable. | |
std::string | description () const |
Concrete LinearOpWithSolveFactoryBase
adapter subclass that uses Amesos direct solvers.
This class creates objects of type AmesosLinearOpWithSolve
(through the LinearOpWithSolveBase
interface) which can then be used to solve for linear systems. The AmesosLinearOpWithSolve
objects created and initialized by this object are completely independent from *this
. This allows for multiple AmesosLinearOpWithSolve
objects to be created and maintained simultaneously and for *this
factory object to be destroyed without affecting the created AmesosLinearOpWithSolve
objects.
ToDo: Mention parameter list usage.
Development notes: This class has been designed to allow for "smart" EpetraLinearOpBase
subclasses that can create an Epetra_Operator
view on command where the underlying storage may not be an Epetra
object. However, the current implementation of at least some of the Amesos_BaseSolver
subclasses do not allow the Epetra_Operator
object to change after construction. Therefore, this current flawed implementation requires that every call to the EpetraLinearOpBase::getEpetraOpView()
function return the same Epetra_Operator
object.
Definition at line 48 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.
Thyra::AmesosLinearOpWithSolveFactory::~AmesosLinearOpWithSolveFactory | ( | ) |
Definition at line 80 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
Thyra::AmesosLinearOpWithSolveFactory::AmesosLinearOpWithSolveFactory | ( | const Amesos::ESolverType | solverType = Amesos::LAPACK , |
const Amesos::ERefactorizationPolicy | refactorizationPolicy = Amesos::REPIVOT_ON_REFACTORIZATION , |
||
const bool | throwOnPrecInput = true |
||
) |
Constructor which sets the defaults.
Definition at line 90 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
Thyra::AmesosLinearOpWithSolveFactory::STANDARD_COMPOSITION_MEMBERS | ( | EpetraOperatorViewExtractorBase | , |
epetraFwdOpViewExtractor | |||
) |
Set the strategy object used to extract an Epetra_Operator
view of an input forward operator.
This view will then be dynamically casted to Epetra_RowMatrix
before it is used.
The default implementation used is EpetraOperatorViewExtractorBase
.
|
virtual |
Returns true if dynamic_cast<const EpetraLinearOpBase*>(fwdOpSrc)!=NULL
.
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 103 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 127 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 132 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Returns false
.
Reimplemented from Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 326 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Throws exception if this->throwOnPrecInput()==true
and calls this->initializeOp(fwdOpSrc,Op)
otherwise.
Reimplemented from Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 331 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
void Thyra::AmesosLinearOpWithSolveFactory::initializePreconditionedOp | ( | const Teuchos::RCP< const LinearOpSourceBase< double > > & | fwdOpSrc, |
const Teuchos::RCP< const LinearOpSourceBase< double > > & | approxFwdOpSrc, | ||
LinearOpWithSolveBase< double > * | Op, | ||
const ESupportSolveUse | supportSolveUse | ||
) | const |
Throws exception if this->throwOnPrecInput()==true
and calls this->initializeOp(fwdOpSrc,Op)
otherwise.
Definition at line 346 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 361 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 395 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 423 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 429 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 437 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 443 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Reimplemented from Teuchos::Describable.
Definition at line 450 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
static |
Definition at line 55 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.
|
static |
Definition at line 57 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.
|
static |
Definition at line 59 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.
|
static |
Definition at line 61 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.