https://github.com/usnistgov/fipy

FiPy is a Finite Volume PDE solver written in Python

https://github.com/usnistgov/fipy

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    5 of 17 committers (29.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary

Keywords

materials-science modeling partial-differential-equations phase-field scientific-computing scientific-computing-with-python shared-memory-parallel simulation

Keywords from Contributors

jekyll-website lesson carpentries
Last synced: 6 months ago · JSON representation

Repository

FiPy is a Finite Volume PDE solver written in Python

Basic Info
Statistics
  • Stars: 570
  • Watchers: 29
  • Forks: 170
  • Open Issues: 174
  • Releases: 31
Topics
materials-science modeling partial-differential-equations phase-field scientific-computing scientific-computing-with-python shared-memory-parallel simulation
Created over 11 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License

README.rst

.. |.changelog| replace:: Change Log
.. _.changelog: https://pages.nist.gov/fipy/en/latest/CHANGELOG.html#changelog
.. |.examples.diffusion.mesh1D| replace:: ``examples.diffusion.mesh1D``
.. _.examples.diffusion.mesh1D: https://github.com/usnistgov/fipy/blob/8ce469efe0e53f70b3c0c7996141b49d5f6df83a/examples/diffusion/mesh1D.py
.. |.faq| replace:: Frequently Asked Questions
.. _.faq: https://pages.nist.gov/fipy/en/latest/FAQ.html#faq
.. |.FiPy| replace:: FiPy
.. _.FiPy: https://pages.nist.gov/fipy/en/latest/glossary.html#term-FiPy
.. |.installation| replace:: Installation
.. _.installation: https://pages.nist.gov/fipy/en/latest/INSTALLATION.html#installation
.. |.Python| replace:: Python
.. _.Python: https://pages.nist.gov/fipy/en/latest/glossary.html#term-Python
.. |.usage| replace:: Using FiPy
.. _.usage: https://pages.nist.gov/fipy/en/latest/USAGE.html#usage


========
Overview
========



| |Tests|_ |Documentation|_ |nix|_
| |GitHub|_ |PyPI|_  |CondaForge|_ |Binder|_
| |gitter|_ |OpenHub|_

|.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 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 :cite:`BoettingerReview:2002`
:cite:`ChenReview:2002` :cite:`McFaddenReview:2002` treatments of polycrystalline,
dendritic, and electrochemical phase transformations, as well as drug
eluting stents :cite:`Saylor:2011p2794`, reactive wetting :cite:`PhysRevE.82.051601`,
photovoltaics :cite:`Hangarter:2011p2795` and a level set treatment of the
electrodeposition process :cite:`NIST:damascene:2001`.

The latest information about |.FiPy|_ can be found at
http://www.ctcms.nist.gov/fipy/.

See the latest updates in the |.changelog|_.

---------------------------------
Even if you don't read manuals...
---------------------------------

...please read |.installation|_, |.usage|_ and |.faq|_, as well
as |.examples.diffusion.mesh1D|_.

-------------------------
Download and Installation
-------------------------

Please refer to |.installation|_ for details on download and
installation. |.FiPy|_ can be redistributed and/or modified
freely, provided that any derivative works bear some notice that they
are derived from it, and any modified versions bear some notice that
they have been modified.

-------
Support
-------

We offer several modes to communicate with the |.FiPy|_ developers and
with other users.

* `Contact `_

  * `GitHub Discussions `_
  * `GitHub Issues `_
  * `StackOverflow `_
  * `Mailing List `_

    * `List Archive `_



      |



We welcome collaborative efforts on this project.

------------------------
Conventions and Notation
------------------------

|.FiPy|_ is driven by |.Python|_ script files than you can view or modify in any
text editor.  |.FiPy|_ sessions are invoked from a command-line shell, such
as :command:`tcsh` or :command:`bash`.

Throughout, text to be typed at the keyboard will appear ``like this``.
Commands to be issued from an interactive shell will appear::

    $ like this

where you would enter the text ("``like this``") following the shell prompt,
denoted by "``$``".

Text blocks of the form::

    >>> a = 3 * 4
    >>> a
    12
    >>> if a == 12:
    ...     print "a is twelve"
    ...
    a is twelve

are intended to indicate an interactive session in the |.Python|_ interpreter.
We will refer to these as "interactive sessions" or as "doctest blocks".
The text "``>>>``" at the beginning of a line denotes the *primary prompt*,
calling for input of a |.Python|_ command.  The text "``...``" denotes the
*secondary prompt*, which calls for input that continues from the line
above, when required by |.Python|_ syntax.  All remaining lines, which begin
at the left margin, denote output from the |.Python|_ interpreter.  In all
cases, the prompt is supplied by the |.Python|_ interpreter and should not be
typed by you.


.. list-table::
   :header-rows: 1
   
   * - 🚩 Warning
   * - |.Python|_ is sensitive to indentation and care should be taken to enter
       text exactly as it appears in the examples.


When references are made to file system paths, it is assumed that the
current working directory is the |.FiPy|_ distribution directory, referred to
as the "base directory", such that::

    examples/diffusion/steadyState/mesh1D.py

will correspond to, *e.g.*::

    /some/where/FiPy-X.Y/examples/diffusion/steadyState/mesh1D.py

Paths will always be rendered using POSIX conventions (path elements
separated by "``/``").  Any references of the form::

    examples.diffusion.steadyState.mesh1D

are in the |.Python|_ module notation and correspond to the equivalent POSIX
path given above.

We may at times use a


.. list-table::
   :header-rows: 1
   
   * - 📝 Note
   * - to indicate something that may be of interest


or a


.. list-table::
   :header-rows: 1
   
   * - 🚩 Warning
   * - to indicate something that could cause serious problems.


.. _MML:           http://www.nist.gov/mml/
.. _CTCMS:         http://www.ctcms.nist.gov/
.. _MSED:          http://www.nist.gov/mml/msed/
.. _NIST:          http://www.nist.gov/

.. |GitHub|        image:: https://img.shields.io/github/contributors/usnistgov/fipy.svg
.. _GitHub:        https://github.com/usnistgov/fipy
.. |gitter|        image:: https://badges.gitter.im/usnistgov/fipy.svg
.. _gitter:        https://gitter.im/usnistgov/fipy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge
.. |Tests|         image:: https://dev.azure.com/guyer/FiPy/_apis/build/status/usnistgov.fipy?branchName=master
.. _Tests:         https://dev.azure.com/guyer/FiPy/_build?definitionId=2
.. |Documentation| image:: https://github.com/usnistgov/fipy/actions/workflows/Docs4NIST.yml/badge.svg
.. _Documentation: https://github.com/usnistgov/fipy/actions/workflows/Docs4NIST.yml
.. |nix|           image:: https://github.com/usnistgov/fipy/actions/workflows/nix.yml/badge.svg
.. _nix:           https://github.com/usnistgov/fipy/actions/workflows/nix.yml
.. |OpenHub|       image:: https://www.openhub.net/p/fipy/widgets/project_thin_badge.gif
.. _OpenHub:       https://www.openhub.net/p/fipy
.. |PyPI|          image:: https://img.shields.io/pypi/v/fipy.svg
.. _PyPI:          https://pypi.python.org/pypi/FiPy
.. |CondaForge|    image:: https://img.shields.io/conda/pn/conda-forge/fipy?label=conda-forge
.. _CondaForge:    https://anaconda.org/conda-forge/fipy

.. |Binder|        image:: https://mybinder.org/badge.svg
.. _Binder:        https://mybinder.org/v2/gh/usnistgov/fipy/master?filepath=examples%2Findex.ipynb

Owner

  • Name: National Institute of Standards and Technology
  • Login: usnistgov
  • Kind: organization
  • Location: Gaithersburg, Md.

Department of Commerce

GitHub Events

Total
  • Issues event: 42
  • Watch event: 61
  • Delete event: 9
  • Issue comment event: 66
  • Push event: 210
  • Pull request review comment event: 18
  • Pull request review event: 20
  • Pull request event: 28
  • Fork event: 21
  • Create event: 16
Last Year
  • Issues event: 42
  • Watch event: 61
  • Delete event: 9
  • Issue comment event: 66
  • Push event: 210
  • Pull request review comment event: 18
  • Pull request review event: 20
  • Pull request event: 28
  • Fork event: 21
  • Create event: 16

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 5,143
  • Total Committers: 17
  • Avg Commits per committer: 302.529
  • Development Distribution Score (DDS): 0.497
Past Year
  • Commits: 15
  • Committers: 1
  • Avg Commits per committer: 15.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jonathan E. Guyer g****r@n****v 2,588
Daniel Wheeler d****r@n****v 1,784
Andrew A. Acquaviva no@e****l 339
James O'Beirne j****e@g****m 242
Daniel Wheeler d****2@g****m 80
Trevor Keller t****r@n****v 49
Ashwin Srinath a****t@c****u 32
No Author n****r@n****r 9
James A. Warren j****n@n****v 8
Peter Williams p****r@n****x 3
alfrenardi a****i@g****m 2
Raymond Smith r****h@g****m 2
Daniel Rodgers-Pryor d****r@g****m 1
Jon83Carvalho j****o@g****m 1
Kris Kuhlman k****n@g****m 1
Mike Mueller m****r@p****e 1
xfong x****g@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 174
  • Total pull requests: 98
  • Average time to close issues: 9 months
  • Average time to close pull requests: 2 months
  • Total issue authors: 63
  • Total pull request authors: 6
  • Average comments per issue: 2.16
  • Average comments per pull request: 2.2
  • Merged pull requests: 69
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 32
  • Pull requests: 27
  • Average time to close issues: 23 days
  • Average time to close pull requests: 23 days
  • Issue authors: 12
  • Pull request authors: 5
  • Average comments per issue: 0.78
  • Average comments per pull request: 0.74
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • guyer (69)
  • CalebDmArcher (14)
  • wd15 (8)
  • Sandip433 (5)
  • Yifath7 (3)
  • pavaninguva (3)
  • SarahMousazadeh (3)
  • JDS19 (3)
  • ghost (3)
  • raviapatel (2)
  • Noxical (2)
  • Robob1715 (2)
  • Maxwellfire (2)
  • agoncalvescoel (2)
  • IsaacBlancICL (2)
Pull Request Authors
  • guyer (73)
  • wd15 (16)
  • arpitjain099 (3)
  • cgadal (2)
  • obscurerichard (2)
  • sridhar-mani (2)
Top Labels
Issue Labels
question (50) bug (43) documentation (23) meshes (19) variables (13) terms (12) solvers (11) viewers (10) installation (9) enhancement (8) CI (8) boundaryConditions (8) numerix (5) parallel (5) worksforme (5) inactive (5) units (4) duplicate (4) tests (4) examples (4) io (3) Py3k (3) deprecations (3) matrices (2) task (2) models (1) --inline (1) logging (1) invalid (1)
Pull Request Labels
bug (23) documentation (22) CI (14) variables (8) enhancement (6) viewers (6) installation (6) Py3k (4) examples (4) meshes (3) logging (3) units (2) boundaryConditions (2) solvers (2) deprecations (1) terms (1) development (1) numerix (1) task (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 2,919 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 8
    (may contain duplicates)
  • Total versions: 21
  • Total maintainers: 2
pypi.org: fipy

A finite volume PDE solver in Python

  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 8
  • Downloads: 2,919 Last month
Rankings
Dependent repos count: 5.2%
Downloads: 7.1%
Average: 7.4%
Dependent packages count: 10.0%
Maintainers (2)
Last synced: 6 months ago
conda-forge.org: fipy

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 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 treatments of polycrystalline, dendritic, and electrochemical phase transformations as well as a level set treatment of the electrodeposition process.

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 13.8%
Stargazers count: 18.3%
Average: 29.3%
Dependent repos count: 34.0%
Dependent packages count: 51.2%
Last synced: 6 months ago

Dependencies

.github/workflows/nix.yml actions
  • actions/checkout v2.3.4 composite
  • cachix/install-nix-action v14.1 composite
setup.py pypi
  • numpy *
docs/requirements.txt pypi
  • numpydoc *
  • pandas *
  • sphinx *
  • sphinxcontrib-bibtex *
docs/source/requirements.txt pypi
.github/workflows/Docs4NIST.yml actions
  • usnistgov/Docs4NIST main composite
docs/environment.yml conda
  • future
  • gmsh <4.0|>=4.5.2
  • matplotlib-base
  • mayavi
  • mpi4py
  • mpich
  • numpy
  • numpydoc
  • packaging
  • pandas
  • petsc4py
  • pip
  • python 3.*
  • scipy
  • sphinx
  • sphinxcontrib-bibtex
binder/environment.yml pypi