Thyra Version of the Day
|
Create a DefaultDiagonalLinearOpWithSolve out of a diagonal Epetra_RowMatrix object. More...
#include <Thyra_DiagonalEpetraLinearOpWithSolveFactory.hpp>
Overridden from LinearOpWithSolveFactoryBase | |
bool | isCompatible (const LinearOpSourceBase< double > &fwdOpSrc) const |
Teuchos::RCP< LinearOpWithSolveBase< double > > | createOp () const |
void | initializeOp (const Teuchos::RCP< const LinearOpSourceBase< double > > &fwdOpSrc, LinearOpWithSolveBase< double > *Op, const ESupportSolveUse supportSolveUse) const |
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 |
Uninitialize a LinearOpWithSolveBase object and return its remembered forward linear operator and potentially also its externally generated preconditioner. | |
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 |
Additional Inherited Members | |
![]() | |
virtual bool | acceptsPreconditionerFactory () const |
Determines if *this accepts external preconditioner factories. | |
virtual void | setPreconditionerFactory (const RCP< PreconditionerFactoryBase< double > > &precFactory, const std::string &precFactoryName) |
Set a preconditioner factory object. | |
virtual RCP< PreconditionerFactoryBase< double > > | getPreconditionerFactory () const |
Get a preconditioner factory object. | |
virtual void | unsetPreconditionerFactory (RCP< PreconditionerFactoryBase< double > > *precFactory=NULL, std::string *precFactoryName=NULL) |
Unset the preconditioner factory (if one is set). | |
virtual void | initializeAndReuseOp (const RCP< const LinearOpSourceBase< double > > &fwdOpSrc, LinearOpWithSolveBase< double > *Op) const |
Initialize a pre-created LinearOpWithSolveBase object given a "compatible" LinearOpBase object but allow for reuse of any preprocessing that is in *Op . | |
virtual bool | supportsPreconditionerInputType (const EPreconditionerInputType precOpType) const |
Determines if *this supports given preconditioner type. | |
virtual void | initializePreconditionedOp (const RCP< const LinearOpSourceBase< double > > &fwdOpSrc, const RCP< const PreconditionerBase< double > > &prec, LinearOpWithSolveBase< double > *Op, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) const |
Initialize a pre-created LinearOpWithSolveBase object given a "compatible" LinearOpBase object and an optional PreconditionerBase object. | |
virtual void | initializeApproxPreconditionedOp (const RCP< const LinearOpSourceBase< double > > &fwdOpSrc, const RCP< const LinearOpSourceBase< double > > &approxFwdOpSrc, LinearOpWithSolveBase< double > *Op, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) const |
Initialize a pre-created LinearOpWithSolveBase object given a "compatible" forward LinearOpBase object and an approximate forward LinearOpBase object. | |
![]() | |
bool | isCompatible (const LinearOpWithSolveFactoryBase< double > &lowsFactory, const LinearOpBase< double > &fwdOp) |
Return if the forward operator is a compatible source for a LOWSFB object. | |
void | initializeOp (const LinearOpWithSolveFactoryBase< double > &lowsFactory, const RCP< const LinearOpBase< double > > &fwdOp, const Ptr< LinearOpWithSolveBase< double > > &Op, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) |
Initialize a pre-created LOWSB object given a forward operator. | |
void | initializeAndReuseOp (const LinearOpWithSolveFactoryBase< double > &lowsFactory, const RCP< const LinearOpBase< double > > &fwdOp, const Ptr< LinearOpWithSolveBase< double > > &Op) |
Reinitialize a pre-created LOWSB object given a forward operator, reusing a much as possible from the prior LOWSB object. | |
void | uninitializeOp (const LinearOpWithSolveFactoryBase< double > &lowsFactory, const Ptr< LinearOpWithSolveBase< double > > &Op, const Ptr< RCP< const LinearOpBase< double > > > &fwdOp=Teuchos::null, const Ptr< RCP< const PreconditionerBase< double > > > &prec=Teuchos::null, const Ptr< RCP< const LinearOpBase< double > > > &approxFwdOp=Teuchos::null, const Ptr< ESupportSolveUse > &supportSolveUse=Teuchos::null) |
Uninitialized a pre-created LOWSB object, returning input objects used to initialize it. | |
void | initializePreconditionedOp (const LinearOpWithSolveFactoryBase< double > &lowsFactory, const RCP< const LinearOpBase< double > > &fwdOp, const RCP< const PreconditionerBase< double > > &prec, const Ptr< LinearOpWithSolveBase< double > > &Op, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) |
Initialize a preconditioned LOWSB object given an external preconditioner. | |
void | initializeApproxPreconditionedOp (const LinearOpWithSolveFactoryBase< double > &lowsFactory, const RCP< const LinearOpBase< double > > &fwdOp, const RCP< const LinearOpBase< double > > &approxFwdOp, const Ptr< LinearOpWithSolveBase< double > > &Op, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) |
Initialize a preconditioned LOWSB object given an external operator to be used to generate the preconditioner internally. | |
void | setDefaultObjectLabel (const LinearOpBase< double > &fwdOp, const Ptr< LinearOpWithSolveBase< double > > &Op) |
Set default label on a LOWSB object. | |
RCP< LinearOpWithSolveBase< double > > | linearOpWithSolve (const LinearOpWithSolveFactoryBase< double > &lowsFactory, const RCP< const LinearOpBase< double > > &fwdOp, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED) |
Create and initialize a LinearOpWithSolveBase object from a LinearOpBase object using a LinearOpWithSolveFactoryBase strategy object. | |
RCP< LinearOpBase< double > > | inverse (const LinearOpWithSolveFactoryBase< double > &LOWSF, const RCP< const LinearOpBase< double > > &fwdOp, const ESupportSolveUse supportSolveUse=SUPPORT_SOLVE_UNSPECIFIED, const Ptr< const SolveCriteria< double > > &fwdSolveCriteria=Teuchos::null, const EThrowOnSolveFailure throwOnFwdSolveFailure=THROW_ON_SOLVE_FAILURE, const Ptr< const SolveCriteria< double > > &adjSolveCriteria=Teuchos::null, const EThrowOnSolveFailure throwOnAdjSolveFailure=THROW_ON_SOLVE_FAILURE) |
Form a const implicit inverse operator M = inv(A) given a factory. | |
Create a DefaultDiagonalLinearOpWithSolve out of a diagonal Epetra_RowMatrix object.
Definition at line 57 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.hpp.
|
virtual |
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 56 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 79 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 85 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.cpp.
|
virtual |
Uninitialize a LinearOpWithSolveBase
object and return its remembered forward linear operator and potentially also its externally generated preconditioner.
Op | [in/out] On input, *Op is an initialized or uninitialized object and on output is uninitialized. Note that "uninitialized" does not mean that Op is completely stateless. It may still remember some aspect of the matrix fwdOpSrc that will allow for a more efficient initialization next time through this->initializeOp() . |
fwdOpSrc | [in/out] If fwdOpSrc!=NULL on input, then on output this is set to the same forward operator passed into this->initializeOp() . |
prec | [in/out] If prep!=NULL on input, then on output, this this is set to same preconditioner that was passed into this->initializePreconditionedOp() . |
approxFwdOpSrc | [in/out] If approxFwdOpSrc!=NULL on input, then on output, this is set to same approximate forward operator that was passed into this->initializePreconditionedOp() . |
ESupportSolveUse | [in/out] If fwdOpSrc!=NULL on input, then on output this is set to same option value passed to this->initializeOp() . |
Preconditions:
*Op
must have been created by this->createOp()
prior to calling this function.
Op
may or may not have been passed through a call to this->initializeOp()
or this->initializePreconditionedOp()
.
Postconditions:
If *Op
on input was initialized through a call to this->initializeOp()
and if fwdOpSrc!=NULL
then (*fwdOpSrc).get()!=NULL
.
If *Op
was uninitialized on input and fwdOpSrc!=NULL
then fwdOpSrc->get()==NULL
out output.
On output, *Op
can be considered to be uninitialized and it is safe to modify the forward operator object *(*fwdOpSrc)
returned in fwdOpSrc
. The default is fwdOpSrc==NULL
in which case the forward operator will not be returned in *fwdOpSrc
.
This function should be called before the forward operator passed in to this->initializeOp()
is modified. Otherwise, *this
could be left in an inconsistent state. However, this is not required.
Implements Thyra::LinearOpWithSolveFactoryBase< double >.
Definition at line 124 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 157 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 164 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.cpp.
|
virtual |
Implements Teuchos::ParameterListAcceptor.
Definition at line 171 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.cpp.
|
virtual |
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 178 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.cpp.
|
virtual |
Reimplemented from Teuchos::ParameterListAcceptor.
Definition at line 185 of file Thyra_DiagonalEpetraLinearOpWithSolveFactory.cpp.