## Stokes Flow

P2P1 triangles were used to discretize the Stokes Equations.

### Lid Driven Cavity

The velocity magnitude and vectors for the Lid Driven Cavity problem. The top wall has a fixed velocity of 1 and the sides and bottom have no slip boundary conditions.

### Flow Over a Cylinder

The velocity magnitude, vectors, and streamlines for Stokes Flow across a cylinder.

The code can be found here. Building the stokes.cpp executable and running:
 ./stokes.exe cavity
and
 ./stokes.exe flow
will generate the data for the plots shown above.

## Wave Equation

My arbitrary order FEM code (found here) was used to solve the Wave Equation with dissipation:
$$\frac{\partial^2 u}{\partial t^2} + a \frac{\partial u}{\partial t} = c \nabla^2 u \,,$$
where $$u$$ is the $$z$$ displacement of the wave. $$a$$ controls the dissipation of the wave over time and $$c$$ controls the wave propogation speed. The second derivative in time was handled with a finite difference scheme:
$$\frac{\partial^2 u}{\partial t^2} \approx \frac{u_{i+1} – 2u_i + u_{i-1}}{\Delta t^2} \,.$$
Standard time integration procedures can now be applied.

In the video below, the second order Crank-Nicholson method and a fourth order FEM discretizations were used for space and time, respectively. The video shows the relaxation of the initial sinusoidal perturbation over time in an L shaped domain.