Helper Functions and Libraries
The util/
directory contains a number of external libraries and simple
utilities that are used by the different components of Microphysics.
approx_math/
: these are a set of headers that implement approximations toatan()
,exp()
,log()
, andpow()
. These can be much faster than the C++ library versions, especially on GPUs.autodiff/
: this is a clone of the C++ autodiff library from https://github.com/autodiff/autodiffThe header
microphysics_autodiff.H
provides a set of interfaces for working with the AMReX datatypes and interfacing with the autodiff library.build_scripts/
: a set of python scripts used during the build process to parse the runtime parameters.cj_detonation/
: a simple routine to compute the Chapman-Jouguet detonation speed for one of our networks.esum.H
: an implementation of the exact sum algorithm based on the msum algorithm by Raymond Hettinger. It is generated automatically by theesum_cxx.py
script and creates implementations for exact numbers of terms (esum3()
,esum4()
, …)gcem/
: a templated math library that provides implementations of the standard library math functions that can be used inconstexpr
expressions. This is from https://github.com/kthohr/gcemSome of the constants are redefined in 64-bit floating point in
microphysics_math.H
to avoidlong double
issues on some architectures.hybrj/
: a C++ port of the MINPACK hybrid Powell minimization function to zero a set of functions.linpack.H
: a C++ port of the LINPACKdgesl
anddgefa
LU decomposition Gaussian elimination routines.microphysics_sort.H
: a set of sorting routines foramrex::Array1D
data.