| 1 | ======== |
|---|
| 2 | Overview |
|---|
| 3 | ======== |
|---|
| 4 | |
|---|
| 5 | |FiPy| is an object oriented, partial differential equation (PDE) solver, |
|---|
| 6 | written in Python_ |citePython|, based on a standard finite volume (FV) |
|---|
| 7 | approach. The framework has been developed in the `Metallurgy Division`_ |
|---|
| 8 | and Center for Theoretical and Computational Materials Science (CTCMS_), in |
|---|
| 9 | the Materials Science and Engineering Laboratory (MSEL_) at the National |
|---|
| 10 | Institute of Standards and Technology (NIST_). |
|---|
| 11 | |
|---|
| 12 | The solution of coupled sets of PDEs is ubiquitous to the numerical |
|---|
| 13 | simulation of science problems. Numerous PDE solvers exist, using a |
|---|
| 14 | variety of languages and numerical approaches. Many are proprietary, |
|---|
| 15 | expensive and difficult to customize. As a result, scientists spend |
|---|
| 16 | considerable resources repeatedly developing limited tools for |
|---|
| 17 | specific problems. Our approach, combining the FV method and Python_, |
|---|
| 18 | provides a tool that is extensible, powerful and freely available. A |
|---|
| 19 | significant advantage to Python_ is the existing suite of tools for |
|---|
| 20 | array calculations, sparse matrices and data rendering. |
|---|
| 21 | |
|---|
| 22 | The |FiPy| framework includes terms for transient diffusion, convection and |
|---|
| 23 | standard sources, enabling the solution of arbitrary combinations of |
|---|
| 24 | coupled elliptic, hyperbolic and parabolic PDEs. Currently implemented |
|---|
| 25 | models include phase field |citePhaseField| treatments of polycrystalline, |
|---|
| 26 | dendritic, and electrochemical phase transformations as well as a level set |
|---|
| 27 | treatment of the electrodeposition process |citeCEAC|. |
|---|
| 28 | |
|---|
| 29 | .. raw:: html |
|---|
| 30 | |
|---|
| 31 | <!-- |
|---|
| 32 | |
|---|
| 33 | The latest information about |FiPy| can be found at |
|---|
| 34 | http://www.ctcms.nist.gov/fipy/. |
|---|
| 35 | |
|---|
| 36 | .. raw:: html |
|---|
| 37 | |
|---|
| 38 | --> |
|---|
| 39 | |
|---|
| 40 | --------------------------------- |
|---|
| 41 | Even if you don't read manuals... |
|---|
| 42 | --------------------------------- |
|---|
| 43 | |
|---|
| 44 | ...please read |INSTALLATION-txt| and |the FAQ|. |
|---|
| 45 | |
|---|
| 46 | ----------------------------------- |
|---|
| 47 | What's new in version |VERSION| |
|---|
| 48 | ----------------------------------- |
|---|
| 49 | |
|---|
| 50 | The significant changes since version 1.1 are: |
|---|
| 51 | |
|---|
| 52 | - ``--inline`` automatically generates C code from ``Variable`` expressions. |
|---|
| 53 | |
|---|
| 54 | - |FiPy| has been updated to use the Python_ NumPy_ module. |FiPy| no |
|---|
| 55 | longer works with the older Numeric_ module. |
|---|
| 56 | |
|---|
| 57 | .. _NumPy: http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://www.scipy.org/NumPy |
|---|
| 58 | .. _Numeric: http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=1351 |
|---|
| 59 | |
|---|
| 60 | ------------------------- |
|---|
| 61 | Download and Installation |
|---|
| 62 | ------------------------- |
|---|
| 63 | |
|---|
| 64 | Please refer to |INSTALLATION-txt| for details on download and |
|---|
| 65 | installation. |FiPy| can be redistributed and/or modified |
|---|
| 66 | freely, provided that any derivative works bear some notice that they |
|---|
| 67 | are derived from it, and any modified versions bear some notice that |
|---|
| 68 | they have been modified. |
|---|
| 69 | |
|---|
| 70 | ------- |
|---|
| 71 | Support |
|---|
| 72 | ------- |
|---|
| 73 | |
|---|
| 74 | You can communicate with the |FiPy| developers and with other users via our |
|---|
| 75 | `mailing list`_ and we welcome you to use the `tracking |
|---|
| 76 | system`_ for bugs, support requests, feature requests and |
|---|
| 77 | patch submissions |citeMailingTracking|. We welcome collaborative efforts on this project. |
|---|
| 78 | |
|---|
| 79 | |FiPy| is a member of MatForge_, a project of the `Materials Digital Library |
|---|
| 80 | Pathway`_. This National Science Foundation funded service provides |
|---|
| 81 | management of our public source code repository, our bug tracking system, and |
|---|
| 82 | a "wiki" space for public contributions of code snippets, discussions, and |
|---|
| 83 | tutorials. |
|---|
| 84 | |
|---|
| 85 | ------------------------ |
|---|
| 86 | Conventions and Notation |
|---|
| 87 | ------------------------ |
|---|
| 88 | |
|---|
| 89 | |FiPy| is driven by Python_ script files than you can view or modify in any |
|---|
| 90 | text editor. |FiPy| sessions are invoked from a command-line shell, such |
|---|
| 91 | as ``tcsh`` or ``bash``. |
|---|
| 92 | |
|---|
| 93 | Throughout, text to be typed at the keyboard will appear ``like this``. |
|---|
| 94 | Commands to be issued from an interactive shell will appear:: |
|---|
| 95 | |
|---|
| 96 | $ like this |
|---|
| 97 | |
|---|
| 98 | where you would enter the text ("``like this``") following the shell prompt, |
|---|
| 99 | denoted by "``$``". |
|---|
| 100 | |
|---|
| 101 | Text blocks of the form:: |
|---|
| 102 | |
|---|
| 103 | >>> a = 3 * 4 |
|---|
| 104 | >>> a |
|---|
| 105 | 12 |
|---|
| 106 | >>> if a == 12: |
|---|
| 107 | ... print "a is twelve" |
|---|
| 108 | ... |
|---|
| 109 | a is twelve |
|---|
| 110 | |
|---|
| 111 | are intended to indicate an interactive session in the Python_ interpreter. |
|---|
| 112 | We will refer to these as "interactive sessions" or as "doctest blocks". |
|---|
| 113 | The text "``>>>``" at the beginning of a line denotes the *primary prompt*, |
|---|
| 114 | calling for input of a Python_ command. The text "``...``" denotes the |
|---|
| 115 | *secondary prompt*, which calls for input that continues from the line |
|---|
| 116 | above, when required by Python_ syntax. All remaining lines, which begin |
|---|
| 117 | at the left margin, denote output from the Python_ interpreter. In all |
|---|
| 118 | cases, the prompt is supplied by the Python_ interpreter and should not be |
|---|
| 119 | typed by you. |
|---|
| 120 | |
|---|
| 121 | .. warning:: |
|---|
| 122 | |
|---|
| 123 | Python_ is sensitive to indentation and care should be taken to enter |
|---|
| 124 | text exactly as it appears in the examples. |
|---|
| 125 | |
|---|
| 126 | When references are made to file system paths, it is assumed that the |
|---|
| 127 | current working directory is the |FiPy| distribution directory, refered to |
|---|
| 128 | as the "base directory", such that:: |
|---|
| 129 | |
|---|
| 130 | examples/diffusion/steadyState/mesh1D/input.py |
|---|
| 131 | |
|---|
| 132 | will correspond to, *e.g.*:: |
|---|
| 133 | |
|---|
| 134 | /some/where/FiPy-1.0/examples/diffusion/steadyState/mesh1D/input.py |
|---|
| 135 | |
|---|
| 136 | Paths will always be rendered using POSIX conventions (path elements |
|---|
| 137 | separated by "``/``"). Any references of the form:: |
|---|
| 138 | |
|---|
| 139 | examples.diffusion.steadyState.mesh1D.input |
|---|
| 140 | |
|---|
| 141 | are in the Python_ module notation and correspond to the equivalent POSIX |
|---|
| 142 | path given above. |
|---|
| 143 | |
|---|
| 144 | We may at times use a |
|---|
| 145 | |
|---|
| 146 | .. note:: |
|---|
| 147 | |
|---|
| 148 | to indicate something that may be of interest |
|---|
| 149 | |
|---|
| 150 | or a |
|---|
| 151 | |
|---|
| 152 | .. warning:: |
|---|
| 153 | |
|---|
| 154 | to indicate something that could cause serious problems. |
|---|
| 155 | |
|---|
| 156 | .. _MSEL: http://www.msel.nist.gov/ |
|---|
| 157 | .. _CTCMS: http://www.ctcms.nist.gov/ |
|---|
| 158 | .. _Metallurgy Division: http://www.metallurgy.nist.gov/ |
|---|
| 159 | .. _NIST: http://www.nist.gov/ |
|---|
| 160 | .. _Python: http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://www.python.org/ |
|---|
| 161 | .. _Subversion: http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://matforge.org/fipy/browser |
|---|
| 162 | .. _compressed archive: http://www.ctcms.nist.gov/fipy/download/FiPy-1.1.tar.gz |
|---|
| 163 | .. _tracking system: http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://matforge.org/fipy/report |
|---|
| 164 | .. _mailing list: http://www.ctcms.nist.gov/fipy/mail.html |
|---|
| 165 | .. _Sourceforge: http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://www.sourceforge.net/projects/fipy |
|---|
| 166 | .. _Materials Digital Library Pathway: http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://matdl.org |
|---|
| 167 | .. _MatForge: http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://matforge.org/ |
|---|
| 168 | |
|---|
| 169 | .. include:: utils/include.txt |
|---|
| 170 | .. include:: documentation/VERSION.txt |
|---|
| 171 | |
|---|
| 172 | .. |FiPy| replace:: |htmlFiPy| |latexFiPy| |
|---|
| 173 | .. |INSTALLATION-txt| replace:: |htmlINSTALL| |latexINSTALL| |
|---|
| 174 | .. |EFFICIENCY-txt| replace:: |htmlEFFICIENCY| |latexEFFICIENCY| |
|---|
| 175 | .. |the FAQ| replace:: |htmlFAQ| |latexFAQ| |
|---|
| 176 | .. |WINDOWS-INSTALLATION-txt| replace:: |htmlWINDOWS-INSTALLATION| |latexWINDOWS-INSTALLATION| |
|---|
| 177 | |
|---|
| 178 | .. |citePython| raw:: latex |
|---|
| 179 | |
|---|
| 180 | \cite{Python} |
|---|
| 181 | |
|---|
| 182 | .. |citePhaseField| raw:: latex |
|---|
| 183 | |
|---|
| 184 | \cite{BoettingerReview:2002,ChenReview:2002,McFaddenReview:2002} |
|---|
| 185 | |
|---|
| 186 | .. |citeCEAC| raw:: latex |
|---|
| 187 | |
|---|
| 188 | \cite{NIST:damascene:2001} |
|---|
| 189 | |
|---|
| 190 | .. |citeMailingTracking| raw:: latex |
|---|
| 191 | |
|---|
| 192 | \cite{FiPyMailingList,FiPyBugTracker} |
|---|
| 193 | |
|---|