#include <LOCA_MultiContinuation_ConstraintInterface.H>
Public Member Functions | |
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 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).
Definition at line 86 of file LOCA_MultiContinuation_ConstraintInterface.H.
LOCA::MultiContinuation::ConstraintInterface::ConstraintInterface | ( | ) | [inline] |
virtual LOCA::MultiContinuation::ConstraintInterface::~ConstraintInterface | ( | ) | [inline, virtual] |
virtual void LOCA::MultiContinuation::ConstraintInterface::copy | ( | const ConstraintInterface & | source | ) | [pure virtual] |
Copy.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::CompositeConstraintMVDX, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, LOCA::Pitchfork::MinimallyAugmented::Constraint, LOCA::TurningPoint::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::ModifiedConstraint.
virtual Teuchos::RCP<LOCA::MultiContinuation::ConstraintInterface> LOCA::MultiContinuation::ConstraintInterface::clone | ( | NOX::CopyType | type = NOX::DeepCopy |
) | const [pure virtual] |
Cloning function.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::CompositeConstraintMVDX, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, LOCA::Pitchfork::MinimallyAugmented::Constraint, LOCA::TurningPoint::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::ModifiedConstraint.
virtual int LOCA::MultiContinuation::ConstraintInterface::numConstraints | ( | ) | const [pure virtual] |
Return number of constraints.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, LOCA::Pitchfork::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
Referenced by LOCA::BorderedSolver::Bordering::solveContiguous(), and LOCA::BorderedSolver::Bordering::solveFZero().
virtual void LOCA::MultiContinuation::ConstraintInterface::setX | ( | const NOX::Abstract::Vector & | x | ) | [pure virtual] |
Set the solution vector to x.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
virtual void LOCA::MultiContinuation::ConstraintInterface::setParam | ( | int | paramID, | |
double | val | |||
) | [pure virtual] |
Sets parameter indexed by paramID.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
virtual void LOCA::MultiContinuation::ConstraintInterface::setParams | ( | const vector< int > & | paramIDs, | |
const NOX::Abstract::MultiVector::DenseMatrix & | vals | |||
) | [pure virtual] |
Sets parameters indexed by paramIDs.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
virtual NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstraintInterface::computeConstraints | ( | ) | [pure virtual] |
Compute constraint residuals.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, LOCA::Pitchfork::MinimallyAugmented::Constraint, LOCA::TurningPoint::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::ModifiedConstraint.
virtual NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstraintInterface::computeDX | ( | ) | [pure virtual] |
Compute derivative of constraints w.r.t. solution vector x.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::CompositeConstraintMVDX, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, LOCA::Pitchfork::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
virtual NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstraintInterface::computeDP | ( | const vector< int > & | paramIDs, | |
NOX::Abstract::MultiVector::DenseMatrix & | dgdp, | |||
bool | isValidG | |||
) | [pure virtual] |
Compute derivative of constraints w.r.t. supplied parameters.
The first column of dgdp
should be filled with the constraint residuals if
isValidG
is false
. If isValidG
is true
, then the dgdp
contains on input.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, LOCA::Pitchfork::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
virtual bool LOCA::MultiContinuation::ConstraintInterface::isConstraints | ( | ) | const [pure virtual] |
Return true
if constraint residuals are valid.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
virtual bool LOCA::MultiContinuation::ConstraintInterface::isDX | ( | ) | const [pure virtual] |
Return true
if derivative of constraint w.r.t. x is valid.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
virtual const NOX::Abstract::MultiVector::DenseMatrix& LOCA::MultiContinuation::ConstraintInterface::getConstraints | ( | ) | const [pure virtual] |
Return constraint residuals.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, LOCA::Pitchfork::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
virtual NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstraintInterface::multiplyDX | ( | double | alpha, | |
const NOX::Abstract::MultiVector & | input_x, | |||
NOX::Abstract::MultiVector::DenseMatrix & | result_p | |||
) | const [pure virtual] |
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.
Referenced by LOCA::BorderedSolver::LowerTriangularBlockElimination::solve(), LOCA::BorderedSolver::Bordering::solveContiguous(), LOCA::BorderedSolver::Bordering::solveFZero(), and LOCA::BorderedSolver::LowerTriangularBlockElimination::solveTranspose().
virtual NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstraintInterface::addDX | ( | Teuchos::ETransp | transb, | |
double | alpha, | |||
const NOX::Abstract::MultiVector::DenseMatrix & | b, | |||
double | beta, | |||
NOX::Abstract::MultiVector & | result_x | |||
) | const [pure virtual] |
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.
virtual bool LOCA::MultiContinuation::ConstraintInterface::isDXZero | ( | ) | const [pure virtual] |
Return true
if solution component of constraint derivatives is zero.
Implemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::ArcLengthConstraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::MultiContinuation::MultiVecConstraint, LOCA::MultiContinuation::NaturalConstraint, and LOCA::TurningPoint::MinimallyAugmented::Constraint.
Referenced by LOCA::MultiContinuation::ConstraintInterfaceMVDX::addDX(), LOCA::MultiContinuation::ConstraintInterfaceMVDX::multiplyDX(), LOCA::BorderedSolver::LowerTriangularBlockElimination::solve(), and LOCA::BorderedSolver::LowerTriangularBlockElimination::solveTranspose().
virtual void LOCA::MultiContinuation::ConstraintInterface::preProcessContinuationStep | ( | LOCA::Abstract::Iterator::StepStatus | stepStatus | ) | [inline, virtual] |
Perform any preprocessing before a continuation step starts.
The stepStatus
argument indicates whether the previous step was successful. The default implementation is empty.
Reimplemented in LOCA::MultiContinuation::CompositeConstraint, and LOCA::TurningPoint::MinimallyAugmented::ModifiedConstraint.
Definition at line 185 of file LOCA_MultiContinuation_ConstraintInterface.H.
virtual void LOCA::MultiContinuation::ConstraintInterface::postProcessContinuationStep | ( | LOCA::Abstract::Iterator::StepStatus | stepStatus | ) | [inline, virtual] |
Perform any postprocessing after a continuation step finishes.
The stepStatus
argument indicates whether the step was successful. The default implementation is empty.
Reimplemented in LOCA::Hopf::MinimallyAugmented::Constraint, LOCA::MultiContinuation::CompositeConstraint, LOCA::TurningPoint::MinimallyAugmented::Constraint, and LOCA::TurningPoint::MinimallyAugmented::ModifiedConstraint.
Definition at line 194 of file LOCA_MultiContinuation_ConstraintInterface.H.