#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. |
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.
Definition at line 65 of file LOCA_MultiContinuation_ConstraintInterfaceMVDX.H.
LOCA::MultiContinuation::ConstraintInterfaceMVDX::ConstraintInterfaceMVDX | ( | ) | [inline] |
virtual LOCA::MultiContinuation::ConstraintInterfaceMVDX::~ConstraintInterfaceMVDX | ( | ) | [inline, virtual] |
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::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraintMVDX, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, LOCA::Pitchfork::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
Referenced by addDX(), and multiplyDX().
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.
Definition at line 45 of file LOCA_MultiContinuation_ConstraintInterfaceMVDX.C.
References getDX(), LOCA::MultiContinuation::ConstraintInterface::isDXZero(), NOX::Abstract::MultiVector::multiply(), and NOX::Abstract::Group::Ok.
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.
Definition at line 63 of file LOCA_MultiContinuation_ConstraintInterfaceMVDX.C.
References getDX(), LOCA::MultiContinuation::ConstraintInterface::isDXZero(), NOX::Abstract::Group::Ok, NOX::Abstract::MultiVector::scale(), and NOX::Abstract::MultiVector::update().