/
StaticAnalysis.tcl
executable file
·133 lines (66 loc) · 3.04 KB
/
StaticAnalysis.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
##########################################################
# #
# BridgePM #
# Created by: Arash Saeidpour #
# University of Georgia #
# #
# #
###########################################################
source output.tcl; ### Generate output recorders
# assigning Gravity loads - Create a Plain load pattern with a linear TimeSeries:
# command pattern Plain $tag $timeSeriesTag { $loads }
pattern Plain 1 Linear {
for {set i 1} {$i <= $numberofspans} {incr i} {
eleLoad -range $decklongelements($i,1) $decklongelements($i,$lastdecklongelement($i)) -type -beamUniform [expr -$DeckWeigth($i)] 0. 0.
}
}
pattern Plain 2 Linear {
for {set i 2} {$i <= $numberofspans} {incr i} {
for {set j 1} {$j <= $numofcolumns} {incr j} {
eleLoad -range $columnelement($i,$j,1) $columnelement($i,$j,$columndivisions) -type -beamUniform 0. 0. [expr $ColMassDen * 9.81]
}
}
}
pattern Plain 3 Linear {
for {set i 2} {$i <= $numberofspans} {incr i} {
eleLoad -range $capbeamelement($i,1) $capbeamelement($i,[expr $colcounter($i)+$NumGirders-1]) -type -beamUniform [expr $CapBeamMassDen*9.81] 0. 0.
}
}
# real time display recorder for visualization during analysis
recorder display "First shot of the bridge!" 10 10 600 800 -wipe
prp $prpx $prpy $prpz
vup $vupx $vupy $vupz
viewWindow $viewwindowx1 $viewwindowx2 $viewwindowy1 $viewwindowy2
display $displaymode $displaymagnodes $displaymagres
###recorder Node -file enddeckmiddle.out -time -node elastomerright() -dof 1 2 3 4 5 6 reaction
constraints $StaticConstraints $StaticAlphaS $StaticAlphaM
numberer $StaticNumberer
#numberer RCM
system $StatisSystem ; #-lvalueFact 10 ; ### works best
#system FullGeneral ; ### not good
####system BandGeneral ; ### not good
####system BandSPD ; ### not good
#system ProfileSPD ; ### works well
#system SparseGEN ; ## speed is good but freezes
####system SparseSYM ; ## not good, error!
test $StatistestTestType $StaticTestTol $StaticTestIterations
algorithm Newton -initial
integrator $StaticIntegrator $StaticIncrement
analysis Static
set timeStepReduction 10
set tCurrent [getTime]
set tFinalStatic 1.0
set ok 0
while {$ok == 0 && $tCurrent < $tFinalStatic} {
set ok [analyze 1 ];
set tCurrent [getTime]
puts "Run $RunCounter Gravity Loads Analysis - Progress: [getTime] / $tFinalStatic"
}
if {$ok != 0} {
puts "Simulation ran into a problem, solve it please!"
}
if {$ok == 0} {
puts "Enjoy!"
}
loadConst -time 0.0
puts " End of Gravity load analysis"