:orphan:
# DMPlexCreateHypercubicMesh
Creates a periodic mesh on the tensor product of unit intervals using only vertices and edges. 
## Synopsis
```
#include "petscdmplex.h"   
#include "petscdmplex.h"   
PetscErrorCode DMPlexCreateHypercubicMesh(MPI_Comm comm, PetscInt dim, const PetscInt edges[], const PetscReal lower[], const PetscReal upper[], DM *dm)
```
Collective


## Input Parameters

- ***comm        -*** The communicator for the DM object
- ***dim         -*** The spatial dimension
- ***edges       -*** Number of edges per dimension, or `NULL` for (1,) in 1D and (2, 2) in 2D and (1, 1, 1) in 3D
- ***lower       -*** The lower left corner, or `NULL` for (0, 0, 0)
- ***upper       -*** The upper right corner, or `NULL` for (1, 1, 1)



## Output Parameter

- ***dm  -*** The DM object





## Note
If you want to customize this mesh using options, you just need to
```none
  DMCreate(comm, &dm);
  DMSetType(dm, DMPLEX);
  DMSetFromOptions(dm);
```

and use the options on the `DMSetFromOptions()` page.

The vertices are numbered is lexicographic order, and the dim edges exiting a vertex in the positive orthant are number consecutively,
```none
 18--0-19--2-20--4-18
  |     |     |     |
 13    15    17    13
  |     |     |     |
 24-12-25-14-26-16-24
  |     |     |     |
  7     9    11     7
  |     |     |     |
 21--6-22--8-23-10-21
  |     |     |     |
  1     3     5     1
  |     |     |     |
 18--0-19--2-20--4-18
```



## See Also
 `DMSetFromOptions()`, `DMPlexCreateFromFile()`, `DMPlexCreateHexCylinderMesh()`, `DMSetType()`, `DMCreate()`

## Level
beginner

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

## Implementations

<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexcreate.c.html#DMPlexCreateHypercubicMesh_Internal">DMPlexCreateHypercubicMesh_Internal in src/dm/impls/plex/plexcreate.c</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexcreate.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)  
