# 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 parameter

- ***metricOut          -*** The normalized metric





## Notes


## Relevant command line options


- ***-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
 `DMPlexMetricEnforceSPD()`, `DMPlexMetricIntersection()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexmetric.c.html#DMPlexMetricNormalize">src/dm/impls/plex/plexmetric.c</A>


---
[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](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
