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  

ProjInterp Class Reference

projection operators between matching grids. More...

#include <ProjInterp.h>

Inheritance diagram for ProjInterp::

Proj HandleId List of all members.

Public Methods

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

Protected Methods

virtual void interpolate (GridFE &coarse, GridFE &fine)
virtual void valuePt (GridFE &coarse, int &element, Ptv(real)&loc_pt, const Ptv(real) &x)

Protected Attributes

real eps
int ndpn
int row
int counter
int nhits
VecSimple(int) from
VecSimple(int) to
int nde

Detailed Description

projection operators between matching grids.

NAME: ProjInterp - projection operators between matching grids

DESCRIPTION:

This projection operator interpolates a field using a compact vector-based representation. The operator is filled automatically once given access to the "DegFreeFE" objects for the two involved grids.


Constructor & Destructor Documentation

ProjInterp::ProjInterp ( const char * description_ = "Projection operator" )
 

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

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

See documentation of one of the overloaded constructor.

ProjInterp::~ProjInterp ( ) [virtual]
 


Member Function Documentation

LinEqMatrix & ProjInterp::A ( ) [virtual]
 

returns access to the matrix representation of the projection operator.

Reimplemented from Proj.

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

returns the "String" description of the projection operator.

Reimplemented from Proj.

real ProjInterp::getStorage ( ) const [virtual]
 

Reimplemented from Proj.

int ProjInterp::getWork ( ) const [virtual]
 

Reimplemented from Proj.

void ProjInterp::interpolate ( GridFE & coarse,
GridFE & fine ) [protected, virtual]
 

bool ProjInterp::ok ( ) const [virtual]
 

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

Reimplemented from Proj.

bool ProjInterp::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 ProjInterp::scale ( real s ) [virtual]
 

See documentation of one of the overloaded functions.

Reimplemented from Proj.

void ProjInterp::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.

void ProjInterp::valuePt ( GridFE & coarse,
int & element,
Ptv(real)& loc_pt,
const Ptv(real) & x ) [protected, virtual]
 


Member Data Documentation

int ProjInterp::counter [protected]
 

real ProjInterp::eps [protected]
 

VecSimple(int) ProjInterp::from [protected]
 

int ProjInterp::nde [protected]
 

int ProjInterp::ndpn [protected]
 

int ProjInterp::nhits [protected]
 

int ProjInterp::row [protected]
 

VecSimple(int) ProjInterp::to [protected]
 


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