CatenaryCable
This command is used to construct a catenary cable element object.
$tag $iNode $jNode $weight $E $A
element CatenaryCable $L0 $alpha $temperature_change $rho $errorTol $Nsubsteps
$massType
eleTag
|
unique element object tag |
|
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</strong> lumped mass matrix, <strong>\)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.
Examples
# This example implements a slight modification of the verification test from reference #1.
#
-ndm 3 -ndf 3
model BasicBuilder
set x 30. ; #Set to example from paper x = 30, 60, 80, 100. Will not work for x=0.01, system ill-conditioned.
1 0.0 0.0 90.0
node 2 [expr $x/2] 0.0 40.0
node 3 $x 60 30.
node
1 1 1 1
fix 2 0 1 0
fix 3 1 1 1
fix
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
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
element CatenaryCable
set NSteps 10
1 -factor 1
timeSeries Linear
2 1 {
pattern Plain -ele 1 2 -type -beamUniform 0. 0. -1
eleLoad}
-file "disp.txt" -time -nodeRange 1 3 -dof 1 2 3 disp
recorder Node -file "forces.txt" -time -eleRange 1 2 force
recorder Element
system FullGeneral
constraints Plain
numberer Plain1.0e-5 100 1
test NormDispIncr [expr 1.0/$NSteps]
integrator LoadControl
algorithm Newton
analysis Static
$NSteps
analyze
-node 2 print
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
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
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
Code developed by: Pablo Ibañez and José A. Abell at Universidad de los Andes, Chile