Downloading the code¶
If you use our software, please cite the following:
NEK5000 Version X.Y. Release date. Argonne National Laboratory, Illinois. Available: https://nek5000.mcs.anl.gov.
Here’s a brief description of each top-level directory:
contains the Nek5000 application sources.
contains scripts for running nek5000 and manipulating its output.
contains the sources for the pre- and post-processing tools which are stand-alone.
contains light-weight regression tests for verification.
consistent place for users to place their problem cases.
contains example problems. Note: NOT included in the master branch on the GitHub repo.
contains the user documentation. Note: NOT included in the master branch on the GitHub repo.
its purpose it to provide a consistent place for 3rd party code.
contains some hardwired runtime parameters to dimension static arrays.
contains runtime parameters.
contains mesh and boundary data.
contains partioning data.
contains user specific code to initialize solver, set source terms and boundary conditions or to manipulate solver internals.
contains probing points.
contains checkpoint data.
contains metadata for VisIt or ParaView.
contains runtime parameters and mesh in ASCII. Replaced by .par and .re2 file.
contains partioning data in ASCII.
Note: The old legacy files (.rea & .map) are recommended for debugging purposes only.
Let’s walk through some useful batch scripts:
makenek <case>compiles your case
nek/nekb <case>runs a serial job in foreground or background
nekmpi/nekbmpi <case> <number of ranks>runs a parallel job
neknek <case1> <cas2> <ranks 1> <ranks 2>runs Nek5000 with two overlapping component grids
visnek <case>creates metadata file required by VisIt and ParaView.
mvn <old name> <new name>renames all case files
cpn <old name> <new name>copies all case files
Running your very first simulation¶
Hold your horses, this needs less than 5 min. Begin by downloading the latest release tarball from here. Then follow the instructions below
cd ~ tar -xvzf Nek5000_X.Y.tar.gz export PATH=$HOME/Nek5000/bin:$PATH cd ~/Nek5000/tools; ./maketools genmap cd ~/Nek5000/run cp -r ../examples/eddy_uv . cd eddy_uv genmap # run partioner, on input type eddy_uv makenek eddy_uv # build case, edit script to change settings nekbmpi eddy_uv 2 # run Nek5000 on 2 ranks in the background tail logfile # view solver output visnek eddy_uv; visit -o eddy_uv.nek5000 # requires a VisIt/Paraview installation
Note that this will not work if you clone the master branch from GitHub, as the
examples folder is NOT included.
Nek5000 is mainly a solver. However, simple box type meshes can be generated with the
genbox tool. For more complex meshes please consider using
PRENEK and the meshing tools
n2to3. We provide mesh converters like
msh2nek which are quite handy if you want to use your favorite mesh generator. Also check our
Bazaar for 3rd party meshing tools.
Nek5000 output (
0.f%05d) files can be read by VisIt or
ParaView. This requires using
visnek to generate a metadata file.
There is also an build-in X-Window based postprocessor called
POSTNEK located in tools.
If you run into problems compiling, installing, or running Nek5000, first check the User’s Guide. If you are not able to find a solution to your problem there, please send a message to the User’s Group mailing list.
Nek5000 is hosted on GitHub and all bugs are reported and tracked through the Issues feature on GitHub. However, GitHub Issues should not be used for common troubleshooting purposes. If you are having trouble installing the code or getting your model to run properly, you should first send a message to the User’s Group mailing list. If it turns out your issue really is a bug in the code, an issue will then be created on GitHub. If you want to request that a feature be added to the code, you may create an Issue on GitHub.
Our project is hosted on GitHub. Here are the most important things you need to know:
- follow the usual “fork-and-pull” Git workflow
- all development happens on the master branch
- anything in master is always deployable
- upcoming releases get their own tags out of master
If you are planning a large contribution, we encourage you to discuss the concept here on GitHub and interact with us frequently to ensure that your effort is well-directed.