Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
aglowav2::Operator00< F > Class Template Reference

Stiffness matrix compressed with the agglomerated wavelets. More...

#include <operator.hh>

Inheritance diagram for aglowav2::Operator00< F >:
Inheritance graph
[legend]
Collaboration diagram for aglowav2::Operator00< F >:
Collaboration graph
[legend]

List of all members.

Classes

struct  Matrix
 Structure to hold one matrix row/column. More...
struct  Pattern
 Structure to hold one run of the sparsity pattern. More...

Public Types

typedef Cmplxtype< F >::type c_type
 Real type of data type.
typedef Realtype< F >::type r_type
 Real type of data type.
typedef F type
 Type of data, e.g. matrix entries.

Public Member Functions

const F * diag () const
 Returns the diagonal of the stiffness matrix (for preconditioning)
virtual const uint dimX () const
 Returns the size of the image space of the operator (number of rows of the corresponding matrix)
virtual const uint dimY () const
 Returns the size of the source space of the operator (number of columns of the corresponding matrix)
uint maxMemory () const
uint memory () const
 Returns the memory used by the operator.
virtual void operator() (const Function< c_type > &fncY, Function< c_type > &fncX)
 Application operator for complex function fncY.
void operator() (const concepts::Vector< F > &fncY, concepts::Vector< F > &fncX)
void operator() (const concepts::Function< F > &fncY, concepts::Function< F > &fncX)
 Application operator.
virtual void operator() (const Function< r_type > &fncY, Function< F > &fncX)
 Application operator for real function fncY.
 Operator00 (AglowavBF00< F > &bf, const Haar3d0< F > &spc, const Delta< F > &delta)
 Constructor.
void pattern (std::ostream &os, uint nr) const
 Writes sparsity pattern to str (Matlab format)
void patternL (std::ostream &os, uint nr) const
 Sorts unknowns by level and writes than sparsity pattern to str (Matlab format)
const concepts::Space< F > & spaceX () const
 Returns the image space of the operator.
const concepts::Space< F > & spaceY () const
 Returns the source space of the operator.
void uncompress (std::ostream &os, uint nr) const
 Writes matrix to os in the Matlab sparse matrix format.
void uncompressL (std::ostream &os, uint nr) const
 Sorts unknowns by level and writes than the matrix to os in the Matlab sparse matrix format.
 ~Operator00 ()
 Destructor.

Protected Member Functions

std::ostream & info (std::ostream &os) const
 Some information about the operator.

Protected Attributes

uint dimX_
 Dimension of image space and the source space.
uint dimY_

Private Member Functions

void compress_ (uint dim, uint idx, F valbuf[], uint nval, Pattern patbuf[], uint npat)
 Compresses matrix lines.
void dstore_ (concepts::ElementMatrix< F > &A, uint idx, F **val, Pattern **pat)
 Stores diagonal part in val and diag_.
void lstore_ (concepts::ElementMatrix< F > &A, uint idx, F *val, Pattern **pat)
 Stores lower part in val.
void ustore_ (concepts::ElementMatrix< F > &A, uint idx, F **val, Pattern *pat)
 Stores upper part in val.

Private Attributes

F * diag_
 Diagonal of the matrix.
uint maxmem_
 Maximal memory used for the construction of the matrix (incl.
uint mem_
 Memory used by the operator.
Matrixmtx_
 Matrix entries in sparse format.
uint n_
 Dimension of the space.
uint nentry_
 Number of entries in the compressed matrix.
const Haar3d0< F > & spc_
 Source and image space of the operator.

Detailed Description

template<class F = concepts::Real>
class aglowav2::Operator00< F >

Stiffness matrix compressed with the agglomerated wavelets.

Parameters:
FField (Real or Cmplx)

Definition at line 89 of file operator.hh.


Member Typedef Documentation

template<class F>
typedef Cmplxtype<F>::type concepts::Operator< F >::c_type [inherited]
template<class F>
typedef Realtype<F>::type concepts::Operator< F >::r_type [inherited]
template<class F>
typedef F concepts::Operator< F >::type [inherited]

Type of data, e.g. matrix entries.

Reimplemented in concepts::AfterIteration< F >, and concepts::SubMatrixN< F >.

Definition at line 43 of file compositions.hh.


Constructor & Destructor Documentation

template<class F = concepts::Real>
aglowav2::Operator00< F >::Operator00 ( AglowavBF00< F > &  bf,
const Haar3d0< F > &  spc,
const Delta< F > &  delta 
)

Constructor.

Parameters:
bfBilinear form
spcAgglomerated wavelet space
deltaTruncation matrix
template<class F = concepts::Real>
aglowav2::Operator00< F >::~Operator00 ( )

Destructor.


Member Function Documentation

template<class F = concepts::Real>
void aglowav2::Operator00< F >::compress_ ( uint  dim,
uint  idx,
valbuf[],
uint  nval,
Pattern  patbuf[],
uint  npat 
) [private]

Compresses matrix lines.

template<class F = concepts::Real>
const F* aglowav2::Operator00< F >::diag ( ) const [inline]

Returns the diagonal of the stiffness matrix (for preconditioning)

Definition at line 115 of file operator.hh.

template<class F>
virtual const uint concepts::Operator< F >::dimX ( ) const [inline, virtual, inherited]

Returns the size of the image space of the operator (number of rows of the corresponding matrix)

Definition at line 87 of file compositions.hh.

template<class F>
virtual const uint concepts::Operator< F >::dimY ( ) const [inline, virtual, inherited]

Returns the size of the source space of the operator (number of columns of the corresponding matrix)

Definition at line 92 of file compositions.hh.

template<class F = concepts::Real>
void aglowav2::Operator00< F >::dstore_ ( concepts::ElementMatrix< F > &  A,
uint  idx,
F **  val,
Pattern **  pat 
) [private]

Stores diagonal part in val and diag_.

template<class F = concepts::Real>
std::ostream& aglowav2::Operator00< F >::info ( std::ostream &  os) const [protected, virtual]

Some information about the operator.

Reimplemented from concepts::Operator< F >.

template<class F = concepts::Real>
void aglowav2::Operator00< F >::lstore_ ( concepts::ElementMatrix< F > &  A,
uint  idx,
F *  val,
Pattern **  pat 
) [private]

Stores lower part in val.

template<class F = concepts::Real>
uint aglowav2::Operator00< F >::maxMemory ( ) const [inline]

Definition at line 121 of file operator.hh.

template<class F = concepts::Real>
uint aglowav2::Operator00< F >::memory ( ) const [inline]

Returns the memory used by the operator.

Definition at line 117 of file operator.hh.

template<class F>
virtual void concepts::Operator< F >::operator() ( const Function< r_type > &  fncY,
Function< F > &  fncX 
) [virtual, inherited]

Application operator for real function fncY.

Computes fncX = A(fncY) where A is this operator.

fncX becomes the type of the operator, for real data it becomes real, for complex data it becomes complex.

In derived classes its enough to implement the operator() for real Operator's. If a complex counterpart is not implemented, the function fncY is transformed to a complex function and then the application operator for complex functions is called.

If in a derived class the operator() for real Operator's is not implemented, a exception is thrown from here.

Reimplemented in concepts::VecOperator< F >, concepts::Multiple< F >, concepts::LiCoI< F >, concepts::LiCo< F >, concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::DiagonalSolver< F >, concepts::Matrix< F >, concepts::Permutation< F >, concepts::SparseMatrix< F >, concepts::SubMatrixN< F >, concepts::Transpose< F >, concepts::VecOperator< Real >, concepts::DenseMatrix< Cmplx >, concepts::DenseMatrix< Real >, concepts::DiagonalMatrix< Real >, concepts::Matrix< concepts::Real >, concepts::Matrix< F::type >, concepts::Matrix< FX >, concepts::Matrix< T >, concepts::Matrix< Cmplx >, concepts::Matrix< Real >, concepts::Permutation< Real >, concepts::SparseMatrix< concepts::Real >, concepts::SparseMatrix< FX >, concepts::SparseMatrix< T >, concepts::SparseMatrix< Cmplx >, and concepts::SparseMatrix< Real >.

template<class F = concepts::Real>
void aglowav2::Operator00< F >::operator() ( const concepts::Function< F > &  fncY,
concepts::Function< F > &  fncX 
)

Application operator.

Computes fncX = A(fncY) where A is this operator

template<class F>
virtual void concepts::Operator< F >::operator() ( const Function< c_type > &  fncY,
Function< c_type > &  fncX 
) [virtual, inherited]

Application operator for complex function fncY.

Computes fncX = A(fncY) where A is this operator. fncX becomes complex.

In derived classes its enough to implement the operator() for complex Operator's. If a real counterpart is not implemented, the function fncY is splitted into real and imaginary part and the application operator for real functions is called for each. Then the result is combined.

If in a derived class the operator() for complex Operator's is not implemented, a exception is thrown from here.

Reimplemented in concepts::VecOperator< F >, concepts::Multiple< F >, concepts::LiCoI< F >, concepts::LiCo< F >, concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::DiagonalSolver< F >, concepts::Matrix< F >, concepts::Permutation< F >, concepts::SparseMatrix< F >, concepts::SubMatrixN< F >, concepts::Transpose< F >, concepts::VecOperator< Real >, concepts::DenseMatrix< Cmplx >, concepts::DenseMatrix< Real >, concepts::DiagonalMatrix< Real >, concepts::Matrix< concepts::Real >, concepts::Matrix< F::type >, concepts::Matrix< FX >, concepts::Matrix< T >, concepts::Matrix< Cmplx >, concepts::Matrix< Real >, concepts::Permutation< Real >, concepts::SparseMatrix< concepts::Real >, concepts::SparseMatrix< FX >, concepts::SparseMatrix< T >, concepts::SparseMatrix< Cmplx >, and concepts::SparseMatrix< Real >.

template<class F = concepts::Real>
void aglowav2::Operator00< F >::operator() ( const concepts::Vector< F > &  fncY,
concepts::Vector< F > &  fncX 
)
template<class F = concepts::Real>
void aglowav2::Operator00< F >::pattern ( std::ostream &  os,
uint  nr 
) const

Writes sparsity pattern to str (Matlab format)

template<class F = concepts::Real>
void aglowav2::Operator00< F >::patternL ( std::ostream &  os,
uint  nr 
) const

Sorts unknowns by level and writes than sparsity pattern to str (Matlab format)

template<class F = concepts::Real>
const concepts::Space<F>& aglowav2::Operator00< F >::spaceX ( ) const [inline]

Returns the image space of the operator.

Definition at line 110 of file operator.hh.

template<class F = concepts::Real>
const concepts::Space<F>& aglowav2::Operator00< F >::spaceY ( ) const [inline]

Returns the source space of the operator.

Definition at line 112 of file operator.hh.

template<class F = concepts::Real>
void aglowav2::Operator00< F >::uncompress ( std::ostream &  os,
uint  nr 
) const

Writes matrix to os in the Matlab sparse matrix format.

template<class F = concepts::Real>
void aglowav2::Operator00< F >::uncompressL ( std::ostream &  os,
uint  nr 
) const

Sorts unknowns by level and writes than the matrix to os in the Matlab sparse matrix format.

template<class F = concepts::Real>
void aglowav2::Operator00< F >::ustore_ ( concepts::ElementMatrix< F > &  A,
uint  idx,
F **  val,
Pattern pat 
) [private]

Stores upper part in val.


Member Data Documentation

template<class F = concepts::Real>
F* aglowav2::Operator00< F >::diag_ [private]

Diagonal of the matrix.

Definition at line 191 of file operator.hh.

template<class F>
uint concepts::Operator< F >::dimX_ [protected, inherited]

Dimension of image space and the source space.

Definition at line 96 of file compositions.hh.

template<class F>
uint concepts::Operator< F >::dimY_ [protected, inherited]

Definition at line 96 of file compositions.hh.

template<class F = concepts::Real>
uint aglowav2::Operator00< F >::maxmem_ [private]

Maximal memory used for the construction of the matrix (incl.

bilinear form)

Definition at line 186 of file operator.hh.

template<class F = concepts::Real>
uint aglowav2::Operator00< F >::mem_ [private]

Memory used by the operator.

Definition at line 182 of file operator.hh.

template<class F = concepts::Real>
Matrix* aglowav2::Operator00< F >::mtx_ [private]

Matrix entries in sparse format.

Definition at line 179 of file operator.hh.

template<class F = concepts::Real>
uint aglowav2::Operator00< F >::n_ [private]

Dimension of the space.

Definition at line 177 of file operator.hh.

template<class F = concepts::Real>
uint aglowav2::Operator00< F >::nentry_ [private]

Number of entries in the compressed matrix.

Definition at line 188 of file operator.hh.

template<class F = concepts::Real>
const Haar3d0<F>& aglowav2::Operator00< F >::spc_ [private]

Source and image space of the operator.

Definition at line 175 of file operator.hh.


The documentation for this class was generated from the following file:

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)