GithubHelp home page GithubHelp logo

wpk-nist-gov / fipy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from usnistgov/fipy

0.0 0.0 0.0 27.7 MB

FiPy is a Finite Volume PDE solver written in Python

Home Page: http://www.ctcms.nist.gov/fipy

License: Other

Python 99.89% Nix 0.11%

fipy's Introduction

Overview

.. only:: latex

   :term:`FiPy` is an object oriented, partial differential equation (PDE)
   solver, written in :term:`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 :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 :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`.

.. only:: latex

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

   See the latest updates in the :ref:`CHANGELOG`.

Even if you don't read manuals...

...please read :ref:`INSTALLATION`, :ref:`USAGE` and :ref:`FAQ`, as well as :mod:`examples.diffusion.mesh1D`.

Download and Installation

Please refer to :ref:`INSTALLATION` for details on download and installation. :term:`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

You can communicate with the :term:`FiPy` developers and with other users via our mailing list and we welcome you to use the issue tracker for bugs, support requests, feature requests and patch submissions <https://github.com/usnistgov/fipy/issues>. We also monitor StackOverflow for questions tagged with "fipy". We welcome collaborative efforts on this project.

.. toctree::

   documentation/MAIL

Conventions and Notation

:term:`FiPy` is driven by :term:`Python` script files than you can view or modify in any text editor. :term:`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 :term:`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 :term:`Python` command. The text "..." denotes the secondary prompt, which calls for input that continues from the line above, when required by :term:`Python` syntax. All remaining lines, which begin at the left margin, denote output from the :term:`Python` interpreter. In all cases, the prompt is supplied by the :term:`Python` interpreter and should not be typed by you.

Warning

:term:`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 :term:`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 :term:`Python` module notation and correspond to the equivalent POSIX path given above.

We may at times use a

Note

to indicate something that may be of interest

or a

Warning

to indicate something that could cause serious problems.

fipy's People

Contributors

guyer avatar wd15 avatar jamesob avatar tkphd avatar pkgw avatar raybsmith avatar alfrenardi avatar djrodgerspryor avatar jon83carvalho avatar klkuhlm avatar pya avatar xfong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.