[petsc-users] DMPlex Interpolation

Lawrence Mitchell wence at gmx.li
Mon Aug 29 09:22:28 CDT 2022

On Mon, 29 Aug 2022 at 14:55, Matthew Knepley <knepley at gmail.com> wrote:
> On Sun, Aug 28, 2022 at 7:17 PM Matthew Knepley <knepley at gmail.com> wrote:
>> On Sun, Aug 28, 2022 at 5:36 PM Mike Michell <mi.mike1021 at gmail.com> wrote:
>>> Thank you for the reply.
>>> I think it can be more helpful for me if the attached sample code (DMInterpolation_Mod.tar) could be checked by you.
>> Okay, you are right. I will run it tomorrow.
> The problem was somewhat conceptual. When you are restricting state, meaning a function you want to use directly, rather than
> residuals, meaning some average or integral, you want to preserve scale. This is what the 'vscale' vector is for. I added the
> VecPointwiseMult to your code (attached) to do this. I also changed to a more general mehs creation. To get your run, use

The right answer is to use DMCreateInjection
to move fine grid state to coarse grid state (rather than
DMCreateInterpolation and then VecPointwiseMult, which doesn't work
for most discretisations).

Matt: the interface to DMCreateInjection is now correct (it returns a
Mat, rather than a VecScatter) so DMPlexComputeInjectorFEM
should be updated to take advantage.


More information about the petsc-users mailing list