On Oct 9, 2008, at 6:40 PM, Angus Hendrick wrote:
Is there anything you can point me at for a primer on what's changed
between fipy 1.2.1 and the trunk version? I'm trying to update my
old code to work with the newer version so I can use PyTrilinos.
The complete changes to the examples since we released 1.2 are:
http://www.matforge.org/fipy/changeset?new=trunk%2Fexamples%402565&old=trunk%2Fexamples%402034
In short, the x, y, z component of MeshVariables is now first, not
last, so you you can do
x, y = mesh.getCellCenters()
or
x = mesh.getCellCenters()[0]
y = mesh.getCellCenters()[1]
instead of
x = mesh.getCellCenters()[...,0]
y = mesh.getCellCenters()[...,1]
ImplicitSourceTerms now automatically determine what goes on the
matrix diagonal and what goes on the b-vector, so some of the previous
machinations are no longer necessary (but should still work).
ConvectionTerms calculate their Péclet number automatically, so no
need to explicitly pass a diffusionTerm to them.
This isn't a change in FiPy, but in NumPy, but you need to be careful
about initializing, e.g., CellVariables with floats and not integers:
var = CellVariable(mesh=mesh, value=0.)
vs.
var = CellVariable(mesh=mesh, value=0)
You've already discovered the differences in specifying boundary
conditions.
I imagine there's more, but that's what's jumping out at me right now.