# stokes_2d_exact

stokes_2d_exact, a MATLAB code which evaluates exact solutions to the incompressible steady Stokes equations in 2D.

The incompressible steady 2D Stokes equations seek functions u(x,y), v(x,y), (the velocity vector) and p(x,y) (the pressure) such that

```        - uxx - uyy + dpdx = f
- vxx - vyy + dpdy = g
ux  + vy         = h
```
while satisfying boundary conditions for u and v, and a normalization condition for p, such as specifying its value at one point, or requiring that the integral of p over the region be 0.

Three exact solution fields are provided here.

### Languages:

stokes_2d_exact is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

### Related Data and Programs:

navier_stokes_2d_exact, a MATLAB code which evaluates an exact solution to the incompressible time-dependent navier-stokes equations over an arbitrary domain in 2d.

navier_stokes_mesh2d, MATLAB data files which define triangular meshes for several 2d test problems involving the navier stokes equations for fluid flow, provided by leo rebholz.

spiral_data, a MATLAB code which computes a velocity vector field that satisfies the continuity equation, writing the data to a file that can be plotted by gnuplot.

### Reference:

1. Junping Wang, Yanqiu Wang, Xiu Ye,
A robust numerical method for Stokes equations based on divergence-free H(div) finite element methods,
SIAM Journal on Scientific Computing,
Volume 31, Number 4, 2009, pages 2784-2802.

### Source Code:

• grid_2d.m, returns a regular 2D grid.
• r8vec_uniform_ab.m, returns a scaled pseudorandom R8VEC.
• resid_stokes1.m, evaluates the residuals at any point (x,y) for flow #1.
• resid_stokes2.m, evaluates the residuals at any point (x,y) for flow #2.
• resid_stokes3.m, evaluates the residuals at any point (x,y) for flow #3.
• rhs_stokes1.m, evaluates the riht hand side functions at any point (x,y) for flow #1.
• rhs_stokes2.m, evaluates the riht hand side functions at any point (x,y) for flow #2.
• rhs_stokes3.m, evaluates the riht hand side functions at any point (x,y) for flow #3.
• stokes_gnuplot.m, writes the velocity vector field to files for GNUPLOT.
• uvp_stokes1.m, evaluates the velocity and pressure field at any point (x,y) for flow #1.
• uvp_stokes2.m, evaluates the velocity and pressure field at any point (x,y) for flow #2.
• uvp_stokes3.m, evaluates the velocity and pressure field at any point (x,y) for flow #3.

Last revised on 22 March 2019.