This is DiSk++, a C++ template library for Discontinuous Skeletal methods like discontinuous Galerkin (dG) and Hybrid-High Order (HHO).
In mathematical literature, discontinuous skeletal methods are always presented and studied in a dimension-indipendent and element-indipendent fashon. That is, the dimension of the space (1D, 2D, 3D) and the shape of the elements in which the space is discretized are just ininfluent details for the mathematical discussion of these methods. The software implementing them, however, does not always take the same approach: it is common to see codes capable to run only on few very specific kinds of mesh, or only in 1D or 2D or 3D.
The philosophy behind DiSk++ is "write once, run on any kind of mesh". This means that the generic nature of the library allows to code a numerical method only one time, and run it on any kind of mesh (1D, 2D, 3D, simplicial, hexahedral, ...)
The repository has some dependencies that must be fetched. When you clone, make sure to do a recursive clone by using
git clone --recursive https://github.com/datafl4sh/diskpp
The library runs on Unix systems. The main development is made on Mac OS X, but it compiles and runs fine also on Linux. It is written in C++14 and requires a recent compiler to be compiled (GCC >= 5.0 or Clang >= 3.8). Older compilers may work but they are neither supported nor tested.
The project requires several packages to be installed on the system:
-
Intel Math Kernel Library (MKL): https://software.intel.com/en-us/mkl The build system expects MKL to be installed in
/opt/intel, check cmake/FindMKL.cmake if an error occours. -
Silo library for reading and writing a wide variety of scientific data to binary files: https://wci.llnl.gov/simulation/computer-codes/silo Install with
sudo apt-get install libsilo-dev libsilo-bin
On Linux recent versions of Silo complain that silo_exports.h is not present. Please grab it from the LLNL Silo package and copy it in /usr/include. It is not clean, but it is the current workaround.
- Lua lightweight embeddable scripting language: https://www.lua.org/download.html Lua is also available on most Linux platforms. Version 5.2 has been tested, make sure to install both main and development files, e.g.:
sudo apt-get install lua5.2
sudo apt-get install liblua5.2-dev
-
Eigen C++ template library for linear algebra: http://eigen.tuxfamily.org/
-
HDF5 development files.
apt-get install libhdf5-dev