Microphysics
Microphysics copied to clipboard
common astrophysical microphysics routines with interfaces for the different AMReX codes
For many of our applications, we have an ideal gas but with a mean molecular weight that varies as a function of $(\rho, T)$. The temperature can be solved via...
This now creates a header extern_type.H with a struct extern_t that holds all of the runtime parameters for Microphysics. The struct is filled on initialization and returned by init_extern_parameters(). This...
It would be useful to handle burn/integration failures in a more modern C++ (but exception-free) way. This could be done by having the burner return an `std::expected` object (https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0323r3.pdf, monadic...
As part of debugging https://github.com/AMReX-Astro/Microphysics/issues/1386, it was proposed that Microphysics be re-written to avoid carrying around state in device global variables by moving the state to a struct that could...
Adding rates using expressions from Kippenhahn & Weigert. Still working on adding derivatives.
In `ArrayUtilities.H`, we define `MathArray2D` with a Fortran-ordering: ``` 86 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE 87 const Real& operator() (int i, int j) const noexcept { 88 AMREX_ASSERT(i >= XLO && i =...
Kippenhahn & Weigert have very simple expressions for the neutrino terms (Eqs. 18.81 to 18.86). It would be good to add a simpler neutrino routine with those. What we are...
We can evaluate sneut at the start of a burn, and if we find it is small (much smaller than the specific energy, e, then we can ignore it and...