FrameTL::EllipticEquation< IBASIS, DIM > Class Template Reference

#include <elliptic_equation.h>

Inherits WaveletTL::FullyDiagonalEnergyNormPreconditioner<AggregatedFrame<IBASIS,DIM>::Index>.

List of all members.

Public Types

typedef AggregatedFrame
< IBASIS, DIM > 
Frame
typedef AggregatedFrame
< IBASIS, DIM > 
WaveletBasis
typedef Frame::Index Index

Public Member Functions

 EllipticEquation (const EllipticBVP< DIM > *ell_bvp, const AggregatedFrame< IBASIS, DIM > *frame, const int jmax)
const AggregatedFrame< IBASIS,
DIM > & 
frame () const
const EllipticBVP< DIM > & get_bvp () const
const AggregatedFrame< IBASIS,
DIM > & 
basis () const
double operator_order () const
double D (const typename AggregatedFrame< IBASIS, DIM >::Index &lambda) const
void rescale (InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > &coeffs, const int n) const
double a (const typename AggregatedFrame< IBASIS, DIM >::Index &lambda, const typename AggregatedFrame< IBASIS, DIM >::Index &nu) const
double norm_A () const
double norm_Ainv () const
void set_norm_A (const double _normA)
void set_Ainv (const double nAinv)
double s_star () const
double alphak (const unsigned int k) const
double f (const typename AggregatedFrame< IBASIS, DIM >::Index &lambda) const
void RHS (const double eta, InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > &coeffs) const
double F_norm () const
void set_bvp (const EllipticBVP< DIM > *)
void add_level (const Index &lambda, InfiniteVector< double, Index > &w, const int j, const double factor, const int J, const CompressionStrategy strategy) const

Static Public Member Functions

static bool local_operator ()

Static Public Attributes

static const int space_dimension = DIM

Protected Attributes

const EllipticBVP< DIM > * ell_bvp_
const AggregatedFrame< IBASIS,
DIM > * 
frame_


Detailed Description

template<class IBASIS, unsigned int DIM>
class FrameTL::EllipticEquation< IBASIS, DIM >

This class models the (preconditioned) infinite-dimensional matrix problem

$Au = D^{-1}LD^{-1}u = D^{-1}F$

when reformulating a symmetric, second-order elliptic boundary value problem in divergence form over some domain Omega in $R^d$ with boundary $\Gamma=\partial \Omega$, with homogeneous Dirichlet boundary conditions

$-\mbox{div}(a(x)\nabla u(x)) + q(x)u(x) = f(x)$ in $\Omega$
$u(x) = 0$ on $\Gamma$

The corresponding bilinear form in

$L = (a(\psi_\nu,\psi_\lambda))_{\lambda,\nu}$

is

$a(u,v) = \int_\Omega \langle a(x) \nabla u(x), \nabla v(x)\rangle dx + \int_\Omega q(x) u(x) v(x) dx$

and the right-hand side is

$f(v) = \int_\Omega f(x) v(x) dx$.

The evaluation of $a(.,.)$ and $f$ is possible for arguments $\psi_\lambda$ which stem from an aggregated wavelet frame $\Psi=\{\psi_\lambda\}$ of the corresponding function space over $\Omega$.

Template Parameters:
IBASIS The type of interval basis underlying the construction of the aggregated frame.
DIM The dimension of the underlying domain.

Member Typedef Documentation

template<class IBASIS , unsigned int DIM>
typedef AggregatedFrame<IBASIS,DIM> FrameTL::EllipticEquation< IBASIS, DIM >::Frame

The frame type.

template<class IBASIS , unsigned int DIM>
typedef Frame::Index FrameTL::EllipticEquation< IBASIS, DIM >::Index

The index type.

template<class IBASIS , unsigned int DIM>
typedef AggregatedFrame<IBASIS,DIM> FrameTL::EllipticEquation< IBASIS, DIM >::WaveletBasis

Dummy typedef to be compatible with WaveletTL routines.


Constructor & Destructor Documentation

template<class IBASIS , unsigned int DIM>
FrameTL::EllipticEquation< IBASIS, DIM >::EllipticEquation ( const EllipticBVP< DIM > *  ell_bvp,
const AggregatedFrame< IBASIS, DIM > *  frame,
const int  jmax 
) [inline]

Constructor. The diagonal of the stiffness matrix and the coefficients of the right-hand side are precomputed between minimal and maximal level.

Parameters:
ell_bvp The elliptic boundary value problem that is modeled.
frame Pointer to the aggragated frame that is used for discretization.
jmax The maximal level of resolution that is considered.


Member Function Documentation

template<class IBASIS , unsigned int DIM>
double FrameTL::EllipticEquation< IBASIS, DIM >::a ( const typename AggregatedFrame< IBASIS, DIM >::Index lambda,
const typename AggregatedFrame< IBASIS, DIM >::Index nu 
) const [inline]

Evaluate the (unpreconditioned) bilinear form a.

template<class IBASIS , unsigned int DIM>
void FrameTL::EllipticEquation< IBASIS, DIM >::add_level ( const Index lambda,
InfiniteVector< double, Index > &  w,
const int  j,
const double  factor,
const int  J,
const CompressionStrategy  strategy 
) const [inline]

Multiplies the stiffness matrix entries of column lambda on level j of the compressed martrix A_J by factor and adds the result to w.

template<class IBASIS , unsigned int DIM>
double FrameTL::EllipticEquation< IBASIS, DIM >::alphak ( const unsigned int  k  )  const [inline]

Estimate the compression constants alpha_k in $\|A-A_k\| \leq \alpha_k 2^{-sk}$

template<class IBASIS , unsigned int DIM>
const AggregatedFrame<IBASIS,DIM>& FrameTL::EllipticEquation< IBASIS, DIM >::basis (  )  const [inline]

Read access to the frame. The routine is called basis() to be compatible with the routines in WaveletTL's compression.h.

template<class IBASIS , unsigned int DIM>
double FrameTL::EllipticEquation< IBASIS, DIM >::D ( const typename AggregatedFrame< IBASIS, DIM >::Index lambda  )  const [inline]

Evaluate the diagonal preconditioner D.

template<class IBASIS , unsigned int DIM>
double FrameTL::EllipticEquation< IBASIS, DIM >::f ( const typename AggregatedFrame< IBASIS, DIM >::Index lambda  )  const [inline]

Evaluate the (unpreconditioned) right-hand side f.

template<class IBASIS , unsigned int DIM>
double FrameTL::EllipticEquation< IBASIS, DIM >::F_norm (  )  const [inline]

Compute (or estimate) the $\ell_2$ norm of the right-hand side.

template<class IBASIS , unsigned int DIM>
const AggregatedFrame<IBASIS,DIM>& FrameTL::EllipticEquation< IBASIS, DIM >::frame (  )  const [inline]

Read access to the frame.

template<class IBASIS , unsigned int DIM>
const EllipticBVP<DIM>& FrameTL::EllipticEquation< IBASIS, DIM >::get_bvp (  )  const [inline]

Read access to the boundary value problem.

template<class IBASIS , unsigned int DIM>
static bool FrameTL::EllipticEquation< IBASIS, DIM >::local_operator (  )  [inline, static]

Differential operators are local.

template<class IBASIS , unsigned int DIM>
double FrameTL::EllipticEquation< IBASIS, DIM >::norm_A (  )  const [inline]

Estimate the spectral norm $\|A\|$.

template<class IBASIS , unsigned int DIM>
double FrameTL::EllipticEquation< IBASIS, DIM >::norm_Ainv (  )  const [inline]

Returns spectral norm $\|A^{-1}\|$. An estimate for $\|A^{-1}\|$ has to be externally computed and to be set during initialization of the program.

template<class IBASIS , unsigned int DIM>
double FrameTL::EllipticEquation< IBASIS, DIM >::operator_order (  )  const [inline]

Order of the operator.

template<class IBASIS , unsigned int DIM>
void FrameTL::EllipticEquation< IBASIS, DIM >::rescale ( InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > &  coeffs,
const int  n 
) const [inline]

Rescale a coefficient vector by an integer power of D, $c \mapsto D^{n}c$.

template<class IBASIS , unsigned int DIM>
void FrameTL::EllipticEquation< IBASIS, DIM >::RHS ( const double  eta,
InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > &  coeffs 
) const [inline]

Approximate the wavelet coefficient set of the preconditioned right-hand side within a prescribed $\ell_2$ error tolerance.

template<class IBASIS , unsigned int DIM>
double FrameTL::EllipticEquation< IBASIS, DIM >::s_star (  )  const [inline]

Estimate compressibility exponent $s^\ast$.

template<class IBASIS , unsigned int DIM>
void FrameTL::EllipticEquation< IBASIS, DIM >::set_Ainv ( const double  nAinv  )  [inline]

Sets estimate for $\|A^{-1}\|$.

template<class IBASIS , unsigned int DIM>
void FrameTL::EllipticEquation< IBASIS, DIM >::set_bvp ( const EllipticBVP< DIM > *  bvp  )  [inline]

Set the boundary value problem.

template<class IBASIS , unsigned int DIM>
void FrameTL::EllipticEquation< IBASIS, DIM >::set_norm_A ( const double  _normA  )  [inline]

Sets estimate for $\|A\|$.


Member Data Documentation

template<class IBASIS , unsigned int DIM>
const EllipticBVP<DIM>* FrameTL::EllipticEquation< IBASIS, DIM >::ell_bvp_ [protected]

The elliptic boundary value problem.

template<class IBASIS , unsigned int DIM>
const AggregatedFrame<IBASIS,DIM>* FrameTL::EllipticEquation< IBASIS, DIM >::frame_ [protected]

The underlying aggregated frame.

template<class IBASIS , unsigned int DIM>
const int FrameTL::EllipticEquation< IBASIS, DIM >::space_dimension = DIM [static]

Space dimension of the problem.


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

Generated on Fri Mar 26 17:28:16 2010 by  doxygen 1.5.8