|
NOX Development
|
Block elimination strategy for solving a block lower-triangular system. More...
#include <LOCA_BorderedSolver_LowerTriangularBlockElimination.H>
Protected Attributes | |
| Teuchos::RCP< LOCA::GlobalData > | globalData |
| Global data object. | |
Block elimination strategy for solving a block lower-triangular system.
This class solves the extended system of equations
![\[
\begin{bmatrix}
op(J) & 0 \\
B^T & op(C)
\end{bmatrix}
\begin{bmatrix}
X \\
Y
\end{bmatrix} =
\begin{bmatrix}
F \\
G
\end{bmatrix}
\]](form_435.png)
via block elimination:
![\[
\begin{aligned}
X &= op(J)^{-1} F \\
Y &= op(C)^{-1}(G-B^T X)
\end{aligned}
\]](form_436.png)
where 





| LOCA::BorderedSolver::LowerTriangularBlockElimination::LowerTriangularBlockElimination | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data | ) |
Constructor.
| global_data | [in] Global data object |
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LowerTriangularBlockElimination::solve | ( | Teuchos::ParameterList & | params, |
| const LOCA::BorderedSolver::AbstractOperator & | op, | ||
| const LOCA::MultiContinuation::ConstraintInterface & | B, | ||
| const NOX::Abstract::MultiVector::DenseMatrix & | C, | ||
| const NOX::Abstract::MultiVector * | F, | ||
| const NOX::Abstract::MultiVector::DenseMatrix * | G, | ||
| NOX::Abstract::MultiVector & | X, | ||
| NOX::Abstract::MultiVector::DenseMatrix & | Y | ||
| ) | const |
Solves the extended system as described above with B specified as a LOCA::MultiContinuation::ConstraintInterface object.
Either F, or G may be zero by passing NULL.
References LOCA::BorderedSolver::AbstractOperator::applyInverse(), NOX::Abstract::Group::Failed, NOX::Abstract::MultiVector::init(), LOCA::MultiContinuation::ConstraintInterface::isDXZero(), LOCA::MultiContinuation::ConstraintInterface::multiplyDX(), and NOX::Abstract::Group::Ok.
Referenced by LOCA::BorderedSolver::EpetraAugmented::applyInverse(), LOCA::BorderedSolver::EpetraHouseholder::applyInverse(), LOCA::BorderedSolver::TpetraHouseholder::applyInverse(), and LOCA::BorderedSolver::Bordering::applyInverse().
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LowerTriangularBlockElimination::solve | ( | Teuchos::ParameterList & | params, |
| const LOCA::BorderedSolver::AbstractOperator & | op, | ||
| const NOX::Abstract::MultiVector & | B, | ||
| const NOX::Abstract::MultiVector::DenseMatrix & | C, | ||
| const NOX::Abstract::MultiVector * | F, | ||
| const NOX::Abstract::MultiVector::DenseMatrix * | G, | ||
| NOX::Abstract::MultiVector & | X, | ||
| NOX::Abstract::MultiVector::DenseMatrix & | Y | ||
| ) | const |
Solves the extended system as described above with B specified as a NOX::Abstract::MultiVector.
Either F, or G may be zero by passing NULL.
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LowerTriangularBlockElimination::solveTranspose | ( | Teuchos::ParameterList & | params, |
| const LOCA::BorderedSolver::AbstractOperator & | op, | ||
| const LOCA::MultiContinuation::ConstraintInterface & | B, | ||
| const NOX::Abstract::MultiVector::DenseMatrix & | C, | ||
| const NOX::Abstract::MultiVector * | F, | ||
| const NOX::Abstract::MultiVector::DenseMatrix * | G, | ||
| NOX::Abstract::MultiVector & | X, | ||
| NOX::Abstract::MultiVector::DenseMatrix & | Y | ||
| ) | const |
Solves the extended system using the tranpose of J and C as described above with B specified as a LOCA::MultiContinuation::ConstraintInterface object.
Either F, or G may be zero by passing NULL.
References LOCA::BorderedSolver::AbstractOperator::applyInverseTranspose(), NOX::Abstract::Group::Failed, NOX::Abstract::MultiVector::init(), LOCA::MultiContinuation::ConstraintInterface::isDXZero(), LOCA::MultiContinuation::ConstraintInterface::multiplyDX(), and NOX::Abstract::Group::Ok.
Referenced by LOCA::BorderedSolver::EpetraHouseholder::applyInverseTranspose(), LOCA::BorderedSolver::TpetraHouseholder::applyInverseTranspose(), and LOCA::BorderedSolver::Bordering::applyInverseTranspose().
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LowerTriangularBlockElimination::solveTranspose | ( | Teuchos::ParameterList & | params, |
| const LOCA::BorderedSolver::AbstractOperator & | op, | ||
| const NOX::Abstract::MultiVector & | B, | ||
| const NOX::Abstract::MultiVector::DenseMatrix & | C, | ||
| const NOX::Abstract::MultiVector * | F, | ||
| const NOX::Abstract::MultiVector::DenseMatrix * | G, | ||
| NOX::Abstract::MultiVector & | X, | ||
| NOX::Abstract::MultiVector::DenseMatrix & | Y | ||
| ) | const |
Solves the extended system using the tranpose of J and C as described above with B specified as a NOX::Abstract::MultiVector object.
Either F, or G may be zero by passing NULL.