On Mar 20, 2012, at 2:55 PM, Andreas Hasenkopf wrote:

> As you suspect I was using another mesh to make it easier for my
> notebook (2GB RAM) to handle the data. I've just tried it again on my
> desktop machine (4GB RAM) and this one is also producing a MemoryError
> as you reported even when my mgrids have a "tiny" shape of (20,20,10).

"tiny" is relative. FiPy must calculate the full-factorial matrix of distance 
vectors between every cell in the mesh and every node in your mgrid: 36160 
cells x 4000 nodes x 3 dimensions x 8 bytes = more than 3 GiB. With 
temporaries, that can easily double or treble. 

When I run your estat_gmsh.py with twin_ap_3D_X3.msh, it takes a couple of 
hours due to swapping (it maxed out at over 10 GiB of VM and 3 GiB of RAM), but 
it runs without errors. In contrast, using trunk/ it runs in 10-15 s and uses 
less than 600 MiB.

I can only guess that the "negative dimensions are not allowed" error you got 
was some weird manifestation of running out of memory.


> So, I guess will try out the trunk version or keep looping.

Thanks to Benny Malengier, trunk/ computes the distance vectors in chunks. I 
recommend you do the same. As discussed in http://matforge.org/fipy/ticket/348, 
the optimum chunk size isn't actually that big; about 100 MiB.
_______________________________________________
fipy mailing list
[email protected]
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to