Version |release|
This maintenance release:
- Addresses compatibility with recent releases of Python 3.12, NumPy 2.0, SciPy 1.14, and PETSc 3.20.
- Adds conda-lock environment lock files with specified compatible versions of FiPy prerequisites.
- Fixes numerous documentation errors.
Attention!
SciPy 1.13.0 generates one test suite error for
fipy.matrices.scipyMatrix._ScipyMatrix.CSR
. Either ignore the test
failure or upgrade to SciPy >= 1.13.1
Attention!
PETSc 3.21 crashes our test suite when running in parallel (#1054). PETSc <= 3.20 is recommended, although petsc 3.20.2_*_102 is broken on macOS.
- Introduce Timer context manager (#995)
- switch nix recipe to flake (#992)
- Tweak documentation (#991)
- Log much more information about FiPy environment (#990)
- Fix inclusion of environments/README.rst (#988)
- Environment pinning (#985)
- #1049: Numpy 2.0.0 breaks things
- #1010: examples.diffusion.mesh1D No-flux - steady-state doesn't always give zero
- #1000: examples.diffusion.mesh1D constrains a gradient but calls it a flux
- #997: future.standard_library breaking python 3.12 compatibility
- #967: Sign error in Robin condition
- #963: PETSc 3.20.0 broke the world
- #961: Representation of index variables is broken
- #952: Uncaught Exception from the no-flux steady-state diffusion example
- #944: Having problem with Viewer
- #865: Sphinx search is broken on website
- #673: Deprecations don't properly format properties
- #512: Default coefficient of ImplicitSourceTerm is 0
This maintenance release adds :ref:`LOGGING` and resolves compatibility issues with recent builds of :term:`PETSc` and :term:`NumPy`.
- Fix numpy 1.25 issues (#930)
- Get CI working again (#925)
- Discourage StackOverflow (#876)
- Add Logging (#875)
- Add tests for the Nix build (#791)
- #896: Poor garbage collection with petsc4py 3.18.3 (was "Memory leak in term.justErrorVector()", but this isn't strictly a leak)
This maintenance release adds a new example contributed by @Jon83Carvalho, clarifies many points in the documentation, migrates all :ref:`CONTINUOUSINTEGRATION` to Azure, updates to using wheels for distribution, and substantially refactors matrices to work more consistently across solvers.
- Update CI documentation to refer only to Azure (#863)
- Refine azure runs (#851)
- Debug CIs (#848)
- Collect contact information on single page (#847)
- Set up CI with Azure Pipelines (#822)
- Replace deprecated numpy types (#798)
- Move trilinos tests to Py3k (#797)
- Fix Python 2.7 conda environment (#795)
- fix: stop divide by zero warning in LU solvers (#790)
- Introduce SharedTemporaryFile (bis) (#769)
- Raise ImportError before trying to unpack solvers (#768)
- Disable TVTK tests if its prerequisites aren't met (#764)
- Tabulate versions of FiPy dependencies when tests are run (#763)
- Debug CI failures (#749)
- Stokes Cavity - non-Newtonian (#748) Thanks to @Jon83Carvalho.
- Refactor matrices (#721)
- #862: Could not load the Qt platform plugin "xcb"
- #858: CI issues
- #856: FaceVariable does not accumulate properly in parallel
- #850: Switch to wheels
- #849: linux-py27-pysparse fails
- #841: Matplotlib2DViewer should accept color map as string
- #836: Document that coupled and high-order diffusion terms are incompatible
- #833: fipy.tools.dump undocumented that it always gzips
- #828: colorbar=True no longer works Stokes flow example
- #826: Gmsh load issue
- #818: Document that GridND meshes are always Cartesian
- #811: In python 3.9 __repr__ throws an exception with abs
- #801: CircleCI test-36-trilinos-serial extremely slow
- #800: CircleCI conda2_env is really slow and ends up installing FiPy 3.3
- #796: examples.phase.polyxtal freezes on CircleCI with Py3k and scipy solvers
- #792: circleQuad example fails with Gmsh > 4.4
- #781: MatplolibViewer.axes property is not documented
- #778: Binder failed build
- #762: Equations on Website don't show right
- #742: No documentation for Variable.mag
- #735: pip install fipy fails
- #734: Document the residual
- #688: try-except not needed for circle Viewer
- #676: Default no-flux condition is not explicitly stated
- #609: Parallelizing of Gmsh meshes not clearly documented
- #400: Fix FaceVariable.globalValue method
This release fixes assorted viewer issues, fixes a problem with convection boundary conditions, and introduces spherical meshes.
Attention!
There are known failures with the VTK viewers (bitrot has started to set in since the demise of Python 2.7). There's also a new parallel failure in NonUniformGrid1D that we need to figure out.
- Move mailing list (#747)
- Spherical1D (Uniform and NonUniform) meshes (#732) Thanks to @klkuhlm.
- fix Neumann BCs using constraints with convection terms (#719) Thanks to @atismer.
- Add vertex index inversions (#716)
- #726: MayaviClient not compatible with Python 3
- #663: datamin/datamax argument ignored by viewer
- #662: Issues Scaling Colorbar with Datamin and Datamax Args
This release is primarily for compatibility with :mod:`numpy` 1.18.
- Fix documentation (#711)
- build(nix): fix broken plm_rsh_agent error (#710)
- CIs error on deprecation warning (#708)
- #703: FORTRAN array ordering is deprecated
This release adds support for the :term:`PETSc` solvers for :ref:`PARALLEL`.
- Add support for PETSc solvers (#701)
- Assorted fixes while supporting PETSc (#700) - Fix print statements for Py3k - Resolve Gmsh issues - Dump only on processor 0 - Only write timetests on processor 0 - Fix conda-forge link - Upload PDF - Document print option of FIPY_DISPLAY_MATRIX - Use legacy numpy formatting when testing individual modules - Switch to matplotlib's built-in symlog scaling - Clean up tests
- Assorted fixes for benchmark 8 (#699) - Stipulate --force option for conda remove fipy - Update Miniconda installation url - Replace _CellVolumeAverageVariable class with Variable expression - Fix output for bad call stack
- Make CircleCI build docs on Py3k (#698)
- Fix link to Nick Croft's thesis (#681)
- Fix NIST header footer (#680)
- Use Nixpkgs version of FiPy expression (#661)
- Update the Nix recipe (#658)
- #692: Can't copy example scripts with the command line
- #669: input() deadlock on parallel runs
- #643: Automate release process
This release brings support for Python 2 and Python 3 from the same source, without any translation. Thanks to @pya and @woodscn for getting things started.
- Automate spell check (#657)
- Fix gmsh on windows (#648)
- Fix sphinx documentation (#647)
- Migrate to Py3k (#645)
- gmshMesh.py compatibility with Gmsh > 3.0.6 (#644) Thanks to @xfong.
- #655: When Python 2 and 3 are installed, Mayavi wont work. Thanks to @Hendrik410.
- #646: Deprecate develop branch
- #643: Automate release process
- #601: :file:`contents.rst` and :file:`manual.rst` are a recursive mess
- #597: Use GitHub link for the compressed archive in documentation
- #557: faceGradAverage is stupid
- #552: documentation integration
- #458: Documentation wrong for precedence of Lx and dx for NonUniformGrids
- #457: Special methods are not included in Sphinx documentation
- #432: Python 3 issues
- #340: Don't upload packages to PyPI, just add the master url
This is predominantly a DevOps release. The focus has been on making FiPy easier to install with :term:`conda`. It's also possible to install a minimal set of prerequisites with :term:`pip`. Further, :term:`FiPy` is automatically tested on all major platforms using cloud-based :ref:`CONTINUOUSINTEGRATION` (:term:`linux` with :term:`CircleCI`, :term:`macOS` with :term:`TravisCI`, and :term:`Windows` with :term:`AppVeyor`).
- Make badges work in GitHub and pdf (#636)
- Fix Robin errors (#615)
- Issue555 inclusive license (#613)
- Update CIs (#607)
- Add CHANGELOG and tool to generate from issues and pull requests (#600)
- Explain where to get examples (#596)
- spelling corrections using en_US dictionary (#594)
- Remove SmoothedAggregationSolver (#593)
- Nix recipe for FiPy (#585)
- Point PyPI to github master tarball (#582)
- Revise Navier-Stokes expression in the viscous limit (#580)
- Update stokesCavity.py (#579) Thanks to @Rowin.
- Add --inline to TravisCI tests (#578)
- Add support for binder (#577)
- Fix epetra vector not numarray (#574)
- add Codacy badge (#572)
- Fix output when PyTrilinos or PyTrilinos version is unavailable (#570) Thanks to @shwina.
- Fix check for PyTrilinos (#569) Thanks to @shwina.
- Adding support for GPU solvers via pyamgx (#567) Thanks to @shwina.
- revise dedication to the public domain (#556)
- Fix tests that don't work in parallel (#550)
- add badges to index and readme (#546)
- Ensure vector is dtype float before matrix multiply (#544)
- Revert "Issue534 physical field mishandles compound units" (#536)
- Document boundary conditions (#532)
- Deadlocks and races (#524)
- Make max/min global (#520)
- Add a Gitter chat badge to :file:`README.rst` (#516) Thanks to @gitter-badger.
- Add TravisCI build recipe (#489)
- #631: Clean up :file:`INSTALLATION.rst`
- #628: Problems with the viewer
- #627: Document OMP_NUM_THREADS
- #625: setup.py should not import fipy
- #623: Start using versioneer
- #621: Plot FaceVariable with matplotlib
- #617: Pick 1st Value and last Value of 1D CellVariable while running in parallel
- #611: The coefficient cannot be a FaceVariable ??
- #610: Anisotropy example: Contour plot displaying in legend of figure !?
- #608: var.mesh: Property object not callable...?
- #603: Can't run basic test or examples
- #602: Revise build and release documentation
- #592: is :file:`resources.rst` useful?
- #590: No module named pyAMGSolver
- #584: Viewers don't animate in jupyter notebook
- #566: Support for GPU solvers using pyamgx
- #565: pip install does not work on empty env
- #564: Get green boxes across the board
- #561: Cannot cast array data from dtype('int64') to dtype('int32') according to the rule safe
- #555: inclusive license
- #551: Sphinx spews many warnings:
- #545: Many Py3k failures
- #543: Epetra Vector can't be integer
- #539: examples/diffusion/explicit/mixedElement.py is a mess
- #538: badges
- #534: PhysicalField mishandles compound units
- #533: pip or conda installation don't make clear where to get examples
- #531: drop_tol argument to scipy.sparse.linalg.splu is gone
- #530: conda installation instructions not explicit about python version
- #528: scipy 1.0.0 incompatibilities
- #525: conda guyer/pysparse doesn't run on osx
- #513: Stokes example gives wrong equation
- #510: Weave, Scipy and --inline
- #509: Unable to use conda for installing FiPy in Windows
- #506: Error using spatially varying anisotropic diffusion coefficient
- #488: Gmsh 2.11 breaks GmshGrids
- #435: pip install pysparse fails with "fatal error: 'spmatrix.h' file not found"
- #434: pip install fipy fails with "ImportError: No module named ez_setup"
- #502: gmane is defunct
- remove recvobj from calls to allgather, require sendobj (#492)
- restore trailing whitespace to expected output of pysparse matrix tests (#485)
- Format version string for pep 440 (#483)
- Provide some documentation for what _faceToCellDistanceRatio is and why it's scalar (#481)
- Strip all trailing white spaces and empty lines at EOF for .py and .r? (#479) Thanks to @pya.
- fipy/meshes/uniformGrid3D.py: fix _cellToCellIDs and more concatenate() calls (#478) Thanks to @pkgw.
- Remove incorrect axis argument to concatenate (#477)
- Updated to NumPy 1.10 (#472) Thanks to @pya.
- Some spelling corrections (#471) Thanks to @pkgw.
- Sort entry points by package name before testing. (#469)
- Update import syntax in examples (#466)
- Update links to prerequisites (#465)
- Correct implementation of examples.cahnHilliard.mesh2DCoupled. Fixes ? (#463)
- Fix typeset analytical solution (#460)
- Clear pdflatex build errors by removing :term:`Python` from heading (#459)
- purge gist from viewers and optional module lists in setup.py (#456)
- Remove deprecated methods that duplicate NumPy ufuncs (#454)
- Remove deprecated Gmsh importers (#452)
- Remove deprecated getters and setters (#450)
- Update links for FiPy developers (#448)
- Render appropriately if in IPython notebook (#447)
- Plot contour in proper axes (#446)
- Robust Gmsh version checking with distutils.version.StrictVersion (#442)
- compare gmsh versions as tuples, not floats (#441)
- Corrected two tests (#439) Thanks to @alfrenardi.
- Issue426 fix robin example typo (#431) Thanks to @raybsmith.
- Issue426 fix robin example analytical solution (#429) Thanks to @raybsmith.
- Force MatplotlibViewer to display (#428)
- Allow for 2 periodic axes in 3D (#424)
- Bug with Matplotlib 1.4.0 is fixed (#419)
- #498: nonlinear source term
- #496: scipy.LinearBicgstabSolver doesn't take arguments
- #494: Gmsh call errors
- #493: Reviewable.io has read-only access, can't leave comments
- #491: globalValue raises error from mpi4py
- #484: Pysparse tests fail
- #482: FiPy development version string not compliant with PEP 440
- #476: setuptools 18.4 breaks test suite
- #475: Grid3D broken by numpy 1.10
- #470: Mesh3D cellToCellIDs is broken
- #467: Out-of-sequence Viewer imports
- #462: GMSH version >= 2.10 incorrectly read by gmshMesh.py
- #455: setup.py gist warning
- #445: DendriteViewer puts contours over color bar
- #443: MatplotlibViewer still has problems in IPython notebook
- #440: Use github API to get nicely formatted list of issues
- #438: Failed tests on Mac OS X
- #437: Figure misleading in examples.cahnHilliard.mesh2DCoupled
- #433: Links to prerequisites are broken
- #430: Make develop the default branch on Github
- #427: MatplotlibViewer don't display
- #425: Links for Warren and Guyer are broken on the web page
- #421: The "limits" argument for Matplotlib2DGridViewer does not function
- #416: Updates to reflect move to Github
- #415: MatplotlibGrid2DViewer error with Matplotlib version 1.4.0
- #414: PeriodicGrid3D supports Only 1 axes of periodicity or all 3, not 2
- #413: Remind users of different types of conservation equations
- #412: Pickling Communicators is unnecessary for Grids
- #408: Implement PeriodicGrid3D
- #407: Strange deprecation loop in reshape()
- #404: package never gets uploaded to PyPI
- #401: Vector equations are broken when sweep is used instead of solve.
- #295: Gmsh version must be >= 2.0 errors on zizou
The significant changes since version 3.0 are:
- Level sets are now handled by :ref:`LSMLIBDOC` or :ref:`SCIKITFMM` solver libraries. These libraries are orders of magnitude faster than the original, :term:`Python`-only prototype.
- The :term:`Matplotlib` :func:`streamplot()` function can be used to display vector fields.
- Version control was switched to the Git distributed version control system. This system should make it much easier for :term:`FiPy` users to participate in development.
- #398: Home page needs out-of-NIST redirects
- #397: Switch to sphinxcontrib-bibtex
- #396: enable google analytics
- #395: Documentation change for Ubuntu install
- #393: CylindricalNonUniformGrid2D doesn't make a FaceVariable for exteriorFaces
- #392: exit_nist.cgi deprecated
- #391: Péclet inequalities have the wrong sign
- #388: Windows 64 and numpy's dtype=int
- #384: Add support for Matplotlib streamplot
- #382: Neumann boundary conditions not clearly documented
- #381: numpy 1.7.1 test failures with physicalField.py
- #377: VanLeerConvectionTerm MinMod slope limiter is broken
- #376: testing CommitTicketUpdater
- #375: NumPy 1.7.0 doesn't have _formatInteger
- #373: Bug with numpy 1.7.0
- #372: convection problem with cylindrical grid
- #371: examples/phase/binary.py has problems
- #370: FIPY_DISPLAY_MATRIX is broken
- #368: Viewers don't inline well in IPython notebook
- #367: Change documentation to promote use of stackoverflow
- #366: unOps can't be pickled
- #365: Rename communicator instances
- #364: Parallel bug in non-uniform grids and conflicting mesh class and factory function names
- #360: NIST CSS changed
- #356: link to mailing list is wrong
- #353: Update Ohloh to point at git repo
- #352: getVersion() fails on Py3k
- #350: Gmsh importer can't read mesh elements with no tags
- #347: Include mailing list activity frame on front page
- #339: Fix for test failures on loki
- #337: Clean up interaction between dependencies and installation process
- #336: fipy.test() and fipy/test.py clash
- #334: Make the citation links go to the DOI links
- #333: Web page links seem to be broken
- #331: Assorted errors
- #330: faceValue as FaceCenters gives inline failures
- #329: Gmsh background mesh doesn't work in parallel
- #326: Gmsh2D does not respect background mesh
- #323: getFaceCenters() should return a FaceVariable
- #319: Explicit convection terms should fail when the equation has no TransientTerm (dt=None)
- #318: FiPy will not import
- #311: LSMLIB refactor
- #305: mpirun -np 2 python -Wd setup.py test --trilinos hanging on sandbox under buildbot
- #297: Remove deprecated gist and gnuplot support
- #291: efficiency_test chokes on liquidVapor2D.py
- #289: diffusionTerm._test() requires Pysparse
- #287: move FiPy to distributed version control
- #275: mpirun -np 2 python setup.py test --no-pysparse hangs on bunter
- #274: Epetra Norm2 failure in parallel
- #272: Error adding meshes
- #269: Rename GridXD
- #255: numpy 1.5.1 and masked arrays
- #253: Move the mail archive link to a more prominent place on web page.
- #245: Fix fipy.terms._BinaryTerm test failure in parallel
- #228: --pysparse configuration should never attempt MPI imports
- #225: Windows interactive plotting mostly broken
- #209: add Rhie-Chow correction term in stokes cavity example
- #180: broken arithmetic face to cell distance calculations
- #128: Trying to "solve" an integer CellVariable should raise an error
- #123: numerix.dot doesn't support tensors
- #103: subscriber()._markStale() AttributeError
- #61: Move ImplicitDiffusionTerm().solve(var) == 0 "failure" from examples.phase.simple to examples.diffusion.mesh1D?
- #346: text in trunk/examples/convection/source.py is out of date
- #342: sign issues for equation with transient, convection and implicit terms
- #338: SvnToGit clean up
The bump in major version number reflects more on the substantial increase in capabilities and ease of use than it does on a break in compatibility with FiPy 2.x. Few, if any, changes to your existing scripts should be necessary.
The significant changes since version 2.1 are:
- :ref:`CoupledEquations` are now supported.
- A more robust mechanism for specifying :ref:`BoundaryConditions` is now used.
- Most :class:`~fipy.meshes.mesh.Mesh`es can be partitioned by :ref:`MeshingWithGmsh`.
- :ref:`PYAMG` and :ref:`SCIPY` have been added to the :ref:`SOLVERS`.
- FiPy is capable of running under :term:`Python 3`.
- "getter" and "setter" methods have been pervasively changed to Python properties.
- The test suite now runs much faster.
- Tests can now be run on a full install using fipy.test().
- The functions of the :mod:`~fipy.tools.numerix` module are no longer included in the :mod:`fipy` namespace. See :mod:`examples.updating.update2_0to3_0` for details.
- Equations containing a :class:`~fipy.terms.transientTerm.TransientTerm`,
must specify the timestep by passing a
dt=
argument when calling :meth:`~fipy.terms.term.Term.solve` or :meth:`~fipy.terms.term.Term.sweep`.
Warning
:term:`FiPy` 3 brought unavoidable syntax changes from :term:`FiPy` 2. Please see :mod:`examples.updating.update2_0to3_0` for guidance on the changes that you will need to make to your :term:`FiPy` 2.x scripts.
- #332: Inline failure on Ubuntu x86_64
- #324: constraining values with ImplicitSourceTerm not documented?
- #317: gmshImport tests fail on Windows due to shared file
- #316: changes to gmshImport.py caused --inline problems
- #313: Gmsh I/O
- #307: Failures on sandbox under buildbot
- #306: Add in parallel buildbot testing on more than 2 processors
- #302: CellVariable.min() broken in parallel
- #301: Epetra.PyComm() broken on Debian
- #300: examples/cahnHilliard/mesh2D.py broken with -- trilinos
- #299: Viewers not working when plotting meshes with zero cells in parallel
- #298: Memory consumption growth with repeated meshing, especially with Gmsh
- #294: --pysparse --inline failures
- #293: python examples/cahnHilliard/sphere.py --inline segfaults on OS X
- #292: two --scipy failures
- #290: Improve test reporting to avoid inconsequential buildbot failures
- #288: gmsh importer and gmsh tests don't clean up after themselves
- #286: get running in Py3k
- #285: remove deprecated viewers.make()
- #284: remove deprecated Variable.transpose()
- #281: remove deprecated NthOrderDiffusionTerm
- #280: remove deprecated diffusionTerm= argument to ConvectionTerm
- #277: remove deprecated steps= from Solver
- #273: Make DiffusionTermNoCorrection the default
- #270: tests take too long!!!
- #267: Reduce the run times for chemotaxis tests
- #264: HANG in parallel test of examples/chemotaxis/input2D.py on some configurations
- #261: GmshImport should read element colors
- #260: GmshImport should support all element types
- #259: Introduce mesh.x as shorthand for mesh.cellCenters[0] etc
- #258: GmshExport is not tested and does not work
- #252: Include Benny's improved interpolation patch
- #250: TeX is wrong in examples.phase.quaternary
- #247: diffusionTerm(var=var1).solver(var=var0) should fail sensibly
- #243: close out reconstrain branch
- #242: update documentation
- #240: Profile and merge reconstrain branch
- #237: --Trilinos --no-pysparse uses Pysparse?!?
- #236: anisotropic diffusion and constraints don't mix
- #235: changed constraints don't propagate
- #231: factoryMeshes.py not up to date with respect to keyword arguments
- #223: mesh in FiPy name space
- #218: Absence of enthought.tvtk causes test failures
- #216: Fresh FiPy gives "ImportError: No viewers found"
- #213: PyPI is failing
- #206: gnuplot1d gives error on plot of FaceVariable
- #205: wrong cell to cell normal in periodic meshes
- #203: Give helpful error on - or / of meshes
- #202: mesh manipulation of periodic meshes leads to errors
- #201: Use physical velocity in the manual/FAQ
- #200: FAQ gives bad guidance for anisotropic diffusion
- #195: term multiplication changes result
- #163: Default time steps should be infinite
- #162: remove ones and zeros from numerix.py
- #130: tests should be run with fipy.tests()
- #86: Grids should take Lx, Ly, Lz arguments
- #77: CellVariable.hasOld() should set self.old
- #44: Navier-Stokes
- #282: remove deprecated getters and setters
- #279: remove deprecated fipy.meshes.numMesh submodule
- #278: remove deprecated forms of Gmsh meshes
- #268: Set up Zizou as a working slave
- #262: issue with solvers
- #256: Grid1D(dx=(1,2,3)) failure
- #251: parallel is broken
- #241: Set Sandbox up as a working slave
- #238: _BinaryTerm.var is not predictable
- #233: coupled convection-diffusion always treated as Upwind
- #224: "matrices are not aligned" errors in example test suite
- #222: Non-uniform Grid3D fails to __add__
- #221: Problem with fipy and gmsh
- #219: matforge css is hammer-headed
- #208: numpy 2.0: arrays have a dot method
- #207: numpy 2.0: masked arrays cast right of product to ndarray
- #196: Pysparse won't import in Python 2.6.5 on Windows
- #152: (Re)Implement SciPy solvers
- #138: FAQ on boundary conditions
- #100: testing from the Windows dist using the ipython command line
- #80: Windows - testing - idle -ipython
- #46: Variable needs to consider boundary conditions
- #45: Slicing a vector Variable should produce a scalar Variable
The significant changes since version 2.1.1 are:
- :term:`Trilinos` efficiency improvements
- Diagnostics of the parallel environment
- #232: Mayavi broken on windows because it has no SIGHUP.
- #230: factoryMeshes.py not up to date with respect to keyword arguments
- #226: MatplotlibViewer fails if backend doesn't support flush_events()
- #225: Windows interactive plotting mostly broken
- #217: Gmsh CellVariables can't be unpickled
- #191: sphereDaemon.py missing in FiPy 2.1 and from trunk
- #187: Concatenated Mesh garbled by dump.write/read
The significant changes since version 2.1 are:
- :class:`~fipy.viewers.matplotlibViewer.MatplotlibViewer` can display into an existing set of Matplotlib axes.
- :term:`Pysparse` and :term:`Trilinos` are now completely independent.
- #199: dummy viewer results in "NotImplementedError: can't instantiate abstract base class"
- #198: bug problem with CylindricalGrid1D
- #197: How to tell if parallel is configured properly?
- #194: FIPY_DISPLAY_MATRIX on empty matrix with large b-vector throws ValueError
- #193: FIPY_DISPLAY_MATRIX raises ImportError in FiPy 2.1 and trunk
- #192: FIPY_DISPLAY_MATRIX=terms raises TypeError in FiPy 2.1 and trunk
The relatively small change in version number belies significant advances in :term:`FiPy` capabilities. This release did not receive a "full" version increment because it is completely (er... [1]) compatible with older scripts.
The significant changes since version 2.0.2 are:
- :term:`FiPy` can use :term:`Trilinos` for :ref:`PARALLEL`.
- We have switched from :term:`MayaVi` 1 to :term:`Mayavi` 2. This :class:`~fipy.viewers.viewer.Viewer` is an independent process that allows interaction with the display while a simulation is running.
- Documentation has been switched to :term:`Sphinx`, allowing the entire manual to be available on the web and for our documentation to link to the documentation for packages such as :mod:`numpy`, :mod:`scipy`, :mod:`matplotlib`, and for :term:`Python` itself.
- #190: "matplotlib: list index out of range" when no title given, but only sometimes
- #182: ~binOp doesn't work on branches/version-2_0
- #180: broken arithmetic face to cell distance calculations
- #179: easy_install instructions for Mac OS X are broken
- #177: broken setuptools url with python 2.6
- #169: The FiPy webpage seems to be broken on Internet Explorer
- #156: update the mayavi viewer to use mayavi 2
- #153: Switch documentation to use :math: directive
[1] | Only two examples from :term:`FiPy` 2.0 fail when run with :term:`FiPy` 2.1:
Both of these are subtle issues unlikely to affect very many :term:`FiPy` users. |
- #188: SMTPSenderRefused: (553, "5.1.8 <trac@matdl-osi.org>... Domain of sender address trac@matdl-osi.org does not exist", u'"FiPy" <trac@matdl-osi.org>')
- #184: gmshExport.exportAsMesh() doesn't work
- #183: FiPy 2.0.2 LinearJORSolver.__init__ calls Solver rather than PysparseSolver
- #181: Navier-Stokes again
- #151: update mayavi viewer to use mayavi2
- #13: Mesh refactor
- #176: Win32 distribution test error
- #175: Grid3D getFaceCenters incorrect when mesh is offset
- #170: Variable doesn't implement __invert__
- #154: Update manuals
Warning
:term:`FiPy` 2 brings unavoidable syntax changes. Please see :mod:`examples.updating.update1_0to2_0` for guidance on the changes that you will need to make to your :term:`FiPy` 1.x scripts.
The significant changes since version 1.2 are:
- :class:`~fipy.variables.cellVariable.CellVariable` and :class:`~fipy.variables.faceVariable.FaceVariable` objects can hold values of any rank.
- Much simpler syntax for specifying
Cell
s for initial conditions andFace
s for boundary conditions. - Automated determination of the Péclet number and partitioning of :class:`~fipy.terms.implicitSourceTerm.ImplicitSourceTerm` coefficients between the matrix diagonal and the right-hand-side-vector.
- Simplified :class:`~fipy.viewers.viewer.Viewer` syntax.
- Support for the Trilinos solvers.
- Support for anisotropic diffusion coefficients.
- #167: example showing how to go from 1.2 to 2.0
- #166: Still references to VectorCell and VectorFace Variable in manual
- #165: Edit the what's new section of the manual
- #149: Test viewers
- #143: Document syntax changes
- #141: enthought toolset?
- #140: easy_install fipy
- #136: Document anisotropic diffusion
- #135: Trilinos documentation
- #127: Examples can be very fragile with respect to floating point
- #54: python setup.py test fails
- #161: get pysparse working with python 2.4
- #160: Grid class
- #157: temp files on widows
- #155: fix some of the deprecation warnings appearing in the tests
- #150: PythonXY installation?
- #148: SciPy 0.7.0 solver failures on Macs
- #147: Disable CGS solver in pysparse
- #145: Viewer factory fails for rank-1 CellVariable
- #144: intermittent failure on examples/diffusion/explicit/mixedelement.py --inline
- #142: merge Viewers branch
- #139: Get a Windows Bitten build slave
- #137: Backport examples from manuscript
- #131: MatplotlibViewer doesn't properly report the supported file extensions
- #126: Variable, float, integer
- #125: Pickled test data embeds obsolete packages
- #124: Can't pickle a binOp
- #121: simpleTrenchSystem.py
- #120: mayavi display problems
- #118: Automatically handle casting of Variable from int to float when necessary.
- #117: getFacesBottom, getFacesTop etc. lack clear description in the reference
- #115: viewing 3D Cahn-Hilliard is broken
- #113: OS X (MacBook Pro; Intel) FiPy installation problems
- #112: stokesCavity.py doesn't display properly with matplotlib
- #111: Can't display Grid2D variables with matplotlib on Linux
- #110: "Numeric array value must be dimensionless" in ElPhF examples
- #109: doctest of fipy.variables.variable.Variable.__array__
- #108: numerix.array * FaceVariable is broken
- #107: Can't move matplotlib windows on Mac
- #106: Concatenation of Grid1D objects doesn't always work
- #105: useless broken __array__ tests should be removed
- #102: viewer limits should just be set as arguments, rather than as a dict
- #99: Matplotlib2DGridViewer cannot update multiple views
- #97: Windows does not seem to handle NaN correctly.
- #96: broken tests with version 2.0 of gmsh
- #95: attached code breaks with --inline
- #92: Pygist is dead (it's official)
- #84: Test failures on Intel Mac
- #83: ZeroDivisionError for CellTerm when calling getOld() on its coefficient
- #79: viewers.make() to viewers.Viewer()
- #67: Mesh viewing and unstructured data.
- #43: TSVViewer doesn't always get the right shape for the var
- #34: float(&infinity&) issue on windows
- #122: check argument types for meshes
- #119: max is broken for Variables
- #116: Linux: failed test, TypeError: No array interface... in solve()
- #104: Syntax error in MatplotlibVectorViewer._plot()
- #101: matplotlib 1D viewer autoscales when a limit is set to 0
- #93: Broken examples
- #91: update the examples to use from fipy import *
- #76: solve() and sweep() accept dt=CellVariable
- #75: installation of fipy should auto include README as a docstring
- #74: Some combinations of DiffusionTerm and ConvectionTerm do not work
- #51: __pos__ doesn't work for terms
- #50: Broken examples
- #39: matplotlib broken on mac with version 0.72.1
- #19: Péclet number
- #15: Boundary conditions and Terms
The significant changes since version 1.1 are:
- --inline automatically generates C code from Variable expressions.
- :term:`FiPy` has been updated to use the :term:`Python` :term:`NumPy` module. :term:`FiPy` no longer works with the older :term:`Numeric` module.
- #98: Windows patch for some broken test cases
- #94: --inline error for attached code
- #90: bug in matplotlib 0.87.7: TypeError: only length-1 arrays can be converted to Python scalars.
- #72: needless rebuilding of variables
- #66: PDF rendering issues for the guide on various platforms
- #62: fipy guide pdf bug: "an unrecognized token 13c was found"
- #55: Error for internal BCs
- #52: FaceVariable * FaceVectorVariable memory
- #48: Documentation is not inherited from &hidden& classes
- #42: fipy.models.phase.phase.addOverFacesVariable is gross
- #41: :file:`EFFICIENCY.txt` example fails to make viewer
- #30: periodic boundary condition support
- #25: make phase field examples more explicit
- #23: sweep control, iterator object, error norms
- #21: Update FiPy to use numpy
- #16: Dimensions
- #12: Refactor viewers
- #1: Gnuplot doesn't display on windows
The significant changes since version 1.0 are:
Memory efficiency has been improved in a number of ways, but most significantly by:
- not caching all intermediate
Variable
values. - introducing
UniformGrid
classes that calculate geometric arrays on the fly.
Details of these improvements are presented in :ref:`chap:Efficiency`.
- not caching all intermediate
Installation on Windows has been made considerably easier by constructing executable installers for :term:`FiPy` and its dependencies.
The arithmetic for
Variable
subclasses now works, and returns sensible answers. For example,VectorCellVariable * CellVariable
returns aVectorCellVariable
.PeriodicGrid
meshes have been implemented. Currently, however, there and no examples of their use in the manual.Many of the examples have been completely rewritten
- A basic 1D diffusion problem now serves as a general tutorial for setting up any problem in :term:`FiPy`.
- Several more phase field examples have been added that should make it clearer how to get from the simple 1D case to the more elaborate multicomponent, multidimensional, and anisotropic models.
- The "Superfill" examples have been substantially improved with better functionality and documentation.
- An example of fluid flow with the classic Stokes moving lid has been added.
A clear distinction has been made between solving an equation via solve() and iterating an non-linear equation to solution via sweep(). An extensive explanation of the concepts involved has been added to the :ref:`FAQ`.
Added a MultiViewer class that automatically groups several viewers together if the variables couldn't be displayed by a single viewer.
The abbreviated syntax
from fipy import Class
orfrom fipy import *
promised in version 1.0 actually works now. The examples all still use the fully qualified names.The repository has been converted from a CVS to a Subversion repository. Details on how to check out the new repository are given in :ref:`INSTALLATION`.
The :term:`FiPy` repository has also been moved from Sourceforge to the Materials Digital Library Pathway.
Numerous changes have been made since :term:`FiPy` 0.1 was released, but the most significant ones are:
Equation
objects no longer exist. PDEs are constructed fromTerm
objects.Term
objects can be added, subtracted, and equated to build up an equation.A true 1D grid class has been added:
fipy.meshes.grid1D.Grid1D
.A generic "factory" method
fipy.viewers.make()
has been added that will do a reasonable job of automatically creating aViewer
for the suppliedVariable
objects. TheFIPY_VIEWER
environment variable allows you to specify your preferred viewer.A simple
TSVViewer
has been added to allow display or export to a file of your solution data.It is no longer necessary to
transpose()
scalar fields in order to multiply them with vector fields.Better default choice of solver when convection is present.
Better examples.
A number of NoiseVariable objects have been added.
A new viewer based on :term:`Matplotlib` has been added.
The PyX viewer has been removed.
Considerably simplified the public interface to FiPy.
Support for Python 2.4.
Improved layout of the manuals.
getLaplacian()
method has been removed fromCellVariable
objects. You can obtain the same effect withgetFaceGrad().getDivergence()
, which provides better control.An
import
shorthand has been added that allows for:from fipy import Class
instead of:
from fipy.some.deeply.nested.module.class import Class
This system is still experimental. Please tell us if you find situations that don't work.
The syntax of :term:`FiPy` 1.0 scripts is incompatible with earlier releases. A tutorial for updating your existing scripts can be found in :file:`examples/updating/update0_1to1_0.py`.
- #49: Documentation for many ConvectionTerms is wrong
- #47: Terms should throw an error on bad coeff type
- #40: broken levelset test case
- #38: multiple BCs on one face broken?
- #37: Better support for periodic boundary conditions
- #36: Gnuplot doesn't display the :file:`~examples/levelSet/electroChem` problem on windows.
- #35: gmsh write problem on windows
- #33: DiffusionTerm(coeff = CellVariable) functionality
- #32: conflict_handler = ignore not valid in Python 2.4
- #31: Support simple import notation
- #29: periodic boundary conditions are broken
- #28: invoke the == for terms
- #26: doctest extraction with python 2.4
- #24: Pysparse windows binaries
- #22: automated efficiency_test problems
- #20: Test with Python version 2.4
- #18: Memory leak for the leveling problem
- #17: distanceVariable is broken
- #14: Testing mailing list interface
- #11: Reconcile versions of pysparse
- #10: check phase field crystal growth
- #9: implement levelling surfactant equation
- #8: merge depositionRateVar and extensionVelocity
- #7: Automate FiPy efficiency test
- #6: FiPy breaks on windows with Numeric 23.6
- #5: axisymmetric 2D mesh
- #4: Windows installation wizard
- #3: Windows installation instructions
- #2: Some tests fail on windows XP
Original release