PETSc developers,

       There are a variety of "interpolation" modules in PETSc but the 
documentation is scattered (mostly missing). Could everyone who knows anything 
about the various modules provide a little information about which modes exist 
as interfaces and which have actual supporting code and expected usage? 
Anything duplicative?

1) nested DM to DM (mesh to mesh) of the same type of DM seems to be supported 
for DMDA and DMPLEX using DMCreateInterpolation(). But what is 
DMPlexComputeInterpolatorNested(DM, DM, Mat, void *), how is it different? 
(Note usr context is not used)

2) non-nested DM to DM. DMPlexComputeInterpolatorGeneral(DM, DM, Mat, void *); 
(and what does "local portion" mean?) (also the usr context? is not used).

3) DM to a set of points (mesh to points)  with DMInterpolationInfo and the 
routines  DMInterpolationEvaluate() etc. Is this fully implemented for DMPLEX, 
DMDA? Parallel, does the user need to know which process the points are on or 
is that all figured out?

4) Points to a DM. Is this supported (should be?) by DMSWARM? In fact should 3) 
work with DMSWARM as the set of points and not have its own construct 
(DMInterpolationInfo)?

5) Points to points? (Done indirectly by interpolating to a DM then back to the 
other points)?


There is a routine DMPlexInterpolate() is this mis-named/confusing thing? 
Interpolate seems to mean something slight different here.

   All of this explanation could go into the users manual (or FAQ for now).

   Thanks for any explanations,

   Barry





     



Reply via email to