ThunderEgg is an object-oriented C++ library designed for flexibility and to allow users to implement parallel multigrid preconditioners for various problems on octree and quadtree adaptive meshes.
- Scott Aiton
- Donna Calhoun
- Grady Wright
- MPI
- CMake
- FFTW - FFTW PatchSolver
- BLAS and LAPACK - DFT PatchSolver
- PETSc - ThunderEgg provides a set of interfaces to use PETSc Krylov Solvers and PETSc matrices.
- p4est - for compatibility with the p4est quadtree library
Configure CMake project:
cmake -S /path/to/source -B buildCompilers can be specified in the following way
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -S /path/to/source -B buildThen compile:
cmake --build buildSome helpful CMake variables for configuration:
| Variable | Default Value | Description |
|---|---|---|
| PETSC_DIR | The PETSc directory | |
| PETSC_ARCH | The PETSc arch | |
| petsc | ON | allow the use the use of PETSc |
| petsc_required | OFF | fail if PETSc is not found |
| FFTW_ROOT | The fftw directory | |
| fftw | ON | allow the use the use of FFTW |
| fftw_required | OFF | fail if FFTW is not found |
| P4EST_ROOT | The p4est directory | |
| p4est | ON | allow the use the use of p4est |
| p4est_required | OFF | fail if p4est is not found |
| lapack | ON | allow the use the use of lapack/blas |
| lapack_required | OFF | fail if lapack/blas is not found |