|
NOX
Development
|
Bordered system solver strategy based on direct factorization. More...
#include <LOCA_BorderedSolver_LAPACKDirectSolve.H>


Bordered system solver strategy based on direct factorization.
This class solves the extended system of equations
using a direct solve by augmenting the
with
,
, and
. To support this, the group representing
must be a LOCA::LAPACK::Group and the contraint object representing
must be a LOCA::MultiContinuation::ConstraintInterfaceMVDX.
| LOCA::BorderedSolver::LAPACKDirectSolve::LAPACKDirectSolve | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, |
| const Teuchos::RCP< LOCA::Parameter::SublistParser > & | topParams, | ||
| const Teuchos::RCP< Teuchos::ParameterList > & | solverParams | ||
| ) |
Constructor.
| global_data | [in] Global data object |
| topParams | [in] Parsed top-level parameter list |
| solverParams | [in] Bordered solver parameters. Currently none are referenced. |
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LAPACKDirectSolve::apply | ( | const NOX::Abstract::MultiVector & | X, |
| const NOX::Abstract::MultiVector::DenseMatrix & | Y, | ||
| NOX::Abstract::MultiVector & | U, | ||
| NOX::Abstract::MultiVector::DenseMatrix & | V | ||
| ) | const [virtual] |
Computed extended matrix-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::Group::Failed, Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::multiply(), Teuchos::NO_TRANS, and NOX::Abstract::MultiVector::update().
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LAPACKDirectSolve::applyInverse | ( | Teuchos::ParameterList & | params, |
| const NOX::Abstract::MultiVector * | F, | ||
| const NOX::Abstract::MultiVector::DenseMatrix * | G, | ||
| NOX::Abstract::MultiVector & | X, | ||
| NOX::Abstract::MultiVector::DenseMatrix & | Y | ||
| ) | const [virtual] |
Solves the extended system as defined above using Gaussian Elimination.
The params argument is the linear solver parameters. If isZeroF or isZeroG is true, than the corresponding F or G pointers may be NULL.
Implements LOCA::BorderedSolver::AbstractStrategy.
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LAPACKDirectSolve::applyInverseTranspose | ( | Teuchos::ParameterList & | params, |
| const NOX::Abstract::MultiVector * | F, | ||
| const NOX::Abstract::MultiVector::DenseMatrix * | G, | ||
| NOX::Abstract::MultiVector & | X, | ||
| NOX::Abstract::MultiVector::DenseMatrix & | Y | ||
| ) | const [virtual] |
Solves the transpose of the extended system as defined above.
The params argument is the linear solver parameters.
Implements LOCA::BorderedSolver::AbstractStrategy.
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LAPACKDirectSolve::applyTranspose | ( | const NOX::Abstract::MultiVector & | X, |
| const NOX::Abstract::MultiVector::DenseMatrix & | Y, | ||
| NOX::Abstract::MultiVector & | U, | ||
| NOX::Abstract::MultiVector::DenseMatrix & | V | ||
| ) | const [virtual] |
Computed extended matrix transpose-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::Group::Failed, Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::multiply(), NOX::Abstract::MultiVector::multiply(), Teuchos::NO_TRANS, and Teuchos::TRANS.
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LAPACKDirectSolve::initForSolve | ( | ) | [virtual] |
Intialize solver for a solve.
This should be called after setMatrixBlocks(), but before applyInverse().
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::Group::Ok.
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::LAPACKDirectSolve::initForTransposeSolve | ( | ) | [virtual] |
Intialize solver for a transpose solve.
This should be called after setMatrixBlocks(), but before applyInverseTranspose().
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::Group::Ok.
| void LOCA::BorderedSolver::LAPACKDirectSolve::setMatrixBlocks | ( | const Teuchos::RCP< const LOCA::BorderedSolver::AbstractOperator > & | op, |
| const Teuchos::RCP< const NOX::Abstract::MultiVector > & | blockA, | ||
| const Teuchos::RCP< const LOCA::MultiContinuation::ConstraintInterface > & | blockB, | ||
| const Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > & | blockC | ||
| ) | [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.
Implements LOCA::BorderedSolver::AbstractStrategy.
References LOCA::BorderedSolver::JacobianOperator::getGroup(), LOCA::Hopf::ComplexMultiVector::getImagMultiVec(), LOCA::Hopf::ComplexMultiVector::getRealMultiVec(), NOX::LAPACK::Matrix< T >::numRows(), Teuchos::rcp(), and TEUCHOS_ASSERT.
1.7.6.1