Cavity Coupling

Module: devtests.mechanics.cavity.slice

Section author: Andrew Crozier <> and Christoph Augustin <>

This example provides pure mechanics and electromechanics examples on a simple ring geometry.

Problem Setup

This problem generates a simple ring mesh using the carputils.mesh.Ring class. The ring is tesselated into tetrahedra as shown below:


In all experiment types in this example, the top and bottom surfaces of the ring are constrained to lie in the same plane with Dirichlet boundary conditions, and an additional three nodes on the bottom (z=0) surface are constrained such that free body rotation and translation is prevented. Two nodes on the x axis are prevented from moving in the y direction, and one node on the y axis is prevented from moving in the x direction:



Several experiments are defined:

  • neumann - Apply a pressure to the endocardium with a Neumann boundary condition at successively higher increments
  • active-free - Run an active contraction simulation without constraints on cavity size or pressure
  • active-iso - Run an active contraction simulation with an isovolumetric cavity constraint
  • unload - Compute the unloaded reference state of the ring
  • unload-validate - Reinflate from the unloaded reference state, which should reproduce the original mesh

Other Arguments

Another key argument is the stress model. Three active stress models are available:

  • NPStress - The simple stress model from Nash and Panfilov
  • Rice - The more biophysically realistic model from Rice
  • FxStress - A very simple active stress model based on activation times and constructed with exponential functions