Department of Scientific Computing   
Institute for Numerical Simulation   
University of Bonn   
Documentation
Download
Programming References
Bug Reports / Suggestions
FAQ
Authors
Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

AdaptiveB Struct Reference

AdaptiveB is the data structure consisting of vectors to store numerical data and index sets to mark the active indices, see AdaptiveB::AdaptiveLevel. All the one-dimensional adaptive operations, like basis transforms, evaluation of FD operators and so on operate on instances of AdaptiveB. More...

#include <Adaptive1D.hpp>

List of all members.

Public Methods

 AdaptiveB ()
 default constructor.

 AdaptiveB (AdaptiveB *B)
 constructor, own data but share index sets with (*B), (*B) must be initialized.

int Init (int Level0, int J, double xa=0, double xe=0)
 
Parameters:
Level0,J   coarsest and maximal level
xa,xe   left and right corner of 1D domain.


void Copy (AdaptiveB *B)
 (*this)=(*B).

void CopyIndexSets (AdaptiveB *B)
 just copy the index sets.

bool SameIndexSets (AdaptiveB *B)
 true if index sets of (*this) == index sets of (*B); false otherwise.

void SetBoundaryConditions (int *BCs)
 just set the type of boundary conditions in the left/right corner.

void SetBoundaryConditions (int bc0, int bc1)
 other interface.

void Print (int allflag)
 
Parameters:
allflag   if >0 print almost everything; otherwise just a brief summary.


void Print (char *st=NULL, int allflag=0)
 
Parameters:
st   print *st at the beginning of each output line, useful for 'grep' purposes
allflag   see above.


void Print (char *st)
 print only the active IndexSets.

size_t Size ()
 return Size of Indexset for level l.

void FromFull (double *d, int *BC, Wavelets *W, AdaptivityCriterion *R)
 generate adaptive basis from (full) vector d[] using refinement criterion (*R).

void FromFull (double *d)
 just copy the data from d[] without changing the active index sets.

void ToFull (double *d)
 copy to full vector, set d[i]=0 for inactive indices.

void FromAdaptiveGS (AdaptiveGS *G, Wavelets *W)
 basis transform from adaptive generating system to adaptive basis GS->IV[l] must be large enough for IS[l] GS->I [l] must be large enough for GS->III[l-1] GS->I[l-1].

void FromAdaptiveGS2 (AdaptiveGS *G, Wavelets *W)
 basis transform from adaptive generating system to adaptive basis additional values of the generating system are calculated by the canonic interpolation (one step of inverse wavelet transform).

void FromAdaptiveGS3 (AdaptiveGS *G, Wavelets *W)
 AdaptiveGS contains both the index sets S(l) for the adaptive generating systems as well as the nodal values u^S(l). Starting from these values we compute the wavelet coefficients by successive low and high pass filter operations
Lifting steps are included if lifting=true
note: the values in *GS are modified.


void IndexSetFromAdaptiveGS (AdaptiveGS *G, Wavelets *W)
 calculate index set for wavelet coefficients which are computable from the given (*G).

void LoadFromInterpoletGS (AdaptiveGS *G, Wavelets *W)
 if the (Interpolet) basis fulfills the cone condition we may store the data of (*G) in a basis !!!

double Max ()
 Max(numerical values).

double MaxAbs ()
 MaxAbs(numerical values).

void Sub (AdaptiveB *X, AdaptiveB *Y)
 (*this) = (*X)-(*Y).

void Add (AdaptiveB *X, AdaptiveB *Y)
 (*this) = (*X)+(*Y).

void Add (const double a, AdaptiveB *X, const double b, AdaptiveB *Y)
 (*this) = a * (*X) + b * (*Y).

void Add (const double a, AdaptiveB *X, const double b, AdaptiveB *Y, const double c, AdaptiveB *Z)
 (*this) = a * (*X) + b * (*Y) + c * (*Z).

void PPlus (AdaptiveB *X)
 (*this) += (*X).

void PPlus (const double a, AdaptiveB *X)
 (*this) += a * (*X).

void PPlus (AdaptiveB *X, AdaptiveB *Y)
 (*this) += (*X) + (*Y).

void PPlus (const double a, AdaptiveB *X, const double b, AdaptiveB *Y)
 (*this) += a * (*X) + b * (*Y).

void MMinus (AdaptiveB *X)
 (*this) -= (*X).

void MMinus (const double a, AdaptiveB *X)
 (*this) -= a * (*X).

double InnerProd (AdaptiveB *X)
 return (*this)^T * (*X).

void MMul (const double a)
 (*this) *= a.

void Fill (double a)
 all components are set to value a.

void Refine (AdaptiveB *B, AdaptivityCriterion *R, int *l, int dir, int Dim, Wavelets *W, bool copyflag=false)
 (*this) results from the refinement of (*B) using the criterion (*R). This general function is also used for the multivariate refine function.
If the underlying wavelets are Interpolets and this->islifting==true then the refined index sets do not only fulfill the cone condition required by Interpolets,
but also the extended cone condition required by Lifting-Interpolets. The adaptive basis will be larger then in general.
Parameters:
l   [] vector of (multivariate) level; use &l in 1D case
dir   coordinate direction with respect to which we call Refine, 0 for 1D use
Dim   dimension of true domain, 1 for 1D use
copyflag   if true then copy all possible the data from (*B) to (*this) and set all other entries in (*this) to zero.



Public Attributes

int Level0
 coarsest level.

int J
 maximal level.

int BC [2]
 type of boundary conditions in left/right corner.

double XA
 1D domain is [XA,XE].

double XE
 see above.

bool ismultiscale
 data corresponds to multiscale representation.

bool islifting
 ... with respect to Lifting Interpolets; used for runtime checks of operations.

struct AdaptiveB::AdaptiveLevel LMAX
 numercical data and set of active indices on a single level.


The documentation for this struct was generated from the following files:
Generated at Mon Aug 19 10:02:32 2002 for AWFD by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001