LOCA::MultiContinuation::AbstractGroup Class Reference

LOCA abstract interface for continuation, derived from the NOX::Abstract::Group. This abstract class provides the interface necessary to perform continuation, i.e., compute families of solutions to $ F(x,p) = 0 $. More...

#include <LOCA_MultiContinuation_AbstractGroup.H>

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

List of all members.

Public Member Functions

 AbstractGroup ()
 Default constructor.
virtual ~AbstractGroup ()
 Destructor.
Pure virtual methods

These methods must be defined by any concrete implementation

virtual void copy (const NOX::Abstract::Group &source)=0
 Copy the group (replaces operator = ).
virtual void setParamsMulti (const vector< int > &paramIDs, const NOX::Abstract::MultiVector::DenseMatrix &vals)=0
 Set parameters indexed by (integer) paramIDs.
virtual void setParams (const LOCA::ParameterVector &p)=0
 Set the parameter vector in the group to p (pVector = p).
virtual void setParam (int paramID, double val)=0
 Set parameter indexed by (integer) paramID.
virtual void setParam (string paramID, double val)=0
 Set parameter indexed by (string) paramID.
virtual const
LOCA::ParameterVector
getParams () const =0
 Return a const reference to the ParameterVector owned by the group.
virtual double getParam (int paramID) const =0
 Return copy of parameter indexed by (integer) paramID.
virtual double getParam (string paramID) const =0
 Return copy of parameter indexed by (string) paramID.
virtual
NOX::Abstract::Group::ReturnType 
computeDfDpMulti (const vector< int > &paramIDs, NOX::Abstract::MultiVector &dfdp, bool isValidF)=0
Virtual methods with default implementations

These methods should be overloaded in a concrete implementation if more appropriate/efficient approaches are available.

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.
virtual void projectToDraw (const NOX::Abstract::Vector &x, double *px) const
 Projects solution to a few scalars for multiparameter continuation.
virtual int projectToDrawDimension () const
 Returns the dimension of the project to draw array.
virtual double computeScaledDotProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const
 Compute a scaled dot product.
Virtual methods with empty or trivial implementations

These methods should be overloaded in a concrete implementation but their implementation is not critical to the rest of LOCA and therefore have empty or trivial implementations.

virtual void printSolution (const double conParam) const
 Function to print out solution and parameter after successful step.
virtual void printSolution (const NOX::Abstract::Vector &x_, const double conParam) const
 Function to print out a vector and parameter after successful step.
virtual void scaleVector (NOX::Abstract::Vector &x) const
 Scales a vector using scaling vector.

Detailed Description

LOCA abstract interface for continuation, derived from the NOX::Abstract::Group. This abstract class provides the interface necessary to perform continuation, i.e., compute families of solutions to $ F(x,p) = 0 $.

Concrete implemenations of this interface must provide implementations of all of the methods in the NOX::Abstract::Group interface as well as the additional interface defined here.


Member Function Documentation

virtual NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::AbstractGroup::computeDfDpMulti ( const vector< int > &  paramIDs,
NOX::Abstract::MultiVector dfdp,
bool  isValidF 
) [pure virtual]
double LOCA::MultiContinuation::AbstractGroup::computeScaledDotProduct ( const NOX::Abstract::Vector a,
const NOX::Abstract::Vector b 
) const [virtual]

Compute a scaled dot product.

The default implementation here just computes a.dot(b) but should be overloaded for any problem that his difficult scaling.

Reimplemented in LOCA::Homotopy::DeflatedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::MultiContinuation::ConstrainedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Epetra::Group, LOCA::LAPACK::Group, and LOCA::Thyra::Group.

References NOX::Abstract::Vector::innerProduct().

void LOCA::MultiContinuation::AbstractGroup::postProcessContinuationStep ( LOCA::Abstract::Iterator::StepStatus  stepStatus  )  [virtual]
void LOCA::MultiContinuation::AbstractGroup::preProcessContinuationStep ( LOCA::Abstract::Iterator::StepStatus  stepStatus  )  [virtual]
virtual void LOCA::MultiContinuation::AbstractGroup::printSolution ( const NOX::Abstract::Vector x_,
const double  conParam 
) const [inline, virtual]
virtual void LOCA::MultiContinuation::AbstractGroup::printSolution ( const double  conParam  )  const [inline, virtual]
void LOCA::MultiContinuation::AbstractGroup::projectToDraw ( const NOX::Abstract::Vector x,
double *  px 
) const [virtual]

Projects solution to a few scalars for multiparameter continuation.

This method is called every time a solution is saved by the multiparameter continuation code MF for later visualization and should project the solution vector down to a few scalars. The array px will be preallocated to the proper length given by projectToDrawDimension().

The default implementation is the max norm of the vector.

Reimplemented in LOCA::Homotopy::DeflatedGroup, LOCA::Homotopy::Group, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MooreSpence::ExtendedGroup, LOCA::MultiContinuation::ConstrainedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MooreSpence::ExtendedGroup, LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::TurningPoint::MooreSpence::ExtendedGroup, LOCA::Epetra::Group, LOCA::LAPACK::Group, and LOCA::Thyra::Group.

References NOX::Abstract::Vector::MaxNorm, and NOX::Abstract::Vector::norm().

int LOCA::MultiContinuation::AbstractGroup::projectToDrawDimension (  )  const [virtual]
void LOCA::MultiContinuation::AbstractGroup::scaleVector ( NOX::Abstract::Vector x  )  const [virtual]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
Generated on Wed Apr 13 09:59:43 2011 for NOX by  doxygen 1.6.3