Ok, thanks for the suggestions. I'd like to check that I understand the approach.
I create one DMDA for the variables to be solved by the SNES. That DMDA will be coarsened and refined by the options I pass to e.g. FAS. In my user context struct, I can have a second DMDA for the auxiliary fields. At each coarsening or refinement of the solution variable DMDA, I add a hook to simultaneously coarsen or refine the auxiliary fields. I suppose I can store the results of those operations in a third DMDA in the user context struct, because I'll need to access them from the SNES Function and Jacobian routines. Does that sound right?
