The equation has no transient term and a zero diffusion coefficient for some elements, so on some rows it is trying to solve 0 * x = b, which is not possible.
On Tue, Dec 16, 2008 at 9:18 AM, Zhiwen Liang <[email protected]> wrote: > Hi all, > Hope all is going well. > Recently, I am trying to solve for an equation like this: > \frac{\partial^2 u}{\partial y \partial z}-\frac{\partial^2 u}{\partial z > \partial y}=\alpha > I tried using the diffusionTerm with anisotropic diffusion coefficient of > the following: > D=[0 0 1 > 0 0 0 > -1 0 0] > But I got the following error: > File "run.py", line 81, in run > solver=solver) > File > "/Library/Python/2.5/site-packages/FiPy-2.0a1-py2.5.egg/fipy/terms/term.py", > line 186, in sweep > self._solveLinearSystem(var, solver, matrix, RHSvector) > File > "/Library/Python/2.5/site-packages/FiPy-2.0a1-py2.5.egg/fipy/terms/term.py", > line 131, in _solveLinearSystem > solver._solve(matrix, array, RHSvector) > File > "/Library/Python/2.5/site-packages/FiPy-2.0a1-py2.5.egg/fipy/solvers/pysparse/linearGMRESSolver.py", > line 69, in _solve > Assor=precon.jacobi(L._getMatrix()) > ValueError: diagonal element close to zero > I wonder if there are any ways to work around it. Thank you in advance for > any advice. > Have a nice day! > Regards, > Zhiwen > -- Daniel Wheeler
