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  

ProjInterpSparse Class Reference

sparse interpolation operators between grids. More...

#include <ProjInterpSparse.h>

Inheritance diagram for ProjInterpSparse::

ProjMatSparse ProjMatrix Proj HandleId MxProj List of all members.

Public Methods

 ProjInterpSparse (const char *description_="ProjInterpSparse operator")
 ProjInterpSparse (const Proj_prm &prm, const char *description_="Projection operator")
virtual ~ProjInterpSparse ()
virtual bool rebindDOF (DegFreeFE &coarse, DegFreeFE &fine)
virtual String description () const
virtual void print (Os, int output=1) const

Protected Methods

virtual void interpolate (GridFE &coarse, GridFE &fine)
virtual void init (bool optimize=true)
virtual void valuePt (GridFE &coarse, int &element, Ptv(real) &loc_pt, const Ptv(real) &x)
virtual void valueElm (int elm_no, const Ptv(real) &local_pt)

Protected Attributes

real eps
int ndpn
int ncount
FiniteElement globfe

Detailed Description

sparse interpolation operators between grids.

NAME: ProjInterpSparse - sparse interpolation operators between grids

DESCRIPTION:

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

This projection operator is the standard L2 projection, used in multilevel methods for finite elements.

Remark: There is an important difference between finite element methods and finite difference methods that becomes important when we consider projection operators:

Consider the linear system resulting from finite difference method:

    Au=b 

However, when using the finite element method, with resulting linear system:

    Au=b
differently. b_i ~ b(x_i)*(the volume of the element).

This means that we can not use the same projection on both u and b.

This projection is "designed" for linear multigrid.

Consider the following systems in a multilevel method:

A_l u_l = b_l, where l is the level index, l increase as the gridsize decrease.

with the corresponding projection operator P[from,to].

Then the following transformation are valid:

P[r_l+1, r_l], project the residual to a coarser grid. P[u_l, u_l+1], prolongate the solution to a finer grid.

This projection operator only works with DegFreeFEs using the special numbering. Use MxProj for the more general 'general numbering'.


Constructor & Destructor Documentation

ProjInterpSparse::ProjInterpSparse ( const char * description_ = "ProjInterpSparse operator" )
 

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

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

See documentation of one of the overloaded constructor.

ProjInterpSparse::~ProjInterpSparse ( ) [virtual]
 


Member Function Documentation

String ProjInterpSparse::description ( ) const [virtual]
 

returns the "String" description of the projection operator.

Reimplemented from ProjMatSparse.

Reimplemented in MxProj.

void ProjInterpSparse::init ( bool optimize = true ) [protected, virtual]
 

initializes the projection operator, if possible the peformance of the operator is optimized whenever the boolean argument is true.

Reimplemented from Proj.

Reimplemented in MxProj.

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

Reimplemented in MxProj.

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

Reimplemented from ProjMatSparse.

Reimplemented in MxProj.

bool ProjInterpSparse::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.

Reimplemented in MxProj.

void ProjInterpSparse::valueElm ( int elm_no,
const Ptv(real) & local_pt ) [protected, virtual]
 

Reimplemented in MxProj.

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


Member Data Documentation

real ProjInterpSparse::eps [protected]
 

Reimplemented in MxProj.

FiniteElement ProjInterpSparse::globfe [protected]
 

int ProjInterpSparse::ncount [protected]
 

int ProjInterpSparse::ndpn [protected]
 

Reimplemented in MxProj.


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