nekStab is a toolbox for performing bifurcation analysis using the spectral element CFD solver Nek5000. It is released under the BSD-3-Clause license.
The project started in 2010 with the PhD thesis of Jean-Christophe Loiseau and builds on the work of former PhD students of our group such as Frédéric Alizard, Stefania Cherubini, Alessandro Bucci, Mirko Farano, Francesco Picella and Ricardo Frantz. Ricardo is the one who brought all the previous contributions together in a single toolbox.
It is actively maintained mainly by Ricardo Frantz and Jean-Christophe Loiseau. Both of them work at DynFluid, a fluid dynamics laboratory part of Arts et Métiers Institute of Technology.
- February 2022: The first official version of 'nekStab' is available online! It is released under the BSD-3-Clause license. Do not hesitate to contact us, have a look at the documentation or read the release notes if you want to know more.
nekStab is a toolbox written in 'Fortran 90' for the spectral element solver Nek500. If you already have C and Fortran compilers, you can install both on Ubuntu/Debian distributions with the following commands.
Prerequisites
Linux
sudo apt-get -y install libmpich-dev libopenblas-dev cmake m4 htop
MacOS
brew install mpich gfortran wget git cmake htop
Cloning the repository and Nek5000
git clone --depth=50 https://github.com/nekStab/nekStab.git
cd nekStab
./Nek5000clone.sh
Run vim $HOME/.bashrc and add the following :
export NEKSTAB_SOURCE_ROOT=$HOME/nekStab
export NEK_SOURCE_ROOT=$NEKSTAB_SOURCE_ROOT/Nek5000
export PATH=$NEK_SOURCE_ROOT/bin:$PATH
export PATH=$NEKSTAB_SOURCE_ROOT/bin:$PATH
Computing the fixed point for the cylinder flow example using the Newton-Krylov solver on 4 processors is as simple as
Go to a given example folder and compile the code:
cd ~/nekStab/examples/cylinder/baseflow/newton
./cmpile.sh all
alternatively you can compile with makeneks followed by the case name:
makeneks 1cyl
If 'Compilation successful!' then you can run the code:
nekbmpi 1cyl 4
to follow the code output in the logfile try:
tail -f logfile
To stop the code just:
killall nek5000
For more information on compiling the code on Mac OS or optional packages, see the Documentation.
nekStab is mainly developed by Jean-Christophe Loiseau and Ricardo Frantz. However, we welcome contributors of all levels of experience. If you are planning a larger contribution, we encourage you to discuss the concept here on GitHub and to interact with us regularly to ensure your efforts are targeted.
Although nekStab relies on Nek5000, none of us are active developers of Nek5000. If you have questions about Nek5000, please contact the dedicated GitHub repo and documentation
- Mail : Jean-Christophe Loiseau or Ricardo Frantz
- Website : https://nekstab.github.io/
When using nekStab, please consider citing one of the following papers :
- Frantz et al. (2023) presents the complete theoretical framework underlying nekStab.
@article{frantz2023krylov,
author = {Frantz, R. A. S. and Loiseau, J.-Ch. and Robinet, J.-Ch.},
title = "{Krylov Methods for Large-Scale Dynamical Systems: Application in Fluid Dynamics}",
journal = {Applied Mechanics Reviews},
volume = {75},
number = {3},
year = {2023},
month = {03},
issn = {0003-6900},
doi = {10.1115/1.4056808},
url = {https://doi.org/10.1115/1.4056808},
note = {030802},
eprint = {https://asmedigitalcollection.asme.org/appliedmechanicsreviews/article-pdf/75/3/030802/6996354/amr\_075\_03\_030802.pdf},
}
- Loiseau et al. (2019) presents most of the theoretical framework underlying nekStab.
@incollection{chapter:loiseau:2019,
title={Time-stepping and Krylov methods for large-scale instability problems},
author={Loiseau, J.-Ch. and Bucci, M. A. and Cherubini, S. and Robinet, J.-Ch.},
booktitle={Computational Modelling of Bifurcations and Instabilities in Fluid Dynamics},
pages={33--73},
year={2019},
publisher={Springer}
}
- Loiseau et al. (J. Fluid Mech., 2014) describes the first implementation of the Arnoldi solver in Nek5000.
@article{jfm:loiseau:2014,
title={Investigation of the roughness-induced transition: global stability analyses and direct numerical simulations},
author={Loiseau, J.-Ch. and Robinet, J.-Ch. and Cherubini, S. and Leriche, E.},
journal={J. Fluid Mech.},
volume={760},
pages={175--211},
year={2014},
}