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  

ProjIm Class Reference

projection operators between grids. More...

#include <ProjIm.h>

Inheritance diagram for ProjIm::

Proj HandleId List of all members.

Public Methods

 ProjIm (const char *description_="Projecton operator")
 ProjIm (const Proj_prm &prm, const char *description_="Projection operator")
virtual ~ProjIm ()
virtual bool rebindDOF (DegFreeFE &coarse, DegFreeFE &fine)
virtual bool ok () const
virtual void apply (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode, bool add_to_d=false)
virtual LinEqMatrixA ()
virtual String description () const
virtual void scale (real s)
virtual void scale (const LinEqVector &s, TransposeMode t)
int getWork () const
real getStorage () const

Protected Attributes

Handle(DegFreeFEcoarseDeg
Handle(DegFreeFEfineDeg

Detailed Description

projection operators between grids.

NAME: ProjIm - projection operators between grids

DESCRIPTION:

This projection operator interpolates a field using the input vectors in "apply" as field values. The class needs access to the "DegFreeFE" objects for the two involved grids.


Constructor & Destructor Documentation

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

See class "Proj". Notice that two "DegFreeFE" objects must be supplied by use of "rebindDOF".

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

See documentation of one of the overloaded constructor.

ProjIm::~ProjIm ( ) [virtual]
 


Member Function Documentation

LinEqMatrix & ProjIm::A ( ) [virtual]
 

returns access to the matrix representation of the projection operator.

Reimplemented from Proj.

void ProjIm::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 ProjIm::description ( ) const [virtual]
 

returns the "String" description of the projection operator.

Reimplemented from Proj.

real ProjIm::getStorage ( ) const [virtual]
 

Reimplemented from Proj.

int ProjIm::getWork ( ) const [virtual]
 

Reimplemented from Proj.

bool ProjIm::ok ( ) const [virtual]
 

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

Reimplemented from Proj.

bool ProjIm::rebindDOF ( DegFreeFE & coarse,
DegFreeFE & fine ) [virtual]
 

connects the projection operator to two "DegFreeFE" objects, one for the coarse and one for the fine grid.

Reimplemented from Proj.

void ProjIm::scale ( const LinEqVector & s,
TransposeMode t ) [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.

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

See documentation of one of the overloaded functions.

Reimplemented from Proj.


Member Data Documentation

Handle(DegFreeFE) ProjIm::coarseDeg [protected]
 

Handle(DegFreeFE) ProjIm::fineDeg [protected]
 


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