:orphan: # DMPlexMetricNormalize Apply L-p normalization to a metric ## Synopsis ``` #include "petscdmplex.h" PetscErrorCode DMPlexMetricNormalize(DM dm, Vec metricIn, PetscBool restrictSizes, PetscBool restrictAnisotropy, Vec metricOut, Vec determinant) ``` ## Input parameters - ***dm -*** The `DM` - ***metricIn -*** The unnormalized metric - ***restrictSizes -*** Should maximum/minimum metric magnitudes be enforced? - ***restrictAnisotropy -*** Should maximum metric anisotropy be enforced? ## Output parameters - ***metricOut -*** The normalized metric - ***determinant -*** computed determinant ## Options Database Keys - ***-dm_plex_metric_isotropic -*** Is the metric isotropic? - ***-dm_plex_metric_uniform -*** Is the metric uniform? - ***-dm_plex_metric_restrict_anisotropy_first -*** Should anisotropy be restricted before normalization? - ***-dm_plex_metric_h_min -*** Minimum tolerated metric magnitude - ***-dm_plex_metric_h_max -*** Maximum tolerated metric magnitude - ***-dm_plex_metric_a_max -*** Maximum tolerated anisotropy - ***-dm_plex_metric_p -*** L-p normalization order - ***-dm_plex_metric_target_complexity -*** Target metric complexity ## See Also `DMPLEX`, `DMPlexMetricEnforceSPD()`, `DMPlexMetricIntersection()` ## Level beginner ## Location src/dm/impls/plex/plexmetric.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexmetric.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)