:orphan: # 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 [](ch_unstructured), `DM`, `DMPLEX`, `DMProjectFunction()`, `DMComputeL2Diff()`, `DMPlexComputeL2FieldDiff()`, `DMComputeL2GradientDiff()` ## Level developer ## Location src/dm/impls/plex/plexfem.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexfem.c) [Index of all DMPlex routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)