LOCA::Continuation::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_Continuation_AbstractGroup.H>

Inheritance diagram for LOCA::Continuation::AbstractGroup:

[legend]
Collaboration diagram for LOCA::Continuation::AbstractGroup:
[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 AbstractGroupoperator= (const AbstractGroup &source)=0
 Assignment operator.
virtual void setParams (const 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 ParameterVectorgetParams () 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 computeDfDp (int paramID, NOX::Abstract::Vector &result)=0
Virtual methods with default implementations
These methods should be overloaded in a concrete implementation if more appropriate/efficient approaches are available.

virtual NOX::Abstract::Group::ReturnType applyJacobianInverseMulti (NOX::Parameter::List &params, const NOX::Abstract::Vector *const *inputs, NOX::Abstract::Vector **outputs, int nVecs) const
 applyJacobianInverse for multiple right-hand sides
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 NOX::Abstract::Group::ReturnType computeEigenvalues (NOX::Parameter::List &params)
 Compute eigenvalues/eigenvectors.
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 NOX::Abstract::Group::ReturnType applyHouseholderJacobianInverse (NOX::Parameter::List &params, const NOX::Abstract::Vector &f, const NOX::Abstract::Vector &dfdp, const NOX::Abstract::Vector &ux, double up, double beta, NOX::Abstract::Vector &result_x, double &result_p) const
 Solve arclength continuation equations using Householder projection.
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

NOX::Abstract::Group::ReturnType LOCA::Continuation::AbstractGroup::applyHouseholderJacobianInverse NOX::Parameter::List params,
const NOX::Abstract::Vector f,
const NOX::Abstract::Vector dfdp,
const NOX::Abstract::Vector ux,
double  up,
double  beta,
NOX::Abstract::Vector result_x,
double &  result_p
const [virtual]
 

Solve arclength continuation equations using Householder projection.

This method should compute a solution to the following system of equations

\[ \begin{bmatrix} J & \frac{df}{dp} \end{bmatrix} Q y = f \]

where $Q\in\Re^{n+1\times n}$ is an orthogonal matrix such that for any $z\in\Re^n$,

\[ Q z = P \begin{bmatrix} z \\ 0 \end{bmatrix}. \]

Here $P = I - \beta u u^T\in\Re^{n+1\times n+1}$ is a Householder transformation such that $P v = \|v\|_2 e_{n+1}$ and $u_{n+1} = 1$ where $v\in\Re^{n+1}$ is the predictor vector and $e_{n+1}$ is the $n+1$ column of the identity.

The default implementation here is to throw an error. This method is only called by the Householder continuation group, and should be implemented to use this continuation method.

Reimplemented in LOCA::Epetra::Group, and LOCA::EpetraNew::Group.

NOX::Abstract::Group::ReturnType LOCA::Continuation::AbstractGroup::applyJacobianInverseMulti NOX::Parameter::List params,
const NOX::Abstract::Vector *const *  inputs,
NOX::Abstract::Vector **  outputs,
int  nVecs
const [virtual]
 

applyJacobianInverse for multiple right-hand sides

The default implementation here calls applyJacobianInverse() for each right hand side serially but should be overloaded if a block solver is available.

Reimplemented in LOCA::Bifurcation::HopfBord::ExtendedGroup, LOCA::Bifurcation::PitchforkBord::ExtendedGroup, LOCA::Bifurcation::TPBord::ExtendedGroup, LOCA::Bifurcation::TPBord::ModifiedBorderingGroup, and LOCA::LAPACK::Group.

virtual NOX::Abstract::Group::ReturnType LOCA::Continuation::AbstractGroup::computeDfDp int  paramID,
NOX::Abstract::Vector result
[pure virtual]
 

Compute $\partial F/\partial p$ where $p$ is the parameter indexed by paramID.

Implemented in LOCA::Bifurcation::HopfBord::ExtendedGroup, LOCA::Bifurcation::PitchforkBord::ExtendedGroup, LOCA::Bifurcation::TPBord::ExtendedGroup, LOCA::Continuation::FiniteDifferenceGroup, and LOCA::Homotopy::Group.

NOX::Abstract::Group::ReturnType LOCA::Continuation::AbstractGroup::computeEigenvalues NOX::Parameter::List params  )  [virtual]
 

Compute eigenvalues/eigenvectors.

Default implementation prints an error message and throws an error string.

Reimplemented in LOCA::Continuation::AnasaziGroup, and LOCA::LAPACK::Group.

double LOCA::Continuation::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::Epetra::Group, LOCA::EpetraNew::Group, and LOCA::LAPACK::Group.

virtual void LOCA::Continuation::AbstractGroup::printSolution const NOX::Abstract::Vector x_,
const double  conParam
const [inline, virtual]
 

Function to print out a vector and parameter after successful step.

Empty default definition.

Reimplemented in LOCA::Bifurcation::HopfBord::ExtendedGroup, LOCA::Bifurcation::PitchforkBord::ExtendedGroup, LOCA::Bifurcation::TPBord::ExtendedGroup, LOCA::Homotopy::Group, LOCA::Epetra::Group, LOCA::EpetraNew::Group, and LOCA::LAPACK::Group.

virtual void LOCA::Continuation::AbstractGroup::printSolution const double  conParam  )  const [inline, virtual]
 

Function to print out solution and parameter after successful step.

Empty default definition.

Reimplemented in LOCA::Bifurcation::HopfBord::ExtendedGroup, LOCA::Bifurcation::PitchforkBord::ExtendedGroup, LOCA::Bifurcation::TPBord::ExtendedGroup, LOCA::Homotopy::Group, LOCA::Epetra::Group, LOCA::EpetraNew::Group, and LOCA::LAPACK::Group.

void LOCA::Continuation::AbstractGroup::scaleVector NOX::Abstract::Vector x  )  const [virtual]
 

Scales a vector using scaling vector.

The default definition here is to do nothing, i.e., no scaling

Reimplemented in LOCA::Epetra::Group, LOCA::EpetraNew::Group, and LOCA::LAPACK::Group.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:42:23 2008 for NOX by doxygen 1.3.9.1