FENaPack - FEniCS Navier-Stokes preconditioning package

https://circleci.com/gh/blechta/fenapack.svg?style=svg

FENaPack is a package implementing preconditioners for Navier-Stokes problem using FEniCS and PETSc packages. In particular, variants of PCD (pressure-convection-diffussion) preconditioner from [1], [2] are implemented.

[1]Elman H. C., Silvester D. J., Wathen A. J., Finite Elements and Fast Iterative Solvers: With Application in Incompressible Fluid Dynamics. Oxford University Press 2005. 2nd edition 2014.
[2]Olshanskii M. A., Vassilevski Y. V., Pressure Schur complement preconditioners for the discrete Oseen problem. SIAM J. Sci. Comput., 29(6), 2686-2704. 2007.

Usage

To use FENaPack matching version of FEniCS (version 2019.2.0.dev0) compiled with PETSc, petsc4py and mpi4py is needed. Note that FENaPack uses same version numbering as FEniCS and follows its release schedule with a short lag.

To install FENaPack from source do:

pip3 install [--user|--prefix=...] [-e] .

in the source/repository root dir. Editable install using -e allows to use FENaPack directly from source directory while editing it which is suitable for development.

You can install latest FENaPack release form PyPI:

pip3 install [--user|--prefix=...] fenapack

or install latest development version from Github:

pip3 install [--user|--prefix=...] git+https://github.com/blechta/fenapack

To start experimenting:

cd demo/navier-stokes-pcd
python3 demo_navier-stokes-pcd.py --help
python3 demo_navier-stokes-pcd.py [opts]
mpirun -n 16 python3 demo_navier-stokes-pcd.py [opts]

Full documentation is available at https://fenapack.readthedocs.io/.

Authors

License

FENaPack is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

FENaPack is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with FENaPack. If not, see <http://www.gnu.org/licenses/>.

Acknowledgement

This work was supported by The Ministry of Education, Youth and Sports from the Large Infrastructures for Research, Experimental Development and Innovations project „IT4Innovations National Supercomputing Center – LM2015070“.