LOCA::Bifurcation::TPBord::NicDayModifiedBorderingGroup Class Reference

Turning point group implementing a modified bordering algorithm. More...

#include <LOCA_Bifurcation_TPBord_NicDayModifiedBorderingGroup.H>

Inheritance diagram for LOCA::Bifurcation::TPBord::NicDayModifiedBorderingGroup:

[legend]
Collaboration diagram for LOCA::Bifurcation::TPBord::NicDayModifiedBorderingGroup:
[legend]
List of all members.

Public Member Functions

 NicDayModifiedBorderingGroup (LOCA::Bifurcation::TPBord::AbstractGroup &g, NOX::Parameter::List &bifParamList)
 Constructor with initial data passed through parameter lists.
 NicDayModifiedBorderingGroup (LOCA::Bifurcation::TPBord::AbstractGroup &g, const NOX::Abstract::Vector &lenVec, const NOX::Abstract::Vector &nullVec, int paramId)
 Constructor. See LOCA::Bifurcation::TPBord::ExtendedGroup for a description.
 NicDayModifiedBorderingGroup (const LOCA::Bifurcation::TPBord::AbstractGroup &g, const NOX::Abstract::Vector &lenVec, const NOX::Abstract::Vector &nullVec, int paramId)
 Constructor. See LOCA::Bifurcation::TPBord::ExtendedGroup for a description.
 NicDayModifiedBorderingGroup (const NicDayModifiedBorderingGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual ~NicDayModifiedBorderingGroup ()
 Destructor.
virtual NicDayModifiedBorderingGroupoperator= (const NicDayModifiedBorderingGroup &source)
 Assignment operator.
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
virtual LOCA::Continuation::AbstractGroupoperator= (const LOCA::Continuation::AbstractGroup &source)
 Assignment operator.
virtual LOCA::Extended::AbstractGroupoperator= (const LOCA::Extended::AbstractGroup &source)
 Assignment operator.
virtual LOCA::Bifurcation::TPBord::ExtendedGroupoperator= (const LOCA::Bifurcation::TPBord::ExtendedGroup &source)
 Assignment operator.
virtual NOX::Abstract::Groupclone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function.
virtual NOX::Abstract::Group::ReturnType applyJacobianInverse (NOX::Parameter::List &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Applies the inverse of the extended Jacobian matrix using a modified bordering algorithm.

Protected Member Functions

virtual NOX::Abstract::Group::ReturnType deflatedJacobianInverse (NOX::Parameter::List &params, const NOX::Abstract::Vector &u, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result, double &r) const
 Performs a deflated solve.

Detailed Description

Turning point group implementing a modified bordering algorithm.

The NicDayModifiedBorderingGroup is derived from the LOCA::Bifurcation::TPBord::ExtendedGroup and reimplements the applyJacobianInverse() and applyJacobianInverseMulti() methods using a modified bordering algorithm that avoids nearly-singular matrix solves. The algorithm is similar to the ModifedBorderingGroup algorithm but uses 5 solves of the original Jacobian instead of bordered solves. See applyJacobianInverse() for a description of the algorithm.


Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::Bifurcation::TPBord::NicDayModifiedBorderingGroup::applyJacobianInverse NOX::Parameter::List params,
const NOX::Abstract::Vector input,
NOX::Abstract::Vector result
const [virtual]
 

Applies the inverse of the extended Jacobian matrix using a modified bordering algorithm.

Computes the solution to the turning point system

\[ \begin{bmatrix} J & 0 & \frac{\partial F}{\partial p} \\ \frac{\partial Jn}{\partial x} & J & \frac{\partial Jn}{\partial p} \\ 0 & l^T & 0 \end{bmatrix} \begin{bmatrix} u \\ v \\ w \end{bmatrix} = \begin{bmatrix} x \\ y \\ z \end{bmatrix} \]

using the following modified bordering algorithm:

\[ \begin{split} \begin{bmatrix} J & s \\ n^T & 0 \end{bmatrix} \begin{bmatrix} a \\ \bar{a} \end{bmatrix} &= \begin{bmatrix} x \\ 0 \end{bmatrix} \\ \begin{bmatrix} J & s \\ n^T & 0 \end{bmatrix} \begin{bmatrix} b \\ \bar{b} \end{bmatrix}&= \begin{bmatrix} \frac{\partial F}{\partial p} \\ 0 \end{bmatrix} \\ \begin{bmatrix} J & s \\ n^T & 0 \end{bmatrix} \begin{bmatrix} c \\ \bar{c} \end{bmatrix}&= \begin{bmatrix} y - \frac{\partial Jn}{\partial x}a \\ 0 \end{bmatrix} \\ \begin{bmatrix} J & s \\ n^T & 0 \end{bmatrix} \begin{bmatrix} d \\ \bar{d} \end{bmatrix}&= \begin{bmatrix} \frac{\partial Jn}{\partial p} - \frac{\partial Jn}{\partial x}a \\ 0 \end{bmatrix} \\ \begin{bmatrix} J & s \\ n^T & 0 \end{bmatrix} \begin{bmatrix} d \\ \bar{d} \end{bmatrix}&= \begin{bmatrix} \frac{\partial Jn}{\partial x}n \\ 0 \end{bmatrix} \\ \begin{bmatrix} \sigma & \bar{e} & -l^Te \\ 0 & \sigma & l^Tv \\ \bar{b} & \bar{d} & -l^Td \end{bmatrix} \begin{bmatrix} \alpha \\ \beta \\ w \end{bmatrix} &= \begin{bmatrix} \bar{a} \\ \bar{c} \\ z - l^T c \end{bmatrix} \\ u &= a - w b + \alpha v\\ v &= c - w d - \alpha e + \beta v \end{split} \]

where $\sigma = \|Jn\|$ and $s = Jn/\sigma$. The five solves of the matrix

\[ \begin{bmatrix} J & s \\ n^T & 0 \end{bmatrix} \]

are computed via the applyBorderedJacobianInverse() method of the underlying group.

Reimplemented from LOCA::Bifurcation::TPBord::ExtendedGroup.

NOX::Abstract::Group::ReturnType LOCA::Bifurcation::TPBord::NicDayModifiedBorderingGroup::deflatedJacobianInverse NOX::Parameter::List params,
const NOX::Abstract::Vector u,
const NOX::Abstract::Vector input,
NOX::Abstract::Vector result,
double &  r
const [protected, virtual]
 

Performs a deflated solve.

The current implemention solves each right hand side serially.


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