ZeroLengthImpact3D: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
No edit summary
(Change terminology to retained/constrained)
 
(142 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{CommandManualMenu}}
{{CommandManualMenu}}


This command constructs a node-to-node zero-length contact element in 3D space.  
This command constructs a node-to-node zero-length contact element in 3D space to simulate the impact/pounding and friction phenomena.  


{|  
{|  
| style="background:yellow; color:black; width:800px" | '''element zeroLengthImpact3D $tag $slaveNode $masterNode $direction $initGap $frictionRatio $Kt $Kn $Kn2 $Delta_y $cohesion'''
| style="background:yellow; color:black; width:800px" | '''element zeroLengthImpact3D $tag $cNode $rNode $direction $initGap $frictionRatio $Kt $Kn $Kn2 $Delta_y $cohesion'''
|}
|}


----
----


{|
{|
|  style="width:150px" | '''$tag''' || unique element object tag
|  style="width:150px" | '''$tag''' || Unique element object tag
|-
|-
| '''$slaveNode''' || Slave node tag
| '''$cNode''' || Constrained node tag
|-
|-
| '''$masterNode''' || Master node tag
| '''$rNode''' || Retained node tag
|-
|-
| '''$direction''' ||  
| '''$direction''' ||  


1 if normal vector of master plane points to +X direction
1 if out-normal vector of master plane points to +X direction


2 if normal vector of master plane points to +Y direction
2 if out-normal vector of master plane points to +Y direction


3 if normal vector of master plane points to +Z direction
3 if out-normal vector of master plane points to +Z direction


|-
|-
| '''$initGap''' || Initial gap between master plane and slave plane
| '''$initGap''' || Initial gap between retained plane and constrained plane
|-
|-
| '''$frictionRatio''' || Friction ratio  
| '''$frictionRatio''' || Friction ratio in two tangential directions (parallel to retained and constrained planes)
|-
|-
| '''$Kt''' || Penalty in tangential directions (parallel to master and slave planes)
| '''$Kt''' || Penalty in two tangential directions
|-
|-
| '''$Kn''' || Penalty in normal direction (normal to master and slave planes)
| '''$Kn''' || Penalty in normal direction (normal to retained and constrained planes)
|-
|-
| '''$Kn2''' || Penalty in normal direction after yielding based on Hertz impact model  
| '''$Kn2''' || Penalty in normal direction after yielding based on Hertz impact model  
Line 42: Line 40:
|}
|}


----


NOTES:
# This element has been developed on top of the “zeroLengthContact3D”. All the notes available in [[ ZeroLengthContact_Element | “zeroLengthContact3D” wiki page ]] would apply to this element as well. It includes the definition of retained and constrained nodes, the number of degrees of freedom in the domain, etc.
# Regarding the number of degrees of freedom (DOF), the end nodes of this element should be defined in 3DOF domain. For getting information on how to use 3DOF and 6DOF domain together, please refer to OpenSees documentation and forums or see the zip file provided in the EXAMPLES section below.
# This element adds the capabilities of [[ Impact_Material | “ImpactMaterial” ]] to [[ ZeroLengthContact_Element | “zeroLengthContact3D.” ]]
# For simulating a surface-to-surface contact, the element can be defined for connecting the nodes on constrained surface to the nodes on retained surface.
# The element was found to be fast-converging and eliminating the need for extra elements and nodes in the modeling process.


NOTES:
----
 
# This element has been developed on top of the “zeroLengthContact3D”. All the notes available in “zeroLengthContact3D” wiki page would apply to this element as well. It includes the definition of master and slave nodes, the number of degrees of freedom in the domain, etc.
# This element adds the capabilities of “ImpactMaterial” to “zeroLengthContact3D”, without the need for extra nodes and elements in the modeling process. That is the capability of having an "initial gap" in the normal direction and also the capability of considering energy dissipation due to impact in the normal direction.
# This element has been used to model the superstructure-abutment interaction in bridges at University of Connecticut (UConn) and University of Nevada, Reno (UNR). This element was found to be fast-converging and eliminating the need for many extra elements and nodes in the modeling process.
 


EXAMPLES:


#The following zip file contains an example script and the corresponding input cyclic displacement: [[File:Example script 2.zip]]
#The following zip file contains an example script on how to use 6DOF domain and 3DOF domain together: [[File:Example script 6DOF 3DOF.zip]]


<!--
----
----


EXAMPLE SCRIPT:
SAMPLE COMMAND (example scripts are available at bottom of this page):
 
 
 
 
 
You need to provide two input files of “example_cyclic_time.txt” and “example_cyclic_disp.txt” as input time and input displacement for the following example script.
 
[[File:Cyclic.png]]
 
 


<source lang="Tcl">
<source lang="Tcl">


# Prof. Arash E. Zaghi, Majid Cashany, @ UConn
#MAR,02,2012 ADRiK
#units kip, in,
# two blocks on top of each other:
#    y      (z=0.0)                        y    (z=10.0)   
#    |                                    |               
#    31--------32                          34--------35     
#    |        |                          |        |     
#    21--------22                          24--------25
#
#    11--------12                          14--------15     
#    |        |                          |        |     
#    01--------02---->x                    04--------05---->x
   
#  x      (y=0.0)        x      (y=10.0)        x      (y=10.0)        x      (y=20.0)
#  |                      |                      |                      |
#  02--------05          12--------15          22--------25          32--------35
#  | master1 |            | master1 |            |  slave1 |            |  slave1 |
#  01--------04---> z    11--------14---> z    21--------24---> z    31--------34---> z
wipe;
model BasicBuilder -ndm 3 -ndf 3;
# for plane of ( z=0.0) :
node 01 0.0 0.0 0.0;
node 02 10.0 0.0 0.0;
node 11 0.0 10.0 0.0;
node 12 10.0 10.0 0.0;
node 21 0.0 10.0 0.0;
node 22 10.0 10.0 0.0;
node 31 0.0 20.0 0.0;
node 32 10.0 20.0 0.0;
# for plane of ( z=10.0) :
node 04 0.0 0.0 10.0;
node 05 10.0 0.0 10.0;
node 14 0.0 10.0 10.0;
node 15 10.0 10.0 10.0;
node 24 0.0 10.0 10.0;
node 25 10.0 10.0 10.0;
node 34 0.0 20.0 10.0;
node 35 10.0 20.0 10.0;
fix 01 1 1 1;
fix 02 1 1 1;
fix 04 1 1 1;
fix 05 1 1 1;
#nDMaterial ElasticIsotropic $matTag $E $v <$rho>
nDMaterial ElasticIsotropic 1 29000.0 0.3; #steel
#element stdBrick $eleTag $node1 $node2 $node3 $node4 $node5 $node6 $node7 $node8 $matTag
element stdBrick 1 12 11 01 02 15 14 04 05 1;#master1
element stdBrick 2 32 31 21 22 35 34 24 25 1;#slave1
################################################## implementation of new element:
set direction 2; # direction of normal of contact surface
set initGap 0.5; # initial gap
set frictionRatio 0.1; # friction ratio
set Kt 1.0e5; # penalty stiffness for tangential directions
set Kn 1.0e5; # penalty stiffness for normal direction
set Kn2 [expr $Kn * 0.1]; # penalty stiffness after yielding, based on Hertz impact model
set Delta_y 0.1; # yield displacement based on Hertz impact model 
set cohesion 0.0; # cohesion
element zeroLengthImpact3D 2111 21 11 $direction $initGap $frictionRatio $Kt $Kn $Kn2 $Delta_y $cohesion;
element zeroLengthImpact3D 2212 22 12 $direction $initGap $frictionRatio $Kt $Kn $Kn2 $Delta_y $cohesion;
element zeroLengthImpact3D 2414 24 14 $direction $initGap $frictionRatio $Kt $Kn $Kn2 $Delta_y $cohesion;
element zeroLengthImpact3D 2515 25 15 $direction $initGap $frictionRatio $Kt $Kn $Kn2 $Delta_y $cohesion;
##################################################
#uniaxialMaterial Elastic $matTag $E;
uniaxialMaterial Elastic 6 1.0e-5;
uniaxialMaterial Elastic 7 1.0e-5;
#element zeroLength $eleTag $iNode $jNode -mat $matTag1 $matTag2 ... -dir $dir1 $dir2 ... <-orient $x1 $x2 $x3 $yp1 $yp2 $yp3> <-doRayleigh $rFlag>
element zeroLength 141 11 21 -mat 6 7 6 -dir 1 2 3; # springs with very low stiffness for convergance of Newton-Raphson method
element zeroLength 142 12 22 -mat 6 7 6 -dir 1 2 3; # springs with very low stiffness for convergance of Newton-Raphson method
element zeroLength 144 14 24 -mat 6 7 6 -dir 1 2 3; # springs with very low stiffness for convergance of Newton-Raphson method
element zeroLength 145 15 25 -mat 6 7 6 -dir 1 2 3; # springs with very low stiffness for convergance of Newton-Raphson method
puts "model is built";
file mkdir output;
recorder Node -file output/disp2Y.out -node 21 22 24 25 -dof 2 disp;
recorder Node -file output/disp1Y.out -node 11 12 14 15 -dof 2 disp;
recorder Element -file output/ele2212g.out -ele 2212 globalForce;
#recorder display $windowTitle $xLoc $yLoc $xPixels $yPixels <-file $fileName>
recorder display "animation" 10 10 800 800 -wipe;
prp 1.0 1.0 1.0;
vup -1.0 1.0 -1.0;#view-up vector (vup)
vpn 1.0 1.0 1.0;#view-plane normal (vpn)
viewWindow -15 15 -15 15;
display 1 3 1;
wipeAnalysis
#system ProfileSPD;
system BandGeneral;
#system BandSPD;
#system SparseGeneral -piv;
#system SparseGeneral;
#constraints Plain;
constraints Penalty 1.0e5 1.0e5;
test NormDispIncr 1.0e-8 1000;#test NormDispIncr $tol $iter <$pFlag>
numberer RCM;
#algorithm Linear;
#algorithm Newton;
#algorithm NewtonLineSearch 0.8;#algorithm NewtonLineSearch $ratio
#algorithm ModifiedNewton;
#algorithm Newton -initial;
algorithm KrylovNewton;
#algorithm BFGS 10;#algorithm BFGS <$count>; $count=number of iterations within a time step until a new tangent is formed
#algorithm Broyden 10;#algorithm Broyden <$count>; $count=number of iterations within a time step until a new tangent is formed
#timeSeries Path $tag -fileTime $fileTime -filePath $filePath <-factor $cFactor>;
timeSeries Path 1 -fileTime example_cyclic_time.txt -filePath example_cyclic_disp.txt;
#pattern Plain $patternTag $tsTag {...}
pattern Plain 1 1 {
            #sp $nodeTag $DOFtag $DOFvalue
            sp 31 2 1.0;
            sp 32 2 1.0;
            sp 34 2 1.0;
            sp 35 2 1.0;
}
#integrator LoadControl $lambda <$numIter $minLambda $maxLambda>;
set maxLambda [expr 0.01];
integrator LoadControl 0.0 1 $maxLambda $maxLambda;
analysis Static;
for {set i 1} {$i<=[expr int(80.0/$maxLambda)]} {incr i 1} {
algorithm KrylovNewton;
set ok [analyze 1 ];                                    # actually perform analysis; returns ok=0 if analysis was successful
#nodeDisp $nodeTag <$dof>
set a2 [nodeDisp 25 2];
set a1 [nodeDisp 15 2];
puts "              disp. = [expr $a2-$a1]"
#puts "$i"
set success 1.0;
if {$ok != 0} {
                        set success 0.0;
                        puts "FAILURE: a miserable one!"
                        break
            }
}
if {$success == 1.0} {
                        puts "SUCCESS: enjoy!"
            }
           
</source>
</source>
-->
----


REFERENCES:


[[ ZeroLengthContact_Element | zeroLengthContact3D ]] , [[ Impact_Material | ImpactMaterial ]]


----
----


CODE DEVELOPED BY:
:<span style="color:blue"> Dr. Arash E. Zaghi and Majid Cashany at University of Connecticut (UConn) </span>


REFERENCES:
----
 
Muthukumar, S., and DesRoches, R. (2006). “A Hertz Contact Model with Non-linear Damping for Pounding Simulation.” Earthquake Engineering and Structural Dynamics, 35, 811-828.


Muthukumar, S. (2003). “A Contact Element Approach with Hysteresis Damping for the Analysis and Design of Pounding in Bridges.” PhD Thesis, Georgia Institute of Technology. http://smartech.gatech.edu/
APPLICATIONS:
# This element has been employed to simulate the bridge hinges including superstructure-abutment interaction at the University of Connecticut (UConn) and University of Nevada, Reno (UNR).
# It has been implemented in non-structural systems like suspended ceilings, simulating the impact/pounding and friction phenomena.


Nielson, B. (2005). “Analytical Fragility Curves for Highway Bridges in Moderate Seismic Zones.” PhD Thesis, Georgia Institute of Technology. http://smartech.gatech.edu/


----
<!--
After running the example script, the following hysteresis loop is resulted in normal direction under cyclic excitation:


Code Developed by: <span style="color:blue"> Arash E. Zaghi, Majid Cashany, University of Connecticut (UConn) </span>
[[File: HysteresisLoop.png]]
-->

Latest revision as of 16:19, 13 June 2020




This command constructs a node-to-node zero-length contact element in 3D space to simulate the impact/pounding and friction phenomena.

element zeroLengthImpact3D $tag $cNode $rNode $direction $initGap $frictionRatio $Kt $Kn $Kn2 $Delta_y $cohesion

$tag Unique element object tag
$cNode Constrained node tag
$rNode Retained node tag
$direction

1 if out-normal vector of master plane points to +X direction

2 if out-normal vector of master plane points to +Y direction

3 if out-normal vector of master plane points to +Z direction

$initGap Initial gap between retained plane and constrained plane
$frictionRatio Friction ratio in two tangential directions (parallel to retained and constrained planes)
$Kt Penalty in two tangential directions
$Kn Penalty in normal direction (normal to retained and constrained planes)
$Kn2 Penalty in normal direction after yielding based on Hertz impact model
$Delta_y Yield deformation based on Hertz impact model
$cohesion Cohesion, if no cohesion, it is zero

NOTES:

  1. This element has been developed on top of the “zeroLengthContact3D”. All the notes available in “zeroLengthContact3D” wiki page would apply to this element as well. It includes the definition of retained and constrained nodes, the number of degrees of freedom in the domain, etc.
  2. Regarding the number of degrees of freedom (DOF), the end nodes of this element should be defined in 3DOF domain. For getting information on how to use 3DOF and 6DOF domain together, please refer to OpenSees documentation and forums or see the zip file provided in the EXAMPLES section below.
  3. This element adds the capabilities of “ImpactMaterial” to “zeroLengthContact3D.”
  4. For simulating a surface-to-surface contact, the element can be defined for connecting the nodes on constrained surface to the nodes on retained surface.
  5. The element was found to be fast-converging and eliminating the need for extra elements and nodes in the modeling process.

EXAMPLES:

  1. The following zip file contains an example script and the corresponding input cyclic displacement: File:Example script 2.zip
  2. The following zip file contains an example script on how to use 6DOF domain and 3DOF domain together: File:Example script 6DOF 3DOF.zip

REFERENCES:

zeroLengthContact3D , ImpactMaterial


CODE DEVELOPED BY:

Dr. Arash E. Zaghi and Majid Cashany at University of Connecticut (UConn)

APPLICATIONS:

  1. This element has been employed to simulate the bridge hinges including superstructure-abutment interaction at the University of Connecticut (UConn) and University of Nevada, Reno (UNR).
  2. It has been implemented in non-structural systems like suspended ceilings, simulating the impact/pounding and friction phenomena.