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

#include <biharmonic_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

 BiharmonicEquation (const BiharmonicBVP< DIM > *bih_bvp, const AggregatedFrame< IBASIS, DIM > *frame, const int jmax)
const AggregatedFrame< IBASIS,
DIM > & 
frame () const
const BiharmonicBVP< DIM > & get_bvp () const
const AggregatedFrame< IBASIS,
DIM > & 
basis () const
double D (const typename AggregatedFrame< IBASIS, DIM >::Index &lambda) const
double a (const typename AggregatedFrame< IBASIS, DIM >::Index &lambda, const typename AggregatedFrame< IBASIS, DIM >::Index &nu) const
double norm_A () 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 BiharmonicBVP< DIM > *)

Static Public Member Functions

static bool local_operator ()
static double operator_order ()

Static Public Attributes

static const int space_dimension = DIM

Protected Types

typedef std::map< Index1D
< IBASIS >, double > 
Column1D
typedef std::map< Index1D
< IBASIS >, Column1D > 
One_D_IntegralCache

Protected Attributes

const BiharmonicBVP< DIM > * bih_bvp_
const AggregatedFrame< IBASIS,
DIM > * 
frame_
const int jmax_
One_D_IntegralCache one_d_integrals


Detailed Description

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

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

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

when reformulating a symmetric, forth-order elliptic boundary value problem in divergence form over some domain Omega in R^d with boundary Gamma=dOmega, with homogeneous Dirichlet/Neumann/Robin boundary conditions

-Delta^2 u(x) = f(x) in Omega u(x) = 0 on Gamma_D du/dn(x) = 0 on Gamma.

The corresponding bilinear form in

L = (a(,))_{,}

is

a(u,v) = <Delta u(x), Delta v(x)> dx

and the right-hand side is

f(v) = f(x)*v(x) dx.

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


Member Typedef Documentation

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

make template argument accessible

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

make template argument accessible

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

dummy typedef to be compatible with WaveletTL routines


Constructor & Destructor Documentation

template<class IBASIS , unsigned int DIM>
FrameTL::BiharmonicEquation< IBASIS, DIM >::BiharmonicEquation ( const BiharmonicBVP< DIM > *  bih_bvp,
const AggregatedFrame< IBASIS, DIM > *  frame,
const int  jmax 
) [inline]

constructor


Member Function Documentation

template<class IBASIS , unsigned int DIM>
double FrameTL::BiharmonicEquation< 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>
double FrameTL::BiharmonicEquation< IBASIS, DIM >::alphak ( const unsigned int  k  )  const [inline]

estimate the compression constants alpha_k in ||A-A_k|| <= alpha_k * 2^{-s*k}

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

read access to the frame but with a somewhat weird function name. this is just a first hack to be able to use routines in WaveletTL's compression.h

template<class IBASIS , unsigned int DIM>
double FrameTL::BiharmonicEquation< 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::BiharmonicEquation< 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::BiharmonicEquation< IBASIS, DIM >::F_norm (  )  const [inline]

compute (or estimate) ||F||_2

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

read access to the frame

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

get the boundary value problem

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

differential operators are local

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

estimate the spectral norm ||A||

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

order of the operator

template<class IBASIS , unsigned int DIM>
void FrameTL::BiharmonicEquation< 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 F within a prescribed error tolerance

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

estimate compressibility exponent s^*

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

sets estimate for ||A^{-1}||

template<class IBASIS , unsigned int DIM>
void FrameTL::BiharmonicEquation< IBASIS, DIM >::set_bvp ( const BiharmonicBVP< DIM > *   ) 

set the boundary value problem

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

sets estimate for ||A||


Member Data Documentation

template<class IBASIS , unsigned int DIM>
const BiharmonicBVP<DIM>* FrameTL::BiharmonicEquation< IBASIS, DIM >::bih_bvp_ [protected]

corresponding elliptic boundary value problem

template<class IBASIS , unsigned int DIM>
One_D_IntegralCache FrameTL::BiharmonicEquation< IBASIS, DIM >::one_d_integrals [mutable, protected]

cache for one dimensional integrals ONLY USED TOGETHER WITH TrivialAffine QUADRATURE RULE OPTION

template<class IBASIS , unsigned int DIM>
const int FrameTL::BiharmonicEquation< 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