# Boundary conditions

Users may impose no-penetration, flux, gradient (Neumann), and value (Dirichlet) boundary conditions in bounded, non-periodic directions. Note that the only boundary condition available for a velocity field normal to the bounded direction is no-penetration.

## Flux boundary conditions

A flux boundary condition prescribes flux of a quantity normal to the boundary. For a tracer $c$ this corresponds to prescribing

$$$q_c \, |_b \equiv \boldsymbol{q}_c \boldsymbol{\cdot} \hat{\boldsymbol{n}} \, |_{\partial \Omega_b} \, ,$$$

where $\partial \Omega_b$ is an external boundary.

A gradient boundary condition prescribes the gradient of a field normal to the boundary. For a tracer $c$ this prescribes

$$$\gamma \equiv \boldsymbol{\nabla} c \boldsymbol{\cdot} \hat{\boldsymbol{n}} \, |_{\partial \Omega_b} \, .$$$

## Value (Dirichlet) boundary condition

A value boundary condition prescribes the value of a field on a boundary; for a tracer this prescribes

$$$c_b \equiv c \, |_{\partial \Omega_b} \, .$$$

## No penetration boundary condition

A no penetration boundary condition prescribes the velocity component normal to a boundary to be 0, so that

$$$\boldsymbol{\hat{n}} \boldsymbol{\cdot} \boldsymbol{v} \, |_{\partial \Omega_b} = 0 \, .$$$