#include <LOCA_MultiContinuation_ConstraintInterface.H>
Inheritance diagram for LOCA::MultiContinuation::ConstraintInterface:
Public Member Functions | |
| ConstraintInterface () | |
| Constructor. | |
| virtual | ~ConstraintInterface () |
| Destructor. | |
| virtual void | copy (const ConstraintInterface &source)=0 |
| Copy. | |
|
virtual Teuchos::RefCountPtr< 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 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 vector< int > ¶mIDs, NOX::Abstract::MultiVector::DenseMatrix &dgdp, bool isValidG)=0 |
| Compute derivative of constraints w.r.t. supplied parameters. | |
| 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 NOX::Abstract::Group::ReturnType | multiplyDX (double alpha, const NOX::Abstract::MultiVector &input_x, NOX::Abstract::MultiVector::DenseMatrix &result_p) const =0 |
| 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 =0 |
| Compute result_x = alpha * dg/dx^T * op(b) + beta * result_x. | |
| virtual bool | isDXZero () const =0 |
Return true if solution component of constraint derivatives is zero. | |
| virtual void | preProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus) |
| Perform any preprocessing before a continuation step starts. | |
| virtual void | postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus) |
| Perform any postprocessing after a continuation step finishes. | |
This class is used in conjunction with LOCA::MultiContinuation::ConstrainedGroup to represent a constrained nonlinear system:
where
is represented by a concrete implementation of a LOCA::MultiContinuation::AbstractGroup and
(the constraint) is represented by an implementation of this class. Here it is assumed the resulting system is square, i.e.,
,
,
and
.
This class provides an interface to evaluate
, compute the derivatives
and
, and apply the derivative
to arbitrary multi-vectors (the implementation is never required to explicitly store
which is impractical in many situations).
|
||||||||||||||||||||||||
|
Compute result_x = alpha * dg/dx^T * op(b) + beta * result_x. Note that this should be equivalent to result_x.update(transb, alpha, dgdx, b, beta); Implemented in LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::CompositeConstraintMVDX, and LOCA::MultiContinuation::ConstraintInterfaceMVDX. |
|
||||||||||||||||
|
Compute derivative of constraints w.r.t. supplied parameters.
The first column of Implemented in LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint. |
|
||||||||||||||||
|
Compute result_p = alpha * dg/dx * input_x. Note that if there are n constraints and input_x has m columns, result_p should be a n by m matrix and is equivalent to input_x.multiply(alpha, dgdx, result_p). Implemented in LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::CompositeConstraintMVDX, and LOCA::MultiContinuation::ConstraintInterfaceMVDX. |
|
|
Perform any postprocessing after a continuation step finishes.
The Reimplemented in LOCA::MultiContinuation::CompositeConstraint, LOCA::TurningPoint::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::ModifiedConstraint. |
|
|
Perform any preprocessing before a continuation step starts.
The Reimplemented in LOCA::MultiContinuation::CompositeConstraint, and LOCA::TurningPoint::MinimallyAugmented::ModifiedConstraint. |
1.3.9.1