Stratimikos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Static Private Member Functions | Private Attributes | List of all members
Thyra::AmesosLinearOpWithSolveFactory Class Reference

Concrete LinearOpWithSolveFactoryBase adapter subclass that uses Amesos direct solvers. More...

#include <Thyra_AmesosLinearOpWithSolveFactory.hpp>

Inherits LinearOpWithSolveFactoryBase< double >.

Static Private Member Functions

static Teuchos::RCP< const
Teuchos::ParameterList
generateAndGetValidParameters ()
 

Private Attributes

Amesos::ESolverType solverType_
 
Amesos::ERefactorizationPolicy refactorizationPolicy_
 
bool throwOnPrecInput_
 
Teuchos::RCP
< Teuchos::ParameterList
paramList_
 

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 &paramList)
 
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
 

Detailed Description

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.

Constructor & Destructor Documentation

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.

Member Function Documentation

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.

bool Thyra::AmesosLinearOpWithSolveFactory::isCompatible ( const LinearOpSourceBase< double > &  fwdOpSrc) const

Returns true if dynamic_cast<const EpetraLinearOpBase*>(fwdOpSrc)!=NULL .

Definition at line 137 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

RCP< LinearOpWithSolveBase< double > > Thyra::AmesosLinearOpWithSolveFactory::createOp ( ) const

Definition at line 161 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

void Thyra::AmesosLinearOpWithSolveFactory::initializeOp ( const Teuchos::RCP< const LinearOpSourceBase< double > > &  fwdOpSrc,
LinearOpWithSolveBase< double > *  Op,
const ESupportSolveUse  supportSolveUse 
) const

Definition at line 166 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

bool Thyra::AmesosLinearOpWithSolveFactory::supportsPreconditionerInputType ( const EPreconditionerInputType  precOpType) const

Returns false .

Definition at line 360 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

void Thyra::AmesosLinearOpWithSolveFactory::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.

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.

void Thyra::AmesosLinearOpWithSolveFactory::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

Definition at line 395 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

void Thyra::AmesosLinearOpWithSolveFactory::setParameterList ( Teuchos::RCP< Teuchos::ParameterList > const &  paramList)

Definition at line 429 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

RCP< Teuchos::ParameterList > Thyra::AmesosLinearOpWithSolveFactory::getNonconstParameterList ( )

Definition at line 457 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

RCP< Teuchos::ParameterList > Thyra::AmesosLinearOpWithSolveFactory::unsetParameterList ( )

Definition at line 463 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

RCP< const Teuchos::ParameterList > Thyra::AmesosLinearOpWithSolveFactory::getParameterList ( ) const

Definition at line 471 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

RCP< const Teuchos::ParameterList > Thyra::AmesosLinearOpWithSolveFactory::getValidParameters ( ) const

Definition at line 477 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

std::string Thyra::AmesosLinearOpWithSolveFactory::description ( ) const

Definition at line 484 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

RCP< const Teuchos::ParameterList > Thyra::AmesosLinearOpWithSolveFactory::generateAndGetValidParameters ( )
staticprivate

Definition at line 496 of file Thyra_AmesosLinearOpWithSolveFactory.cpp.

Member Data Documentation

const std::string Thyra::AmesosLinearOpWithSolveFactory::SolverType_name = "Solver Type"
static

Definition at line 89 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.

const std::string Thyra::AmesosLinearOpWithSolveFactory::RefactorizationPolicy_name = "Refactorization Policy"
static

Definition at line 91 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.

const std::string Thyra::AmesosLinearOpWithSolveFactory::ThrowOnPreconditionerInput_name = "Throw on Preconditioner Input"
static

Definition at line 93 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.

const std::string Thyra::AmesosLinearOpWithSolveFactory::Amesos_Settings_name = "Amesos Settings"
static

Definition at line 95 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.

Amesos::ESolverType Thyra::AmesosLinearOpWithSolveFactory::solverType_
private

Definition at line 211 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.

Amesos::ERefactorizationPolicy Thyra::AmesosLinearOpWithSolveFactory::refactorizationPolicy_
private

Definition at line 212 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.

bool Thyra::AmesosLinearOpWithSolveFactory::throwOnPrecInput_
private

Definition at line 213 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.

Teuchos::RCP<Teuchos::ParameterList> Thyra::AmesosLinearOpWithSolveFactory::paramList_
private

Definition at line 214 of file Thyra_AmesosLinearOpWithSolveFactory.hpp.


The documentation for this class was generated from the following files: