We used to have the ability to multiply a term by another field, but this 
capability was removed some time ago because it didn't work properly a lot of 
the time.

Even if you could do it, I don't think it would help. Instead of dividing by 
zero on the b-vector, you'd be multiplying be zero on the matrix. I think you'd 
end up having the same problem.

I think at least some of the problem is that your equation is attempting to 
directly obtain a stead-state solution. I had somewhat better luck when I 
introduced relaxation, i.e., add a TransientTerm to your equation and let it 
evolve in (possibly artificial) time to reach steady state.

On Sep 29, 2015, at 4:33 AM, Francisco Vega Reyes <[email protected]> wrote:

> Hello,
> 
> I need to solve a non-linear PDE of this type:
> 
> ********************
> eq = DiffusionTerm(coeff = numerix.sqrt(PHI)) == Gamma/numerix.sqrt(phi)
> ********************
> 
> where Gamma is a constant. and the mesh is 2D.
> 
> the problem is de 1/numerix.sqrt(phi), which gives me, depending on
> baoundary conditions and system size, a lot of divergence problems. 
> 
> is there any way to put it in the other side of the equation, so it is
> not a division? 
> 
> I do not know how would I express the diffusion term in that case
> 
> Thanks a lot for your help
> 
> 
> -- 
> Dr. Francisco Vega Reyes
> Departamento de Fisica, Universidad de Extremadura
> 
> 
> _______________________________________________
> fipy mailing list
> [email protected]
> http://www.ctcms.nist.gov/fipy
>  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]


_______________________________________________
fipy mailing list
[email protected]
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to