11 Jul 20:56
Re: Error in code
From: Rashmi Ranjan Mohanty <rmohanty@...>
Subject: Re: Error in code
Newsgroups: gmane.comp.python.fipy
Date: 2008-07-11 18:56:45 GMT
Subject: Re: Error in code
Newsgroups: gmane.comp.python.fipy
Date: 2008-07-11 18:56:45 GMT
Thank you Dr. Guyer. I tried with other solvers and the LinearGMRESSolver seems to work better. I am not sure if I could use that, though I have a non- symmetric matrix (I have a convection term in my formulation). With this solver the memory error seems to be gone, but "invalid value encountered in log" error comes up and the program stops running. I am still struggling to find where the bug is. Just for confirmation : Is this correct to combine a phase transformation term and a counter diffusion term to make one convection coefficient ? I have got the following terms: counterDiffusion = -2[(La - Lb)*p(phi) + Lb] * c.getFaceGrad() phaseTransformation = [G + (1 - 2c)*(La - Lb)] * p(phi).getFaceGrad() + (Wb - Wa) * g(phi).getFaceGrad() convectionCoefficient = counterDiffusion + phaseTransformation convectionCoefficient *= D*(1-c).getHarmonicFaceValue()/R*T where, phi = phase field variable, c = composition p(phi) and g(phi) are the interpolation function and double well function respectively. D is the diffusivity. D = MRT/c(1-c) (as described in fipy examples) G, La, Lb, Wa and Wb are all constants for the time being. PS: I was wondering if you got a chance to look at my paper. Your review comments will be highly appreciated. Thank you very much for your help. Rashmi On Jul 10, 2008, at July10,1:16 PM, Jonathan Guyer wrote: > > > On Jul 10, 2008, at 9:58 AM, Rashmi Ranjan Mohanty wrote: > >> I am running a Fipy code with a system size of 400x400 mesh points >> on a Mac Pro 3GHz Dual-Intel Xeon processor with 2GB memory. After >> running few steps it stops with the following error message: >> >> python(1013) malloc: *** vm_allocate(size=7921664) failed (error >> code=3) >> python(1013) malloc: *** error: can't allocate region >> python(1013) malloc: *** set a breakpoint in szone_error to debug >> malloc fails for local dworkptr[].Traceback (most recent call last): >> File "isothermal-new2D.py", line 355, in <module> >> compRes = compEq.sweep(var = comp, boundaryConditions = BCsC, >> dt=time, solver=solver) >> File "/sw/lib/python2.5/site-packages/fipy/terms/term.py", line >> 153, in sweep >> self._solveLinearSystem(var, solver, matrix, RHSvector) >> File "/sw/lib/python2.5/site-packages/fipy/terms/term.py", line >> 102, in _solveLinearSystem >> solver._solve(matrix, array, RHSvector) >> File "/sw/lib/python2.5/site-packages/fipy/solvers/ >> linearLUSolver.py", line 92, in _solve >> LU = superlu.factorize(L._getMatrix().to_csr()) >> MemoryError >> >> I guess it has something to do with memory, but could not figure >> out a solution. >> I would appreciate your help. > > > My suspicion would lie on your use of the LU solver. The PySparse > LU solver is robust, and often faster than the iterative solvers, > but it does so by using a great deal of memory. > > Have you tried other solvers? >
RSS Feed