███    ██ ███████ ██   ██ ██████  ███████
████   ██ ██      ██  ██  ██   ██ ██     
██ ██  ██ █████   █████   ██████  ███████
██  ██ ██ ██      ██  ██  ██   ██      ██
██   ████ ███████ ██   ██ ██   ██ ███████ 
(c) 2019-2025 UCHICAGO ARGONNE, LLC

The nekRS Computational Fluid Dynamics Code

nekRS is a fast and scalable computational fluid dynamics (CFD) solver targeting HPC applications. The code started as an early fork of libParanumal in 2019, with the intention of supplanting its precursor, nek5000.

Capabilities:

  • Incompressible and low Mach-number Navier-Stokes + scalar transport

  • High-order curvilinear conformal Hex spectral elements in space

  • Variable time step 2nd/3rd order semi-implicit time integration

  • MPI + OCCA supporting CUDA, HIP, DPC++, SERIAL (C++)

  • LES and RANS turbulence models

  • Arbitrary-Lagrangian-Eulerian moving mesh

  • Lagrangian phase model

  • Overlapping overset grids

  • Conjugate fluid-solid heat transfer

  • Various boundary conditions

  • VisIt & Paraview for data analysis and visualization including in-situ support through Ascent

  • Legacy interface

This documentation is intended to help new users get started with using nekRS, as well as serve as a reference for more advanced users. For the uninitated user we recommend working through this user guide in the order below. At the very least, please read Case files page for a description of nekRS case setup and case file structure.

Note

The instructions in this documentation are specific to v26.x. The documentation does not currently support earlier versions of nekRS.

Note

This documentation is a work in progress, and is expected to undergo major changes as more features are added to nekRS. Please open issues on the nekRS documentation Github repository to track any missing information or to request modification of existing information.

Table of Contents

Versioning

We try hard not to break userland but the code is evolving quickly so things might change from one version to another without being backward compatible. Please consult RELEASE.md before using the code.

Please visit GitHub Discussions. Here we help, find solutions, share ideas, and follow discussions.

Contributing

Our project is hosted on GitHub. To learn how to contribute, see CONTRIBUTING.md.

Reporting Bugs

All bugs are reported and tracked through Issues. If you are having trouble installing the code or getting your case to run properly, you should first visit our discussion group.

License

nekRS is released under the BSD 3-clause license (see LICENSE file). All new contributions must be made under the BSD 3-clause license.

Citing

If you find our project useful, please cite NekRS, a GPU-Accelerated Spectral Element Navier-Stokes Solver

Acknowledgment

This research was supported by the Exascale Computing Project (17-SC-20-SC), a joint project of the U.S. Department of Energy’s Office of Science and National Nuclear Security Administration, responsible for delivering a capable exascale ecosystem, including software, applications, and hardware technology, to support the nation’s exascale computing imperative.