I am trying to enforce the discrete maximum principle (i.e., ensuring non-negative concentrations) for diffusion-type problems that have an anisotropic diffusivity tensor (e.g., tensor dispersion from velocity). For the standard diffusion equation, I could employ convex optimization since I will have a symmetric and positive definite matrix.

However, say I am working with the advection-diffusion equation. My problem is now non-symmetric and non-self-adjoint (and I have observed negative concentrations in its formulations), thus I cannot use convex optimization. Recently, I heard that PETSc has the Variational Inequality feature for its SNES solver, and I was told that this kind of solver is amenable for nonlinear problems. Now my question is, can this solver be applied to a problem like advection-diffusion?


1 Answer 1


It is indeed possible to write an obstacle problem for an advection-diffusion equation as a variational inequality: If $a(u,v)$ is the bilinear form corresponding to your advection-diffusion equation, the corresponding obstacle problem (in your specific case) is finding $u\geq 0$ such that $$ a(u,v-u) \geq (f,v-u) \qquad \text{for all } v\geq 0.$$ In principle, no symmetry or convexity is required for this to be well-posed; however:

  1. There's no guarantee in general that the solution to the obstacle problem coincides with the (non-negative) solution of the advection-diffusion problem. In this case, it might work since there are variational principles for advection-diffusion equations; see, e.g., http://www.aero.caltech.edu/~ortiz/Pubs/1985/Ortiz1985.pdf.

  2. The SNES routine in PETSc is based on a semismooth Newton method, which (like any Newton method) requires uniformly bounded invertibility of the Newton matrix. If the problem is not uniformly convex, this doesn't always hold. (But it might work anyway.)

How to feed your variational inequality to PETSc is something I'll leave to the experts.

  • $\begingroup$ @Justin Thanks for the vote of confidence, but you might wish to wait a day to see if you get a better answer. (For example, there are PETSc developers active on this site, but in different time zones.) $\endgroup$ Sep 1, 2015 at 10:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.