Credits
People and third-party software who make Rodin possible.
Third-party Software
Boost
Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The libraries are licensed under the Boost Software License, which is the same license Rodin utilizes.
Eigen
Eigen is a C++ template library for linear algebra. Eigen provides a wide range of mathematical operations, data structures, and algorithms for performing linear algebra operations efficiently and with a syntax that resembles mathematical notation. It is especially useful for tasks such as matrix and vector operations, solving linear systems, eigenvalue problems, and more. Eigen is Free Software. Starting from the 3.1.1 version, it is licensed under the MPL2, which is a simple weak copyleft license. Common questions about the MPL2 are answered in the official MPL2 FAQ.
MMG
MMG is an open source software for bidimensional and tridimensional surface and volume remeshing. It is licensed under the LGPL and is originally based on [3] .
HDF5
HDF5 provides structured binary storage for Rodin mesh and field output, including the data referenced by XDMF visualization files.
termcolor
termcolor supplies terminal colors for contextual diagnostics in the Alert module.
PETSc
PETSc supplies the optional distributed algebra, linear and nonlinear solvers, and preconditioners used by Rodin's PETSc backend.
SuiteSparse
SuiteSparse supplies the optional UMFPACK, CHOLMOD, SPQR, and ParU sparse solver backends. Individual components have their own license terms.
MUMPS
MUMPS provides the optional multifrontal sparse direct solver backend.
Scotch
Scotch provides graph partitioning for mesh decomposition through the Scotch module.
METIS
METIS provides graph partitioning and fill-reducing orderings used by supported sparse solver dependencies.
MPI implementations
MPICH and Open MPI provide implementations of the Message Passing Interface used in Rodin's distributed builds and continuous integration. Rodin uses MPI through its distributed mesh, finite element, and solver paths.
OpenMP
OpenMP provides the compiler and runtime interface used by optional shared-memory parallel code paths.
pybind11
pybind11 connects C++ interfaces to Python in Rodin's optional Python bindings.
Development and documentation tools
GoogleTest
GoogleTest supplies the C++ testing framework used by Rodin's unit and regression tests.
Google Benchmark
Google Benchmark supplies the benchmark framework used to measure Rodin's numerical kernels and assembly operations.
Doxygen
Doxygen extracts API declarations and documentation from Rodin's C++ sources and documentation pages.
m.css
m.css renders the extracted documentation and supplies the site theme and documentation components.
Jinja
Jinja renders the HTML templates used by m.css and Rodin's documentation pages.
Pygments
Pygments provides syntax highlighting for code examples throughout the documentation.
LaTeX and dvisvgm
LaTeX typesets mathematical expressions, and dvisvgm converts the results into SVG images for the documentation.
References
See the full reference list to the scientific papers which have been used or provide sources of inspiration for the library.