Thanks for the help
I was wondering how you would make the values in CellVariable a Vector?
or do i have to make a second cellvariable?
Tom
On Nov 12, 2008, at 9:40 AM, Jonathan Guyer wrote:
On Nov 11, 2008, at 8:52 AM, Thomas Cool wrote:
I'm trying to use the matplotlib vector viewer for fipy but i'm
having
problems: could anyone take a look and tell me what's wrong?
Other than
import fipy.viewers.matplotlibViewer.matplotlibVectorViewer
I don't see any attempt to use the vector viewer.
viewer = fipy.viewers.make(vars = var,
doesn't care what imports you've done. It looks at the supplied vars
and tries to create appropriate Viewers for them. Since var is scalar:
P = 1.0
E = 0.0
var = CellVariable(name = "phase field",
mesh = mesh,
value = 2.0*P*random.random(nx * ny) - P)
fipy.viewers.make() will return a scalar Viewer.
You *could* try to replace
viewer = fipy.viewers.make(vars = var,
limits = {'datamin': -1.0e0,
'datamax': 1.0e-0}
)
with
viewer =
fipy
.viewers
.matplotlibViewer
.matplotlibVectorViewer.MatplotlibVectorViewer(vars = var,
limits = {'datamin': -1.0e0,
'datamax': 1.0e-0}
)
but this won't work because var is scalar. On the other hand,
viewer = fipy.viewers.make(vars = var.getGrad(),
limits = {'datamin': -1.0e0,
'datamax': 1.0e-0}
)
should work (although I don't know that datamin and datamax are
interpreted usefully for a vector viewer (and even if they were,
they'd probably refer to magnitude, so -1.0e0 wouldn't be a good
value)).
There's no reason for the line:
import fipy.viewers.matplotlibViewer.matplotlibVectorViewer
as you've already locked in matplotlib:
os.environ["FIPY_VIEWER"]="matplotlib"
and viewers.make() will take care of giving you a vector Viewer when
that's appropriate.