Kicksey-Winsey 1.0 User manual

Romain Nguyen van yen


Table of Contents

I. KIWIWALI : the standalone wavelet library
I.1. Introduction
I.2. Installation instructions
I.2.1. Prerequisites
I.2.2. Configuration
I.2.3. Compiling and installing
I.3. Basic interface
I.3.1. Usage
I.3.2. Choice of wavelet
I.3.3. Ordering of coefficients
I.3.3.1. KW interlaced ordering
I.3.3.2. Classical ordering
I.4. Advanced interface
I.4.1. Features
I.4.2. Usage
I.4.3. Choice of wavelet filter
I.4.3.1. Step 1: define the tag class
I.4.3.2. Step 2: specialize qmf_predefined
I.4.3.3. Step 3: provide the filter coefficients
II. Kicksey-Winsey installation instructions
II.1. Preliminaries
II.1.1. Notice
II.1.2. Where to get Kicksey-Winsey
II.1.3. Release notes
II.1.4. Prerequisites
II.1.4.1. Compiler
II.1.4.2. Libraries
II.2. Building
II.3. Platform-specific notes
II.3.1. GCC compiler suite notes
II.3.2. BlueGene/P notes
II.3.2.1.
II.4. FAQ
II.4.1. Installing required libraries : root or not root ?
II.4.2. Issues with compile time and memory requirements
II.4.3. Why the heck are you linking to an alpha version of FFTW ?
II.4.4. Using Scilab/MATLAB
III. Kicksey-Winsey 1.0 Tutorial
III.1. Using the existing Burgers solver
III.1.1. Compiling
III.1.2. Initializing
III.1.3. Running
III.1.4. Plotting
III.2. Computing the derivative of a function with a Fourier Transform
III.2.1. Declaration
III.2.2. Initialization
III.2.3. Assignment
III.2.4. Injection
III.2.5. Derivation
III.3. Defining a data processing workflow and working with files
III.3.1. A custom workspace
III.3.2. Preparing the HDF5 file
III.3.3. Testing the workspace to display our data
III.4. Image processing using wavelets on a parallel computer
III.5. Perfect reconstruction wavelet transform with arbitrary precision?
III.6. Fractal grid adaptation using wavelet thresholding
IV. The spectral array library
IV.1. Introduction
IV.2. Arrays and geometries
IV.2.1. Arrays basics
IV.2.1.1. Cartesian geometry
IV.2.1.2. Constructing an array
IV.2.2. Vector-valued arrays
IV.2.3. Zigzag arrays
IV.3. Selectors
IV.3.1. The selector concept
IV.3.2. Selector adaptors and items
IV.3.3. Selector geometries
IV.4. Predefined elementary selectors
IV.4.1. Element-wise selectors
IV.4.1.1. component_selector
IV.4.1.2. unary_operator_selector
IV.4.2. Cartesian selectors
IV.4.2.1. affine_subspace_selector
IV.4.2.2. dim_order_selector
IV.4.2.3. major_selector
IV.4.2.4. mirror_selector
IV.4.2.5. subcube_selector
IV.4.2.6. subrectangle_selector
IV.4.2.7. subregion_selector
IV.4.2.8. subsample_selector
IV.4.3. Zig-zag selectors
IV.4.3.1. select_scale
IV.4.4. Miscanelleous selectors
IV.4.4.1. offset_selector
IV.5. Bringing multiple selectors together
IV.5.1. Composition
IV.5.2. Tensorization
IV.6. Working with MPI
IV.6.1. Distributed arrays
IV.6.2. Broadcast/reduce arrays
V. Workspace
V.1. Nodes
V.2. Engines
V.3. Paths
V.4. Bunches and workspaces
V.5. Slot managers
V.6. Temporary storage managers
VI. Coefficients corner
VI.1. Algebraic expressions
VI.1.1. Basic expressions
VI.1.2. Merge and assign
VI.2. Operators
VI.3. Adaptors
VI.3.1. Definition
VI.3.2. Usage
VI.3.3. Implementation for Fourier coefficients
VI.3.4. Parallel case
VI.4. Extensions
VI.4.1. Definition
VI.4.2. Usage
VI.4.3. Implementation
VI.5. Special numeric types
VI.5.1. Complex arithmetics
VI.5.2. Vector arithmetics
VI.5.3. Arbitrary precision arithmetics
VII. Input-output at high troughput
VII.1. The Kicksey-Winsey specific HDF5 file model
VII.1.1. Motivation
VII.1.2. One file belongs to one workspace
VII.1.3. Sequential writing model
VII.1.4. Parameter stamps
VII.1.5. Data types
VII.1.5.1. Standard behavior
VII.1.5.2. Conversion policies
VII.1.5.3. Custom types
VII.2. Using the Kicksey-Winsey HDF5 interface
VIII. Template wavelet library
VIII.1. Mathematical background
VIII.1.1. Wavelet bases
VIII.1.2. The wavelets implemented in KW
VIII.1.2.1. Minimal support orthogonal Daubechies wavelets
VIII.1.2.2. Quasi-interpolating orthogonal Coiflets
VIII.1.2.3. More regular low-order orthogonal Coiflets
VIII.1.2.4. Dual-tree complex Q-Shift wavelets or Kingslets
VIII.1.2.5. Dual-tree complex Selesnick wavelets
VIII.2. Filters
VIII.2.1. Descriptors
VIII.2.1.1. Concept
VIII.2.1.2. Table of predefined filter descriptors
VIII.2.2. Generators
VIII.2.2.1. Concepts
VIII.2.2.2. Table of available filter generators
VIII.2.2.3. Usage
VIII.3. Wavelet transforms
VIII.3.1. DTCWT
VIII.4. Goodies
IX. Miscalleneous transforms
IX.1. Introduction
IX.2. Fast Fourier transforms
IX.3. Statistics
IX.4. Thresholding algorithms
IX.5. Curvilinear interpolation
IX.6. Reduction
IX.7. Others
X. Solvers
X.1. Documentation for the 2D Navier-Stokes solvers
X.1.1. General description
X.1.2. Diagnostics
X.1.3. Building and running
X.1.4. Including in larger applications
XI. Graphics
XI.1. VTK 2d
XII. Applications
XII.1. Partial differential equations solvers
XII.1.1. Burgers
XII.1.2. Birkhoff-Rott
XII.1.3. Navier-Stokes
XII.1.4. Vlasov
XII.2. File manipulation utilities
XII.2.1. HDF5 dataset manipulation
XII.2.1.1. Vector to scalar conversion: hdf5_convert_to_scalar
XII.2.1.2. Slice extraction: hdf5_extract_slice
XII.2.1.3. Subcube extraction: hdf5_restrict_dataset
XII.2.1.4. Fourier transform: hdf5_grid_to_fourier
XII.2.2. HDF5 file structure manipulation
XII.2.2.1. Merging files: hdf5_merge_files
XII.2.2.2. Soft link creation: h5ln
XII.2.3. Data conversion
XII.2.3.1. hdf5_to_movie
XII.2.3.2. ascii_to_hdf5
XII.2.3.3. fortran_to_hdf5
XII.2.3.4. hdf5_to_fortran
XII.2.3.5. binary_to_hdf5
XII.3. Wavelet analysis tools
XII.3.1. Butterfly
XII.3.2. Exctraction
XIII. Explicit template instanciation
XIV. External references
XIV.1. Material directly related to KW
XIV.2. Mathematical background
XIV.3. Physical background
XIV.4. Computational methods and algorithms

List of Tables

IV.2.1.
IV.2.2.
IV.3.1.
IV.3.2.
IV.4.1.
IV.4.2.
IV.4.3.
IV.4.4.
IV.4.5.
IV.4.6.
IV.4.7.
IV.4.8.
IV.4.9.
IV.4.10.
IV.4.11.
IV.4.12.
IV.4.13.
IV.4.14.
IV.4.15.
IV.4.16.
IV.4.17.
IV.4.18.
IV.5.1.
IV.5.2.
VI.2.1.
VIII.2.1.
VIII.2.2.
VIII.2.3.
VIII.2.4.
VIII.2.5.
IX.1.1.
X.1.1.