FiPy is an object oriented, PDE (partial differential equation) solver, written in :term:`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 :term:`Python`, provides a tool that is extensible, powerful and freely available. A significant advantage to :term:`Python` is the existing suite of tools for array calculations, sparse matrices and data rendering.
The :term:`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 [BoettingerReview:2002]_ [ChenReview:2002]_ [McFaddenReview:2002]_ treatments of polycrystalline, dendritic, and electrochemical phase transformations as well as a level set treatment of the electrodeposition process [NIST:damascene:2001]_.