PDEnclose is a verification library for partial differential equation solvers developed by Will Morris, a Ph.D. student at Georgia Tech.
- Support for both real-valued execution and abstract interpretation with interval (https://github.com/Willmo3/Winterval), affine (https://github.com/Willmo3/Caffeine), mixed affine-interval (https://github.com/Willmo3/DualDomain), and synthesized zonotope (https://dl.acm.org/doi/abs/10.1145/3763088) numeric domains.
- CFL compliance guarantees for finite difference and finite volume methods.
- Distributed input splitting for finite difference methods using MPI.
- Configurable parallel solving with OpenMP.
- Extensible
numericinterface that allows interpretation with any compliant domain.
- GPU parallelism on-node
- Support for more finite volume solvers
- Support for multidimensional PDEs
- Support for neural PDEs / SciML
Many dependences here will be downloaded automatically with our build scripts.
- CMake >= 3.5
- A CPP compiler. Both gcc and clang should work.
All libraries can be downloaded manually or with update_deps script.
- Cereal
- Winterval
- Caffeine
- DualDomain
- git
- curl (for download scripts)
- OpenMP
- MPI
- Navigate to the
./scriptsdirectory - Execute
./update_deps - Navigate to
../build - Execute
cmake -DCMAKE_BUILD_TYPE=Release .. - Execute
make
- Executing
./run_sanity_tests.pywill create asimulationsdirectory with source files and run all of them. - Binaries can be found in
out. This includes unit tests.