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?