#include <biharmonic_equation.h>
Inherits WaveletTL::FullyDiagonalEnergyNormPreconditioner<AggregatedFrame<IBASIS,DIM>::Index>.
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 |
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.
typedef AggregatedFrame<IBASIS,DIM> FrameTL::BiharmonicEquation< IBASIS, DIM >::Frame |
make template argument accessible
typedef Frame::Index FrameTL::BiharmonicEquation< IBASIS, DIM >::Index |
make template argument accessible
typedef AggregatedFrame<IBASIS,DIM> FrameTL::BiharmonicEquation< IBASIS, DIM >::WaveletBasis |
dummy typedef to be compatible with WaveletTL routines
FrameTL::BiharmonicEquation< IBASIS, DIM >::BiharmonicEquation | ( | const BiharmonicBVP< DIM > * | bih_bvp, | |
const AggregatedFrame< IBASIS, DIM > * | frame, | |||
const int | jmax | |||
) | [inline] |
constructor
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;
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}
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
double FrameTL::BiharmonicEquation< IBASIS, DIM >::D | ( | const typename AggregatedFrame< IBASIS, DIM >::Index & | lambda | ) | const [inline] |
evaluate the diagonal preconditioner D
double FrameTL::BiharmonicEquation< IBASIS, DIM >::f | ( | const typename AggregatedFrame< IBASIS, DIM >::Index & | lambda | ) | const [inline] |
evaluate the (unpreconditioned) right-hand side f
double FrameTL::BiharmonicEquation< IBASIS, DIM >::F_norm | ( | ) | const [inline] |
compute (or estimate) ||F||_2
const AggregatedFrame<IBASIS,DIM>& FrameTL::BiharmonicEquation< IBASIS, DIM >::frame | ( | ) | const [inline] |
read access to the frame
const BiharmonicBVP<DIM>& FrameTL::BiharmonicEquation< IBASIS, DIM >::get_bvp | ( | ) | const [inline] |
get the boundary value problem
static bool FrameTL::BiharmonicEquation< IBASIS, DIM >::local_operator | ( | ) | [inline, static] |
differential operators are local
double FrameTL::BiharmonicEquation< IBASIS, DIM >::norm_A | ( | ) | const [inline] |
estimate the spectral norm ||A||
static double FrameTL::BiharmonicEquation< IBASIS, DIM >::operator_order | ( | ) | [inline, static] |
order of the operator
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
double FrameTL::BiharmonicEquation< IBASIS, DIM >::s_star | ( | ) | const [inline] |
estimate compressibility exponent s^*
void FrameTL::BiharmonicEquation< IBASIS, DIM >::set_Ainv | ( | const double | nAinv | ) | [inline] |
sets estimate for ||A^{-1}||
void FrameTL::BiharmonicEquation< IBASIS, DIM >::set_bvp | ( | const BiharmonicBVP< DIM > * | ) |
set the boundary value problem
void FrameTL::BiharmonicEquation< IBASIS, DIM >::set_norm_A | ( | const double | _normA | ) | [inline] |
sets estimate for ||A||
const BiharmonicBVP<DIM>* FrameTL::BiharmonicEquation< IBASIS, DIM >::bih_bvp_ [protected] |
corresponding elliptic boundary value problem
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
const int FrameTL::BiharmonicEquation< IBASIS, DIM >::space_dimension = DIM [static] |
space dimension of the problem