Hi all,

1) How do I define a volumetric source/sink for a specific region? For example, if I am solving a diffusion equation with homogeneous BCs and have a volumetric source f(x,y) such that

if (x[0] >= 0.25 && x[0] <= 0.30 && x[1] >= 0.25 && x[1] <= 0.30):
  f == 1
else:
  f == 0

2) I want to play around with PETSc's Variational Inequality solver. In my own PETSc code all I had to do was provide a Jacobian matrix, a residual vector, pass in the options -snes_type vinewtonssls (or it might be vinewotnrsls), and pass in SNESVINEWTONSSLS . From my last discussion with some PETSc folks it seems this VI feature is relatively now, so I was wondering if that last item can be invoked through the version of petsc4py you guys are using?

3) Is it possible to employ the SUPG formulation for advection-diffusion problems in firedrake?

Thanks,
Justin