:orphan: # DMPlexMetricCreate Create a Riemannian metric field ## Synopsis ``` #include "petscdmplex.h" PetscErrorCode DMPlexMetricCreate(DM dm, PetscInt f, Vec *metric) ``` ## Input parameters - ***dm -*** The `DM` - ***f -*** The field number to use ## Output parameter - ***metric -*** The metric ## Options Database Key - ***-dm_adaptor -*** specify dm adaptor to use ## Options Database Keys for Mmg and ParMmg - ***-dm_plex_metric_gradation_factor -*** Maximum ratio by which edge lengths may grow during gradation - ***-dm_plex_metric_num_iterations -*** Number of parallel mesh adaptation iterations for ParMmg - ***-dm_plex_metric_no_insert -*** Should node insertion/deletion be turned off? - ***-dm_plex_metric_no_swap -*** Should facet swapping be turned off? - ***-dm_plex_metric_no_move -*** Should node movement be turned off? - ***-dm_plex_metric_verbosity -*** Choose a verbosity level from -1 (silent) to 10 (maximum). ## Options Database Keys for Riemannian metrics - ***-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 ## Note It is assumed that the `DM` is comprised of simplices. ## See Also `DMPLEX`, `DMPlexMetricCreateUniform()`, `DMPlexMetricCreateIsotropic()` ## 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)