Example d24: A rigid body falling under gravity onto a deformable body using pseudo-viscosity

This example illustrates a rigid body falling under gravity onto a deformable body using pseudo-viscosity

Before contact After contact
Fig. 1 Before contact Fig. 2 After contact


The comfile run by this example is as follows:

###################################################
# This example illustrates a rigid blue body falling
# under gravity onto a deformable red body. This
# example highlights the use of psuedo-viscosity
# which adds numerical stability to normally unstable 
# quasi-static contact problems.
###################################################

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

$REG=1;

################ MESHES ################

@object_list = ('blue','red');
foreach $component(@object_list)
{ 

# Read in meshes
fem def nodes;r;$component;example reg $REG
fem def elements;r;$component;example reg $REG

if($REG==2){fem up node deriv 1 linear reg $REG}
if($REG==2){fem up node deriv 2 linear reg $REG}
if($REG==2){fem up node deriv 3 linear reg $REG}
#if($REG==2){fem update scale_factors normalise reg $REG}

if($REG==2){fem change nodes scale by 2,2,2 reg $REG}

# Define fibre field (nj 4,5,6)
fem def fibre;r;$component;example reg $REG
fem def elements;r;$component;example fibre reg $REG

if($REG==2){fem change nodes rotate by -180 axis 0,0,1 reg $REG}
if($REG==2){fem change nodes translate by 400,494,0 reg $REG}
if($REG==2){fem change nodes translate by 200,260,1001 reg $REG} 

fem ref xi 1 at 0.5 reg $REG
fem ref xi 2 at 0.5 reg $REG
fem ref xi 3 at 0.5 reg $REG

if($REG==1){fem change nodes translate by 0,30,0 reg $REG}

## Export meshes
#fem exp nodes;$component as $component reg $REG
#fem exp elements;$component as $component reg $REG

# Node groups
if($REG==1){fem group nodes 201..227 as FIXBLUE reg $REG}
if($REG==2){fem group nodes 103..104,107..108,229,231,244..246 as FIXTALL reg $REG}
if($REG==2){fem group nodes 101..102,105..106,228,230,232..243 as FIXT reg $REG}

# Method
fem def equa;r;$component;example reg $REG
fem def mate;r;$component;example reg $REG
fem def init;r;$component;example reg $REG

$REG=$REG+1;

}

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

# Define solve for coupled
fem def solve;r;coupled;example coupled reg 1,2

$k=1;
# load steps
for ($i=1;$i<11;$i++)
{
if ($i>1)
{
fem def mate;r;blue$i;example
}

$CONVERGED=0;
while ($CONVERGED==0) 
#for($j=1;$j<2;$j++)
{
######################################Projection

# Set contact Xi points on specified faces as 6x6 points
fem def xi;c contact_points faces 23,27,3,8 points 6 reg 1

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

# Update slave info
fem update data field to slave

# Project onto target face
fem def xi;c closest_face faces 39,44,59,63 region 2

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

# Update master info
fem update data field to master 

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

#####################################Mechanics problem

# Solve finite elasticity/contact problem
fem solve error 1.0D-01 iterate 20 coupled reg 1,2

# update XP from YP
FEM up geom from sol to 1..3 reg 1,2

#fem exp nodes;blue$k as blue reg 1
#fem exp nodes;red$k as red reg 2
$k++;

}

## Export final mesh 
#fem exp nodes;blue_def$i as blue
#fem exp nodes;red_def$i as red reg 2

}

Additional testing commands:



Files used by this example are:

Name                Modified     Size

example_d24.com 23-Apr-2008 3.2k blue.ipelem 29-Sep-2004 548 blue.ipelfb 29-Sep-2004 400 blue.ipequa 29-Sep-2004 2.2k blue.ipfibr 29-Sep-2004 12k blue.ipinit 29-Sep-2004 3.2k blue.ipmate 29-Sep-2004 5.5k blue.ipnode 29-Sep-2004 14k blue10.ipmate 29-Sep-2004 5.5k blue2.ipmate 29-Sep-2004 5.5k blue3.ipmate 29-Sep-2004 5.5k blue4.ipmate 29-Sep-2004 5.5k blue5.ipmate 29-Sep-2004 5.5k blue6.ipmate 29-Sep-2004 5.5k blue7.ipmate 29-Sep-2004 5.5k blue8.ipmate 29-Sep-2004 5.5k blue9.ipmate 29-Sep-2004 5.5k contact.ipbase 29-Sep-2004 8.7k contact.ipcont 25-Sep-2008 627 contact.ippara 21-Feb-2008 6.0k contact.ipregi 29-Sep-2004 93 coupled.irsolv 16-Aug-2010 3.0k coupled.irsolv.old 13-Apr-2007 2.9k red.ipelem 29-Sep-2004 560 red.ipelfb 29-Sep-2004 412 red.ipequa 29-Sep-2004 2.2k red.ipfibr 29-Sep-2004 13k red.ipinit 31-Mar-2008 5.2k red.ipmate 29-Sep-2004 5.5k red.ipnode 29-Sep-2004 15k test_output.com 19-Apr-2003 0 view.com 29-Sep-2004 1.7k

Download the entire example:

Name                      Modified     Size

examples_d_d2_d24.tar.gz 17-Aug-2010 79k

Testing status by version:

StatusTestedReal time (s)
hpc_cm64_irixSuccessThu Apr 1 12:02:06 2004440
hpc_cm_irixSuccessFri Aug 20 02:09:44 2004446
hpc_cmo64_irixSuccessSun Jul 31 02:03:46 2005351
hpc_cmo_irixSuccessSun Aug 15 01:51:25 200466
rs6000-aix
cmSuccessSun Aug 15 02:51:02 200435
cm-debugSuccessSat Aug 21 04:39:22 20042353
cm64SuccessWed Mar 4 01:33:59 2009114
cm64-debugSuccessThu Apr 1 10:46:33 2004471
x86_64-linux
cmSuccessSun Mar 6 00:02:51 201645

Testing status by file:


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

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


CMISS Help / Examples / d / d2 / d24