Can anyone tell me the command and associated arguments to use the newly implemented ZeroLength contact element in Version 1.7.5?
What is the exact mechanical behavior of this element?
Is it proper to model the uplifiting between foundation and soil?
Thanks a lot!!!
ZeroLength contact element
Moderators: silvia, selimgunay, Moderators
-
- Posts: 9
- Joined: Fri Oct 05, 2007 11:46 am
- Location: Simpson Gumpertz & Heger
this response is from Dr. Gang Wang
ZeroLengthContact Element
zeroLengthContact2D is Node-to-node frictional contact element used in
two dimensional analysis
zeroLengthContact3D is Node-to-node frictional contact element used in
three dimensional analysis
NOTE:
[1] The contact element is node-to-node contact. Contact occurs between
two contact nodes when they come close. The relation follows
Mohr-coulomb law: T = $mu * N + $c, where T is tangential force and N is
normal force across the interface. $mu is friction coefficient and $c is
total cohesion (summed over the effective area of contact nodes)
[2] Definition of master and slave node / plane: the contact node pair
in node-to-node contact element are termed master node and slave node,
respectively. Master/slave plane is the contact plane which the
master/slave node belongs to. The discrimination is made solely for
contact detection purpose. User need to specify the corresponding out
normal of the master plane. For simplicity, 3D contact only allows 3
options to specify the direction of the contact plane. The convention
is: out normal of master plane always points to positive axial direction
(+X or +Y, or +Z)
[3] For 2D contact, slave nodes and master nodes must be 2 DOF. For 3D
contact, slave nodes and master nodes must be 3 DOF.
[4] The resulted tangent from the contact element is non-symmetric.
Switch to non-symmetric matrix solver if convergence problem is
experienced.
Gang Wang, Ph.D.
here is a 2D example:
and here is a 3d example:
ZeroLengthContact Element
zeroLengthContact2D is Node-to-node frictional contact element used in
two dimensional analysis
Code: Select all
element zeroLengthContact2D eleTag? sNode? mNode? Kn? Kt? mu? -normal
Nx? Ny?
three dimensional analysis
Code: Select all
element zeroLengthContact3D eleTag? sNode? mNode? Kn? Kt? mu? c? dir?
Code: Select all
$eleTag Unique element object tag
$sNode Slave node tag
$mNode Master node tag
$Kn Penalty in normal direction
$Kt Penalty in tangential direction
$mu Friction coefficient
$c Cohesion (not available in 2D)
$dir Direction flag of the contact plane (3D), it can be:
1 Out normal of the master plane pointing to +X direction
2 Out normal of the master plane pointing to +Y direction
3 Out normal of the master plane pointing to +Z direction
$Nx, $Ny The out normal vector of the master plane (2D)
[1] The contact element is node-to-node contact. Contact occurs between
two contact nodes when they come close. The relation follows
Mohr-coulomb law: T = $mu * N + $c, where T is tangential force and N is
normal force across the interface. $mu is friction coefficient and $c is
total cohesion (summed over the effective area of contact nodes)
[2] Definition of master and slave node / plane: the contact node pair
in node-to-node contact element are termed master node and slave node,
respectively. Master/slave plane is the contact plane which the
master/slave node belongs to. The discrimination is made solely for
contact detection purpose. User need to specify the corresponding out
normal of the master plane. For simplicity, 3D contact only allows 3
options to specify the direction of the contact plane. The convention
is: out normal of master plane always points to positive axial direction
(+X or +Y, or +Z)
[3] For 2D contact, slave nodes and master nodes must be 2 DOF. For 3D
contact, slave nodes and master nodes must be 3 DOF.
[4] The resulted tangent from the contact element is non-symmetric.
Switch to non-symmetric matrix solver if convergence problem is
experienced.
Gang Wang, Ph.D.
here is a 2D example:
Code: Select all
# ################################
# create the modelbuilder
# #################################
wipe
model BasicBuilder -ndm 2 -ndf 2
set displayMode "displayON"
# ################################
# build the model
# #################################
# y
# |
# 8-------7
# | slave |
# 5-------6
# 4-------3
# | master|
# 1-------2---->x
#
set L 1;
set H 0.5;
set Tol 0;
node 1 0 0
node 2 $L 0
node 3 $L [expr $H+$Tol]
node 4 0 [expr $H+$Tol]
node 5 0 [expr $H-$Tol]
node 6 $L [expr $H-$Tol]
node 7 $L [expr 2*$H]
node 8 0 [expr 2*$H]
fix 1 1 1
fix 2 0 1
#nDMaterial ElasticIsotropic 1 1e16 0.3 ### no mass density, dont use it
##nDMaterial J2Plasticity tag? rho? K? G? sig0? sigInf? delta? H? <eta?>
nDMaterial J2Plasticity 1 200 1e10 1e10 1e16 1e20 0 0
#element bbarQuad 1 1 2 4 3 PlaneStrain 1
element quad 1 1 2 3 4 1 PlaneStrain 1
element quad 2 5 6 7 8 1 PlaneStrain 1
set Kn 1e8;
set Kt 1e8;
set fs 0.3;
#element zeroLengthContact2D $eleID $sNdID $mNdID $Kn $Kt $fs $dir
element zeroLengthContact2D 3 5 4 [expr $Kn] [expr $Kt] [expr $fs] -normal 0.0 1.0
element zeroLengthContact2D 4 6 3 [expr $Kn] [expr $Kt] [expr $fs] -normal 0.0 1.0
#uniaxialMaterial ENT 2 1e16
#element zeroLength 3 4 5 -mat 2 -dir 2
#element zeroLength 4 3 6 -mat 2 -dir 2
set Vload -40000
set Hload 20000
#set Hload 0
# Constant point load
pattern Plain 1 Constant {
load 7 0.0 [expr $Vload/2]
load 8 0.0 [expr $Vload/2]
load 5 [expr $Hload/2] 0.0
load 6 [expr $Hload/2] 0.0
}
# ################################
# create the analysis
# #################################
# #################################
# create the transient analysis
# #################################
set Threshhold 1e-12; # Threshhold value for test norm
set MaxIte 100; # Max iterations
#set printflag 4; # flag of show or not show test norm
set printflag 1; # flag of show or not show test norm
set P1 1e15; #Penalty constant
set P2 1e15; #Penalty constant
# static analysis
# integrator LoadControl 1.0
# integrator DisplacementControl 9 3 -0.01
# dynamic analysis
integrator Newmark 0.5 0.25
numberer RCM
#test NormDispIncr $Threshhold $MaxIte $printflag
test EnergyIncr $Threshhold $MaxIte $printflag
constraints Penalty $P1 $P2
#constraints Transformation # very good for stdBrick, still very bad for brick8N
#constraints Lagrange 1e15 1e15
#constraints Plain
algorithm Newton
system UmfPack
#system SparseGeneral -piv
#system ProfileSPD
#analysis Static
analysis Transient
recorder Node nodedisp.out disp -node 7 -dof 1 2
# ################################
# perform the analysis
# #################################
# loadConst
# do static analysis
# analyze 1
# do dynamic analysis
analyze 100 0.01
print node 7 8
and here is a 3d example:
Code: Select all
# ################################
# create the modelbuilder
# #################################
wipe
model BasicBuilder -ndm 3 -ndf 3
set displayMode "displayON"
#set displayMode "displayOFF"
# ################################
# build the model
# #################################
node 1 -1 -1 -1
node 2 1 -1 -1
node 3 1 1 -1
node 4 -1 1 -1
node 5 -1 -1 1
node 6 1 -1 1
node 7 1 1 1
node 8 -1 1 1
node 9 -1 -1 1
node 10 1 -1 1
node 11 1 1 1
node 12 -1 1 1
node 13 -1 -1 3
node 14 1 -1 3
node 15 1 1 3
node 16 -1 1 3
fix 1 1 1 1
fix 2 0 1 1
fix 3 0 0 1
fix 4 0 0 1
#fix 1 1 1 1
#fix 2 1 1 1
#fix 3 1 1 1
#fix 4 1 1 1
#nDMaterial ElasticIsotropic 1 1e16 0.3
nDMaterial J2Plasticity 1 100 1e16 1e14 1000000 3000000 0 0
element stdBrick8N 1 1 2 3 4 5 6 7 8 1
element stdBrick8N 2 9 10 11 12 13 14 15 16 1
set Kn 1e8;
set Kt 1e8;
set fs 0.5;
set c 0.0
element zeroLengthContact3D 3 9 5 [expr $Kn] [expr $Kt] [expr $fs] [expr $c] 3
element zeroLengthContact3D 4 10 6 [expr $Kn] [expr $Kt] [expr $fs] [expr $c] 3
element zeroLengthContact3D 5 11 7 [expr $Kn] [expr $Kt] [expr $fs] [expr $c] 3
element zeroLengthContact3D 6 12 8 [expr $Kn] [expr $Kt] [expr $fs] [expr $c] 3
#uniaxialMaterial ENT 2 1e16
#element zeroLength 3 5 9 -mat 2 -dir 3
#element zeroLength 4 6 10 -mat 2 -dir 3
#element zeroLength 5 7 11 -mat 2 -dir 3
#element zeroLength 6 8 12 -mat 2 -dir 3
# 1 --4 --- y
# | |
# 2 --3
# |
# x
# 5 --8 --- y
# | |
# 6 --7
# |
# x
# 9 --12 --- y
# | |
# 10--11
# |
# x
# 13--16 --- y
# | |
# 14--15
# |
# x
set Vload -40000
set Hload 40000
# Constant point load
pattern Plain 1 Linear {
load 13 0.0 0.0 [expr $Vload/4]
load 14 0.0 0.0 [expr $Vload/4]
load 15 0.0 0.0 [expr $Vload/4]
load 16 0.0 0.0 [expr $Vload/4]
load 9 0.0 [expr $Hload/4] 0.0
load 10 0.0 [expr $Hload/4] 0.0
load 13 0.0 [expr $Hload/4] 0.0
load 14 0.0 [expr $Hload/4] 0.0
}
# ################################
# create the analysis
# #################################
# #################################
# create the transient analysis
# #################################
set Threshhold 1e-12; # Threshhold value for test norm
set MaxIte 100; # Max iterations
#set printflag 4; # flag of show or not show test norm
set printflag 1; # flag of show or not show test norm
set P1 1e15; #Penalty constant
set P2 1e15; #Penalty constant
# static
# integrator LoadControl 1.0
# integrator DisplacementControl 9 3 -0.01
# dynamic
integrator Newmark 0.5 0.25
numberer RCM
#test NormDispIncr $Threshhold $MaxIte $printflag
test EnergyIncr $Threshhold $MaxIte $printflag
constraints Penalty $P1 $P2
#constraints Transformation # very good for stdBrick, still very bad for brick8N
#constraints Lagrange 1e15 1e15
#constraints Plain
algorithm Newton
system UmfPack
#system SparseGeneral -piv
#system ProfileSPD
#analysis Static
analysis Transient
recorder Node nodedisp.out disp -node 13 -dof 2
# ################################
# perform the analysis
# #################################
#loadConst
# static
# analyze 1
# dynamic
analyze 50 0.01
print node 5 9 13
Code: Select all
-
- Posts: 9
- Joined: Fri Oct 05, 2007 11:46 am
- Location: Simpson Gumpertz & Heger