LOCA::Continuation::HouseholderGroup Class Reference

Arc-length continuation group using Householder projection. More...

#include <LOCA_Continuation_HouseholderGroup.H>

Inheritance diagram for LOCA::Continuation::HouseholderGroup:

Collaboration diagram for LOCA::Continuation::HouseholderGroup:
List of all members.

Public Member Functions

 HouseholderGroup (LOCA::Continuation::AbstractGroup &g, int paramID, NOX::Parameter::List &params)
 Constructor with integer continuation parameter id.
 HouseholderGroup (LOCA::Continuation::AbstractGroup &g, string paramID, NOX::Parameter::List &params)
 Constructor with string continuation parameter id.
 HouseholderGroup (const HouseholderGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual ~HouseholderGroup ()
virtual LOCA::Continuation::ArcLengthGroupoperator= (const LOCA::Continuation::ArcLengthGroup &source)
 Assignment operator.
virtual LOCA::Continuation::ExtendedGroupoperator= (const LOCA::Continuation::ExtendedGroup &source)
 Assignment operator.
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
virtual HouseholderGroupoperator= (const HouseholderGroup &source)
 Assignment operator.
virtual NOX::Abstract::Groupclone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function.
"Compute" functions.
virtual NOX::Abstract::Group::ReturnType computeF ()
 Overload of computeF for Householder projection.
virtual NOX::Abstract::Group::ReturnType computeNewton (NOX::Parameter::List &params)
 Overload of computeNewton to use Householder projection.

Protected Member Functions

void computeHouseholderVector ()
 Computes the Householder vector from the predictor vector.
virtual void scaleVector (LOCA::Continuation::ExtendedVector &x) const
 Scales a vector using scaling vector.

Protected Attributes

LOCA::Continuation::ExtendedVector houseVec
 Stores the Householder vector.
double beta
 Stores scalar beta in Householder projection.

Detailed Description

Arc-length continuation group using Householder projection.

This group provides an alternative method for computing Newton steps for the pseudo-arclength equations

\[ \begin{bmatrix} J & \frac{df}{dp} \\ v_x^T & v_p \end{bmatrix} \begin{bmatrix} \Delta x \\ \Delta p \end{bmatrix} = \begin{bmatrix} -f \\ 0 \end{bmatrix} \]

via Householder projection. In particular, these equations are replaced by

\[ \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. This group takes care of setting up the linear system of equations and computing the Householder vector $u$, but it is assumed the underlying group provides some means of solving the linear system.

See Homer F. Walker, "An Adaptation of Krylov Subspace Methods to Path Following Problems", SIAM J. Sci. Comput. 21(3), 1999, pp. 1191-1198, for a description of this method.

Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::Continuation::HouseholderGroup::computeF  )  [virtual]

Overload of computeF for Householder projection.

Since the Householder projection method does not use the arc-length equation in the Newton solve, we set the residual for the arc-length equation to zero.

Reimplemented from LOCA::Continuation::ArcLengthGroup.

void LOCA::Continuation::HouseholderGroup::computeHouseholderVector  )  [protected]

Computes the Householder vector from the predictor vector.

This method computes a vector $u\in\Re^{n+1}$ and scalar $\beta$ such that $P=I-\beta u u^T$ is orthogonal, $u_{n+1} = 1$, and $Pv = \|v\|_2 e_{n+1}$ where $v$ is the predictor vector and $e_{n+1}$ is the $n+1$ column of the identity.

The algorithm employed here is taken from Algorithm 5.1.1 from Gene Golub and Charles Van Loan, "Matrix Computations", 3rd Edition, 1996, John Hopkins University Press, Baltimore.

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