:orphan: # DMPlexMetricEnforceSPD Enforce symmetric positive-definiteness of a metric ## Synopsis ``` #include "petscdmplex.h" PetscErrorCode DMPlexMetricEnforceSPD(DM dm, Vec metricIn, PetscBool restrictSizes, PetscBool restrictAnisotropy, Vec metricOut, Vec determinant) ``` ## Input parameters - ***dm -*** The `DM` - ***metricIn -*** The metric - ***restrictSizes -*** Should maximum/minimum metric magnitudes be enforced? - ***restrictAnisotropy -*** Should maximum anisotropy be enforced? ## Output parameter - ***metricOut -*** The metric - ***determinant -*** Its determinant ## Options Database Keys - ***-dm_plex_metric_isotropic -*** Is the metric isotropic? - ***-dm_plex_metric_uniform -*** Is the metric uniform? - ***-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 ## See Also `DMPLEX`, `DMPlexMetricNormalize()`, `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)