Example 5531: Isovolumic contraction/ejection of a trilinear prolate spheroid

A single trilinear prolate spheriod with hydrostatic pressure interpolated quadratically in Xi3 (element based). The pole-zero law defines the incompressible material behaviour of the wall region. A cavity region is defined with a single free node at the top (opening) of the cavity.

The pressure inflated prolate is initially contracted due to the steady-state tension-length-Ca relation against a constant volume constraint in the cavity region. Movement of the top cavity node is restricted (using an 'impedance' parameter) to simulate isovolumic contraction.

Ejection is simulated by reducing the impedance parameter to allow the top cavity node to move out of the cavity.

Created by Martyn Nash 1995
Updated by Martyn Nash Aug 2004


The comfile run by this example is as follows:

#Example_5531  Contraction of an inflated orthotropic prolate element
#
#
# If the example path is not set, default to current directory
if (!defined $example) {
    $example = "./";
}
# Drop off the trailing / in the example path
$chopped = chop $example;
if ($chopped ne "/") {
    $example .= $chopped;
}

fem define param;r;prol;example;                 
fem define coordinate;r;profib;example;          # 3D prolate spheroidal
fem define node;r;profib;example;                # 4 nodes of previous example_5512
fem define base;r;profib;example;                # trilinear + quadratic hydr. pressure
fem define element;r;profib;example;             # single axisymmetric element
fem define fibre;r;profib;example;               # fibre angles of previous example_5512
fem define element;r;profib;example fibre;       # fibre elements
fem define equation;r;profib;example;            # 3D, finite elasticity
fem define material;r;profib_active;example;     # incomp; pole-zero law + active fibre stress
fem define active;r;profib;example;              # steady state calcium/length/tension
#                                                !  model for generation of active forces
fem define initial;r;profib_def;example;         # reads in inflated mesh (results from
#                                                !  previous example_5512 - inflated 2kPa)
fem define solve;r;profib;example;               # Newton iterations
fem evaluate reaction;
# ############################################ 
# Inflated solution is converged OK! 
# ############################################ 

$WALL = 1;
$CAVITY = 2;

# 
# Set up cavity region geometry 
fem define region;r;coupled;example;
fem define coord;r;cavity;example region $CAVITY;
fem define;add base;r;cavity;example;
fem define node;r;cavity;example region $CAVITY;
fem define element;r;cavity;example region $CAVITY;
# 
# Set up equations, material properties and initial conditions 
# for cavity region 
fem define equation;r;coupled;example region $WALL,$CAVITY lock;
fem define material;r;cavity_isovol;example region $CAVITY;
fem define initial;r;cavity;example region $CAVITY;
# 
# Define cavity-to-wall coupling and solution procedure information 
fem define coupling;r;coupled;example;
fem define solve;r;coupled;example coupled region $WALL,$CAVITY;
# 
# Transfer wall deformation from the inflation problem to 
# geometric dependent variables for the cavity region 
fem update solution coupled source_region $WALL;
# 
# Set up the reference state for the cavity region to be the deformed 
# configuration from the inflation problem.  To set up the 
# 'inflated cavity', the x-coord ('in 1' represents the 1st RC coord) 
# for the central cavity node (node 6) is set to the average of the 
# x-coords for the adjacent interface nodes (node 2 - this could 
# be a list of nodes) 
fem update solution cavity_reference average 6 in 1 node 2 region $CAVITY;
# 
# List undeformed (pre-inflation) and inflated cavity volumes 
fem list element total region $CAVITY;
fem list element deformed total region $CAVITY;
# ############################################ 
# cavity volume inflated from 40ml to 64ml. 
# ############################################ 
# 
fem define window;
fem draw lines region $WALL,$CAVITY;
fem draw lines dot def region $WALL,$CAVITY;
# 
# Check that the current coupled solution is converged (as expected!) 
fem evaluate reaction coupled;
# ############################################ 
# inflated state is a converged solution for the coupled problem! 
# ############################################ 

# 
# ISOVOLUMIC CONTRACTION 
# 
# Increment intracell calcium conc and solve for isovolumic contraction 
fem define active;r;profib_contract;example;
fem solve coupled increment 0.0;
# 
# Save deformed configurations for end ejection 
#fem define initial;w;profib_endisovolcontr region $WALL,$CAVITY;
# 
# ############################################ 
# The solution procedure hasn't theoretically converged, but 
# if you follow the progress of the solver and the final 
# constr vs unconstr resids, it's very close to converged. 
# Note that the ratio monotonically decreased, 
# which is also a sign of a stable solution process. 
# ############################################ 
# If previously solved isovolumic contraction then read contracted solution
#fem define initial;r;profib_endisovolcontr;example region $WALL,$CAVITY;
#fem define solve;r;coupled;example coupled region $WALL,$CAVITY;

# Check that the current coupled solution is converged (as expected!) 
#fem evaluate reaction coupled;

fem draw lines deformed dotted rgb=blue region $WALL,$CAVITY;
# 
# Check that cavity volume has not changed 
fem list element deformed total region $CAVITY;

# ############################################ 
# This contraction phase was indeed isovolumic! 
# (cavity volume still 64ml). 
# ############################################ 
# 
# EJECTION 
# 
# Decrease cavity 'stiffness parameter' and solve for ejection 
fem define material;r;cavity_eject;example region $CAVITY;
fem solve coupled increment 0.0;
# 
# Save deformed configurations for end ejection 
#fem define initial;w;profib_endeject region $WALL,$CAVITY;

# ############################################ 
# Ejection problem is SLOW to converge, but note that the ratio 
# monotonically decreases, indicating a stable solution. 
# May need to repeat the last solve command to get better convergence, 
# but will probably not get down to 10^(-10) tolerance. 
# ############################################ 
# If previously solved ejection then read ejected solution
#fem define initial;r;profib_endeject;example region $WALL,$CAVITY;
#fem define solve;r;coupled;example coupled region $WALL,$CAVITY;

# Check that the current coupled solution is converged (as expected!) 
#fem evaluate reaction coupled;
# 
fem draw;add lines deformed dotted region $WALL,$CAVITY;
# 
# Determine cavity volume at end-ejection. 
# NOTE: to calc cavity volume, the deformed position of the central 
# cavity node must be recalc'ed from the averaged adjacent wall nodes. 
# After doing this the current solution is meaningless, ie. best to save 
# deformed configurations for both regions before this (as above). 
fem update solution cavity_reference average 6 in 1 node 2 region $CAVITY;
fem list element deformed total region $CAVITY;
# ############################################ 
# Not a huge ejection fraction (!!!), but neverless a decrease 
# in volume from 64ml to 62ml. 
# ############################################ 

Additional testing commands:

fem list initial region $WALL,$CAVITY
fem write iod

Files used by this example are:

Name                          Modified     Size

example_5531.com 18-Aug-2004 6.4k cavity.ipbase 10-Apr-2000 1.1k cavity.ipcoor 10-Apr-2000 707 cavity.ipelem 10-Apr-2000 404 cavity.ipinit 12-Dec-2002 1.4k cavity.ipnode 10-Apr-2000 1.3k cavity_eject.iod 10-Apr-2000 69k cavity_eject.ipmate 10-Apr-2000 386 cavity_isovol.ipmate 10-Apr-2000 390 coupled.ipcoup 21-Aug-2002 437 coupled.ipcoup.old 10-Apr-2000 386 coupled.ipregi 10-Apr-2000 94 coupled.irequa 02-May-2004 3.8k coupled.irsolv 16-Aug-2010 2.7k coupled.irsolv.old 13-Apr-2007 2.6k profib.ipacti 03-Mar-2004 735 profib.ipbase 10-Apr-2000 4.2k profib.ipcoor 10-Apr-2000 707 profib.ipelem 10-Apr-2000 409 profib.ipelfb 10-Apr-2000 349 profib.ipelfd 10-Apr-2000 276 profib.ipequa 02-May-2004 2.0k profib.ipfibr 30-Jan-2001 1.3k profib.ipfiel 10-Apr-2000 601 profib.ipfit 13-Apr-2007 1.5k profib.ipinit 12-Dec-2002 1.8k profib.ipmate 12-Dec-2002 6.6k profib.ipnode 10-Apr-2000 1.2k profib.ipsolv 16-Aug-2010 2.3k profib.ipsolv.old 13-Apr-2007 2.1k profib.ipwind 10-Apr-2000 262 profib.ps 10-Apr-2000 11k profib_active.ipmate 12-Dec-2002 6.2k profib_contract.ipacti 03-Mar-2004 735 profib_def.ipinit 17-Aug-2004 6.2k profib_endeject.irinit 17-Aug-2004 11k profib_endisovolcontr.irinit 17-Aug-2004 11k prol.ippara 12-Nov-2002 5.9k test_output.com 10-Apr-2000 52

Download the entire example:

Name                           Modified     Size

examples_5_55_553_5531.tar.gz 17-Aug-2010 25k

Testing status by version:

StatusTestedReal time (s)
i686-linux
cmFailureSun Mar 6 00:09:46 20161
last breakTue Aug 12 00:29:00 20143
last successSun Apr 17 00:51:00 20113
cm-debugFailureSun Mar 6 00:14:26 20163
last breakTue Aug 12 00:03:00 20145
last successFri Apr 8 00:16:00 20114
mips-irix
cmSuccessSun Aug 19 01:39:49 200710
cm-debugSuccessWed Aug 15 01:33:02 200723
cm-debug-clear-mallocSuccessSat Aug 18 01:42:59 200731
cm-debug-clear-malloc7SuccessMon Aug 20 01:40:01 200732
cm64SuccessSun Aug 19 01:39:27 200710
cm64-debugSuccessTue Aug 21 01:32:18 200723
cm64-debug-clear-mallocSuccessFri May 20 10:31:06 200511
rs6000-aix
cmSuccessWed Mar 4 01:08:52 20092
cm-debugSuccessMon Mar 2 01:09:25 20097
cm64SuccessWed Mar 4 01:08:52 20092
cm64-debugSuccessTue Mar 3 01:14:09 20096
x86_64-linux
cmFailureSun Mar 6 00:01:24 20161
last breakTue Aug 12 00:02:00 20141
last successSun Apr 17 00:26:00 20112
cm-debugFailureSun Mar 6 00:01:25 20162
last breakTue Aug 12 00:02:00 20142
last successFri Apr 8 00:06:00 20113

Testing status by file:


Html last generated: Sun Mar 6 05:50:25 2016

Input last modified: Mon Aug 16 11:19:20 2010


CMISS Help / Examples / 5 / 55 / 553 / 5531