Example d29: A cylinder sliding along an elastic substrate using frictionless contact

This example illustrates a cylinder sliding along an elastic substrate using frictionless contact

Starting position After frictionless sliding
Fig. 1 Starting position Fig. 2 After frictionless sliding


The comfile run by this example is as follows:

##########################################################################
# This problem solves a cylinder indenting and sliding without friction 
# along a half-space which is incompressible.
##########################################################################

# 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;}

# Define parameters, regions, coordinate system and bases
fem def para;r;hertz;example
fem def region;r;two;example
fem def coord 3,1
fem def bases;r;collapsed;example

# Read in half-space described by trilinear elements
fem def nodes;r;half;example reg 1
fem def elem;r;half;example reg 1

# Refine half-space for contact 
fem refine xi 1 element 101 ntimes 5 reg 1
fem refine xi 3 ntimes 3 reg 1

# Define fibre directions
fem def fibre;r;half;example reg 1
fem def elem;r;half;example fibre reg 1

# Define field to store pressure solution
fem def field;r;half;example reg 1
fem def elem;r;half;example field reg 1

# Read in rigid cylinder described by bicubic-linear elements
fem def nodes;r;cylinder;example reg 2
fem def elem;r;cylinder;example reg 2

fem change nodes rotate by -90 reg 2
fem change nodes scale by 0.2,0.2,0.2 reg 2
fem change nodes translate by 0.0,0.3,0 reg 2

# Update derivatives and scale-factors
fem up node deriv 1 linear reg 2
fem up node deriv 2 linear reg 2
fem up node deriv 3 linear reg 2
fem up scale_factors normalise reg 2

# Define fibre directions
fem def fibre;r;cylinder;example reg 2
fem def elem;r;cylinder;example fibre reg 2

## Export slave (half-space)
#fem export nodes;half as half reg 1 
#fem export elem;half as half reg 1 
 
## Export Master (cylinder)
#fem export nodes;cylinder as cylinder reg 2
#fem export elem;cylinder as cylinder reg 2

# Node groups for fixed boundary conditions

fem group nodes 101..108,233,235,297..299,301,303,305,427..431,433,435,437,439,441,443,445,687..694 as fixedx reg 1
fem group nodes 105..110,113..114,117..118,121..122,125..126,129..130,133..134,137..138,141..142,145..146,149..150,153..154,157..158,161..162 as fixedy1 reg 1
fem group nodes 165..166,169..170,173..174,177..178,181..182,185..186,189..190,193..194,197..198,201..202,205..206,209..210,213..214,217..218,221..222,225..226,229..230 as fixedy2 reg 1
fem group nodes 101..694 as fixedz reg 1
fem group nodes 1..20 as cylinderfixedz reg 2
fem group nodes 1..20 as cylinderfixedy reg 2
fem group nodes 1..20 as cylinderfixedx reg 2

# Define equations
fem def equa;r;half;example reg 1
fem def equa;r;cylinder;example reg 2

# Define material properties
fem def mat;r;half;example reg 1
fem def mat;r;cylinder;example reg 2

# Define initial fixed boundary conditions
fem def init;r;half;example reg 1
fem def init;r;cylinder;example reg 2

## Export deformed Master
#fem export nodes;cylinder_def as cylinder_def reg 2 offset 2000
#fem export elem;cylinder_def as cylinder_def reg 2 offset_elem 2000

# define contact parameters
fem def contact;r;contact;example

# Define solve for reg 1
fem def solve;r;half;example reg 1

#######################################Define cell problem

# Set up a grid at gauss scheme 
# Trilinear basis to interpolate between grid points
fem def grid;r;half;example gauss class 2 

# Sets up the grid geometry
fem update grid geometry 

# Group grid points in the elements 101 to 356 as ALL_GRID
fem group grid element 101..356 as ALL_GRID

# Define a cellml equation 
# Options chosen allow use of structures for cardiac electrical activation 
fem def equa;r;cellml;example class 2

# Needed to setup
fem def mate;d class 2

# Define cellml file 
fem define cell;r;half;example class 2 

# Define cell material
fem def mate;r;half;example cell class 2 

# Default init conditions for cell class 2
fem def init;d class 2 

# Setup solve for cellml class 2
fem def solv;r;cell;example class 2 

##runs the cellml time integration solver stuff once to initialise cellml solver things. 
##The "0" class 2 to 0 says you have a 0 time step for the integration
##fem solve class 2 to 0        

$z=1; #solution counter
$resolve=2; # no. of contact resolutions
for($k=1;$k<19;$k++) #load steps
{
if ($k>1) 
{
 if ($resolve==2)
 {
   fem change nodes translate by 0.1,0,0 nodes cylinderfixedy reg 2
   $resolve=0
   $z++     
 }
 elsif($resolve<2)
 {
   fem change nodes translate by 0,0,0 nodes cylinderfixedy reg 2
   $resolve++;
 }
}

$j=0;
$CONVERGED=0;
while ($CONVERGED==0) 
{
$j++;
######################################Projection

# Set contact Xi points on specified faces as 8x8 points
fem def xi;c contact_points faces 661,678,695,712,729,746,763,780,797,814,831,848,865,882,899,916,925,934,943,952,961,970,979,988,997,1006,1015,1024,1033,1042,1051,1064 points 8 reg 1

# Define data at xi positions 
fem def data;c from_xi reg 1

# Update slave info
fem update data field to slave

# Project onto target face 
fem def xi;c closest_face faces 1077,1081,1085,1089 reg 2

# store projection gap in data fields
fem update data field from gap   

# Update master info
fem update data field to master 

# Place initial geometry YP(ny,3) into XP
if ($j>1) 
{
FEM up geom from sol YP_index 3 to 1..3 reg 1
}
######################################Mechanics problem
# Solve finite elasticity/contact problem
fem solve error 0.1 iterate 15 reg 1

FEM up geom from sol to 1..3 reg 1 
}

# Place initial geometry YP(ny,3) into XP
FEM up geom from sol YP_index 3 to 1..3 reg 1

## Stresses at gauss points  
#fem up gauss stress fibre reg 1
#fem def gauss;w;stress_$z as half number 3 reg 1

# Update XP from YP
FEM up geom from sol to 1..3 reg 1
################################################

# Place initial geometry YP(ny,6) into XP
FEM up geom from sol YP_index 6 to 7..9 reg 1

## Write out new geometry
#fem def nodes;w;half_def_$z as half reg 1
#fem def elem;w;half_def_$z as half reg 1
#fem exp nodes;half_def_$z as half reg 1

## Export deformed Master
#fem export nodes;cylinder_def_$z as cylinder_def reg 2 offset 2000
#fem export elem;cylinder_def_$z as cylinder_def reg 2 offset_elem 2000

}
#load steps

Additional testing commands:



Files used by this example are:

Name                       Modified     Size

example_d29.com 23-Apr-2008 6.0k cell.ipsolv 13-Apr-2007 2.6k cellml.ipequa 22-Oct-2004 1.6k check_force.pl 22-Oct-2004 1.0k collapsed.ipbase 22-Oct-2004 9.2k contact.ipcont 25-Sep-2008 625 cylinder.ipelem 22-Oct-2004 3.3k cylinder.ipelfb 22-Oct-2004 2.1k cylinder.ipequa 22-Oct-2004 2.2k cylinder.ipfibr 22-Oct-2004 15k cylinder.ipinit 22-Oct-2004 2.2k cylinder.ipmate 22-Oct-2004 704 cylinder.ipnode 22-Oct-2004 18k cylinder.ipsolv 13-Apr-2007 1.1k fit_gauss.com 22-Oct-2004 603 frictionless_sliding.mpeg 22-Oct-2004 148k half.ipcell 25-Oct-2004 2.5k half.ipelem 22-Oct-2004 506 half.ipelfb 22-Oct-2004 68k half.ipelfd 22-Oct-2004 68k half.ipequa 22-Oct-2004 2.2k half.ipfibr 22-Oct-2004 103k half.ipfiel 22-Oct-2004 119k half.ipfit 13-Apr-2007 2.0k half.ipgrid 22-Oct-2004 639 half.ipinit 22-Oct-2004 1.4k half.ipmatc 22-Oct-2004 2.1k half.ipmate 22-Oct-2004 704 half.ipnode 22-Oct-2004 2.1k half.ipsolv 16-Aug-2010 2.7k half.ipsolv.old 13-Apr-2007 2.5k hertz.ippara 09-Nov-2008 5.9k hertz.irsolv 13-Apr-2007 1.5k st_venant_kirchoff.cml 22-Oct-2004 10k test_output.com 22-Oct-2004 0 two.ipregi 22-Oct-2004 93 view.com 22-Oct-2004 3.6k

Download the entire example:

Name                      Modified     Size

examples_d_d2_d29.tar.gz 17-Aug-2010 193k

Testing status by version:

StatusTestedReal time (s)
hpc_cmo64_irixSuccessSun Jul 31 02:29:40 20051188
rs6000-aix
cm64SuccessWed Mar 4 01:50:36 2009369
x86_64-linux
cmSuccessSun Mar 6 00:07:44 2016194

Testing status by file:


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

Input last modified: Mon Aug 16 11:35:02 2010


CMISS Help / Examples / d / d2 / d29