FENaPack - FEniCS Navier-Stokes preconditioning package
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 2018.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
- Jan Blechta <blechta@karlin.mff.cuni.cz>
- Martin Řehoř <rehor@karlin.mff.cuni.cz>
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“.
Links
- Homepage https://github.com/blechta/fenapack
- Testing https://circleci.com/gh/blechta/fenapack
- Documentation https://fenapack.readthedocs.io/
- Bug reports https://github.com/blechta/fenapack/issues
- PyPI home https://pypi.org/project/fenapack