Skip to main content
`Ctrl`+`K`

# 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

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