Skip to content

An open source toolbox based on Krylov methods for highly parallel global linear stability analysis of incompressible flow problems for Nek5000.

License

Notifications You must be signed in to change notification settings

nekStab/nekStab

Repository files navigation

GCC Documentation status

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.

News

  • 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.

First Steps

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.

Development

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.

Help and support

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

Communication

Citation

When using nekStab, please consider citing one of the following papers :

@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},
}
@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}
}
@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},
}