Skip to content

JuntaoHuang/adaptive-multiresolution-DG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

118 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AdaM-DG (Adaptive Multiresolution DG)

AdaM-DG is an adaptive multiresolution sparse grid discontinuous Galerkin (DG) C++ package for solving partial differential equations in high dimensions.

For more details on the algorithm and package, see our paper:

Papers

Documentation: ReadTheDocs

Build Requirements

  • C++17 compiler (g++ or clang++)
  • Eigen headers (Eigen/Eigen)
  • OpenMP runtime (recommended for better performance)

Build Environment Setup

macOS (Homebrew)

brew install eigen libomp
make

Notes:

  • The Makefile auto-detects Eigen include paths: ./eigen, /opt/homebrew/include/eigen3, /usr/local/include/eigen3, /usr/include/eigen3.
  • On macOS, if libomp is installed, OpenMP flags are added automatically.

Ubuntu / Debian

sudo apt update
sudo apt install -y g++ libeigen3-dev libomp-dev
make

If your dependencies are in a custom path

make EIGEN_INCLUDE=/path/to/eigen3

For macOS with non-standard OpenMP install path:

make LIBOMP_PREFIX=/path/to/libomp/prefix

Common build errors

  • Missing Eigen headers ...: install Eigen and/or set EIGEN_INCLUDE.
  • omp.h file not found (usually macOS): install libomp with Homebrew.

Run Example:

Compile and link all the program in the example directory:

make

Using this command, all the executable files will be generated in the bin directory and their symbolic link will be generated in the local home directory.

Run program generated by example/FileName.cpp:

./FileName

or

./bin/FileName

Clean:

make clean

Generate Doxygen documentation:

make doxygen

Project Stucture:

bin: The output objects executables go here, for the applications, examples and tests.

build: This folder contains all object files to generate the library, and is removed on a clean.

doc: Any documents including LaTeX files and also code documents are here; generated doxygen files are in the html subdirectory.

example: The source files for all the numerical examples.

include: All project header files. All necessary third-party header files that do not exist under /usr/local/include are also placed here.

lib: Any libs that get compiled by the project (currently the libsgdg shared library), third party or any needed in development.

source: The source files to generate the library.

deps: files of dependency, automatically generated by makefile; removed on a clean.

test: The source files for unit tests.

script: scripts including python code for plot

Releases

No releases published

Packages

 
 
 

Contributors