Release 22.05
-
A new option castro.hydro_memory_footprint_ratio has been added which
can help limit the amount of memory used in GPU builds. (#2153) -
In #1379, for the 21.04 release, Castro added a check that issued
an abort if any species mass fraction was found to be invalid (defined
by being less than -0.01 or greater than 1.01). This helps us catch
unintended code errors that do not properly normalize updates to the
species. (This was originally only enabled for CPU builds, but in the
22.04 release was extended for GPU builds, as noted below.) However,
as observed in #2096, this issue can legitimately be triggered in
regions of sharp composition and density gradients as an unavoidable
consequence of how the multi-dimensional CTU solver is designed. An
example would be a helium shell around a C/O white dwarf at low to
moderate spatial resolution. This was causing the code to abort in
a couple of science problems, so several improvements were added to
the code in this release to address it. In #2121, we turned this
situation into a retry after a hydro update rather than an abort,
so that the code has more chances to recover by doing an advance
with a smaller timestep. However, this will not always allow you
to recover, particularly if you are in an area where density resets
are occurring and/or you are using castro.limit_fluxes_on_small_dens,
so we also added a new option castro.abundance_failure_rho_cutoff in
#2124, which allows you to set a density threshold below which invalid
mass fractions will be silently ignored (and reset to valid values
between 0 and 1). We also turned the invalid mass fraction threshold
into a runtime parameter castro.abundance_failure_tolerance (#2131),
so that you can optionally loosen or tighten the strictness of this
check.Since this scenario was sometimes occurring during the reflux step
in AMR simulations, we also improved the reflux code to avoid doing
the flux correction locally in zones where it would cause an invalid
mass fraction (#2123).While doing these changes we noticed also that the option
castro.limit_fluxes_on_small_dens was sometimes inadvertently
aggravating this problem by creating physically implausible fluxes of
the species, so we simplified the algorithm to avoid that. (#2134) -
The option castro.limit_fluxes_on_large_vel has been removed. (#2132)