About
This is a finite element solver that I wrote in November and December of 2006. The solver is fairly general and should be able to handle any type of volumetric element (the examples only use mapped brick elements) as well as a wide class of FE analysis problems.
Code
The code can be found in fe_dynamics_simulator.tar.gz.
To build and run the code on OS X, enter the source directory and type make -f Makefile.apple run. For other platforms, substitute Makefile.cygwin or Makefile.linux.
A short introduction to the code is as follows.
tracehas just one header file for tracing and asserts. No dependencies.matrixhas dense and sparse matrix code. Functionality includes sparse matrix assmebly, BLAS operations, CG solver. This code depends ontracefemis the core finite element library. It includes mesh loading and visualization, a framework for taking integrals over meshes, and a few sample integrals (mass matrix computation, gravity force computation, and StVK force and stiffness computation). It depends onmatrixandtrace.fe-dynamics-simulatoris the actual simulator. It includes code for integration of the equation of motions, Dirichlet boundary conditions, and basic window and interaction (using GLUT).
Sample Output
The following videos show simulations of the dynamics of an object as it deforms due to various external forces being applied. The material model used in these examples is the Saint-Venant Kirchoff material model. The system was integrated in time using Newmark integration.
For mathematical purity (and at the expense of realism), damping was not modeled in these simulations. As a result, in the absense of numerical error, the objects being simulated will oscillate forever.
The color at each point on the object is linearly related to the Von Mises stress experienced at that point (blue is low stress and red is high stress).
Videos




