An amazing PDE solver using Python!

Recently, I learnt about FiPy: a finite volume PDE solver using Python. It is amazing. According to the overview,

FiPy is an object oriented, partial differential equation (PDE) solver, written in Python , based on a standard finite volume (FV) approach. The framework has been developed in the Metallurgy Division and Center for Theoretical and Computational Materials Science (CTCMS), in the Materials Science and Engineering Laboratory (MSEL) at the National Institute of Standards and Technology (NIST).

The solution of coupled sets of PDEs is ubiquitous to the numerical simulation of science problems. Numerous PDE solvers exist, using a variety of languages and numerical approaches. Many are proprietary, expensive and difficult to customize. As a result, scientists spend considerable resources repeatedly developing limited tools for specific problems. Our approach, combining the FV method and Python, provides a tool that is extensible, powerful and freely available. A significant advantage to Python is the existing suite of tools for array calculations, sparse matrices and data rendering.

The FiPy framework includes terms for transient diffusion, convection and standard sources, enabling the solution of arbitrary combinations of coupled elliptic, hyperbolic and parabolic PDEs. Currently implemented models include phase field treatments of polycrystalline, dendritic, and electrochemical phase transformations as well as a level set treatment of the electrodeposition process.

Those of you who are looking for opensource PDE tools (for learning and research purposes, especially those who are working on phase field modelling) will find the tool extremely useful. Have fun!

2 Responses to “An amazing PDE solver using Python!”

  1. Legout Says:


    i´ve found this solver very interesting.
    Do you have debian/ubuntu packages for it? If so, please send me an email.

    Best regards

  2. Another PDE solver « Entertaining Research Says:

    […] I wrote about FiPy some time ago; here is another called femLego about which I learnt today. From the introduction page: femLego is a set of Maple procedures and fortran subroutines that can be used to build complete fortran simulation codes for partial differential equations, with the entire problem definition done in Maple. It is intended mainly for time dependent systems, and in the present version sets up a time loop where the equations in the system are solved one after another in a split manner. Spatial discretizations are done as the standard finite element method on unstructured grids. The finite elements are specified as symbolic code in a few pages of Maple procedures. Some common 1D, 2D and 3D elements are provided. […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: