NOX Development
Loading...
Searching...
No Matches
Public Member Functions | List of all members
LOCA::MultiContinuation::ConstraintInterfaceMVDX Class Referenceabstract

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>

Inheritance diagram for LOCA::MultiContinuation::ConstraintInterfaceMVDX:
Inheritance graph
[legend]
Collaboration diagram for LOCA::MultiContinuation::ConstraintInterfaceMVDX:
Collaboration graph
[legend]

Public Member Functions

 ConstraintInterfaceMVDX ()
 Constructor.
 
virtual ~ConstraintInterfaceMVDX ()
 Destructor.
 
virtual const NOX::Abstract::MultiVectorgetDX () 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.
 
- 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::ConstraintInterfaceclone (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 > &paramIDs, 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 > &paramIDs, 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::DenseMatrixgetConstraints () 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.
 
virtual void postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus)
 Perform any postprocessing after a continuation step finishes.
 

Detailed Description

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.

Member Function Documentation

◆ addDX()

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.

References NOX::Abstract::Group::Ok, NOX::Abstract::MultiVector::scale(), and NOX::Abstract::MultiVector::update().

Referenced by LOCA::MultiContinuation::CompositeConstraintMVDX::addDX().

◆ getDX()

virtual const NOX::Abstract::MultiVector * LOCA::MultiContinuation::ConstraintInterfaceMVDX::getDX ( ) const
pure virtual

◆ 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

The documentation for this class was generated from the following files: