Thanks very much Benny for the explanation, but what do you mean by working in chunks ?
I have a variable newphi which is defined on a newmesh and phi the old variable which was defined in the original mesh. how can I copy phi to newphi by "chunk" ? In any case the huge array needs to be created no ? Julien On Tue, Feb 8, 2011 at 2:47 PM, Benny Malengier <benny.maleng...@gmail.com>wrote: > You do > > .... value=phi(mesh.getCellCenters())) > > This is what causes the problem. You can probably work around it by > creating value yourself. > Fipy uses some vectorized algorithms, which works great, but have the > disadvantage that there must be enough memory to allocate the required > arrays. > In this case, by working in chunks to create value, you can work around > this (I believe, did not try anything). > > Benny > > 2011/2/8 Julien Derr <julien.d...@gmail.com> > > Hi everyone, >> >> I am dealing with an irregular mesh done between a big circle and a small >> polygone. >> >> looks like I have memory issues when the polygone becomes more than a few >> hundreds sides. Is that a typical limitation by fipy ? Is there a way to >> deal with big polygonial shapes? >> >> see error bellow, if you understand it ? >> >> Traceback (most recent call last): >> File "growth.py", line 175, in <module> >> newphi = CellVariable(name = "solution variable", mesh = mesh, >> value=phi(mesh.getCellCenters())) >> File "/usr/lib/pymodules/python2.6/fipy/variables/cellVariable.py", line >> 197, in __call__ >> nearestCellIDs = self.getMesh()_getNearestCellID(points) >> File "/usr/lib/pymodules/python2.6/fipy/meshes/common/mesh.py", line >> 772, in _getNearestCellID >> return numerix.argmin(numerix.dot(tmp, tmp, axis = 0), axis=0) >> File "/usr/lib/pymodules/python2.6/fipy/tools/numerix.py", line 844, in >> dot >> return sum(a1*a2, axis) >> File "/usr/lib/pymodules/python2.6/fipy/tools/numerix.py", line 241, in >> sum >> return NUMERIX.sum(arr, axis) >> File "/usr/lib/python2.6/dist-packages/numpy/core/fromnumeric.py", line >> 1252, in sum >> return sum(axis, dtype, out) >> MemoryError >> >> thanks for your help ! >> >> Julien >> >> PS I am trying to reproduce a typical DLA/saffman taylor problem. so I >> guess the alternative would be to use a simple rectangular lattice, and to >> use a phase parameter to determine what is solid and what is not (like in >> the dendritic solidification example of the fipy help). >> but the issue then is to make some diffusion happen (for another field c) >> only on the space where phi=0. is that possible ? >> >> >> >