3.1.10.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:
It is a penalty-based frictional contact element following the Mohr-Coulomb criterion.
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].
It can be used in both 2D and 3D problems.
This element supports both 2 and 3 DOFs in 2D problems, and both 3,4 and 6 DOFs in 3D problems.
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).
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.
- 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.