NOX Development
Loading...
Searching...
No Matches
LOCA::Pitchfork::MinimallyAugmented::Constraint Class Reference

Implementation of LOCA::MultiContinuation::ConstraintInterfaceMVDX for computing pitchforks for the minimally augmented pitchfork formulation. More...

#include <LOCA_Pitchfork_MinimallyAugmented_Constraint.H>

Inheritance diagram for LOCA::Pitchfork::MinimallyAugmented::Constraint:
Collaboration diagram for LOCA::Pitchfork::MinimallyAugmented::Constraint:

Public Member Functions

 Constraint (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &pfParams, const Teuchos::RCP< LOCA::Pitchfork::MinimallyAugmented::AbstractGroup > &g, const Teuchos::RCP< const NOX::Abstract::Vector > &psi, int bif_param)
 Constructor.
 Constraint (const Constraint &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual ~Constraint ()
 Destructor.
virtual void setGroup (const Teuchos::RCP< LOCA::TurningPoint::MinimallyAugmented::AbstractGroup > &g)
 Set the group pointer.
Public Member Functions inherited from LOCA::TurningPoint::MinimallyAugmented::Constraint
 Constraint (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &tpParams, const Teuchos::RCP< LOCA::TurningPoint::MinimallyAugmented::AbstractGroup > &g, int bif_param)
 Constructor.
 Constraint (const Constraint &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual void setGroup (const Teuchos::RCP< LOCA::TurningPoint::MinimallyAugmented::AbstractGroup > &g)
 Set the group pointer.
virtual Teuchos::RCP< const NOX::Abstract::VectorgetLeftNullVec () const
 Returns left null vector w.
virtual Teuchos::RCP< const NOX::Abstract::VectorgetRightNullVec () const
 Returns right null vector v.
virtual Teuchos::RCP< const NOX::Abstract::VectorgetAVec () const
 Returns a vector.
virtual Teuchos::RCP< const NOX::Abstract::VectorgetBVec () const
 Returns b vector.
virtual double getSigma () const
 Returns sigma.
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 std::vector< int > &paramIDs, const NOX::Abstract::MultiVector::DenseMatrix &vals)
 Sets parameters indexed by paramIDs.
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 bool isDXZero () const
 Return true if solution component of constraint derivatives is zero.
virtual void postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus)
 Perform any postprocessing after a continuation step finishes.
Public Member Functions inherited from LOCA::MultiContinuation::ConstraintInterfaceMVDX
 ConstraintInterfaceMVDX ()
 Constructor.
virtual ~ConstraintInterfaceMVDX ()
 Destructor.
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 preProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus)
 Perform any preprocessing before a continuation step starts.

Implementation of LOCA::MultiContinuation::ConstraintInterface

virtual methods

Teuchos::RCP< LOCA::Pitchfork::MinimallyAugmented::AbstractGrouppf_grp
 Pointer to pitchfork group.
Teuchos::RCP< const NOX::Abstract::Vectorpsi_vector
 Vector for $\psi$.
Teuchos::RCP< NOX::Abstract::MultiVectordgdx
 Stores dg/dx.
NOX::Abstract::MultiVector::DenseMatrix pf_constraints
 Constraint values.
virtual void copy (const LOCA::MultiContinuation::ConstraintInterface &source)
 Copy.
virtual Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterfaceclone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function.
virtual int numConstraints () const
 Return number of constraints.
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 std::vector< int > &paramIDs, NOX::Abstract::MultiVector::DenseMatrix &dgdp, bool isValidG)
 Compute derivative of constraints w.r.t. supplied parameters.
virtual const NOX::Abstract::MultiVector::DenseMatrixgetConstraints () const
 Return constraint residuals.
virtual const NOX::Abstract::MultiVectorgetDX () const
 Return solution component of constraint derivatives.

Additional Inherited Members

Protected Types inherited from LOCA::TurningPoint::MinimallyAugmented::Constraint
enum  NullVectorScaling { NVS_None , NVS_OrderOne , NVS_OrderN }
 Enumerated type determining type of scaling. More...
virtual void scaleNullVectors (NOX::Abstract::Vector &a, NOX::Abstract::Vector &b)
 Scale a & b vectors.
virtual void getInitialVectors (NOX::Abstract::Vector &a, NOX::Abstract::Vector &b)
 Get initial a & b vectors.
Teuchos::RCP< LOCA::GlobalDataglobalData
 Pointer LOCA global data object.
Teuchos::RCP< LOCA::Parameter::SublistParserparsedParams
 Parsed top-level parameters.
Teuchos::RCP< Teuchos::ParameterList > turningPointParams
 Bifurcation parameter list.
Teuchos::RCP< LOCA::TurningPoint::MinimallyAugmented::AbstractGroupgrpPtr
 Pointer to base group that defines $F$.
Teuchos::RCP< NOX::Abstract::MultiVectora_vector
 Vector for $a$.
Teuchos::RCP< NOX::Abstract::MultiVectorb_vector
 Vector for $b$.
Teuchos::RCP< NOX::Abstract::MultiVectorw_vector
 Stores left null vector.
Teuchos::RCP< NOX::Abstract::MultiVectorv_vector
 Stores right null vector.
Teuchos::RCP< NOX::Abstract::MultiVectorJv_vector
 Stores J*v.
Teuchos::RCP< NOX::Abstract::MultiVectorJtw_vector
 Stores J^T*w.
Teuchos::RCP< NOX::Abstract::MultiVectorsigma_x
 Stores sigma_x.
NOX::Abstract::MultiVector::DenseMatrix constraints
 Constraint values.
Teuchos::RCP< LOCA::BorderedSolver::AbstractStrategyborderedSolver
 Stores bordered solver strategy.
double dn
 Stores vector length as a double.
double sigma_scale
 Stores scale factor on sigma.
bool isSymmetric
 Flag indicating whether Jacobian is symmetric.
bool isValidConstraints
 Flag indicating whether constraints are valid.
bool isValidDX
 Flag indicating whether sigma_x is valid.
std::vector< int > bifParamID
 Stores the bifurcation parameter index.
bool updateVectorsEveryContinuationStep
 Flag indicating whether to update $a$ and $b$ every continuation step.
bool updateVectorsEveryIteration
 Flag indicating whether to update $a$ and $b$ every nonlinear iteration.
NullVectorScaling nullVecScaling
 Null vector scaling method.
bool multiplyMass
 Multiply null vectors by mass matrix.
Teuchos::RCP< LOCA::TimeDependent::AbstractGrouptdGrp
 Time dependent group interface for multiplying by mass matrix.
Teuchos::RCP< NOX::Abstract::Vectortmp_mass
 Temporary vector for mulplying null vectors by mass matrix.

Detailed Description

Implementation of LOCA::MultiContinuation::ConstraintInterfaceMVDX for computing pitchforks for the minimally augmented pitchfork formulation.

This class implements the pitchfork constraint equations $\sigma(x,p) = 0$, $\langle \psi,x \rangle = 0$ for the minimally augmented pitchfork formulation where $\sigma$ is defined via

\‍[    \begin{bmatrix}
      J   & a \\
      b^T & 0
    \end{bmatrix}
    \begin{bmatrix}
      v \\
      \sigma_1
    \end{bmatrix} =
    \begin{bmatrix}
      0 \\
      n
    \end{bmatrix},
\‍]

\‍[    \begin{bmatrix}
      J^T & b \\
      a^T & 0
    \end{bmatrix}
    \begin{bmatrix}
      w \\
      \sigma_2
    \end{bmatrix} =
    \begin{bmatrix}
      0 \\
      n
    \end{bmatrix},
\‍]

\‍[    \sigma = -w^T J v/n
\‍]

for any vectors $a$ and $b$ in $\Re^n$. Using these relationships, it is easy to show

\‍[    \begin{split}
       \sigma_x &= -(w^T J v)_x/n = -w^T J_x v/n \\
       \sigma_p &= -(w^T J v)_p/n = -w^T J_p v/n
    \end{split}
\‍]

The class is derived from LOCA::TurningPoint::MinimallyAugmented::Constraint. See this class for a description of available parameters.

Constructor & Destructor Documentation

◆ ~Constraint()

LOCA::Pitchfork::MinimallyAugmented::Constraint::~Constraint ( )
virtual

Destructor.

Reimplemented from LOCA::TurningPoint::MinimallyAugmented::Constraint.

Member Function Documentation

◆ clone()

Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterface > LOCA::Pitchfork::MinimallyAugmented::Constraint::clone ( NOX::CopyType type = NOX::DeepCopy) const
virtual

Cloning function.

Reimplemented from LOCA::TurningPoint::MinimallyAugmented::Constraint.

References Constraint().

Referenced by Constraint().

◆ computeConstraints()

◆ computeDP()

NOX::Abstract::Group::ReturnType LOCA::Pitchfork::MinimallyAugmented::Constraint::computeDP ( const std::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 $g$ if isValidG is false. If isValidG is true, then the dgdp contains $g$ on input.

Reimplemented from LOCA::TurningPoint::MinimallyAugmented::Constraint.

References LOCA::TurningPoint::MinimallyAugmented::Constraint::computeDP(), pf_grp, and psi_vector.

◆ computeDX()

NOX::Abstract::Group::ReturnType LOCA::Pitchfork::MinimallyAugmented::Constraint::computeDX ( )
virtual

◆ copy()

void LOCA::Pitchfork::MinimallyAugmented::Constraint::copy ( const LOCA::MultiContinuation::ConstraintInterface & source)
virtual

◆ getConstraints()

const NOX::Abstract::MultiVector::DenseMatrix & LOCA::Pitchfork::MinimallyAugmented::Constraint::getConstraints ( ) const
virtual

Return constraint residuals.

Reimplemented from LOCA::TurningPoint::MinimallyAugmented::Constraint.

References pf_constraints.

◆ getDX()

const NOX::Abstract::MultiVector * LOCA::Pitchfork::MinimallyAugmented::Constraint::getDX ( ) const
virtual

Return solution component of constraint derivatives.

Reimplemented from LOCA::TurningPoint::MinimallyAugmented::Constraint.

References dgdx.

◆ numConstraints()

int LOCA::Pitchfork::MinimallyAugmented::Constraint::numConstraints ( ) const
virtual

Return number of constraints.

Reimplemented from LOCA::TurningPoint::MinimallyAugmented::Constraint.

◆ setGroup()

void LOCA::Pitchfork::MinimallyAugmented::Constraint::setGroup ( const Teuchos::RCP< LOCA::TurningPoint::MinimallyAugmented::AbstractGroup > & g)
virtual

Set the group pointer.

This method should be called when ever the constrained group is copied, since we don't explicitly copy the underlying group here.

References pf_grp, and LOCA::TurningPoint::MinimallyAugmented::Constraint::setGroup().


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