On Oct 8, 2008, at 1:54 PM, Angus Hendrick wrote:

So I went to upgrade my Numpy from 1.0.4 to 1.2.0, and I ran into a problem with fipy. In particular "from numpy.core import ma as MA" was causing problems. I rolled numpy back and now I'm fine again, but it leads me to a couple of questions...

1. What is the most recent version of FiPy, and does it represent a speed improvement over version 1.2.1? What is the svn checkout command I need to run to get it? (I tried getting "current," a few of months ago when I thought there was a 2.0.1a version around, and I got 1.2.1 again, so I'm screwing something up.)

The latest "released" version of FiPy 1.2.1.
The "trunk" is at 2.0a1, for whatever it's worth; that revision number has held steady for quite awhile as development continues. Our plan is to actually start moving the trunk toward release and official endorsement soon, but other work has taken priority.

I don't think there's any particular speed advantage one way or the other, but proper benchmarking and profiling is one of the things that's held up releasing 2.0.

We use the trunk exclusively for our own research and have suggested that a few users switch when they needed a functionality that won't ever be back-ported, however it is not a properly vetted release and it does require some syntax changes in your scripts (which is why we skipped from 1.x to 2.0).

It is possible to use `svn switch` to change your FiPy 1.2.1 checkout to a trunk checkout, but I would recommend just doing a fresh checkout of trunk, instead, and then you can switch between them with your PYTHONPATH.

       $ svn checkout http://matforge.org/svn/fipy/trunk

General svn instructions are in the manual and at <http://www.ctcms.nist.gov/fipy/svn.html >, but as you've found, we don't move tags/STABLE and tags/CURRENT around very often.



2. What is the latest version of Numpy that the newest version of FiPy works with? What about the 1.2.1 version?

Tony Yu provided a patch for trunk that was applied in r2550 in order to support NumPy 1.1, but it never got merged back to branches/ version-1_2. I just took a stab at applying it, as well as an earlier patch for NumPy 1.0.4 (that apparently weren't causing you any problems). An `svn update` (assuming you are checked out from branches/ version-1_2) should do the trick. I don't think I made things any worse, but this is not thoroughly tested, and particularly has not been tested with older versions of NumPy yet.

I use the trunk with NumPy 1.1; testing against 1.2.0 is on the to-do list. FiPy 1.2.1 (until patch r2744 that I just checked in) gets run against NumPy 1.0.4 (although somewhat imperfectly). It's probably really only safe against NumPy 1.0.2 or something.


Also, on a completely separate note, has anyone looked at the PyAMG solvers for use with FiPy? I confess I don't really understand the differences between different solvers, as I'm not a high-powered numerics guy, but they (whoever "they" are) say that multi-grid solvers are among the fastest for non-linear problems. Is there an "easy" way to plug these into fipy so I can check them out and give some feedback. By "easy" I mean where there's a file or two in FiPy that I could create/edit to invoke them in lieu of the standard solvers, translating things in and out, as necessary to make them work.

We (I, at least) have not looked at PyAMG. We have done a lot of work with PyTrilinos, which offers multi-grid, as well as lots of preconditioners and other sugary goodness. Daniel has lots more practical experience with it than I do. To use the Trilinos solvers, you'll need trunk. PyAMG certainly looks worth a look at adding to the available solvers.


Reply via email to