|
NOX
Development
|
Abstract interface for the constraint portion of a constrained nonlinear system for constraints that support computing a solution component derivative as a multi-vector. More...
#include <LOCA_MultiContinuation_ConstraintInterfaceMVDX.H>
Public Member Functions | |
| ConstraintInterfaceMVDX () | |
| Constructor. | |
| virtual | ~ConstraintInterfaceMVDX () |
| Destructor. | |
| virtual const NOX::Abstract::MultiVector * | getDX () const =0 |
| Return solution component of constraint derivatives. | |
| virtual NOX::Abstract::Group::ReturnType | multiplyDX (double alpha, const NOX::Abstract::MultiVector &input_x, NOX::Abstract::MultiVector::DenseMatrix &result_p) const |
| Compute result_p = alpha * dg/dx * input_x. | |
| virtual NOX::Abstract::Group::ReturnType | addDX (Teuchos::ETransp transb, double alpha, const NOX::Abstract::MultiVector::DenseMatrix &b, double beta, NOX::Abstract::MultiVector &result_x) const |
| Compute result_x = alpha * dg/dx^T * op(b) + beta * result_x. | |
Abstract interface for the constraint portion of a constrained nonlinear system for constraints that support computing a solution component derivative as a multi-vector.
This class extends the LOCA::MultiContinuation::ConstraintInterface to support constraints that support computing the entire derivative with respect to the solution components (x) and storing the resulting derivative as a multivector. This interface adds one additional method, getConstraintDerivativesX(), that returns this derivative. Additionally, it implements the applyConstraintDerivativesX() methods using standard multi-vector operations.
| NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstraintInterfaceMVDX::addDX | ( | Teuchos::ETransp | transb, |
| double | alpha, | ||
| const NOX::Abstract::MultiVector::DenseMatrix & | b, | ||
| double | beta, | ||
| NOX::Abstract::MultiVector & | result_x | ||
| ) | const [virtual] |
Compute result_x = alpha * dg/dx^T * op(b) + beta * result_x.
This method is implemented using getConstraintDerivativesX() and the NOX::Abstract::MultiVector::update() method.
Implements LOCA::MultiContinuation::ConstraintInterface.
Reimplemented in LOCA::MultiContinuation::CompositeConstraintMVDX.
References NOX::Abstract::Group::Ok, NOX::Abstract::MultiVector::scale(), and NOX::Abstract::MultiVector::update().
Referenced by LOCA::MultiContinuation::CompositeConstraintMVDX::addDX().
| virtual const NOX::Abstract::MultiVector* LOCA::MultiContinuation::ConstraintInterfaceMVDX::getDX | ( | ) | const [pure virtual] |
Return solution component of constraint derivatives.
May return NULL if constraint derivative is zero
Implemented in LOCA::TurningPoint::MinimallyAugmented::Constraint, LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::Pitchfork::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::NaturalConstraint, LOCA::MultiContinuation::MultiVecConstraint, and LOCA::MultiContinuation::CompositeConstraintMVDX.
Referenced by LOCA::BorderedSolver::Bordering::applyInverseTranspose(), LOCA::MultiContinuation::ConstrainedGroup::fillB(), LOCA::MultiContinuation::ConstrainedGroup::fillC(), multiplyDX(), and LOCA::BorderedSolver::Nested::setMatrixBlocks().
| NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstraintInterfaceMVDX::multiplyDX | ( | double | alpha, |
| const NOX::Abstract::MultiVector & | input_x, | ||
| NOX::Abstract::MultiVector::DenseMatrix & | result_p | ||
| ) | const [virtual] |
Compute result_p = alpha * dg/dx * input_x.
This method is implemented using getConstraintDerivativesX() and the NOX::Abstract::MultiVector::multiply() method.
Implements LOCA::MultiContinuation::ConstraintInterface.
Reimplemented in LOCA::MultiContinuation::CompositeConstraintMVDX.
References getDX(), LOCA::MultiContinuation::ConstraintInterface::isDXZero(), NOX::Abstract::MultiVector::multiply(), NOX::Abstract::Group::Ok, and Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::putScalar().
Referenced by LOCA::MultiContinuation::CompositeConstraintMVDX::multiplyDX().
1.7.6.1