Nyx Github Page
You can find the Github page for Nyx at
Nyx Email Support List
If you are interested in using Nyx, please join our Nyx mailing list to
receive any updates and see questions other users are asking:
The development of Nyx began as part of an LDRD-funded project,
continued under funding from the SciDAC-3 project, Computation-Driven Discovery for the Dark Universe,
and is now a part of the DOE ECP ExaSky project.
Nyx is used for large-scale cosmological simulations on massively parallel machines.
The Nyx software is based on the
AMReX software framework,
a follow-on to CCSE's BoxLib and now supported as part of the Exascale Computing Project.
The hydrodynamic component of Nyx is mesh-based. Time integration of the hydro equations on the mesh is
based on an unsplit version of the the piecewise parabolic method (PPM) with new limiters that avoid reducing
the accuracy of the scheme at smooth extrema.
Equation of State
Nyx can follow an arbitrary number of isotopes or elements. The
atomic weights and amounts of these elements are used to calculate
the mean molecular weight of the gas required by the equation of
Dark matter is represented as particles in Nyx. Each particle has a position, a mass, and a velocity associated
with it. These particles contribute their mass to the mesh for the gravity solve, and their velocities
are updated by the gravitational field interpolated from the mesh.
Nyx uses a full Poisson solve on the mesh for the gravitational potential due to self-gravity
(from both dark matter and baryons) in cosmological simulations.
The equation is discretized using standard a 7-point stencil and
the resulting problem is solved using multigrid with V-cycles and Gauss-Seidel relaxation.
AMR in Nyx
Our approach to adaptive refinement in Nyx uses a nested
hierarchy of logically-rectangular grids with simultaneous refinement
of the grids in both space and time. The integration algorithm on the grid hierarchy
is a recursive procedure in which coarse grids are advanced in time,
fine grids are advanced multiple steps to reach the same time
as the coarse grids and the data at different levels are then synchronized.
During the regridding step, increasingly finer grids
are recursively embedded in coarse grids until the solution is
sufficiently resolved. An error estimation procedure based on
user-specified criteria evaluates where additional refinement is needed
and grid generation procedures dynamically create or
remove rectangular fine grid patches as resolution requirements change.
The AMReX output file format
is compatible with
a visualization tool developed by CCSE particularly for the AMReX style of
plotfile which Nyx generates. A particularly useful feature in AmrVis is View/Dataset, which
allows you to actually view the data -- not just a color or contour plot -- this can be handy for debugging.
You can modify how many levels of data you want to see, whether you want to see the grid boxes or not,
what palette you use, etc.