The mesh was generated with gmsh
. Running
./transient.exe sam
with the code at https://github.com/smsolivier/FEM will produce the data for the above video. The visualization was done with LLNL’s Visit.
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 is the displacement of the wave. controls the dissipation of the wave over time and 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.