LOCA::TimeDependent::AbstractGroup Class Reference

Interface to underlying groups for time dependent systems. More...

#include <LOCA_TimeDependent_AbstractGroup.H>

Inheritance diagram for LOCA::TimeDependent::AbstractGroup:

[legend]
Collaboration diagram for LOCA::TimeDependent::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 NOX::Abstract::Group::ReturnType applyShiftedMatrixInverse (NOX::Parameter::List &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result, double shift)=0
 Apply the inverse of the shifted matrix by a vector, as needed by the shift-and-invert and generalized Cayley transformations.
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 computeMassMatrix ()
 Compute the mass matrix of the system.
virtual bool isMassMatrix () const
 Is mass matrix valid.
virtual NOX::Abstract::Group::ReturnType applyMassMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Multiply the mass matrix by a vector.
virtual NOX::Abstract::Group::ReturnType applyShiftedMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result, double shift) const
 Multiply the shifted matrix by a vector.

Detailed Description

Interface to underlying groups for time dependent systems.

This abstract class provides an interface for time dependent problems, i.e., problems with a mass matrix (typically used in eignvalue or Hopf calculations). It provides pure virtual methods for manipulating the mass matrix and adding the mass and Jacobian matrices.

Where possible, default implementations are provided assuming the mass matrix is the identity.


Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::TimeDependent::AbstractGroup::applyMassMatrix const NOX::Abstract::Vector input,
NOX::Abstract::Vector result
const [virtual]
 

Multiply the mass matrix by a vector.

The default assumes the mass matrix is the identity, and therefore merely sets result = input.

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

NOX::Abstract::Group::ReturnType LOCA::TimeDependent::AbstractGroup::applyShiftedMatrix const NOX::Abstract::Vector input,
NOX::Abstract::Vector result,
double  shift
const [virtual]
 

Multiply the shifted matrix by a vector.

The default assumes the mass matrix is the identity, and therefore merely sets result = J * input + shift * input.

Reimplemented in LOCA::EpetraNew::Group.

virtual NOX::Abstract::Group::ReturnType LOCA::TimeDependent::AbstractGroup::applyShiftedMatrixInverse NOX::Parameter::List params,
const NOX::Abstract::Vector input,
NOX::Abstract::Vector result,
double  shift
[pure virtual]
 

Apply the inverse of the shifted matrix by a vector, as needed by the shift-and-invert and generalized Cayley transformations.

Note that because of the variety of ways this method can be implemented, the interface for this method is different than other applyInverse() methods. Namely, the method is not const, and there are no computeShiftMatrix(), isShiftedMatrix() methods. Rather, it is assumed the group will compute the shifted matrix if necessary, and then apply the solve. It is up to the implementing group to determine if the shifted matrix needs to be recomputed.

Implemented in LOCA::Abstract::Group, and LOCA::EpetraNew::Group.

NOX::Abstract::Group::ReturnType LOCA::TimeDependent::AbstractGroup::computeMassMatrix  )  [virtual]
 

Compute the mass matrix of the system.

The default assumes the mass matrix is the identity, and therefore merely returns NOX::Abstract::Group::Ok.

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

bool LOCA::TimeDependent::AbstractGroup::isMassMatrix  )  const [virtual]
 

Is mass matrix valid.

The default assumes the mass matrix is the identity, and therefore merely returns true.

Reimplemented in LOCA::LAPACK::Group.


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