#include <LOCA_MultiContinuation_CompositeConstraint.H>
Public Member Functions | |
CompositeConstraint (const Teuchos::RCP< LOCA::GlobalData > &global_data, const vector< Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterface > > &constraintObjects) | |
Constructor. | |
CompositeConstraint (const CompositeConstraint &source, NOX::CopyType type=NOX::DeepCopy) | |
Copy constructor. | |
~CompositeConstraint () | |
Destructor. | |
Implementation of LOCA::MultiContinuation::ConstraintInterface | |
virtual methods | |
virtual void | copy (const ConstraintInterface &source) |
Copy. | |
virtual Teuchos::RCP < LOCA::MultiContinuation::ConstraintInterface > | clone (NOX::CopyType type=NOX::DeepCopy) const |
Cloning function. | |
virtual int | numConstraints () const |
Return number of constraints. | |
virtual void | setX (const NOX::Abstract::Vector &y) |
Set the solution vector to y. | |
virtual void | setParam (int paramID, double val) |
Sets parameter indexed by paramID. | |
virtual void | setParams (const vector< int > ¶mIDs, const NOX::Abstract::MultiVector::DenseMatrix &vals) |
Sets parameters indexed by paramIDs. | |
virtual NOX::Abstract::Group::ReturnType | computeConstraints () |
Compute continuation constraint equations. | |
virtual NOX::Abstract::Group::ReturnType | computeDX () |
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) |
Compute derivative of constraints w.r.t. supplied parameters. | |
virtual bool | isConstraints () const |
Return true if constraint residuals are valid. | |
virtual bool | isDX () const |
Return true if derivatives of constraints w.r.t. x are valid. | |
virtual const NOX::Abstract::MultiVector::DenseMatrix & | getConstraints () const |
Return constraint residuals. | |
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. | |
virtual bool | isDXZero () const |
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. | |
Protected Member Functions | |
CompositeConstraint () | |
Default constructor. Used by derived classes. | |
virtual void | init (const Teuchos::RCP< LOCA::GlobalData > &global_data, const vector< Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterface > > &constraintObjects) |
Initialize object when using default constructor. | |
Protected Attributes | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
LOCA global data object. | |
int | numConstraintObjects |
Number of constraint objects. | |
vector< Teuchos::RCP < LOCA::MultiContinuation::ConstraintInterface > > | constraintPtrs |
Array of constraint pointers. | |
vector< vector< int > > | indices |
Indices of each sub-constraint in the composite constraint. | |
int | totalNumConstraints |
Total number of constraints. | |
NOX::Abstract::MultiVector::DenseMatrix | constraints |
Constraint values. | |
bool | isValidConstraints |
Flag indicating whether constraints are valid. | |
bool | isValidDX |
Flag indicating whether dg/dx is valid. | |
Private Member Functions | |
CompositeConstraint & | operator= (const CompositeConstraint &source) |
Prohibit generation and use of operator=(). |
Definition at line 62 of file LOCA_MultiContinuation_CompositeConstraint.H.
LOCA::MultiContinuation::CompositeConstraint::CompositeConstraint | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, | |
const vector< Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterface > > & | constraintObjects | |||
) |
Constructor.
Definition at line 58 of file LOCA_MultiContinuation_CompositeConstraint.C.
References init().
LOCA::MultiContinuation::CompositeConstraint::CompositeConstraint | ( | const CompositeConstraint & | source, | |
NOX::CopyType | type = NOX::DeepCopy | |||
) |
LOCA::MultiContinuation::CompositeConstraint::~CompositeConstraint | ( | ) |
LOCA::MultiContinuation::CompositeConstraint::CompositeConstraint | ( | ) | [protected] |
Default constructor. Used by derived classes.
Definition at line 46 of file LOCA_MultiContinuation_CompositeConstraint.C.
Referenced by clone().
void LOCA::MultiContinuation::CompositeConstraint::copy | ( | const ConstraintInterface & | source | ) | [virtual] |
Copy.
Implements LOCA::MultiContinuation::ConstraintInterface.
Reimplemented in LOCA::MultiContinuation::CompositeConstraintMVDX.
Definition at line 93 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, constraints, globalData, indices, isValidConstraints, isValidDX, numConstraintObjects, and totalNumConstraints.
Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterface > LOCA::MultiContinuation::CompositeConstraint::clone | ( | NOX::CopyType | type = NOX::DeepCopy |
) | const [virtual] |
Cloning function.
Implements LOCA::MultiContinuation::ConstraintInterface.
Reimplemented in LOCA::MultiContinuation::CompositeConstraintMVDX.
Definition at line 114 of file LOCA_MultiContinuation_CompositeConstraint.C.
References CompositeConstraint().
int LOCA::MultiContinuation::CompositeConstraint::numConstraints | ( | ) | const [virtual] |
Return number of constraints.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 120 of file LOCA_MultiContinuation_CompositeConstraint.C.
References totalNumConstraints.
void LOCA::MultiContinuation::CompositeConstraint::setX | ( | const NOX::Abstract::Vector & | y | ) | [virtual] |
Set the solution vector to y.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 126 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, isValidConstraints, isValidDX, and numConstraintObjects.
void LOCA::MultiContinuation::CompositeConstraint::setParam | ( | int | paramID, | |
double | val | |||
) | [virtual] |
Sets parameter indexed by paramID.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 136 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, isValidConstraints, isValidDX, and numConstraintObjects.
void LOCA::MultiContinuation::CompositeConstraint::setParams | ( | const vector< int > & | paramIDs, | |
const NOX::Abstract::MultiVector::DenseMatrix & | vals | |||
) | [virtual] |
Sets parameters indexed by paramIDs.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 145 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, isValidConstraints, isValidDX, and numConstraintObjects.
NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::CompositeConstraint::computeConstraints | ( | ) | [virtual] |
Compute continuation constraint equations.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 156 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, constraints, globalData, indices, isValidConstraints, numConstraintObjects, and NOX::Abstract::Group::Ok.
NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::CompositeConstraint::computeDX | ( | ) | [virtual] |
Compute derivative of constraints w.r.t. solution vector x.
Implements LOCA::MultiContinuation::ConstraintInterface.
Reimplemented in LOCA::MultiContinuation::CompositeConstraintMVDX.
Definition at line 185 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, globalData, isValidDX, numConstraintObjects, and NOX::Abstract::Group::Ok.
NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::CompositeConstraint::computeDP | ( | const vector< int > & | paramIDs, | |
NOX::Abstract::MultiVector::DenseMatrix & | dgdp, | |||
bool | isValidG | |||
) | [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.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 207 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, globalData, indices, numConstraintObjects, and NOX::Abstract::Group::Ok.
bool LOCA::MultiContinuation::CompositeConstraint::isConstraints | ( | ) | const [virtual] |
Return true
if constraint residuals are valid.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 244 of file LOCA_MultiContinuation_CompositeConstraint.C.
References isValidConstraints.
bool LOCA::MultiContinuation::CompositeConstraint::isDX | ( | ) | const [virtual] |
Return true
if derivatives of constraints w.r.t. x are valid.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 250 of file LOCA_MultiContinuation_CompositeConstraint.C.
References isValidDX.
const NOX::Abstract::MultiVector::DenseMatrix & LOCA::MultiContinuation::CompositeConstraint::getConstraints | ( | ) | const [virtual] |
Return constraint residuals.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 256 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraints.
NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::CompositeConstraint::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.
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).
Implements LOCA::MultiContinuation::ConstraintInterface.
Reimplemented in LOCA::MultiContinuation::CompositeConstraintMVDX.
Definition at line 262 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, globalData, indices, isDXZero(), numConstraintObjects, and NOX::Abstract::Group::Ok.
NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::CompositeConstraint::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.
Note that this should be equivalent to
result_x.update(transb, alpha, dgdx, b, beta);
Implements LOCA::MultiContinuation::ConstraintInterface.
Reimplemented in LOCA::MultiContinuation::CompositeConstraintMVDX.
Definition at line 319 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, globalData, indices, isDXZero(), numConstraintObjects, NOX::Abstract::MultiVector::numVectors(), NOX::Abstract::Group::Ok, and NOX::Abstract::MultiVector::scale().
bool LOCA::MultiContinuation::CompositeConstraint::isDXZero | ( | ) | const [virtual] |
Return true
if solution component of constraint derivatives is zero.
Implements LOCA::MultiContinuation::ConstraintInterface.
Definition at line 386 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, and numConstraintObjects.
Referenced by addDX(), LOCA::MultiContinuation::CompositeConstraintMVDX::CompositeConstraintMVDX(), LOCA::MultiContinuation::CompositeConstraintMVDX::computeDX(), and multiplyDX().
void LOCA::MultiContinuation::CompositeConstraint::preProcessContinuationStep | ( | LOCA::Abstract::Iterator::StepStatus | stepStatus | ) | [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 from LOCA::MultiContinuation::ConstraintInterface.
Definition at line 396 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, and numConstraintObjects.
void LOCA::MultiContinuation::CompositeConstraint::postProcessContinuationStep | ( | LOCA::Abstract::Iterator::StepStatus | stepStatus | ) | [virtual] |
Perform any postprocessing after a continuation step finishes.
The stepStatus
argument indicates whether the step was successful. The default implementation is empty.
Reimplemented from LOCA::MultiContinuation::ConstraintInterface.
Definition at line 404 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, and numConstraintObjects.
CompositeConstraint& LOCA::MultiContinuation::CompositeConstraint::operator= | ( | const CompositeConstraint & | source | ) | [private] |
Prohibit generation and use of operator=().
void LOCA::MultiContinuation::CompositeConstraint::init | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, | |
const vector< Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterface > > & | constraintObjects | |||
) | [protected, virtual] |
Initialize object when using default constructor.
Definition at line 412 of file LOCA_MultiContinuation_CompositeConstraint.C.
References constraintPtrs, constraints, globalData, indices, numConstraintObjects, and totalNumConstraints.
Referenced by CompositeConstraint(), and LOCA::MultiContinuation::CompositeConstraintMVDX::CompositeConstraintMVDX().
Teuchos::RCP<LOCA::GlobalData> LOCA::MultiContinuation::CompositeConstraint::globalData [protected] |
LOCA global data object.
Definition at line 209 of file LOCA_MultiContinuation_CompositeConstraint.H.
Referenced by addDX(), computeConstraints(), computeDP(), LOCA::MultiContinuation::CompositeConstraintMVDX::computeDX(), computeDX(), copy(), init(), and multiplyDX().
Number of constraint objects.
Definition at line 212 of file LOCA_MultiContinuation_CompositeConstraint.H.
Referenced by addDX(), LOCA::MultiContinuation::CompositeConstraintMVDX::CompositeConstraintMVDX(), computeConstraints(), computeDP(), LOCA::MultiContinuation::CompositeConstraintMVDX::computeDX(), computeDX(), copy(), init(), isDXZero(), multiplyDX(), postProcessContinuationStep(), preProcessContinuationStep(), setParam(), setParams(), and setX().
vector< Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterface> > LOCA::MultiContinuation::CompositeConstraint::constraintPtrs [protected] |
Array of constraint pointers.
Definition at line 216 of file LOCA_MultiContinuation_CompositeConstraint.H.
Referenced by addDX(), LOCA::MultiContinuation::CompositeConstraintMVDX::CompositeConstraintMVDX(), computeConstraints(), computeDP(), computeDX(), copy(), init(), isDXZero(), multiplyDX(), postProcessContinuationStep(), preProcessContinuationStep(), setParam(), setParams(), and setX().
vector< vector<int> > LOCA::MultiContinuation::CompositeConstraint::indices [protected] |
Indices of each sub-constraint in the composite constraint.
Definition at line 219 of file LOCA_MultiContinuation_CompositeConstraint.H.
Referenced by addDX(), computeConstraints(), computeDP(), LOCA::MultiContinuation::CompositeConstraintMVDX::computeDX(), copy(), init(), and multiplyDX().
Total number of constraints.
Definition at line 222 of file LOCA_MultiContinuation_CompositeConstraint.H.
Referenced by LOCA::MultiContinuation::CompositeConstraintMVDX::CompositeConstraintMVDX(), copy(), init(), and numConstraints().
NOX::Abstract::MultiVector::DenseMatrix LOCA::MultiContinuation::CompositeConstraint::constraints [protected] |
Constraint values.
Definition at line 225 of file LOCA_MultiContinuation_CompositeConstraint.H.
Referenced by computeConstraints(), copy(), getConstraints(), and init().
bool LOCA::MultiContinuation::CompositeConstraint::isValidConstraints [protected] |
Flag indicating whether constraints are valid.
Definition at line 228 of file LOCA_MultiContinuation_CompositeConstraint.H.
Referenced by computeConstraints(), copy(), isConstraints(), setParam(), setParams(), and setX().
bool LOCA::MultiContinuation::CompositeConstraint::isValidDX [protected] |
Flag indicating whether dg/dx is valid.
Definition at line 231 of file LOCA_MultiContinuation_CompositeConstraint.H.
Referenced by LOCA::MultiContinuation::CompositeConstraintMVDX::computeDX(), computeDX(), copy(), isDX(), setParam(), setParams(), and setX().