|
NOX Development
|
Abstract interface class for solving bordered sets of linear equations. More...
#include <LOCA_BorderedSolver_AbstractStrategy.H>

Abstract interface class for solving bordered sets of linear equations.
Abstract interface for solving systems of equations of the form
![\[
\begin{bmatrix}
J & A \\
B^T & C
\end{bmatrix}
\begin{bmatrix}
X \\
Y
\end{bmatrix} =
\begin{bmatrix}
F \\
G
\end{bmatrix}
\]](form_420.png)
where 
















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.
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.
|
pure virtual |
Computed extended matrix-multivector product.
Computes
![\[
\begin{bmatrix}
U \\
V
\end{bmatrix} =
\begin{bmatrix}
J & A \\
B^T & C
\end{bmatrix}
\begin{bmatrix}
X \\
Y
\end{bmatrix}
\]](form_425.png)
where 



Implemented in LOCA::BorderedSolver::EpetraAugmented, LOCA::BorderedSolver::EpetraHouseholder, LOCA::BorderedSolver::LAPACKDirectSolve, LOCA::BorderedSolver::TpetraHouseholder, LOCA::BorderedSolver::Bordering, and LOCA::BorderedSolver::Nested.
|
pure virtual |
Solves the extended system as defined above.
The params argument is the linear solver parameters.
Implemented in LOCA::BorderedSolver::EpetraAugmented, LOCA::BorderedSolver::EpetraHouseholder, LOCA::BorderedSolver::LAPACKDirectSolve, LOCA::BorderedSolver::TpetraHouseholder, LOCA::BorderedSolver::Bordering, and LOCA::BorderedSolver::Nested.
|
pure virtual |
Solves the transpose of the extended system as defined above.
The params argument is the linear solver parameters.
Implemented in LOCA::BorderedSolver::EpetraAugmented, LOCA::BorderedSolver::EpetraHouseholder, LOCA::BorderedSolver::LAPACKDirectSolve, LOCA::BorderedSolver::TpetraHouseholder, LOCA::BorderedSolver::Bordering, and LOCA::BorderedSolver::Nested.
|
pure virtual |
Computed extended matrix transpose-multivector product.
Computes
![\[
\begin{bmatrix}
U \\
V
\end{bmatrix} =
\begin{bmatrix}
J^T & B \\
A^T & C^T
\end{bmatrix}
\begin{bmatrix}
X \\
Y
\end{bmatrix}
\]](form_426.png)
where 



Implemented in LOCA::BorderedSolver::EpetraAugmented, LOCA::BorderedSolver::EpetraHouseholder, LOCA::BorderedSolver::LAPACKDirectSolve, LOCA::BorderedSolver::TpetraHouseholder, LOCA::BorderedSolver::Bordering, and LOCA::BorderedSolver::Nested.
|
pure virtual |
Intialize solver for a solve.
This should be called after setMatrixBlocks(), but before applyInverse().
Implemented in LOCA::BorderedSolver::EpetraAugmented, LOCA::BorderedSolver::EpetraHouseholder, LOCA::BorderedSolver::LAPACKDirectSolve, LOCA::BorderedSolver::TpetraHouseholder, LOCA::BorderedSolver::Bordering, and LOCA::BorderedSolver::Nested.
|
pure virtual |
Intialize solver for a transpose solve.
This should be called after setMatrixBlocks(), but before applyInverseTranspose().
Implemented in LOCA::BorderedSolver::EpetraAugmented, LOCA::BorderedSolver::EpetraHouseholder, LOCA::BorderedSolver::LAPACKDirectSolve, LOCA::BorderedSolver::TpetraHouseholder, LOCA::BorderedSolver::Bordering, and LOCA::BorderedSolver::Nested.
|
pure virtual |
Set blocks.
The blockA or blockC pointer may be null if either is zero. Whether block B is zero will be determined by querying blockB via ConstraintInterface::isConstraintDerivativesXZero.
Implemented in LOCA::BorderedSolver::EpetraAugmented, LOCA::BorderedSolver::EpetraHouseholder, LOCA::BorderedSolver::LAPACKDirectSolve, LOCA::BorderedSolver::TpetraHouseholder, LOCA::BorderedSolver::Bordering, and LOCA::BorderedSolver::Nested.
Referenced by setMatrixBlocksMultiVecConstraint().
|
virtual |
Set blocks with multivector constraint.
This is a version of setMatrixBlocks that takes a multivector for blockB. This method has a default implementation to generate a LOCA::MultiContinuation::MultiVecConstraint from blockB which is then passed to the setMatrixBlocks() method.
References setMatrixBlocks().