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 ]
