Skip to content

Castro 20.05

Choose a tag to compare

@zingale zingale released this 01 May 16:17

20.05

  • The parameter use_custom_knapsack_weights and its associated
    functionality have been removed. (#877)

  • We've changed how the runtime parameters are stored. Previously
    they were static members of their respective class, but this
    prevented their use in lambda-capture functions on GPUs. Now the
    runtime parameters are grouped into namespaces as extern managed
    data. (#873)

  • We currently have a scheme for storing reactions weightings, which
    are a measure of the number of RHS evaluations during the burn and
    therefore a proxy for the difficulty of the burn. These weights were
    added as separate StateData depending on the runtime option
    use_custom_knapsack_weights. Now, instead we place the weights
    directly in the Reactions_Type StateData as a new component.

    The number of ghost zones in Reactions_Type is increased to 4.

    The checkpoint version has now been incremented; this version of the
    code will not be able to restart from a checkpoint generated by earlier
    versions of the code. (#863)

  • The meaning of dt_cutoff has changed: it is now the fraction of the
    current simulation time which dt may be no smaller than, instead of
    being an absolute measure. We now have set a non-zero default
    (1.e-12) as well. (#865)

  • Backwards compatibility in restarting from a checkpoint is no longer
    supported. Checkpoints from older versions of the code (as determined
    by the checkpoint version in the CastroHeader file in the checkpoint
    directory) cannot be restarted from. (#860)

  • Added an option to do CTU reactions in C++. A compile flag
    USE_CXX_REACTIONS is added which switches to the C++ integrator
    in Microphysics. Since we will be doing a phased implementation
    of the networks in Microphysics, this is opt-in for now. (#836)

  • More of the core routines have been ported to C++, including the
    hydro and diffusion timestep estimators (#853) and the sponge
    (#857)

  • AMReX provides CpuBndryFuncFab and GpuBndryFuncFab which are very
    similar to what generic_fill and hypfill did. The AMReX
    implementations are now used. We still have a hypfill and denfill
    function, so that existing problems are not broken, but the main
    one in Source/ no longer calls amrex_filcc (it only has the
    ambient code now). The problems that do override bc_fill_nd.F90
    are thus no longer required to call amrex_filcc. (#837)

  • We now always issue a timestep retry if the density after an
    advance is negative (or less than small_dens). The parameter
    castro.retry_neg_dens_factor is removed. The parameter
    castro.retry_tolerance is also removed as it no longer has
    any effect. (#796)

  • The timestep control parameter castro.change_max now also will
    prevent the timestep by shrinking too much in one timestep
    (previously it would only prevent it from growing too much).
    If change_max is violated in a timestep we will do a retry
    to take more graceful steps. (#844)

  • We now check if the problem setup initialized the density or
    temperature to a value near small_dens or small_temp and abort.
    If this happens, the recourse is to adjust small_dens and
    small_temp to a meaningful value for your problem. (#822)

  • The src_q multifab was removed and instead we convert the
    conserved state sources to primitive state sources FAB by FAB.
    This saves a lot of memory at the expense of an EOS call. (#829)

  • The plm_well_balanced option was removed. It was essentially the
    same as use_pslope except it was lower order and only worked with
    constant gravity. use_pslope now works with both CTU+PLM and
    SDC2+PLM. A new test problem, hse_convergence, was added to look
    at the behavior of the different reconstruction methods with HSE.