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 ?
>>
>>
>>
>

Reply via email to