Example 52a: Uniaxial extension of a cube to illustrate pole-zero law stress/strain characteristics

This example tests the pole-zero stress/strain relationship. A unit cube is first compressed in the x-direction (fiber direction). The calculated strain and stress at a Gauss point is found. Note that it is the 2nd Piola-Kirchhoff stress before hysdrostatic pressure that is found. Using the extracted strain, a Perl routine calculates the stress for this strain to compare with the cmiss calculated stress. The three values are written in as three coloumns of a .dat file. There might be a difference in the last decimals between the two stresses as the extracted strain value has fewer decimals than what is actually used to calculate the cmiss stress. The cube is incrementally deformed from a very compressed state along the x-direction until it reaches a very elongated state (stretched beyond the fibre pole). At each increment the procedure for calculating the strain and stresses is carried out and written into the file.

Afterwards a simple shear deformation is applied to the unit cube. The top surface (z=1) is incrementally moved from a negative shearing angle (beyond the shear pole) to a positive shear angle. The shear strains and stresses are obtained as described before and written to a separate .dat file. A Gnuplot is used for visualization of the results.

Created by Espen Remme November 2003.
 
 


The comfile run by this example is as follows:

#Example 52a
# Uniaxial extension of a cube to illustrate pole-zero law stress/strain 
# characteristics

$INC[$#INC+1] = "$example"; #include in path so it finds MyFunc.pm
use MyFunc;
$output = "./";
system "rm axial.dat"
system "rm shear.dat"

fem de coord 3,1
fem de base;r;${example}plate

fem de node;r;${example}cube
fem de elem;r;${example}cube   
fem de fibr;r;${example}cube   
fem de elem;r;${example}cube fibre
#$file = "cube"
#fem export nodes;$file as $file offset 10
#fem export elements;$file as $file offset_elem 10

fem de equa;r;${example}cube
fem de mate;r;${example}cube
fem define acti;r;${example}calcium000
fem de init;r;${example}cube
#fem de init;r;${example}cubeShear
fem de solv;r;${example}cube
#fem solve increment 1 iter 15

# Axial stress-strain relationship
$k=2;$a=0.5;$b=1; # material parameters for axial stiffness
$N = 100
$delta = ($a*2+0.2)/$N;
for $n (0..$N)
{
  print "\nSolving iteration ", $n, "\n";
  $displacement = -$a-0.1+$n*$delta;
  MyFunc::stretchCube($example,$displacement);
  fem de node;r;cubeDeformed dependent 1
  #$file = 'cubeDeformed'
  #fem export nodes;$file field as $file
  #fem export elements;$file field as $file

  fem update gauss stress fibre total_no_hydro Piola
  fem export gauss;stress yg as gauss_stress offset 0
  fem update gauss strain components fibre
  fem export gauss;strain yg as gauss_strain 
  
  $strain = MyFunc::readStrain(1);
  $stress = MyFunc::readStress(1);
  $trueStress = MyFunc::calcStress($strain, $k, $a, $b);
  MyFunc::outputValues($strain, $stress, $trueStress, "axial.dat");
  print "\nStrain: $strain   Stress: $stress  True stress: $trueStress\n";
}

# Shear stress-strain relationship
$k=1;$a=0.9;$b=1; # material parameters for shear stiffness
$N = 100
$delta = ($a*4+0.2)/$N;
for $n (0..$N)
{
  print "\nSolving iteration ", $n, "\n";
  $displacement = -2*$a-0.1+$n*$delta;
  MyFunc::shearCube($example, $displacement);
  fem de node;r;cubeDeformed dependent 1
  #$file = 'cubeDeformed'
  #fem export nodes;$file field as $file
  #fem export elements;$file field as $file

  fem update gauss stress fibre total_no_hydro Piola
  fem export gauss;stress yg as gauss_stress offset 0
  fem update gauss strain components fibre
  fem export gauss;strain yg as gauss_strain 
  
  $strain = MyFunc::readStrain(5);
  $stress = MyFunc::readStress(5);
  $trueStress = MyFunc::calcStress($strain, $k, $a, $b);
  MyFunc::outputValues($strain, $stress, $trueStress, "shear.dat");
  print "\nStrain: $strain   Stress: $stress  True stress: $trueStress\n";
}

system "gnuplot ${example}plot.gnu"

Additional testing commands:

#Testing example 52a

Files used by this example are:

Name               Modified     Size

example_52a.com 28-Nov-2003 2.5k MyFunc.pm 28-Nov-2003 4.7k calcium000.ipacti 03-Mar-2004 757 cube.ipelem 28-Nov-2003 589 cube.ipelfb 28-Nov-2003 420 cube.ipequa 02-May-2004 2.0k cube.ipfibr 28-Nov-2003 2.1k cube.ipinit 28-Nov-2003 4.8k cube.ipmate 28-Nov-2003 9.9k cube.ipnode 28-Nov-2003 12k cube.ipsolv 16-Aug-2010 2.3k cube.ipsolv.old 13-Apr-2007 2.1k cubeShear.ipinit 28-Nov-2003 4.1k plate.ipbase 28-Nov-2003 11k plot.gnu 28-Nov-2003 518 test_output.com 28-Nov-2003 21

Download the entire example:

Name                      Modified     Size

examples_5_52_52a.tar.gz 17-Aug-2010 12k

Testing status by version:

StatusTestedReal time (s)
i686-linux
cmSuccessSun Mar 6 00:04:00 20163
cm-debugSuccessSat Mar 5 00:12:55 20166
mips-irix
cmSuccessSun Aug 19 02:14:37 200745
cm-debugSuccessWed Aug 15 01:53:33 200768
cm-debug-clear-mallocSuccessSat Aug 18 02:05:46 200772
cm-debug-clear-malloc7SuccessMon Aug 20 02:02:08 200783
cm64SuccessSun Aug 19 02:15:13 200745
cm64-debugSuccessTue Aug 21 01:53:42 200768
cm64-debug-clear-mallocSuccessTue Feb 1 09:47:03 200528
rs6000-aix
cmSuccessWed Mar 4 01:12:54 20096
cm-debugSuccessMon Mar 2 01:13:09 200915
cm64SuccessWed Mar 4 01:11:27 20096
cm64-debugSuccessTue Mar 3 01:17:27 200916
x86_64-linux
cmSuccessSun Mar 6 00:01:04 20161
cm-debugSuccessSat Mar 5 00:01:48 20163

Testing status by file:


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

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


CMISS Help / Examples / 5 / 52 / 52a