Third-party libraries, compilers, and tools

This page collects links to full verbatim texts of the licenses of all third-party libraries (TPLs), and the list of compilers and tools used by Quinoa.

TPLs and external tools

An important distinction between TPLs and tools is that TPLs are libraries whose source we directly use, e.g., via include files and/or (static and dynamic) linking, while from a tool we do not include source code nor link its object files, only build it and use it as a separate (external) executable.

Third-party libraries

1. The Charm++ Parallel Programming System

2. The Parsing Expression Grammar Template Library

3. C++ Template Unit Test Framework

4. Boost C++ libraries

5. Cartesian product, a Boost MPL algorithm

6. PStreams for POSIX process Control

7. The HDF5 data model

8. The NetCDF data model

9. SEACAS for storing data for finite element analyses

10. Zoltan for static load balancing

11. Hypre for linear solvers and preconditioners

12. RNGSSELIB for random number generation

13. TestU01 for statistical testing of random number generators

14. PugiXML for XML format reading and writing

15. BLAS for basic linear algebra

16. LAPACK for linear algebra

17. AEC for adaptive entropy coding

18. Libstdc++ for standard C++ containers and algorithms

19. Libc++ for standard C++ containers and algorithms

20. Musl-libc for standard C library

21. OpenMPI for the message passing interface

22. Intel Math Kernel Library for BLAS/LAPACK and random number generation

23. H5Part for saving particle data to files

24. Random123 for random number generation

25. BackwardCpp for generating backtraces

26. HighwayHash for generating hashes

27. ROOT for saving field data for data analysis

28. Omega_h for reading large tetrahedron meshes in parallel


Compilers

1. Clang C++ compiler

2. GNU C++ compiler

3. Intel C++ compiler

4. Cray C++ compiler


Tools

1. Doxygen for design, theory, and software API documentation

2. CMake as a build system

3. Ninja for building

4. Gold for linking

5. Gcov for unit test coverage analysis

6. Lcov for unit test coverage analysis report

7. Git for source code version control

8. Numdiff for comparison of text files with numerical content

9. M.CSS for improving on Doxygen output