#include <LOCA_BorderedSystem_AbstractStrategy.H>
Inheritance diagram for LOCA::BorderedSystem::AbstractStrategy:
Abstract interface for solving systems of equations of the form
where
is an
matrix,
and
are
,
is
,
and
are
and
and
are
. The action of
and its inverse are represnted by a NOX::Abstract::Group while
is a NOX::Abstract::MultiVector and
,
are represtend by the solution and parameter components of the derivative of a constraint contained in LOCA::MultiContinuation::ConstraintInterface. All classes that implement a method for computing solutions to this system of equations should be derived from this class. Constructors for derived classes should be of the form:
class Derived : public AbstractStrategy { public: Derived( const Teuchos::RefCountPtr<LOCA::GlobalData>& global_data, const Teuchos::RefCountPtr<LOCA::Parameter::SublistParser>& topParams, const Teuchos::RefCountPtr<NOX::Parameter::List>& solverParams); ... };
where global_data is the LOCA global data object, topParams is the parsed top-level parameter list, and solverParams is a parameter list of bordered-solver parameters.
In many cases, F and A are stored in a contiguous multivector, and this storage can be taken advantage of by some bordered solver strategies (e.g., bordering). Any bordered solver strategy must be able to handle this, and is signaled by the setIsContiguous() method. In this case, the supplied A block should be a sub-view of the contiguous multivector representing only A, and the F block passed in applyInverse() should contain the columns of F first, then A. The X multivector in applyInverse() must then have the same number of columns as the supplied F. These extra columns may be used by some strategies and my be overwritten. The remaining blocks (G and Y) should have the proper number of columns corresponding to the actual number of right-hand sides (i.e., F.numVectors() - A.numVectors()). Also note that neither the F nor A blocks can be signaled as zero if they are to be stored contiguously.
This class and its children follow the Strategy pattern as defined in Erich Gamma, et al. "Design Patterns: Elements of Reusable Object-Oriented Software." Addison Wesley, Boston, MA, 1995.
|
||||||||||||||||||||
|
Computed extended matrix-multivector product. Computes
where Implemented in LOCA::BorderedSystem::Bordering, LOCA::BorderedSystem::EpetraAugmented, LOCA::BorderedSystem::EpetraHouseholder, and LOCA::BorderedSystem::LAPACKDirectSolve. |
|
||||||||||||||||||||||||
|
Solves the extended system as defined above. The params argument is the linear solver parameters. Implemented in LOCA::BorderedSystem::Bordering, LOCA::BorderedSystem::EpetraAugmented, LOCA::BorderedSystem::EpetraHouseholder, and LOCA::BorderedSystem::LAPACKDirectSolve. |
|
||||||||||||||||||||
|
Computed extended matrix transpose-multivector product. Computes
where Implemented in LOCA::BorderedSystem::Bordering, LOCA::BorderedSystem::EpetraAugmented, LOCA::BorderedSystem::EpetraHouseholder, and LOCA::BorderedSystem::LAPACKDirectSolve. |
|
||||||||||||||||||||
|
Set blocks.
The Implemented in LOCA::BorderedSystem::Bordering, LOCA::BorderedSystem::EpetraAugmented, LOCA::BorderedSystem::EpetraHouseholder, and LOCA::BorderedSystem::LAPACKDirectSolve. |
|
||||||||||||||||||||
|
Set blocks with multivector constraint.
This is a version of setMatrixBlocks that takes a multivector for |
1.3.9.1