SfePy: Simple Finite Elements in Python

SfePy is a software for solving systems of coupled partial differential equations (PDEs) by the finite element method in 1D, 2D and 3D. It can be viewed both as black-box PDE solver, and as a Python package which can be used for building custom applications. The word “simple” means that complex FEM problems can be coded very easily and rapidly.

SfePy can use many terms to build the PDEs to be solved, see Term Overview. SfePy comes also with a number of examples that can get you started, check Gallery, Examples and Tutorial. Some more advanced features are discussed in Primer.

SfePy can be used in parallel (work in progress), see Solving Problems in Parallel. There is also a preliminary support for the isogeometric analysis, outlined in Isogeometric Analysis.

The easiest way to install SfePy is to use Anaconda, see Notes on Multi-platform Python Distributions in Installation.

License: BSD


Here we list some of the applications SfePy is/was developed for.

  • homogenization of porous media - parallel flows in a deformable porous medium

  • acoustic band gaps, homogenization of a strongly heterogenous elastic structure: phononic materials

  • acoustic waves in thin perforated layers

  • finite element formulation of Schroedinger equation

  • flow of a two-phase non-Newtonian fluid medium in a general domain - oil expression in screw presses/extruders


If you would like to cite the SfePy package in a paper or presentation, the following reference (full-text link) can be used:

  • Plain text:

    Cimrman, R., Lukeš, V., Rohan, E., 2019. Multiscale finite element calculations in Python using SfePy. Adv Comput Math. https://doi.org/10.1007/s10444-019-09666-0

  • BibTeX:

      title =        {Multiscale finite element calculations in Python using SfePy},
      ISSN =         {1572-9044},
      url =          {https://doi.org/10.1007/s10444-019-09666-0},
      DOI =          {10.1007/s10444-019-09666-0},
      journal =      {Advances in Computational Mathematics},
      author =       {Cimrman, Robert and Lukeš, Vladimír and Rohan, Eduard},
      year =         2019,
  • Other references:

    • R. Cimrman. SfePy - write your own FE application. In P. de Buyl and N. Varoquaux, editors, Proceedings of the 6th European Con- ference on Python in Science (EuroSciPy 2013), pages 65–70, 2014. http://arxiv.org/abs/1404.6391.

    • R. Cimrman. Enhancing SfePy with isogeometric analysis. In P. de Buyl and N. Varoquaux, editors, Proceedings of the 7th European Conference on Python in Science (EuroSciPy 2014), pages 65–72, 2014. http://arxiv.org/abs/1412.6407.


Work on SfePy is partially supported by the following ongoing projects:

  • project GA19-04956S (Dynamic and nonlinear behaviour of smart structures; modelling and optimization) of the Czech Science Foundation, since 2019;

  • the European Regional Development Fund-Project “Application of Modern Technologies in Medicine and Industry” (No. CZ.02.1.01/0.0/0.0/17_048/0007280) of the Czech Ministry of Education, Youth and Sports, since 2018.

See also Past Support.

Manual in PDF

PDF version of the documentation: sfepy_manual.pdf

Indices and tables