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

#include <operator.hh>

Inheritance diagram for aglowav2::Operator00< F >:
concepts::Operator< concepts::Real >

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< concepts::Real >::type c_type
 Real type of data type. More...
 
typedef Realtype< concepts::Real >::type r_type
 Real type of data type. More...
 
typedef concepts::Real type
 Type of data, e.g. matrix entries. More...
 

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

Private Member Functions

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

Private Attributes

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

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 91 of file operator.hh.

Member Typedef Documentation

◆ c_type

typedef Cmplxtype<concepts::Real >::type concepts::Operator< concepts::Real >::c_type
inherited

Real type of data type.

Definition at line 49 of file compositions.hh.

◆ r_type

typedef Realtype<concepts::Real >::type concepts::Operator< concepts::Real >::r_type
inherited

Real type of data type.

Definition at line 47 of file compositions.hh.

◆ type

Type of data, e.g. matrix entries.

Definition at line 45 of file compositions.hh.

Constructor & Destructor Documentation

◆ Operator00()

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

◆ ~Operator00()

template<class F = concepts::Real>
aglowav2::Operator00< F >::~Operator00 ( )

Destructor.

Member Function Documentation

◆ compress_()

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.

◆ diag()

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 117 of file operator.hh.

◆ dimX()

virtual const uint concepts::Operator< concepts::Real >::dimX ( ) const
inlinevirtualinherited

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

Definition at line 93 of file compositions.hh.

◆ dimY()

virtual const uint concepts::Operator< concepts::Real >::dimY ( ) const
inlinevirtualinherited

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

Definition at line 98 of file compositions.hh.

◆ dstore_()

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_.

◆ info()

template<class F = concepts::Real>
std::ostream& aglowav2::Operator00< F >::info ( std::ostream &  os) const
protectedvirtual

Some information about the operator.

Reimplemented from concepts::Operator< concepts::Real >.

◆ lstore_()

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.

◆ maxMemory()

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

Definition at line 123 of file operator.hh.

◆ memory()

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

Returns the memory used by the operator.

Definition at line 119 of file operator.hh.

◆ operator()() [1/5]

virtual void concepts::Operator< concepts::Real >::operator() ( )
virtualinherited

Application operator without argument.

◆ operator()() [2/5]

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

◆ operator()() [3/5]

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

◆ operator()() [4/5]

virtual void concepts::Operator< concepts::Real >::operator() ( const Function< c_type > &  fncY,
Function< c_type > &  fncX 
)
virtualinherited

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.

◆ operator()() [5/5]

virtual void concepts::Operator< concepts::Real >::operator() ( const Function< r_type > &  fncY,
Function< F > &  fncX 
)
virtualinherited

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.

◆ pattern()

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

Writes sparsity pattern to str (Matlab format)

◆ patternL()

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)

◆ show_messages()

virtual void concepts::Operator< concepts::Real >::show_messages ( )
inlinevirtualinherited

Definition at line 100 of file compositions.hh.

◆ spaceX()

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 112 of file operator.hh.

◆ spaceY()

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 114 of file operator.hh.

◆ uncompress()

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.

◆ uncompressL()

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.

◆ ustore_()

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

◆ diag_

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

Diagonal of the matrix.

Definition at line 193 of file operator.hh.

◆ dimX_

uint concepts::Operator< concepts::Real >::dimX_
protectedinherited

Dimension of image space and the source space.

Definition at line 104 of file compositions.hh.

◆ dimY_

uint concepts::Operator< concepts::Real >::dimY_
protectedinherited

Definition at line 104 of file compositions.hh.

◆ maxmem_

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 188 of file operator.hh.

◆ mem_

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

Memory used by the operator.

Definition at line 184 of file operator.hh.

◆ mtx_

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

Matrix entries in sparse format.

Definition at line 181 of file operator.hh.

◆ n_

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

Dimension of the space.

Definition at line 179 of file operator.hh.

◆ nentry_

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

Number of entries in the compressed matrix.

Definition at line 190 of file operator.hh.

◆ spc_

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

Source and image space of the operator.

Definition at line 177 of file operator.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich