Finite element simulation of a hyperelastic material with nonlinear Kirchhoff-St. Venant constitutive law. The material is stretched upwards for one second and then released inducing the free vibration shown. Roundoff errors eventually build enough to perturb the material laterally.

]]>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.

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.

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.

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.

]]>$$ z_{n+1} = z_n^2 + c $$

does not diverge as . These values of can then be plotted in the complex plane to produce some interesting images. As each pixel in the image is an independent calculation this is a good problem for getting familiar with parallel computing. The following images were generated with the code at https://github.com/smsolivier/Mandelbrot.