fipy

An object oriented, partial differential equation (PDE) solver

FiPy is based on a standard finite volume (FV) approach. The framework has been developed in the Materials Science and Engineering Division (MSED) and Center for Theoretical and Computational Materials Science (CTCMS), in the Material Measurement Laboratory (MML) 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 [1] [2] [3] treatments of polycrystalline, dendritic, and electrochemical phase transformations, as well as drug eluting stents [4], reactive wetting [5], photovoltaics [6] and a level set treatment of the electrodeposition process [7].

Functions

doctest_raw_input(prompt)

Replacement for raw_input() that works in doctests

test(*args)

Test Fipy. Equivalent to::.

fipy.doctest_raw_input(prompt)

Replacement for raw_input() that works in doctests

This routine attempts to be savvy about running in parallel.

fipy.test(*args)

Test Fipy. Equivalent to:

$ python setup.py test --modules

Use

>>> import fipy
>>> fipy.test('--help')

for a full list of options. Options can be passed in the same way as they are appended at the command line. For example, to test FiPy with Trilinos and inlining switched on, use

>>> fipy.test('--trilinos', '--inline')

At the command line this would be:

$ python setup.py test --modules --trilinos --inline

Modules

fipy.boundaryConditions

Boundary conditions

fipy.matrices

Sparse matrices

fipy.meshes

Domain geometry and topology

fipy.solvers

Solving sparse linear systems

fipy.steppers

(Obsolete) utilities for iterating time steps

fipy.terms

Discretizations of partial differential equation expressions

fipy.testFiPy

Test suite for FiPy modules

fipy.tests

Unit testing scripts

fipy.tools

Utility modules, functions, and values

fipy.variables

Collections of values supporting lazy evaluation

fipy.viewers

Tools for displaying the values of Variable objects

Last updated on Jun 26, 2024. Created using Sphinx 7.1.2.