LinearOpWithSolveFactoryBase adapter subclass that uses Amesos direct solvers.
More...
#include <Thyra_AmesosLinearOpWithSolveFactory.hpp>
Constructors/initializers/accessors | |
| typedef Teuchos::RefCountPtr< Teuchos::ParameterList > | paramList_ptr_t |
| AmesosLinearOpWithSolveFactory (const Amesos::ESolverType solverType=Amesos::LAPACK, const Amesos::ERefactorizationPolicy refactorizationPolicy=Amesos::REPIVOT_ON_REFACTORIZATION, const Teuchos::RefCountPtr< Teuchos::ParameterList > ¶mList=Teuchos::null, const bool throwOnPrecInput=true) | |
| Constructor which sets the defaults. | |
| void | solverType (const Amesos::ESolverType &solverType) |
| Set the type of solver to use. | |
| const Amesos::ESolverType & | solverType () const |
| void | refactorizationPolicy (const Amesos::ERefactorizationPolicy &refactorizationPolicy) |
| Set the refactorization policy. | |
| const Amesos::ERefactorizationPolicy & | refactorizationPolicy () const |
| void | set_paramList (const Teuchos::RefCountPtr< Teuchos::ParameterList > ¶mList) |
| Set the parameter list that will be used to control the solver. | |
| Teuchos::RefCountPtr< Teuchos::ParameterList > | get_paramList () const |
| Teuchos::ParameterList & | paramList () const |
| void | throwOnPrecInput (const bool &throwOnPrecInput) |
Set if an exception is thrown when this->initializePreconditionedOp() is called or not. | |
| const bool & | throwOnPrecInput () const |
Overridden public functions from LinearOpWithSolveFactoryBase | |
| bool | isCompatible (const LinearOpBase< double > &fwdOp) const |
Returns true if dynamic_cast<const EpetraLinearOpBase*>(fwdOp)!=NULL . | |
| Teuchos::RefCountPtr< LinearOpWithSolveBase< double > > | createOp () const |
| | |
| void | initializeOp (const Teuchos::RefCountPtr< const LinearOpBase< double > > &fwdOp, LinearOpWithSolveBase< double > *Op) const |
| | |
| bool | supportsPreconditionerInputType (const EPreconditionerInputType precOpType) const |
Returns false . | |
| void | initializePreconditionedOp (const Teuchos::RefCountPtr< const LinearOpBase< double > > &fwdOp, const Teuchos::RefCountPtr< const LinearOpBase< double > > &precOp, const EPreconditionerInputType precOpType, LinearOpWithSolveBase< double > *Op) const |
Throws exception if this->throwOnPrecInput() == true and calls this->initializeOp(fwdOp,Op) otherwise. | |
| void | uninitializeOp (LinearOpWithSolveBase< double > *Op, Teuchos::RefCountPtr< const LinearOpBase< double > > *fwdOp, Teuchos::RefCountPtr< const LinearOpBase< double > > *precOp, EPreconditionerInputType *precOpType) const |
| | |
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 an initialized by this object are completely indpendent 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.
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 68 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.
|
|
Definition at line 115 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
||||||||||||||||||||
|
Constructor which sets the defaults.
Definition at line 79 of file Thyra_AmesosLinearOpWithSolveFactory.cpp. |
|
|
Set the type of solver to use.
Note, do not change the solver type between refactorizations of the same matrix (i.e. in calls to Definition at line 94 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
|
Definition at line 94 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
|
Set the refactorization policy.
This option can be changed inbetween refactorizations (i.e. between calls to Definition at line 101 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
|
Definition at line 101 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
|
Set the parameter list that will be used to control the solver. See Amesos documentation for what these options are. Developers note: From what I can tell of the documenatation and looking at some source code, this parameter list will not be modified but its use is very confused. I think that this should be changed to a constant parameter list but I don't want to do this because I don't want to be held accountable in case it is changed. If users needs to guarantee that their parameter list will not change, then a copy should be made before calling this function. Definition at line 115 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
|
Definition at line 115 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
|
Definition at line 115 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
|
Set if an exception is thrown when
This option can be changed inbetween refactorizations (i.e. between calls to Definition at line 123 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
|
Definition at line 123 of file Thyra_AmesosLinearOpWithSolveFactory.hpp. |
|
|
Returns true if
Definition at line 93 of file Thyra_AmesosLinearOpWithSolveFactory.cpp. |
|
|
Definition at line 115 of file Thyra_AmesosLinearOpWithSolveFactory.cpp. |
|
||||||||||||
|
Definition at line 120 of file Thyra_AmesosLinearOpWithSolveFactory.cpp. |
|
|
Returns
Definition at line 278 of file Thyra_AmesosLinearOpWithSolveFactory.cpp. |
|
||||||||||||||||||||
|
Throws exception if
Definition at line 283 of file Thyra_AmesosLinearOpWithSolveFactory.cpp. |
|
||||||||||||||||||||
|
Definition at line 298 of file Thyra_AmesosLinearOpWithSolveFactory.cpp. |
1.3.9.1