#include <ProjInterpSparse.h>
Inheritance diagram for ProjInterpSparse::

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 |
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
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'.
|
|
See class "Proj". Notice that two "DegFreeFE" objects must be supplied by use of "rebindDOF". |
|
|
See documentation of one of the overloaded constructor. |
|
|
|
|
|
returns the "String" description of the projection operator. Reimplemented from ProjMatSparse. Reimplemented in MxProj. |
|
|
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. |
|
|
Reimplemented in MxProj. |
|
|
Reimplemented from ProjMatSparse. Reimplemented in MxProj. |
|
|
connects the projection operator to two "DegFreeFE" objects, one for the coarse and one for the fine grid. Reimplemented from Proj. Reimplemented in MxProj. |
|
|
Reimplemented in MxProj. |
|
|
|
|
|
Reimplemented in MxProj. |
|
|
|
|
|
|
|
|
Reimplemented in MxProj. |