nekRS
Recommendedv26.1 · C++17 · GPU and CPU
Our actively developed solver for new projects. Written for accelerators from the start and tuned for current and upcoming exascale systems.
The Nek5000/RS project · Argonne National Laboratory
nekRS is a fast, scalable spectral element solver for the incompressible and low Mach-number Navier–Stokes equations, used for fluid flow, heat transfer, combustion and magnetohydrodynamics. It runs on GPUs and CPUs, from a single workstation to the largest systems in the world.
nekRS is the successor to Nek5000, which remains available as a legacy code.
Recognition
Exascale multiphysics simulations for liquid metal fusion blankets, beyond two trillion grid points on Aurora and Frontier.
Terascale spectral element algorithms and implementations, run on ASCI Red.
Scalable high-order simulation codes for fluid flow and electromagnetics.
Exascale multiphysics nuclear reactor simulations, coupling nekRS with Monte Carlo neutron transport on Frontier.
The NRC’s Comprehensive Reactor Analysis Bundle for licensing advanced reactors includes our codes.
Download
All development happens in nekRS, and nekAI and nekAgent extend it. Nek5000 is its predecessor.
v26.1 · C++17 · GPU and CPU
Our actively developed solver for new projects. Written for accelerators from the start and tuned for current and upcoming exascale systems.
nekRS extension · machine learning
Machine learning built around nekRS simulations. Description and links coming soon.
nekRS extension · AI agents
Agent-driven case setup, runs and analysis with nekRS. Description and links coming soon.
v19.0 · Fortran 77 · CPU
The original spectral element code, in use since the 1980s. It remains available for existing workflows; new projects should use nekRS, which can read Nek5000 case files.
Capabilities
High-order methods resolve turbulence, heat transfer and mixing with far fewer degrees of freedom than low-order solvers at the same accuracy.
Get started
You need an MPI-3.1 library, a C++17 compiler and CMake 3.21 or later. On an HPC system, build on a compute node.
git clone https://github.com/Nek5000/nekRS.git
cd nekRS
CC=mpicc CXX=mpic++ FC=mpif77 ./build.sh -DCMAKE_INSTALL_PREFIX=$HOME/.local/nekrsAdd these lines to your shell profile, for example ~/.bash_profile.
export NEKRS_HOME=$HOME/.local/nekrs
export PATH=$NEKRS_HOME/bin:$PATHCopy a case outside the install tree and launch it. Each case is set up by a .par file; nrsman documents every option.
cp -a $NEKRS_HOME/examples/turbPipePeriodic .
cd turbPipePeriodic
mpirun -np 2 nekrs --setup turbPipe.parJob scripts for common supercomputers are in nekRS_HPCsupport. Read the release notes before upgrading. Working with Nek5000? Follow the NekDoc quickstart.
Community
Want to help? We welcome new physics, documentation and tutorials. Read the contributing guide and say hello in Discussions.
Citing nekRS
P. Fischer, S. Kerkemeier, M. Min, Y.-H. Lan, M. Phillips, T. Rathnayake, E. Merzari, A. Tomboulides, A. Karakus, N. Chalmers, T. Warburton. NekRS, a GPU-accelerated spectral element Navier–Stokes solver. Parallel Computing 114 (2022) 102982.