|
NOX
Development
|
Moore-Spence turning point solver strategy based on "Phipps" bordering which is the 5-solve modified turning point bordering algorithm that uses bordered linear solves. More...
#include <LOCA_TurningPoint_MooreSpence_PhippsBordering.H>


Moore-Spence turning point solver strategy based on "Phipps" bordering which is the 5-solve modified turning point bordering algorithm that uses bordered linear solves.
This class solves the Moore-Spence turning point Newton equations:
via the following modified block elimination scheme:
where
and
. Each bordered solve is implemented by a LOCA::BorderedSolver::AbstractStrategy strategy object.
| LOCA::TurningPoint::MooreSpence::PhippsBordering::PhippsBordering | ( | 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. Instantiates a bordered solver for solving the bordeded systems described above. See LOCA::BorderedSolver::Factory for a description of available solvers. |
References borderedSolver, LOCA::Factory::createBorderedSolverStrategy(), globalData, LOCA::GlobalData::locaFactory, and solverParams.
| void LOCA::TurningPoint::MooreSpence::PhippsBordering::setBlocks | ( | const Teuchos::RCP< LOCA::TurningPoint::MooreSpence::AbstractGroup > & | group, |
| const Teuchos::RCP< LOCA::TurningPoint::MooreSpence::ExtendedGroup > & | tpGroup, | ||
| const Teuchos::RCP< const NOX::Abstract::Vector > & | nullVector, | ||
| const Teuchos::RCP< const NOX::Abstract::Vector > & | JnVector, | ||
| const Teuchos::RCP< const NOX::Abstract::MultiVector > & | dfdp, | ||
| const Teuchos::RCP< const NOX::Abstract::MultiVector > & | dJndp | ||
| ) | [virtual] |
Set blocks in extended linear system.
| group | [in] Underlying group representing J |
| tpGroup | [in] Turning point group representing the turning point equations. |
| nullVector | [in] Vector representing v |
| JnVector | [in] Vector representing Jv |
| dfdp | [in] Vector representing df/dp |
| dJndp | [in] Vector representing d(Jv)/dp |
Implements LOCA::TurningPoint::MooreSpence::SolverStrategy.
References NOX::DeepCopy, NOX::Abstract::MultiVector::norm(), Teuchos::rcp(), and NOX::Abstract::Vector::TwoNorm.
| NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::PhippsBordering::solve | ( | Teuchos::ParameterList & | params, |
| const LOCA::TurningPoint::MooreSpence::ExtendedMultiVector & | input, | ||
| LOCA::TurningPoint::MooreSpence::ExtendedMultiVector & | result | ||
| ) | const [virtual] |
Solves the extended system as defined above.
The params argument is the linear solver parameters.
Implements LOCA::TurningPoint::MooreSpence::SolverStrategy.
References NOX::Abstract::MultiVector::clone(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::Extended::MultiVector::getScalars(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getXMultiVec(), NOX::Abstract::MultiVector::init(), LOCA::Extended::MultiVector::numVectors(), NOX::Abstract::MultiVector::setBlock(), and NOX::Abstract::MultiVector::subView().
| NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::PhippsBordering::solveTranspose | ( | Teuchos::ParameterList & | params, |
| const LOCA::TurningPoint::MooreSpence::ExtendedMultiVector & | input, | ||
| LOCA::TurningPoint::MooreSpence::ExtendedMultiVector & | result | ||
| ) | const [virtual] |
Solves the transpose of the extended system as defined above.
The params argument is the linear solver parameters.
Reimplemented from LOCA::TurningPoint::MooreSpence::SolverStrategy.
References NOX::Abstract::MultiVector::clone(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::Extended::MultiVector::getScalars(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getXMultiVec(), NOX::Abstract::MultiVector::init(), NOX::Abstract::Vector::init(), LOCA::Extended::MultiVector::numVectors(), NOX::Abstract::MultiVector::setBlock(), NOX::Abstract::MultiVector::subView(), and NOX::Abstract::Vector::update().
1.7.6.1