Skip to content

Releases: AMReX-Astro/Castro

Castro 20.03

02 Mar 17:43
Compare
Choose a tag to compare

20.03

  • We now depend on the fundamental constants from Microphysics
    instead of keep our own copy in Castro (#787)

  • We removed the ppm_predict_gammae option for the CTU hydro solver.
    This was not used frequently and did not show much difference with
    the default (rho e) reconstruction. (#780)

  • The Microphysics "extern" parameters are now available in C++

  • We've started converting the CTU hydro solver from Fortran to C++
    (#731). The PPM reconstruction is now done in C++ (#784).

  • The option ppm_temp_fix = 3 was removed. This used a
    temperature-based eigensystem for characteristic tracing but was
    never used for production science.

  • If a derived variable has multiple components, all components are now
    added to plotfiles. Previously only the first component was used. (#758)

  • We have updated our workflow when it comes to Castro's dependencies.

    Previously Castro shipped with it a minimal set of microphysics that
    allowed basic problem setups like Sedov to compile, and more advanced
    setups (like ones that include nuclear burning) required downloading
    the starkiller-astro Microphysics repository as an additional step.
    Now, that Microphysics repository is a requirement for using Castro.
    If you are a current user of the Microphysics repository and prefer
    the current workflow where you maintain Microphysics as a separate
    installation from Castro, no change in your workflow is necessary:
    if MICROPHYSICS_HOME is set as an environment variable, Castro will
    use the Microphysics installation in that directory. However we have
    also added Microphysics as a git submodule to Castro, which is now
    the required path if you previously were not using the more advanced
    microphysics (but is also a possibility for those previously using a
    standalone Microphysics installation). To obtain this, you can use
    git submodule update --init --recursive from the top-level directory
    of Castro. The developer team ensures that the version of Microphysics
    that you obtain this way is consistent with the current version of Castro.
    Then, you can keep up to date with the code mostly as normal, except now
    using git pull --recurse-submodules instead of git pull.

    Similarly, AMReX is now maintained as a git submodule rather than as an
    external standalone installation. If you use the same git submodule command
    as above, you'll obtain AMReX. As with Microphysics, you may opt to
    rely on your own installation of AMReX by setting the AMREX_HOME
    environment variable. However you are then responsible for keeping it
    in sync with Castro; if you use the submodule, then you'll get the version
    of AMReX that we have tested to ensure compatibility with the current
    version of Castro. (#651, #760, #762, #765)

  • The names of the conserved state variables in C++ (Density, Xmom, etc.)
    have been changed to match the names in Fortran (URHO, UMX, etc.).
    For user code, this will only affect problem-specific setup code
    like Prob.cpp that references specific state variables. For compatibility,
    we have kept a copy of the old names around that redirect to the
    new names, but the old names are now considered deprecated and will
    be removed

Castro 20.02

01 Feb 19:38
Compare
Choose a tag to compare

20.02

  • Fixed a bug in the nuclear burning timestep estimator when on GPUs
    (#745)

  • rewrote the 4th order SDC hydro driver in C++ to allow code reuse
    with other solvers (#742), and simplified the 2nd order SDC code
    to do dimensional sweeps to reduce memory (#749)

  • The option radiation.integrate_planck has been removed; it was only
    used by one test. By default we always do the full integral of the
    Planck function. (#740)

  • Most of the radiation test problems have been moved over to a new
    opacity directory, rad_power_law, and all of the parameters that
    controlled the behavior of the power law opacity have been moved
    to the extern probin module. We now always expect you to pick a
    specific opacity implementation, so the parameter
    radiation.use_opacity_table_module has been removed. The "null"
    opacity implementation has been previously moved, and the code
    will fail to compile if you attempt to use it; you will need to
    update to rad_power_law. (See the documentation for information
    about how to use this new implementation.)

    Additionally, the code for the multigroup solver was effectively
    previously setting the Rosseland opacity, kappa_r, equal to the
    Planck opacity, kappa_p, if the latter was set but the former was
    not. There was similar unintuitive behavior for the behavior of
    the scattering parameter. Now you will get exactly what you ask
    for in the probin file, given the defaults in the _parameters file
    for the rad_power_law opacity. By default the constant coefficients
    for both are negative, which is invalid, so both must be set to a
    non-negative value for the code to work. Problems that were previously
    setting const_kappa_p but not const_kappa_r should set the latter
    equal to the former to maintain the same code behavior. The analogous
    thing should be done for the exponents (kappa_p_exp_m, kappa_p_exp_n,
    and kappa_p_exp_p). (#725)

  • The parameter radiation.do_real_eos = 0 has been removed, and its
    functionality is now enabled with a new equation of state called
    rad_power_law. This new EOS is only compatible with the pure
    radiation-diffusion tests, not with castro.do_hydro = 1. (#722)

  • We now default to use_retry = 1, instructing Castro to retry a
    step with a smaller dt if there is a CFL violation, burning
    failure, or negative timestep. For the burning failure, we have
    Castro set the Microphysics parameter abort_on_failure to .false.
    at a high priority (so it overrides the Microphysics default).
    We also check to make sure the combination of parameters makes
    sense at runtime. (#724)

  • The parameter castro.hard_cfl_limit has been removed. (#723)

  • Some unnecessary clean_state calls were removed (#721)

  • Support for neutrino radiation diffusion has been removed.

  • A bug was fixed in the hydro CFL timestep estimator for
    simplified-SDC. The timestep was more restrictive than it needed
    to be. (#727)

  • A bug was fixed in the simplified-SDC nuclear burning timestep
    estimator (#733)

Castro 20.01

01 Jan 18:47
Compare
Choose a tag to compare

20.01

  • A new option castro.limit_fluxes_on_large_vel has been added. It
    is similar to the existing option limit_fluxes_on_small_dens --
    fluxes are limited to prevent the velocity in any zone from
    getting too high. The largest legal speed is set by
    castro.speed_limit. (#712) This is more general than the previous
    solution proposed by castro.riemann_speed_limit, so that
    parameter has been removed. (#714)

  • The AMR parameter amr.compute_new_dt_on_regrid is now on by
    default. This avoids crashes that result from the CFL number
    being too large after regridding, because we update the
    timestep after seeing that larger velocity. You can still opt
    to set this off if you want to in your inputs file. (#720)

  • We have added calls into Hypre that only exist as of version
    2.15.0, so that is the new minimum requirement for Castro
    radiation. Note that Hypre is now hosted on GitHub at
    https://github.com/hypre-space/hypre.

  • A new option castro.limit_fluxes_on_large_vel has been added. It
    is similar to the existing option limit_fluxes_on_small_dens --
    fluxes are limited to prevent the velocity in any zone from
    getting too high. The largest legal speed is set by
    castro.riemann_speed_limit. (#712)

  • A new option castro.apply_sources_consecutively has been
    added. By default we add all source terms together at once. This
    option, if enabled, adds the sources one at a time, so that each
    source sees the effect of the previously added sources. This can
    matter, as an example, for the sponge source term, which may be
    more effective if it is added after source terms such as gravity
    that update the velocity. (#710)

  • A new option castro.ext_src_implicit has been added. The external
    source terms were previously only implemented as an explicit
    predictor-corrector scheme. The new option, if turned on, changes
    the handling of the external source terms to allow an implicit
    solve. This is done by subtracting the full old-time source and
    adding the full new-time source in the corrector, rather than
    -0.5 and +0.5 of each, respectively. It is still up to the
    individual problem to make sure it is consistent with this scheme
    if the option is turned on. (#709)

  • Add option for using monopole BCs in 3D. By setting
    gravity.max_multipole_order to a negative number, you can use
    monopole gravity to fill the boundary conditions, rather than the
    multiple BCs. This is useful for debugging purposes. To make the
    behavior consistent, we now use multipole BCs by default in 2D as
    well. (#716)

Castro 19.12

02 Dec 14:20
Compare
Choose a tag to compare
  • The use_retry mechanism has been enabled for the simplified
    SDC time integration method. (#695)

  • A case where use_retry could result in a very small last
    subcycle has been avoided. (#701)

  • We no longer allocate memory for sources for the species
    in the conserved state unless PRIM_SPECIES_HAVE_SOURCES is set
    (#699)

  • A subroutine eos_on_host has been added to the EOS module.
    This is a wrapper for the EOS that must be used for CUDA
    builds if the EOS is being called in probinit or other
    places that don't run on the GPU. (#693)

  • We now use VODE90 instead of VODE by default. (#677)

  • A new unit test was added, model_burner, which reads in a 1-d
    initial model and calls the reaction network on it. This can
    be used to test tolerances, etc.

Castro 19.11

01 Nov 11:40
Compare
Choose a tag to compare
  • The density flux limiter was simplified and fixes a race condition
    (#646)

  • The SDC algorithm can now use Radau quadrature instead of
    Gauss-Lobatto quadrature. (#666)

  • The option castro.ppm_reference_eigenvectors has been removed. This
    is now used by default with the CTU PPM solver.

Castro 19.10

01 Oct 13:37
Compare
Choose a tag to compare

-- The SDC algorithm now implements the burning conditionals
depending on rho and T (react_rho_min, react_rho_max,
react_T_min, react_T_max) (#598, #654)

-- The SDC/MOL PLM reconstruction now implements reflecting BCs on
the interface states (#652, #654)

-- A well-balanced scheme has been added to the piecewise linear SDC
method, enabled with castro.plm_well_balanaced=1. At the moment
it only supports constant gravity. (#294, $654))

-- The weighting of the time-node fluxes stored in the flux registers
for SDC has been fixed (#654, #658)

-- As before, we can choose the reconstruction with PLM using the
castro.plm_iorder flag: 1 = piecewise constant, 2 = piecewise
linear slopes. Now we added a way to specify the limiter used
with the linear slopes. castro.plm_limiter = 1 will use the 2nd
order MC limiter and castro.plm_limiter = 2 will use the default
4th order MC limiter (previously there was no way to select the
2nd order limiter). (#654)

-- The Runge-Kutta based method-of-lines integration method has
been removed in favor of the SDC integration. (#657)

-- A new way of specifying the problem runtime parameters has been
introduced. They can now be specified in a plain text file,
_prob_params, and at compile time, the probdata_module is
automatically created. This automates the creation of the
probdata variables, the namelist for reading them, setting them
as managed for CUDA, and adds the ability to output the values to
a file (like job_info). This feature is opt-in. You need to set
USE_PROB_PARAMS in your GNUmakefile and then define the problem
parameters in a file _prob_params in the problem directory.
(#234, #619, #673)

-- The time to output is now stored in the job_info file (#365)

-- The SDC time advancement method has been documented

-- The job_info file now reports the number of GPUs being used.

Castro 19.09

03 Sep 07:11
Compare
Choose a tag to compare

-- You can now type ./Castro.gnu.ex --describe to see the list of
modules / compilers the code was built with (#660)

-- The reaction quantities are now computed as proper 4th order
averages for the plotfile, when using sdc_order = 4 (#647)

-- The velerr tagging now takes the abs() of the velocity component
to ensure we tag large positive and negative velocities.

Castro 19.08.1

02 Aug 19:52
Compare
Choose a tag to compare

-- Fix CUDA compilation

-- Remove special treatment of 4th order outflow BCs (see #648)

Castro 19.08

01 Aug 22:53
Compare
Choose a tag to compare
Castro 19.08

Castro 19.07

16 Jul 20:51
Compare
Choose a tag to compare
Castro 19.07