Example 7181: Evaluating multiaxial residual tension in in-vivo human skin

In-vivo soft tissue is load bearing in its natural state. When estimating material parameters from in-vivo experiments it is important obtain values for these residual forces and add this to the experimentaly applied forces. This example illustrates how the optimiser is used to evaluate the residual force in a in-vivo multiaxial loading experiment on human skin.


The comfile run by this example is as follows:

#This example uses a linear approximation for small deformations to estimate the residual force (natural tension) from a in-vivo multiaxial 
#loading experiment on human skin. The result is used as an input in the material parameter estimation in example 7182. Note the example takes a LONG time to run

# 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;
}
#**************************************************************
set num_threads 4
@DATASETS = (5,6,8,9)								#Deformed states used in the parameter estimation

fem define parameters;r;multiaxes;example
	
fem define bases;r;bases_cube;example						#Bi-cubic hermite for geomety, bi-linear for fibre 
fem define nodes;r;coordinates_cube_undeformed;example	
fem define elements;r;elements_cube;example					#Circular mesh with 192 elements

fem define fibre;r;fibre;example			
fem define elements;r;fibreelem_cube;example fibre

fem define equation;r;equation;example						#Incompressible membrane (uses plain-stress)
fem define material;r;tongfung;example						#Tong and Fungs skin function
	
fem group nodes 1..32 as BOUNDARY
	
fem define data;r;datapoints_undeformed;example					#Reads the undeformed coordinates of the datapoints
foreach $index (@DATASETS[1..$#DATASETS]){
	fem define data;r;datapoints_undeformed;example append
}

fem define xi;c closest								#Defines the xi positions of the datapoints

fem define data;r;datapoints_${DATASETS[0]};example as IMAGE_${DATASETS[0]}	#Reads the deformed coordinates of the datapoints
foreach $index (@DATASETS[1..$#DATASETS]){
	fem define data;r;datapoints_${index};example append as IMAGE_${index}
}

fem define initial;r;initskin_cube;example					#Defines a fixed boundary coordinate problem
fem define solve;r;solve;example
fem define optimise;r;tongfung_linetwo_cube;example				#Estimate two linear parameters (alfa1 and alfa2)

fem define nodes;r;displacements_cube_ref;example dep 2 nc 1			#Reads the boundary conditions

for $M (1..10){
	fem solve increment 0.1 iterate 1000					#Solves the fixed boundary problem in 10 increments
}

fem evaluate reactions noview
fem define heading force_cube_residual;example					#Evaluates the residual force using the current parameter values
fem define nodes;w;force_cube_residual;example dep 4 nc 1			#Writes the residual force to file
fem define nodes;r;force_cube_ref;example dep 4 nc 1				#Reads in zero values to reset the array

for $M (1..10){									#Repeates the parameter estimation and residual force evaluation

	optimise								#The optimiser calles the eval_resid_cube.com file
	
	fem list data errors deformed

	fem define initial;r;initskin_cube;example				#Defines a fixed boundary coordinate problem	
	fem define solve;r;solve;example

	fem define nodes;r;displacements_cube_ref;example dep 2 nc 1		#Reads the boundary conditions

	for $M (1..10){
		fem solve increment 0.1 iterate 1000				#Solves the fixed boundary problem in 10 increments
	}

	fem evaluate reactions noview
	fem define heading force_cube_residual					#Evaluates the residual force using the current parameter values
	fem define nodes;w;force_cube_residual;example dep 4 nc 1		#Writes the residual force to file
	fem define nodes;r;force_cube_ref;example dep 4 nc 1			#Reads in zero values to reset the array
	
}

Files used by this example are:

Name                                Modified     Size

example_7181.com 24-May-2004 3.4k bases_cube.ipbase 20-Apr-2004 2.6k coordinates_cube_undeformed.ipnode 20-Apr-2004 155k datapoints_5.ipdata 20-Apr-2004 37k datapoints_6.ipdata 20-Apr-2004 37k datapoints_8.ipdata 20-Apr-2004 37k datapoints_9.ipdata 20-Apr-2004 37k datapoints_undeformed.ipdata 20-Apr-2004 37k displacements_cube_5.ipnode 20-Apr-2004 156k displacements_cube_6.ipnode 20-Apr-2004 156k displacements_cube_8.ipnode 20-Apr-2004 156k displacements_cube_9.ipnode 20-Apr-2004 156k displacements_cube_ref.ipnode 20-Apr-2004 154k elements_cube.ipelem 24-May-2004 72k equation.ipequa 02-May-2004 1.8k evalresid_cube.com 20-Apr-2004 877 fibre.ipfibr 20-Apr-2004 53k fibreelem_cube.ipelfb 20-Apr-2004 79k force_cube_5.ipnode 20-Apr-2004 154k force_cube_6.ipnode 20-Apr-2004 154k force_cube_8.ipnode 20-Apr-2004 154k force_cube_9.ipnode 20-Apr-2004 154k force_cube_ref.ipnode 20-Apr-2004 154k force_cube_residual.ipnode 24-May-2004 120k initskin_cube.ipinit 20-Apr-2004 1.3k initskinsolve_cube.ipinit 20-Apr-2004 1.8k multiaxes.ippara 20-Apr-2004 5.8k solve.ipsolv 16-Aug-2010 2.3k solve.ipsolv.old 13-Apr-2007 2.2k tongfung.ipmate 24-May-2004 5.2k tongfung_linetwo_cube.ipopti 20-Apr-2004 1.2k

Download the entire example:

Name                           Modified     Size

examples_7_71_718_7181.tar.gz 17-Aug-2010 258k

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

Input last modified: Mon Aug 16 11:21:47 2010


CMISS Help / Examples / 7 / 71 / 718 / 7181