# 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





## Notes

It is assumed that the DM is comprised of simplices.


## Command line options 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


Switching between remeshers can be achieved using


- ***-dm_adaptor <pragmatic/mmg/parmmg>        -*** specify dm adaptor to use



## Further options that are only relevant to 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).



## See Also
 `DMPlexMetricCreateUniform()`, `DMPlexMetricCreateIsotropic()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexmetric.c.html#DMPlexMetricCreate">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)  
