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 82 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.
Thyra::AmesosLinearOpWithSolveFactory::~AmesosLinearOpWithSolveFactory | ( | ) |
Definition at line 114 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 124 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 137 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 161 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 166 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Returns false
.
Reimplemented from Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 360 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 365 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 380 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 395 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 429 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 457 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 463 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 471 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 477 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
virtual |
Reimplemented from Teuchos::Describable.
Definition at line 484 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.
|
static |
Definition at line 89 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.
|
static |
Definition at line 91 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.
|
static |
Definition at line 93 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.
|
static |
Definition at line 95 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.