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

Public Methods | |
| Proj (const char *description_="Projection operator") | |
| Proj (const Proj_prm &prm, const char *description_="Projection operator") | |
| virtual | ~Proj () |
| virtual bool | rebindDOF (DegFreeFE &coarse, DegFreeFE &fine) |
| virtual bool | rebindMatrix (LinEqMatrix &mat) |
| virtual bool | rebindMatSparse (MatSparse(NUMT) &m) |
| virtual bool | rebindMat (Mat(NUMT) &m) |
| virtual bool | rebindBoxRef (DegFreeFE &coarse, const Ptv(int) &refinement_factor) |
| virtual void | init (bool optimize=false) |
| virtual bool | ok () const |
| virtual void | apply (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode, bool add_to_d=false)=0 |
| virtual void | scale (const LinEqVector &s, TransposeMode tpmode)=0 |
| virtual void | scale (real s)=0 |
| virtual int | getWork () const=0 |
| virtual real | getStorage () const=0 |
| virtual LinEqMatrix& | A ()=0 |
| virtual String | description () const |
| virtual String | prm2name () const |
| virtual void | print (Os os, int output=1) const |
Public Attributes | |
| String | desc |
NAME: Proj - base class for Projection operators between grids
DESCRIPTION:
This is the base class for projection operators between grids, typically for use in multilevel methods. That is, the projection is typically used for transportation of data between grids with different resolution.
|
|
The constructors accepts a "String" argument naming the projection operator. One constructor also accepts a "Proj_prm" object, possibly containing further parameters. The function "init" should be called prior to use of the operator. |
|
|
See documentation of one of the overloaded constructor. |
|
|
|
|
|
returns access to the matrix representation of the projection operator. Reimplemented in ProjMatrix, ProjIm, and ProjInterp. |
|
|
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 in ProjMatrix, ProjIm, and ProjInterp. |
|
|
returns the "String" description of the projection operator. Reimplemented in ProjInterpSparse, ProjMatrix, ProjMatSparse, MxProj, ProjIm, ProjInterp, ProjInterpMat, ProjInterpSparseHier, and ProjMat. |
|
|
Reimplemented in ProjMatrix, ProjIm, and ProjInterp. |
|
|
Reimplemented in ProjMatrix, ProjIm, and ProjInterp. |
|
|
initializes the projection operator, if possible the peformance of the operator is optimized whenever the boolean argument is true. Reimplemented in ProjInterpSparse, and MxProj. |
|
|
returns true if the projection operator is in a consistent state. Reimplemented in ProjMatrix, ProjIm, and ProjInterp. |
|
|
Reimplemented in ProjInterpSparse, ProjMatrix, ProjMatSparse, and MxProj. |
|
|
returns the name of the class. |
|
|
for future use. |
|
|
connects the projection operator to two "DegFreeFE" objects, one for the coarse and one for the fine grid. Reimplemented in ProjInterpSparse, MxProj, ProjIm, ProjInterp, ProjInterpMat, and ProjInterpSparseHier. |
|
|
connects the projection operator to a "Mat" object, i.e., a dense matrix, which will be used to store the projection. Reimplemented in ProjMat. |
|
|
connects the projection operator to a "MatSparse" object, i.e., a sparse matrix, which will be used to store the projection. Reimplemented in ProjMatSparse. |
|
|
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 in ProjMatrix. |
|
|
See documentation of one of the overloaded functions. Reimplemented in ProjMatrix, ProjMatSparse, ProjIm, ProjInterp, and ProjMat. |
|
|
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 in ProjMatrix, ProjMatSparse, ProjIm, ProjInterp, and ProjMat. |
|
|
|