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. More... | |
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. More... | |
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. More... | |
Public Member Functions inherited from LOCA::MultiContinuation::ConstraintInterface | |
ConstraintInterface () | |
Constructor. | |
virtual | ~ConstraintInterface () |
Destructor. | |
virtual void | copy (const ConstraintInterface &source)=0 |
Copy. | |
virtual Teuchos::RCP < LOCA::MultiContinuation::ConstraintInterface > | clone (NOX::CopyType type=NOX::DeepCopy) const =0 |
Cloning function. | |
virtual int | numConstraints () const =0 |
Return number of constraints. | |
virtual void | setX (const NOX::Abstract::Vector &x)=0 |
Set the solution vector to x. | |
virtual void | setParam (int paramID, double val)=0 |
Sets parameter indexed by paramID. | |
virtual void | setParams (const std::vector< int > ¶mIDs, const NOX::Abstract::MultiVector::DenseMatrix &vals)=0 |
Sets parameters indexed by paramIDs. | |
virtual NOX::Abstract::Group::ReturnType | computeConstraints ()=0 |
Compute constraint residuals. | |
virtual NOX::Abstract::Group::ReturnType | computeDX ()=0 |
Compute derivative of constraints w.r.t. solution vector x. | |
virtual NOX::Abstract::Group::ReturnType | computeDP (const std::vector< int > ¶mIDs, NOX::Abstract::MultiVector::DenseMatrix &dgdp, bool isValidG)=0 |
Compute derivative of constraints w.r.t. supplied parameters. More... | |
virtual bool | isConstraints () const =0 |
Return true if constraint residuals are valid. | |
virtual bool | isDX () const =0 |
Return true if derivative of constraint w.r.t. x is valid. | |
virtual const NOX::Abstract::MultiVector::DenseMatrix & | getConstraints () const =0 |
Return constraint residuals. | |
virtual bool | isDXZero () const =0 |
Return true if solution component of constraint derivatives is zero. | |
virtual void | preProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus) |
Perform any preprocessing before a continuation step starts. More... | |
virtual void | postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus) |
Perform any postprocessing after a continuation step finishes. More... | |
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.
|
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().
|
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().
|
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().