CatenaryCableElement
From OpenSeesWiki
This command is used to construct a catenary cable element object.
element CatenaryCable $tag $iNode $jNode $weight $E $A $L0 $alpha $temperature_change $rho $errorTol $Nsubsteps $massType |
$eleTag | unique element object tag |
$iNode $jNode | end nodes (3 dof per node) |
$E | elastic modulus of the cable material |
$A | cross-sectional area of element |
$L0 | unstretched length of the cable |
$alpha | coefficient of thermal expansion |
$temperature_change | temperature change for the element |
$rho | mass per unit length |
$errortol | allowed tolerance for within-element equilbrium (Newton-Rhapson iterations) |
$Nsubsteps | number of within-element substeps into which equilibrium iterations are subdivided (not number of steps to convergence) |
$massType | Mass matrix model to use ($massType = 0 lumped mass matrix, $massType = 1 rigid-body mass matrix (in development)) |
This cable is a flexibility-based formulation of the catenary cable. An iterative scheme is used internally to compute equilibrium. At each iteration, node i is considered fixed while node j is free. End-forces are applied at node-j and its displacements computed. Corrections to these forces are applied iteratively using a Newton-Rhapson scheme (with optional sub-stepping via $Nsubsteps) until nodal displacements are within the provided tolerance ($errortol). When convergence is reached, a stiffness matrix is computed by inversion of the flexibility matrix and rigid-body mode injection.
Notes:
- The stiffness of the cable comes from the large-deformation interaction between loading and cable shape. Therefore, all cables must have distributed forces applied to them. See example. Should not work for only nodal forces.
- Valid queries to the CatenaryCable element when creating an ElementalRecorder object correspond to 'forces', which output the end-forces of the element in global coordinates (3 for each node).
- Only the lumped-mass formulation is currently available.
- The element does up 100 internal iterations. If convergence is not achieved, will result in error and some diagnostic information is printed out.
Code Developed by: Pablo Ibañez and José A. Abell at Universidad de los Andes, Chile
EXAMPLE:
# This example implements a slight modification of the verification test from reference #1. # model BasicBuilder -ndm 3 -ndf 3 set x 30. ; #Set to example from paper x = 30, 60, 80, 100. Will not work for x=0.01, system ill-conditioned. node 1 0.0 0.0 90.0 node 2 [expr $x/2] 0.0 40.0 node 3 $x 60 30. fix 1 1 1 1 fix 2 0 1 0 fix 3 1 1 1 set w3 -0.00001 set E 3.e7 set A 1. set L0 100. set alfa 6.5e-6 set cambiodetemp 100. set rho [expr $w3 / 9.81] set errorTol 1e-6 set NSubSteps 20 element CatenaryCable 1 1 2 $w3 $E $A [expr $L0/2] $alfa $cambiodetemp $rho $errorTol $NSubSteps 0 element CatenaryCable 2 2 3 $w3 $E $A [expr $L0/2] $alfa $cambiodetemp $rho $errorTol $NSubSteps 0 set NSteps 10 timeSeries Linear 1 -factor 1 pattern Plain 2 1 { eleLoad -ele 1 2 -type -beamUniform 0. 0. -1 } recorder Node -file "disp.txt" -time -nodeRange 1 3 -dof 1 2 3 disp recorder Element -file "forces.txt" -time -eleRange 1 2 force system FullGeneral constraints Plain numberer Plain test NormDispIncr 1.0e-5 100 1 integrator LoadControl [expr 1.0/$NSteps] algorithm Newton analysis Static analyze $NSteps print -node 2
Results should be:
Node: 2 Coordinates : 15 0 40 Disps: 8.58693 0 2.82578 unbalanced Load: 0 0 0 ID : 0 -1 1
Compare the forces.txt (for node 3) file with the results from reference [1].
References
1. Salehi Ahmad Abad, M., Shooshtari, A., Esmaeili, V., & Naghavi Riabi, A. (2013). Nonlinear analysis of cable structures under general loadings. Finite Elements in Analysis and Design, 73, 11–19. https://doi.org/10.1016/j.finel.2013.05.002
2. Thai, H. T., & Kim, S. E. (2011). Nonlinear static and dynamic analysis of cable structures. Finite Elements in Analysis and Design, 47(3), 237–246. https://doi.org/10.1016/j.finel.2010.10.005