.. _zeroLengthContactASDimplex: 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. .. figure:: ZeroLengthContactASDimplex.png :align: center :figclass: align-center Nodes and contact direction .. function:: element ZeroLengthContactASDimplex $eleTag $n1 $n2 $Kn $Kt $mu <-orient $nx $ny $nz> <-intType $type> .. csv-table:: :header: "Argument", "Type", "Description" :widths: 10, 10, 40 $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" .. admonition:: Example **Tcl Code** .. code-block:: tcl ## 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 `_)