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 -j8
Please 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:$PATH
then 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.sh
activate your conda environment
conda activate
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.
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.par
To 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.par
For 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