Dear FiPy folks --

   I am solving a 2D elliptic equation (from a steady-state diffusion
   system) with strong advection/convection terms
   (e.g. hyperbolic-ish). The convection terms are often locally
   dominant, however the over all solution is determined by the
   diffusion/elliptic terms.

   One way to think about it is that the streamlines of the convection
   terms form closed loops in some parts of the domain, and so the
   solution in those loops is set by the diffusion across the closed
   stream lines. For those who care, this problem is similar to
   Stommel's solution for gyre scale circulation in the ocean, but
   with bathymetry.

   The diffusivity is slightly anisotropic (factor of no more than
   0.5). The velocity-like terms are incompressible -- they can be
   expressed as a stream function. I suspect the solution to this
   steady problem will not be overly sensitive to
   upwind-spurious-diffusion. The fipy formulation is:

       eq=(fipy.DiffusionTerm(var=psi,coeff=DiffCoeff)+
           fipy.ExponentialConvectionTerm(var=psi,coeff=convCoeff))

   The default scipy solver is going in the right direction, but the
   solution has not fully converged in the interior of the closed
   streamlines (I test this by setting all boundaries to psi=1, so the
   solution must be psi=1 everywhere). If I increase diffusion enough,
   the scipy solver does solve it correctly.

   The default pySparse solver dies after running out of memmory on a
   machine with lots of it. I am configuring trilinos now. In the
   distant past I had success with similar problems with the MUDPACK
   class of multigrid methods (using mud2).

   What solvers would you suggest to work with a problem like this?
   What guides you in your choice of solvers? What guides your choice
   of the type of the Convection term?

Thanks,
Jamie Pringle
University of New Hampshire
_______________________________________________
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to