#include <simple_elliptic_equation.h>
Inherits WaveletTL::FullyDiagonalEnergyNormPreconditioner<AggregatedFrame<IBASIS,DIM>::Index>, and WaveletTL::FullyDiagonalEnergyNormPreconditioner<AggregatedFrame<IBASIS,DIM>::Index>.
Public Types | |
typedef AggregatedFrame < IBASIS, DIM > | Frame |
typedef AggregatedFrame < IBASIS, DIM > | WaveletBasis |
typedef Frame::Index | Index |
typedef AggregatedFrame < IBASIS, DIM > | Frame |
typedef AggregatedFrame < IBASIS, DIM > | WaveletBasis |
typedef Frame::Index | Index |
Public Member Functions | |
SimpleEllipticEquation (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 |
void | RHS (const double eta, const int p, InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > &coeffs) const |
double | F_norm () const |
double | F_norm_local (const int patch) 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 |
SimpleEllipticEquation (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 |
void | RHS (const double eta, const int p, InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > &coeffs) const |
double | F_norm_local (const int patch) 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 bool | local_operator () |
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 |
typedef std::map< Index1D < IBASIS >, double > | Column1D |
typedef std::map< Index1D < IBASIS >, Column1D > | One_D_IntegralCache |
Protected Attributes | |
const EllipticBVP< DIM > * | ell_bvp_ |
const AggregatedFrame< IBASIS, DIM > * | frame_ |
One_D_IntegralCache | one_d_integrals |
when reformulating a symmetric, second-order elliptic boundary value problem in divergence form over some domain Omega in with boundary
, with homogeneous Dirichlet boundary conditions
in
on
The corresponding bilinear form in
is
and the right-hand side is
.
The evaluation of and
is possible for arguments
which stem from an aggregated wavelet frame
of the corresponding function space over
.
WE ASSUME THAT THE COEFFICIENTS OF THE ELLIPTIC PDE ARE SEPERABLE AND SMOOTH AND THAT THE PATCHES OF THE UNDERLYING DOMAIN DECOMPOSITION ARE RECATANGULAR AND ALIGNED WITH THE CARTESIAN COORDINATES. FOR THIS SPECIAL CASE, a(.,.) CAN BE EXACTLY COMPUTED AT UNIT COST AND TENSOR PRODUCT STRUCTURE CAN BE EXPLOITED.
IBASIS | The type of interval basis underlying the construction of the aggregated frame. | |
DIM | The dimension of the underlying domain. |
typedef AggregatedFrame<IBASIS,DIM> FrameTL::SimpleEllipticEquation< IBASIS, DIM >::Frame |
The frame type.
typedef AggregatedFrame<IBASIS,DIM> FrameTL::SimpleEllipticEquation< IBASIS, DIM >::Frame |
The frame type.
typedef Frame::Index FrameTL::SimpleEllipticEquation< IBASIS, DIM >::Index |
The index type.
typedef Frame::Index FrameTL::SimpleEllipticEquation< IBASIS, DIM >::Index |
The index type.
typedef AggregatedFrame<IBASIS,DIM> FrameTL::SimpleEllipticEquation< IBASIS, DIM >::WaveletBasis |
Dummy typedef to be compatible with WaveletTL routines.
typedef AggregatedFrame<IBASIS,DIM> FrameTL::SimpleEllipticEquation< IBASIS, DIM >::WaveletBasis |
Dummy typedef to be compatible with WaveletTL routines.
FrameTL::SimpleEllipticEquation< IBASIS, DIM >::SimpleEllipticEquation | ( | 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.
ell_bvp | The elliptic boundary value problem that is modeled. | |
frame | Pointer to the aggregated frame that is used for discretization. | |
jmax | The maximal level of resolution that is considered. |
FrameTL::SimpleEllipticEquation< IBASIS, DIM >::SimpleEllipticEquation | ( | const EllipticBVP< DIM > * | ell_bvp, | |
const AggregatedFrame< IBASIS, DIM > * | frame, | |||
const int | jmax | |||
) |
Constructor. The diagonal of the stiffness matrix and the coefficients of the right-hand side are precomputed between minimal and maximal level.
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. |
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::a | ( | const typename AggregatedFrame< IBASIS, DIM >::Index & | lambda, | |
const typename AggregatedFrame< IBASIS, DIM >::Index & | nu | |||
) | const |
Evaluate the (unpreconditioned) bilinear form a.
double FrameTL::SimpleEllipticEquation< 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.
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::add_level | ( | const Index & | lambda, | |
InfiniteVector< double, Index > & | w, | |||
const int | j, | |||
const double | factor, | |||
const int | J, | |||
const CompressionStrategy | strategy | |||
) | const |
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.
void FrameTL::SimpleEllipticEquation< 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.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::alphak | ( | const unsigned int | k | ) | const [inline] |
Estimate the compression constants alpha_k in
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::alphak | ( | const unsigned int | k | ) | const [inline] |
Estimate the compression constants alpha_k in
const AggregatedFrame<IBASIS,DIM>& FrameTL::SimpleEllipticEquation< 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.
const AggregatedFrame<IBASIS,DIM>& FrameTL::SimpleEllipticEquation< 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.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::D | ( | const typename AggregatedFrame< IBASIS, DIM >::Index & | lambda | ) | const |
Evaluate the diagonal preconditioner D.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::D | ( | const typename AggregatedFrame< IBASIS, DIM >::Index & | lambda | ) | const [inline] |
Evaluate the diagonal preconditioner D.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::f | ( | const typename AggregatedFrame< IBASIS, DIM >::Index & | lambda | ) | const |
Evaluate the (unpreconditioned) right-hand side f.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::f | ( | const typename AggregatedFrame< IBASIS, DIM >::Index & | lambda | ) | const [inline] |
Evaluate the (unpreconditioned) right-hand side f.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::F_norm | ( | ) | const [inline] |
Compute (or estimate) the norm of the right-hand side.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::F_norm_local | ( | const int | patch | ) | const [inline] |
Compute the norm of the right-hand side coefficients on corresponding to a fixed patch.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::F_norm_local | ( | const int | patch | ) | const [inline] |
Compute the norm of the right-hand side coefficients on corresponding to a fixed patch.
const AggregatedFrame<IBASIS,DIM>& FrameTL::SimpleEllipticEquation< IBASIS, DIM >::frame | ( | ) | const [inline] |
Read access to the frame.
const AggregatedFrame<IBASIS,DIM>& FrameTL::SimpleEllipticEquation< IBASIS, DIM >::frame | ( | ) | const [inline] |
Read access to the frame.
const EllipticBVP<DIM>& FrameTL::SimpleEllipticEquation< IBASIS, DIM >::get_bvp | ( | ) | const [inline] |
Read access to the boundary value problem.
const EllipticBVP<DIM>& FrameTL::SimpleEllipticEquation< IBASIS, DIM >::get_bvp | ( | ) | const [inline] |
Read access to the boundary value problem.
static bool FrameTL::SimpleEllipticEquation< IBASIS, DIM >::local_operator | ( | ) | [inline, static] |
Differential operators are local.
static bool FrameTL::SimpleEllipticEquation< IBASIS, DIM >::local_operator | ( | ) | [inline, static] |
Differential operators are local.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::norm_A | ( | ) | const |
Estimate the spectral norm .
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::norm_A | ( | ) | const [inline] |
Estimate the spectral norm .
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::norm_Ainv | ( | ) | const [inline] |
Returns spectral norm . An estimate for
has to be externally computed and to be set during initialization of the program.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::norm_Ainv | ( | ) | const [inline] |
Returns spectral norm . An estimate for
has to be externally computed and to be set during initialization of the program.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::operator_order | ( | ) | const [inline] |
Order of the operator.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::operator_order | ( | ) | const [inline] |
Order of the operator.
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::rescale | ( | InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > & | coeffs, | |
const int | n | |||
) | const |
Rescale a coefficient vector by an integer power of D, .
void FrameTL::SimpleEllipticEquation< 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, .
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::RHS | ( | const double | eta, | |
const int | p, | |||
InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > & | coeffs | |||
) | const |
Approximate the wavelet coefficient set of the preconditioned right-hand side restricted to patch p within a prescribed error tolerance.
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::RHS | ( | const double | eta, | |
InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > & | coeffs | |||
) | const |
Approximate the wavelet coefficient set of the preconditioned right-hand side within a prescribed error tolerance.
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::RHS | ( | const double | eta, | |
const int | p, | |||
InfiniteVector< double, typename AggregatedFrame< IBASIS, DIM >::Index > & | coeffs | |||
) | const [inline] |
Approximate the wavelet coefficient set of the preconditioned right-hand side restricted to patch p within a prescribed error tolerance.
void FrameTL::SimpleEllipticEquation< 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 error tolerance.
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::s_star | ( | ) | const |
Estimate compressibility exponent .
double FrameTL::SimpleEllipticEquation< IBASIS, DIM >::s_star | ( | ) | const [inline] |
Estimate compressibility exponent .
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::set_Ainv | ( | const double | nAinv | ) | [inline] |
Sets estimate for .
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::set_Ainv | ( | const double | nAinv | ) | [inline] |
Sets estimate for .
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::set_bvp | ( | const EllipticBVP< DIM > * | ) |
Set the boundary value problem.
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::set_bvp | ( | const EllipticBVP< DIM > * | bvp | ) | [inline] |
Set the boundary value problem.
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::set_norm_A | ( | const double | _normA | ) | [inline] |
Sets estimate for .
void FrameTL::SimpleEllipticEquation< IBASIS, DIM >::set_norm_A | ( | const double | _normA | ) | [inline] |
Sets estimate for .
const EllipticBVP< DIM > * FrameTL::SimpleEllipticEquation< IBASIS, DIM >::ell_bvp_ [protected] |
The elliptic boundary value problem.
const AggregatedFrame< IBASIS, DIM > * FrameTL::SimpleEllipticEquation< IBASIS, DIM >::frame_ [protected] |
The underlying aggregated frame.
static const int FrameTL::SimpleEllipticEquation< IBASIS, DIM >::space_dimension = DIM [static] |
Space dimension of the problem.