I'm looking at the VTK viewer implementation and I notice that PetscViewerVTKAddField() [1] accepts a parameter which, despite being called "dm", is of type PetscObject.
I think that this is used, amongst other things, to ensure that vectors being queued up to be written all come from the same DM. I'd like to relax this to only require that the vectors all come from *compatible* DMDAs, but this would require the DM API in vtkv.c. My questions: is this argument of type PetscObject for any reason other than not wanting to bother including petscdm.h ? Might this be something other than a DM in some case (and in which case, why is the argument called "dm")? Am I missing a reason that I'll get into trouble eventually if I change this? (Similar question for the "vec" argument). [1] http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Viewer/ PetscViewerVTKAddField.html