Example use cases for Thyra::LinearOpWithSolve[Factory]Base interfaces


Classes

class  Thyra::LinearOpChanger< Scalar >
 Silly abstract strategy interface for changing Thyra::LinearOpBase objects. More...
class  Thyra::NullLinearOpChanger< Scalar >
 No-op changer. More...

Functions

template<class Scalar>
void singleLinearSolve (const Thyra::LinearOpBase< Scalar > &A, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, const Thyra::VectorBase< Scalar > &b, Thyra::VectorBase< Scalar > *x, Teuchos::FancyOStream &out)
 Performing a single linear solve given a forward operator.
template<class Scalar>
Teuchos::RefCountPtr< Thyra::LinearOpWithSolveBase<
Scalar > > 
createScaledAdjointLinearOpWithSolve (const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &A, const Scalar &scalar, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, Teuchos::FancyOStream &out)
 Create a LinearOpWithSolveBase object from an implicitly scaled adjoint LinearOpBase object.
template<class Scalar>
void solveNumericalChangeSolve (Thyra::LinearOpBase< Scalar > *A, const Thyra::LinearOpChanger< Scalar > &opChanger, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, const Thyra::VectorBase< Scalar > &b1, Thyra::VectorBase< Scalar > *x1, const Thyra::VectorBase< Scalar > &b2, Thyra::VectorBase< Scalar > *x2, Teuchos::FancyOStream &out)
 Create a LinearOpWithSolveBase object and perform a solve, then change the LinearOpBase object and solve again.
template<class Scalar>
void solveSmallNumericalChangeSolve (Thyra::LinearOpBase< Scalar > *A, const Thyra::LinearOpChanger< Scalar > &opSmallChanger, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, const Thyra::VectorBase< Scalar > &b1, Thyra::VectorBase< Scalar > *x1, const Thyra::VectorBase< Scalar > &b2, Thyra::VectorBase< Scalar > *x2, Teuchos::FancyOStream &out)
 Create a LinearOpWithSolveBase object and perform a solve, then change the LinearOpBase object in a very small way and solve again.
template<class Scalar>
void solveMajorChangeSolve (Thyra::LinearOpBase< Scalar > *A, const Thyra::LinearOpChanger< Scalar > &opMajorChanger, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, const Thyra::VectorBase< Scalar > &b1, Thyra::VectorBase< Scalar > *x1, const Thyra::VectorBase< Scalar > &b2, Thyra::VectorBase< Scalar > *x2, Teuchos::FancyOStream &out)
 Create a LinearOpWithSolveBase object and perform a solve, then change the LinearOpBase object in a very small way and solve again.
template<class Scalar>
Teuchos::RefCountPtr< Thyra::LinearOpWithSolveBase<
Scalar > > 
createGeneralPreconditionedLinearOpWithSolve (const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &A, const Teuchos::RefCountPtr< const Thyra::PreconditionerBase< Scalar > > &P, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, Teuchos::FancyOStream &out)
 Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as a Thyra::PreconditionerBase object.
template<class Scalar>
Teuchos::RefCountPtr< Thyra::LinearOpWithSolveBase<
Scalar > > 
createUnspecifiedPreconditionedLinearOpWithSolve (const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &A, const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &P_op, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, Teuchos::FancyOStream &out)
 Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as a single Thyra::LinearOpBase object not targeted for the left or right.
template<class Scalar>
Teuchos::RefCountPtr< Thyra::LinearOpWithSolveBase<
Scalar > > 
createLeftPreconditionedLinearOpWithSolve (const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &A, const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &P_op_left, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, Teuchos::FancyOStream &out)
 Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as Thyra::LinearOpBase object to be applied on the left.
template<class Scalar>
Teuchos::RefCountPtr< Thyra::LinearOpWithSolveBase<
Scalar > > 
createRightPreconditionedLinearOpWithSolve (const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &A, const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &P_op_right, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, Teuchos::FancyOStream &out)
 Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as Thyra::LinearOpBase object to be applied on the right.
template<class Scalar>
Teuchos::RefCountPtr< Thyra::LinearOpWithSolveBase<
Scalar > > 
createLeftRightPreconditionedLinearOpWithSolve (const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &A, const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &P_op_left, const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &P_op_right, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, Teuchos::FancyOStream &out)
 Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as left and right Thyra::LinearOpBase objects.
template<class Scalar>
Teuchos::RefCountPtr< Thyra::LinearOpWithSolveBase<
Scalar > > 
createMatrixPreconditionedLinearOpWithSolve (const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &A, const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &A_approx, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, Teuchos::FancyOStream &out)
 Create a Thyra::LinearOpWithSolveBase object given an approximate forward operator that will be used to create the preconditioner internally.
template<class Scalar>
void externalPreconditionerReuseWithSolves (Thyra::LinearOpBase< Scalar > *A_inout, const Thyra::LinearOpChanger< Scalar > &opChanger, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, const Thyra::PreconditionerFactoryBase< Scalar > &precFactory, const Thyra::VectorBase< Scalar > &b1, Thyra::VectorBase< Scalar > *x1, const Thyra::VectorBase< Scalar > &b2, Thyra::VectorBase< Scalar > *x2, Teuchos::FancyOStream &out)
 Example use case for preconditioner reuse.
template<class Scalar>
void nonExternallyPreconditionedLinearSolveUseCases (const Thyra::LinearOpBase< Scalar > &A, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, bool supportsAdjoints, Teuchos::FancyOStream &out)
 Combined use cases for the use of a Thyra::LinearOpWithSolveFactoryBase object without an externally set preconditioner.
template<class Scalar>
void externallyPreconditionedLinearSolveUseCases (const Thyra::LinearOpBase< Scalar > &A, const Thyra::LinearOpWithSolveFactoryBase< Scalar > &lowsFactory, const Thyra::PreconditionerFactoryBase< Scalar > &precFactory, const bool supportsLeftPrec, const bool supportsRightPrec, Teuchos::FancyOStream &out)
 Combined use cases for the use of a Thyra::LinearOpWithSolveFactoryBase object which use an externally set preconditioner.

Function Documentation

template<class Scalar>
void singleLinearSolve const Thyra::LinearOpBase< Scalar > &  A,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
const Thyra::VectorBase< Scalar > &  b,
Thyra::VectorBase< Scalar > *  x,
Teuchos::FancyOStream out
 

Performing a single linear solve given a forward operator.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 84 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
Teuchos::RefCountPtr<Thyra::LinearOpWithSolveBase<Scalar> > createScaledAdjointLinearOpWithSolve const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  A,
const Scalar &  scalar,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
Teuchos::FancyOStream out
 

Create a LinearOpWithSolveBase object from an implicitly scaled adjoint LinearOpBase object.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 111 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
void solveNumericalChangeSolve Thyra::LinearOpBase< Scalar > *  A,
const Thyra::LinearOpChanger< Scalar > &  opChanger,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
const Thyra::VectorBase< Scalar > &  b1,
Thyra::VectorBase< Scalar > *  x1,
const Thyra::VectorBase< Scalar > &  b2,
Thyra::VectorBase< Scalar > *  x2,
Teuchos::FancyOStream out
 

Create a LinearOpWithSolveBase object and perform a solve, then change the LinearOpBase object and solve again.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 134 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
void solveSmallNumericalChangeSolve Thyra::LinearOpBase< Scalar > *  A,
const Thyra::LinearOpChanger< Scalar > &  opSmallChanger,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
const Thyra::VectorBase< Scalar > &  b1,
Thyra::VectorBase< Scalar > *  x1,
const Thyra::VectorBase< Scalar > &  b2,
Thyra::VectorBase< Scalar > *  x2,
Teuchos::FancyOStream out
 

Create a LinearOpWithSolveBase object and perform a solve, then change the LinearOpBase object in a very small way and solve again.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 181 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
void solveMajorChangeSolve Thyra::LinearOpBase< Scalar > *  A,
const Thyra::LinearOpChanger< Scalar > &  opMajorChanger,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
const Thyra::VectorBase< Scalar > &  b1,
Thyra::VectorBase< Scalar > *  x1,
const Thyra::VectorBase< Scalar > &  b2,
Thyra::VectorBase< Scalar > *  x2,
Teuchos::FancyOStream out
 

Create a LinearOpWithSolveBase object and perform a solve, then change the LinearOpBase object in a very small way and solve again.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 227 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
Teuchos::RefCountPtr<Thyra::LinearOpWithSolveBase<Scalar> > createGeneralPreconditionedLinearOpWithSolve const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  A,
const Teuchos::RefCountPtr< const Thyra::PreconditionerBase< Scalar > > &  P,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
Teuchos::FancyOStream out
 

Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as a Thyra::PreconditionerBase object.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 279 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
Teuchos::RefCountPtr<Thyra::LinearOpWithSolveBase<Scalar> > createUnspecifiedPreconditionedLinearOpWithSolve const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  A,
const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  P_op,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
Teuchos::FancyOStream out
 

Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as a single Thyra::LinearOpBase object not targeted for the left or right.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 303 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
Teuchos::RefCountPtr<Thyra::LinearOpWithSolveBase<Scalar> > createLeftPreconditionedLinearOpWithSolve const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  A,
const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  P_op_left,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
Teuchos::FancyOStream out
 

Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as Thyra::LinearOpBase object to be applied on the left.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 332 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
Teuchos::RefCountPtr<Thyra::LinearOpWithSolveBase<Scalar> > createRightPreconditionedLinearOpWithSolve const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  A,
const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  P_op_right,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
Teuchos::FancyOStream out
 

Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as Thyra::LinearOpBase object to be applied on the right.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 359 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
Teuchos::RefCountPtr<Thyra::LinearOpWithSolveBase<Scalar> > createLeftRightPreconditionedLinearOpWithSolve const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  A,
const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  P_op_left,
const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  P_op_right,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
Teuchos::FancyOStream out
 

Create a Thyra::LinearOpWithSolveBase object given an externally created preconditioner specified as left and right Thyra::LinearOpBase objects.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 386 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
Teuchos::RefCountPtr<Thyra::LinearOpWithSolveBase<Scalar> > createMatrixPreconditionedLinearOpWithSolve const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  A,
const Teuchos::RefCountPtr< const Thyra::LinearOpBase< Scalar > > &  A_approx,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
Teuchos::FancyOStream out
 

Create a Thyra::LinearOpWithSolveBase object given an approximate forward operator that will be used to create the preconditioner internally.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 414 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
void externalPreconditionerReuseWithSolves Thyra::LinearOpBase< Scalar > *  A_inout,
const Thyra::LinearOpChanger< Scalar > &  opChanger,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
const Thyra::PreconditionerFactoryBase< Scalar > &  precFactory,
const Thyra::VectorBase< Scalar > &  b1,
Thyra::VectorBase< Scalar > *  x1,
const Thyra::VectorBase< Scalar > &  b2,
Thyra::VectorBase< Scalar > *  x2,
Teuchos::FancyOStream out
 

Example use case for preconditioner reuse.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 436 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
void nonExternallyPreconditionedLinearSolveUseCases const Thyra::LinearOpBase< Scalar > &  A,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
bool  supportsAdjoints,
Teuchos::FancyOStream out
 

Combined use cases for the use of a Thyra::LinearOpWithSolveFactoryBase object without an externally set preconditioner.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 495 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.

template<class Scalar>
void externallyPreconditionedLinearSolveUseCases const Thyra::LinearOpBase< Scalar > &  A,
const Thyra::LinearOpWithSolveFactoryBase< Scalar > &  lowsFactory,
const Thyra::PreconditionerFactoryBase< Scalar > &  precFactory,
const bool  supportsLeftPrec,
const bool  supportsRightPrec,
Teuchos::FancyOStream out
 

Combined use cases for the use of a Thyra::LinearOpWithSolveFactoryBase object which use an externally set preconditioner.

Examples:
Thyra_LinearOpWithSolveFactoryExamples.hpp.

Definition at line 548 of file Thyra_LinearOpWithSolveFactoryExamples.hpp.


Generated on Thu Sep 18 12:32:45 2008 for Thyra Operator Solve Support by doxygen 1.3.9.1