Research Group of Prof. Dr. M. Griebel
Institute for Numerical Simulation
next up previous
Next: AdaptiveB Up: AWFD Previous: Discretization of Operators &

Data Structures

The principal idea of the AWFD library is that actual numerical operations like basis transforms, finite difference operators, or quadratures are implemented for the univariate case only. The multivariate data structures are designed to allow for a relatively fast read/write of data lines along one coordinate direction to univariate data structures.
There are multivariate data structures for uniform, level adaptive and adaptive trial spaces/grids. The univariate numerical algorithms come in two flavours: a nonadaptive one based on simple arrays and an adaptive one based on the data structure AdaptiveB. The reason for this redundancy is twofold. First, we used the non-adaptive (and simple to implement) algorithms to test the more complicated adaptive algorithms. Second, for uniform and level adaptive grids it is faster to use the non-adaptive versions.

{\bf \quad multivariate data structures}\\
$\bullet$ LevelAdaptiveData\\
$\bullet$ AdaptiveData
} $\Longleftrightarrow$ \fbox{
{\bf \quad\quad univariate data structures}\\
$\bullet$ double arrays\\
$\bullet$ AdaptiveB

This splitting has a number of advantages. As the numerical operations require a frequent and some times irregular access to the data, the univariate data structures are tuned for speed and not for memory efficiency. The multivariate data structures, on the other hand, are tuned for memory efficiency and not so much for speed. Furthermore, we could implement and test the rather difficult numerical operations separately for the simple univariate case.

next up previous
Next: AdaptiveB Up: AWFD Previous: Discretization of Operators &
koster 2003-07-29