Hi list!

I asked a couple of questions about a memory leak about a month ago and Gael 
provided a fix. Except that after adding a vector field to the mix, his fix 
stopped working, so I am back at a loss as to why mayavi leaks memory when I 
clear the pipeline.

Therefore, I took another approach: I do not clear the pipeline, but replace 
the scalar arrays instead:

S=mlab.gcf().children[0]
ds=S.mlab_source.dataset
for i in range(ds.point_data.number_of_arrays-1,-1,-1):
            if (ds.point_data.get_array(i) is not None):
                ds.point_data.remove_array(ds.point_data.get_array(i).name)
S.mlab_source.set(scalars=phi3.T)
ds.point_data.scalars.name = 'phi3'
nid2 = ds.point_data.add_array(phi2.ravel())
ds.point_data.get_array(nid2).name = "phi2"
nid1 = ds.point_data.add_array(phi1.ravel())
ds.point_data.get_array(nid1).name = "phi1"

This fixes the memory leak, even when the vector field is added to the mix. 

However, it creates another: for some reason, if I replace the data with the 
same data, I get a different picture. It is as if one of the axes (x, I think) 
had been inverted in the process.

Is this the correct way to replace arrays and if it is, why does this happen? 
The data in the new arrays is the same as in the old ones, as compared by 
numpy.allclose(old.to_array(), new.to_array()), so the replacing works at 
least that far.

Also, after replacing, the S.mlab_source.dataset has some extra traits, namely
actual_memory_size, bounds, cell_data and center. Which is strange is that the 
origin trait has changed: before replacing, it is array([ 1.,  1.,  1.]) and 
after array([-2.95, -2.95, -2.95]). For what it's worth, the *latter* is what 
I would expect to have since I do S.origin=[-2.95, -2.95, -2.95] initially.

So, I'd be happy if someone could shed some light on this.

Cheers,
Juha

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
MayaVi-users mailing list
MayaVi-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mayavi-users

Reply via email to