Example 7182: Estimating material parameters of in-vivo human skin using a forward solve method

The material parameter values in Tong and Fungs skin function is estimated from a multiaxial loading experiment on in-vivo human skin. The optimiser uses a forward solve method that evaluates geometic residuals on a set of datapoints after solving a force boundary problem


The comfile run by this example is as follows:

#This example uses a full forvard solve method to estimate material parameters from a in-vivo multiaxial loading experiment on human skin. A 
#loading cycle including a total of ten deformed states are used to estimate five parameter values in the Tong and Fung skin function. A testing 
#version of this problem is found in example 7183 

# 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 = (4,5,6,8,9,10,11,12,13,14)						#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;initskinsolve_cube;example					#Defines a force boundary problem
fem define solve;r;solve;example
fem define optimise;r;tongfung_five_cube;example				#Estimate five material parameters
	
fem define nodes;r;displacements_cube_$DATASETS[-1];example dep 2 nc 1			
fem define nodes;r;force_cube_$DATASETS[-1];example dep 2 nc 2			#Reads the experimentaly applied forces
fem define nodes;r;force_cube_residual;example dep 1 nc 2			#Reads the residual forces estimated in example 7181

fem solve increment 0.01 iterate 100 error 0.00000001
fem solve increment 0.09 iterate 100 error 0.00000001
for $M (1..9)
{
	fem solve increment 0.1 iterate 100 error 0.00000001			#Solves the force boundary problem in 11 increments
}

optimise									#The optimiser calles the eval_resid_cube.com file

fem list data errors deformed


Files used by this example are:

Name                                Modified     Size

example_7182.com 20-Apr-2004 2.6k bases_cube.ipbase 20-Apr-2004 2.6k coordinates_cube_undeformed.ipnode 20-Apr-2004 155k datapoints_10.ipdata 20-Apr-2004 37k datapoints_11.ipdata 20-Apr-2004 37k datapoints_12.ipdata 20-Apr-2004 37k datapoints_13.ipdata 20-Apr-2004 37k datapoints_14.ipdata 20-Apr-2004 37k datapoints_4.ipdata 20-Apr-2004 37k 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_10.ipnode 20-Apr-2004 156k displacements_cube_11.ipnode 20-Apr-2004 156k displacements_cube_12.ipnode 20-Apr-2004 156k displacements_cube_13.ipnode 20-Apr-2004 156k displacements_cube_14.ipnode 20-Apr-2004 156k displacements_cube_4.ipnode 20-Apr-2004 156k 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 elements_cube.ipelem 20-Apr-2004 72k equation.ipequa 02-May-2004 1.8k evalresid_cube.com 20-Apr-2004 879 fibre.ipfibr 20-Apr-2004 53k fibreelem_cube.ipelfb 20-Apr-2004 79k force_cube_10.ipnode 20-Apr-2004 154k force_cube_11.ipnode 20-Apr-2004 154k force_cube_12.ipnode 20-Apr-2004 154k force_cube_13.ipnode 20-Apr-2004 154k force_cube_14.ipnode 20-Apr-2004 154k force_cube_4.ipnode 20-Apr-2004 154k 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 20-Apr-2004 120k 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 20-Apr-2004 5.2k tongfung_five_cube.ipopti 20-Apr-2004 1.4k

Download the entire example:

Name                           Modified     Size

examples_7_71_718_7182.tar.gz 17-Aug-2010 508k

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 / 7182