3.1.9.4. ZeroLengthContactASDimplex Element

This command is used to construct zeroLengthContactASDimplex element object. The zeroLengthContactASDimplex element is a 2-node zeroLength contact element with the following features:

  1. It is a penalty-based frictional contact element following the Mohr-Coulomb criterion.

  2. It can use a standard Backward-Euler integration scheme, or an IMPL-EX integration scheme. The IMPL-EX integration performs a linear extrapolation of the internal variables during the global newton iterations. In this way the element depends only linearly on the trial strain. In the commit stage, instead, a standard implicit computation is performed to partially correct the error generated by the explicit computation. For more details, please refer to [OliverEtAl].

  3. It can be used in both 2D and 3D problems.

  4. This element supports both 2 and 3 DOFs in 2D problems, and both 3,4 and 6 DOFs in 3D problems.

  5. The two nodes can have different DOFs, so this element can be easily used to connect different elements (Solids (3 DOFs) to Beams/Shells (6 DOFs) or UP-Solids (4 DOFs).

  6. It can be arbitrarily oriented in space, using a user-defined contact vector. If not specified, the global X axis is considered as contact vector.

../../../../_images/ZeroLengthContactASDimplex.png

Fig. 3.1.9.1 Nodes and contact direction

element ZeroLengthContactASDimplex $eleTag $n1 $n2 $Kn $Kt $mu <-orient $nx $ny $nz> <-intType $type>

Argument

Type

Description

$eleTag

integer

unique integer tag identifying element object

$n1 $n2

2 integer

the two nodes defining the element

$Kn

float

Penalty stiffness for normal contact

$Kt

float

Penalty stiffness for tangential contact

$mu

float

friction coefficient = tan(Phi) where Phi is the angle of internal friction

-orient

string

optional flag, if provided, the user should specify the 3 components of the normal contact vector. If not provided the global X axis is used

$nx $ny $nz

float

the 3 components of the normal contact vector. Note that also for 2D problems all 3 components should be provided (the 3rd one must be zero)

-intType

string

optional flag, if provided, the user can specify the integration scheme. If not provided the default implicit scheme is used.

$type

integer

the integration scheme: 0 = implicit (default), 1 = IMPL-EX

Example

Tcl Code

## model
model basic -ndm 2 -ndf 2

# nodes
node 1 0 0
node 2 0 0

# a linear time series
timeSeries Linear 1

# contact element
set Kn 1.0e10
set Kt 100.0
set mu 0.5
element zeroLengthContactASDimplex 1   1 2   $Kn $Kt $mu -orient 0 1 0

# initial fixities
fix 1 1 1
fix 2 1 0

# set normal force = -10
set N -10.0
pattern Plain 1 1 {
  load 2 0.0 $N
}
constraints Transformation
numberer Plain
system FullGeneral
test NormDispIncr 1.0e-6 10 0
algorithm Newton
integrator LoadControl 1.0
analysis Static
analyze 1
loadConst -time 0.0

# remove horizontal constraint
remove sp 2 1

# apply an horizontal imposed displacement = 1
pattern Plain 2 1 {
  sp 2 1 1.0
}
constraints Transformation
numberer Plain
system FullGeneral
test NormDispIncr 1.0e-6 10 0
algorithm Newton
integrator LoadControl 0.01
analysis Static
analyze 100

# check results
reactions
set reference [expr abs($N*$mu)]
set RFx [expr abs([nodeReaction 2 1])]
set err [expr abs($RFx-$reference)/$reference]
puts "Expected X force: $reference"
puts "Obtained X force: $RFx"
puts "Relative Error: [expr $err*100.0] %"

Code Developed by: Onur Deniz Akan at IUSS, Italy & Massimo Petracca at ASDEA Software, Italy.

OliverEtAl
Oliver, Javier, Alfredo Edmundo Huespe, and J. C. Cante. “An implicit/explicit integration scheme to increase computability of non-linear material and contact/friction problems.” Computer Methods in Applied Mechanics and Engineering 197.21-24 (2008): 1865-1889. (Link to article)