Skip to content

Commit 8638acc

Browse files
committed
document the util/ directory
1 parent bc1ccfa commit 8638acc

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

sphinx_docs/source/index.rst

+7
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,13 @@ of state routines.
7171
nse
7272
sdc
7373

74+
.. toctree::
75+
:maxdepth: 1
76+
:caption: Util / external libraries
77+
:hidden:
78+
79+
util
80+
7481
.. toctree::
7582
:maxdepth: 1
7683
:caption: Unit tests

sphinx_docs/source/util.rst

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
******************************
2+
Helper Functions and Libraries
3+
******************************
4+
5+
The ``util/`` directory contains a number of external libraries and simple
6+
utilities that are used by the different components of Microphysics.
7+
8+
* ``approx_math/`` : these are a set of headers that implement
9+
approximations to ``atan()``, ``exp()``, ``log()``, and ``pow()``.
10+
These can be much faster than the C++ library versions, especially
11+
on GPUs.
12+
13+
* ``autodiff/`` : this is a clone of the C++ autodiff library from
14+
https://github.com/autodiff/autodiff
15+
16+
The header ``microphysics_autodiff.H`` provides a set of interfaces
17+
for working with the AMReX datatypes and interfacing with the
18+
autodiff library.
19+
20+
* ``build_scripts/`` : a set of python scripts used during the build
21+
process to parse the runtime parameters.
22+
23+
* ``cj_detonation/`` : a simple routine to compute the Chapman-Jouguet
24+
detonation speed for one of our networks.
25+
26+
* ``esum.H`` : an implementation of the exact sum algorithm based on the
27+
msum algorithm by Raymond Hettinger. It is generated automatically
28+
by the ``esum_cxx.py`` script and creates implementations for exact
29+
numbers of terms (``esum3()``, ``esum4()``, ...)
30+
31+
* ``gcem/`` : a templated math library that provides implementations of
32+
the standard library math functions that can be used in ``constexpr``
33+
expressions. This is from https://github.com/kthohr/gcem
34+
35+
Some of the constants are redefined in 64-bit floating point in
36+
``microphysics_math.H`` to avoid ``long double`` issues on some
37+
architectures.
38+
39+
* ``hybrj/`` : a C++ port of the MINPACK hybrid Powell minimization function
40+
to zero a set of functions.
41+
42+
* ``linpack.H`` : a C++ port of the LINPACK ``dgesl`` and ``dgefa`` LU
43+
decomposition Gaussian elimination routines.
44+
45+
* ``microphysics_sort.H`` : a set of sorting routines for
46+
``amrex::Array1D`` data.

0 commit comments

Comments
 (0)