This project is currently in very early stages of its development. The intention is to develop a general purpose finite element code to model a large variety of computational mechanics problems. Currently, only solid mechanics problems are considered. However, the intention is to develop functionality for multi-physics problems.
- Parallelization for distributed memory machines.
- Finite strain solid mechanics solver.
- Support for heterogeneous structures.
- Various sophisticated finite strain material models:
- Rate-dependent crystal plasticity.
- Rate-dependent plasticity.
- Viscoelasticity.
- Hyperelasticity.
- Anisotropy.
- Periodic boundary conditions.
- Homogenization operations.
- Implementation of Geometric-MultiGrid (GMG) preconditioning.
- Implementation of matrix-free solver with GMG preconditioning.
- Implementation of Arbitrary Lagrangian-Eulerian (ALE) for plasticity (see motivation for this in example below).
- Implementation of adaptive remeshing for materials with history variables (see motivation for this in example below).
Example of functionality (a toy problem): modelling a polycrystalline material with a elastic intermetallic particles (IMPs)
During the solidification of various metal alloys non-metallic elements precipitate out of the solution. This results in intermetallic particles that are embedded in the typical polycrystalline metal microstructure as illustrated below (see this repo for the code that generated the mesh on the left-hand side and this repo for the code that extracted particle geometries from optical micrographs).
Note that a cross-section of the representative volume element (RVE) is presented above so that the intermetallic particles are visible. The unlabelled coloured portions of the mesh are different crystal grains. Some of the mathematical components of the model are loosely described in what follows. For the sake of brevity, it is assumed that the reader has some knowledge of finite strain continuum mechanics and the accompanying standard notation.
One seeks a displacement field as a function of position
and periodic boundary conditions, that is,
Here,
Macroscale plane strain loading is applied and macroscale incompressibility is assumed, leading to the following expression:
where
The domain is made up of several subdomains describing intermetallic particles and separate crystal grains; that is,
Constitutive equations (denoted by
The stress in subdomains relating to IMPs is given by
where
where
where
where
Note, that this is a simplified version of rate-dependent crystal plasticity analogous to perfect plasticity - in a more general case,
Each crystal is modelled as a face centred cubic (FCC) crystal with 12 independent slip systems. The crystal orientation is randomly assigned in the initial state from one crystal to the next, but constant within a single crystal.
The numerical treatment of the above is ommitted for brevity.
The elastic strain energy density field, given by
for the IMPs and
for the crystal grains, is presented for three different times in the simulation below.
Clearly, the strain energy density is larger in the IMPs. The volume averaged first Piola-Kirchhoff stress is presented below for varying degrees of mesh refinement and for microstructures that contain IMPs as well as microstructures that do not.
The top centre graph in the figure above is analogous to the results one might obtain from a physical plane strain compression test.
It is apparent that, in this toy problem at least, the IMPs have an insignificant effect on the stress response.