Skip to main content
`Ctrl`+`K`

# DMPlexComputeGradientClementInterpolant

This function computes the L2 projection of the cellwise gradient of a function u onto P1

## Synopsis

    #include "petscdmplex.h"
    PetscErrorCode DMPlexComputeGradientClementInterpolant(DM dm, Vec locX, Vec locC)

Collective

## Input Parameters

- dm - The `DM`

- locX - The coefficient vector u_h

## Output Parameter

- locC - A `Vec` which holds the Clement interpolant of the gradient

## Note

\(\nabla u_h(v_i) = \sum_{T_i \in support(v_i)} |T_i| \nabla u_h(T_i) / \sum_{T_i \in support(v_i)} |T_i| \) where \( |T_i| \) is the cell volume

## See Also

DMPlex: Unstructured Grids, `DM`, `DMPLEX`, `DMProjectFunction()`, `DMComputeL2Diff()`, `DMPlexComputeL2FieldDiff()`, `DMComputeL2GradientDiff()`

## Level

developer

## Location

src/dm/impls/plex/plexfem.c

## Examples

src/ts/tutorials/ex45.c

Index of all DMPlex routines
Table of Contents for all manual pages
Index of all manual pages