Diffpack Documentation

(Functionality not available, requires installation of an additional Diffpack Toolbox)


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

ProjMatrix Class Reference

matrix-based projection operators between grids. More...

#include <ProjMatrix.h>

Inheritance diagram for ProjMatrix::

Proj HandleId ProjMat ProjMatSparse ProjInterpMat ProjInterpSparse ProjInterpSparseHier MxProj List of all members.

Public Methods

 ProjMatrix (const char *description_="Projecton operator")
 ProjMatrix (const Proj_prm &prm, const char *description_="Projection operator")
virtual ~ProjMatrix ()
virtual bool ok () const
virtual bool rebindMatrix (LinEqMatrix &mat)
virtual void apply (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode, bool add_to_d=false)
virtual LinEqMatrixA ()
virtual void scale (const LinEqVector &s, TransposeMode tpmode)
virtual void scale (real s)
virtual int getWork () const
virtual real getStorage () const
virtual String description () const
virtual void print (Os os, int output=1) const

Protected Attributes

Handle(LinEqMatrixprojMatrix

Detailed Description

matrix-based projection operators between grids.

NAME: ProjMatrix - matrix-based projection operators between grids

DESCRIPTION:

This projection operator uses a "LinEqMatrix" representation, i.e., any matrix format can be applied. The "LinEqMatrix" object must be filled by the user.


Constructor & Destructor Documentation

ProjMatrix::ProjMatrix ( const char * description_ = "Projecton operator" )
 

See class "Proj". Notice that a "LinEqMatrix" object must be supplied by use of "rebindMatrix".

ProjMatrix::ProjMatrix ( const Proj_prm & prm,
const char * description_ = "Projection operator" )
 

See documentation of one of the overloaded constructor.

ProjMatrix::~ProjMatrix ( ) [virtual]
 


Member Function Documentation

LinEqMatrix & ProjMatrix::A ( ) [virtual]
 

returns access to the matrix representation of the projection operator.

Reimplemented from Proj.

void ProjMatrix::apply ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode,
bool add_to_d = false ) [virtual]
 

applies the projection operator to the vector "c", producting the vector "d". Depending on the "tpmode" argument, either operator or its transposed is used. If the flag "add_to_d" is true, the computed results is added to "d", otherwise it overwrites any prior contents in "d".

Reimplemented from Proj.

String ProjMatrix::description ( ) const [virtual]
 

returns the "String" description of the projection operator.

Reimplemented from Proj.

Reimplemented in ProjInterpSparse, ProjMatSparse, MxProj, ProjInterpMat, ProjInterpSparseHier, and ProjMat.

real ProjMatrix::getStorage ( ) const [virtual]
 

Reimplemented from Proj.

int ProjMatrix::getWork ( ) const [virtual]
 

Reimplemented from Proj.

bool ProjMatrix::ok ( ) const [virtual]
 

returns true if the projection operator is in a consistent state.

Reimplemented from Proj.

void ProjMatrix::print ( Os os,
int output = 1 ) const [virtual]
 

Reimplemented from Proj.

Reimplemented in ProjInterpSparse, ProjMatSparse, and MxProj.

bool ProjMatrix::rebindMatrix ( LinEqMatrix & mat ) [virtual]
 

connects the projection operator to a "LinEqMatrix" object which will be used to store the projection. That is, through the "LinEqMatrix" interface, any matrix storage format can be applied.

Reimplemented from Proj.

void ProjMatrix::scale ( real s ) [virtual]
 

See documentation of one of the overloaded functions.

Reimplemented from Proj.

Reimplemented in ProjMatSparse, and ProjMat.

void ProjMatrix::scale ( const LinEqVector & s,
TransposeMode tpmode ) [virtual]
 

scales the projection operator according to input values. If the a scalar constant "s" is applied, all entries in the operator is scaled by the constant value, "P(i,j)=s*P(i,j)".

If the input sepcifies a "LinEqVector", the operator is scaled row- or columnwise. That is, for "tpmode=TRANSPOSED" the rows are scaled, "P(i,j) = s(i)*P(i,j)". Similarly, for "tpmode=NOT_TRANSPOSED" the wolumns are scaled as "P(i,j)=s(j)*P(i,j)".

Reimplemented from Proj.

Reimplemented in ProjMatSparse, and ProjMat.


Member Data Documentation

Handle(LinEqMatrix) ProjMatrix::projMatrix [protected]
 


The documentation for this class was generated from the following file:
Copyright © 2003 inuTech GmbH. All rights reserved.