Main SfePy repository
Python C C++ Other
Failed to load latest commit information.
doc docs: update installation instructions for Python 3 Jun 22, 2016
examples update linear_elastic_mM.py example to regenerate coefficients Jun 27, 2016
meshes add missing mesh - new meshes/elements/3_2_4_2.mesh May 3, 2016
script script/plot_mesh.py: use plot_cmesh() Jul 21, 2016
sfepy Merge pull request #333 from 'vlukes/hyperelast' Jul 21, 2016
tests new term: NonsymElasticTerm - non-symmetric gradient Jul 21, 2016
.gitignore update .gitignore Oct 23, 2014
.travis.yml update .travis.yml to test Python 3.4, run tests in debug mode when f… Jun 27, 2016
AUTHORS update AUTHORS Jun 23, 2016
INSTALL docs: update installation instructions for Python 3 Jun 22, 2016
LICENSE update years in LICENSE Apr 17, 2014
MANIFEST.in fix path in MANIFEST.in Sep 23, 2015
Makefile python setup.py ... via Makefile May 31, 2011
README.rst README.rst: show travis status, update and fix text and links Jul 8, 2016
btrace_python started SfePy, based on sfe-release-00.35.01.tgz Dec 19, 2007
build_helpers.py Manually fix syntax in some support files Jun 15, 2016
extractor.py run python-modernize relative import fixer on scripts, examples and t… Jun 20, 2016
homogen.py run python-modernize relative import fixer on scripts, examples and t… Jun 20, 2016
phonon.py run python-modernize relative import fixer on scripts, examples and t… Jun 20, 2016
postproc.py run python-modernize dict iteration fixers on scripts and examples Jun 20, 2016
probe.py run python-modernize dict iteration fixers on scripts and examples Jun 20, 2016
run_tests.py update run_tests.py to return status Jun 24, 2016
schroedinger.py run python-modernize relative import fixer on scripts, examples and t… Jun 20, 2016
setup.py update setup.py, sfepy/version.py for README.rst Jul 8, 2016
sfepy-run sfepy-run: update for no scripts-common/ symlinks, use explicit scrip… May 4, 2016
shaper.py run python-modernize xrange fixer on scripts and examples Jun 20, 2016
simple.py run python-modernize relative import fixer on scripts, examples and t… Jun 20, 2016
site_cfg_template.py support DEBUG_MESH flag in sfepy/fem/extmods/ May 20, 2013
test_install.py fix reporting of failed tests in test_install.py with Python 3 Jun 22, 2016

README.rst

CI

SfePy (Simple finite elements in Python)

SfePy [1] 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. Its source code can be found on github [2].

SfePy is based primarily on NumPy [3] and SciPy [4]. See the INSTALL file for installation instructions or refer to [1].

  • License: New BSD License, see the LICENSE file.
  • Authors: Robert Cimrman and Contributors, see the AUTHORS file.

How to start

SfePy uses so called "problem definition files" (also referred to as "input files" or "problem description files"") that describe the partial differential equations (PDEs), boundary conditions, function spaces and other ingredients of the finite element (FE) formulation of a PDE-related problem, see [1]. The PDEs are given in weak formulation as usual in the FE context, see [5], where each equation is composed of one or more terms. To see which terms are available consult doc/sfepy_manual.pdf, or see them online [6].

In order to solve a problem, a problem description file has to be created. There is also an interactive solution support for advanced users [7]. When starting to solve a new problem, it is best to have a look at example problem definition files in the examples/ directory - copy the one that is similar to the problem at hand, and modify it.

While a problem definition file describes a mathematical problem, it does not contain a discretized solution domain (a FE mesh). The FE mesh must be provided in another file in one of the supported formats, notably the legacy VTK format [8]. SfePy does not provide meshing tools, but it can use a number of standard formats. The results are almost exclusively stored in legacy VTK files, or custom HDF5 files. Many standard open-source tools can be used to display the VTK files, namely paraview [9], or mayavi [10]. The latter is supported directly within SfePy, via the postproc.py script.

Once an input file and a corresponding mesh file are prepared, the solution of the problem can be attempted using the simple.py script, see the documentation.

References

[1](1, 2, 3) http://sfepy.org - main SfePy development site (releases, mailing lists, wiki, issue tracking, downloads, documentation, examples)
[2]http://github.com/sfepy - master git repository
[3]http://numpy.org
[4]http://scipy.org
[5]http://en.wikipedia.org/wiki/Weak_formulation
[6]http://docs.sfepy.org/doc/terms_overview.html
[7]http://docs.sfepy.org/doc/tutorial.html#interactive-example-linear-elasticity
[8]http://www.vtk.org/VTK/img/file-formats.pdf
[9]http://paraview.org/
[10]http://code.enthought.com/projects/mayavi/