nekRS. See nekRS for more info about capabilities, etc.. The purpose of this branch is to demonstrate how one may deploy Python frameworks within nekRS.
Requirements:
- A conda environment which contains NumPy and CuPY
- All the requirementss for the stand-alone version of nekRS (e.g. Cmake, MPI, etc.)
Clone this branch:
git clone -b test_branch https://github.com/spatel81/nekRS.git The master branch always points to the latest stable release of the stand-alone nekRS code.
Configure the cmake script nrsconfig.sh by setting the proper paths to Python-C++ API and NumPY headers/libraries; i.e. modify CONDA_DIR and NUMPY_DIR variables accordingly. The current script include paths for the ThetaGPU system.
To build and install the code run:
./nrsconfig
cmake --build ./build --target install -j8Please delete instead of overwriting your old build and install directory before updating.
Build settings can be customized by environment variables.
After installation you may want to adjust $NEKRS_HOME/nekrs.conf to your environment.
Assuming you run bash and your install directory is $HOME/.local/nekrs,
add the following line to your $HOME/.bash_profile:
export NEKRS_HOME=$HOME/.local/nekrs
export PATH=$NEKRS_HOME/bin:$PATHthen type source $HOME/.bash_profile in the current terminal window.
or...
you can source the files in the env directory of this branch. These load the proper modules for your system. At the moment, we have a script for ThetaGPU.
Please modify NEKRS_HOME to your preference.
source env/thetaGPU/set_modules.shactivate your conda environment
conda activateWe 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.
We have a test example which embeds the Python-C++ interpreter into nekRS via the plugin and user-defined files (UDF) framework. As of 6/14/22, these are maintained in the plugin and udf directories in src
To run a stand-alone nekRS examples do
cd $NEKRS_HOME/examples/turbPipePeriodic
mpirun -np 2 nekrs --setup turbPipe.parTo run an example with the Python-C++ interpreter embedded into the UDFs do
cd $NEKRS_HOME/examples/00_tgv_python
mpirun -np 1 nekrs --setup tgv.parFor convenience we provide various launch scripts in the bin directory.
For documentation, see our readthedocs page. For now it's just a dummy. We hope to improve documentation to make it more useable for new users.
nekRS is released under the BSD 3-clause license (see LICENSE file).
All new contributions must be made under the BSD 3-clause license.
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. This research used resources of the Argonne Leadership Computing Facility, which is a DOE Office of Science User Facility supported under Contract DE-AC02-06CH11357