Skip to main content
`Ctrl`+`K`

# DMBoundaryConditionType

indicates what type of boundary condition is to be imposed

## Synopsis

    typedef enum {
      DM_BC_ESSENTIAL          = 1,
      DM_BC_ESSENTIAL_FIELD    = 5,
      DM_BC_NATURAL            = 2,
      DM_BC_NATURAL_FIELD      = 6,
      DM_BC_ESSENTIAL_BD_FIELD = 9,
      DM_BC_NATURAL_RIEMANN    = 10,
      DM_BC_LOWER_BOUND        = 4,
      DM_BC_UPPER_BOUND        = 8
    } DMBoundaryConditionType;

## Values

- `DM_BC_ESSENTIAL` - A Dirichlet condition using a function of the coordinates

- `DM_BC_ESSENTIAL_FIELD` - A Dirichlet condition using a function of the coordinates and auxiliary field data

- `DM_BC_ESSENTIAL_BD_FIELD` - A Dirichlet condition using a function of the coordinates, facet normal, and auxiliary field data

- `DM_BC_NATURAL` - A Neumann condition using a function of the coordinates

- `DM_BC_NATURAL_FIELD` - A Neumann condition using a function of the coordinates and auxiliary field data

- `DM_BC_NATURAL_RIEMANN` - A flux condition which determines the state in ghost cells

- `DM_BC_LOWER_BOUND` - A lower bound on the solution along a boundary

- `DM_BC_UPPER_BOUND` - An upper bound on the solution along a boundary

## Note

The user can check whether a boundary condition is essential using (type & `DM_BC_ESSENTIAL`), and similarly for natural conditions (type & `DM_BC_NATURAL`)

## See Also

DM Basics, `DM`, `DMAddBoundary()`, `DSAddBoundary()`, `DSGetBoundary()`

## Level

beginner

## Location

include/petscdmtypes.h

## Examples

src/snes/tutorials/ex12.c

## Examples

src/ts/tutorials/ex18.c
src/ts/tutorials/ex11.c

## Examples

src/snes/tutorials/ex64.c
src/snes/tutorials/ex11.c
src/snes/tutorials/ex12.c
src/snes/tutorials/ex20.c
src/snes/tutorials/ex23.c
src/snes/tutorials/ex63.c
src/snes/tutorials/ex13.c
src/snes/tutorials/ex26.c
src/snes/tutorials/ex24.c
src/snes/tutorials/ex17.c

## Examples

src/snes/tutorials/ex77.c
src/snes/tutorials/ex71.c
src/snes/tutorials/ex27.c
src/snes/tutorials/ex12.c
src/ts/tutorials/ex76.c
src/snes/tutorials/ex56.c
src/ts/tutorials/ex53.c
src/snes/tutorials/ex63.c
src/snes/tutorials/ex24.c
src/snes/tutorials/ex17.c

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