16
16
# - Nonlinear beam-column elements
17
17
# - Gravity load analysis followed by transient analysis
18
18
#
19
-
20
- # import the OpenSees Python module
21
19
import opensees .openseespy as ops
22
20
import opensees .units .iks as units
23
21
import math
@@ -149,10 +147,10 @@ def create_model(eleType=None):
149
147
model .node (18 , (- bx / 2.0 , - by / 2.0 , 3.0 * h ))
150
148
151
149
# Retained nodes for rigid diaphragm
152
- # tag X Y Z
153
- model .node ( 9 , 0.0 , 0.0 , h )
154
- model .node (14 , 0.0 , 0.0 , 2.0 * h )
155
- model .node (19 , 0.0 , 0.0 , 3.0 * h )
150
+ # tag ( X Y Z )
151
+ model .node ( 9 , ( 0.0 , 0.0 , h ) )
152
+ model .node (14 , ( 0.0 , 0.0 , 2.0 * h ) )
153
+ model .node (19 , ( 0.0 , 0.0 , 3.0 * h ) )
156
154
157
155
# Set base constraints
158
156
# tag DX DY DZ RX RY RZ
@@ -168,10 +166,10 @@ def create_model(eleType=None):
168
166
model .rigidDiaphragm (3 , 19 , 15 , 16 , 17 , 18 )
169
167
170
168
# Constraints for rigid diaphragm retained nodes
171
- # tag DX DY DZ RX RY RZ
172
- model .fix ( 9 , 0 , 0 , 1 , 1 , 1 , 0 )
173
- model .fix (14 , 0 , 0 , 1 , 1 , 1 , 0 )
174
- model .fix (19 , 0 , 0 , 1 , 1 , 1 , 0 )
169
+ # tag ( DX DY DZ RX RY RZ)
170
+ model .fix ( 9 , ( 0 , 0 , 1 , 1 , 1 , 0 ) )
171
+ model .fix (14 , ( 0 , 0 , 1 , 1 , 1 , 0 ) )
172
+ model .fix (19 , ( 0 , 0 , 1 , 1 , 1 , 0 ) )
175
173
176
174
# Define materials for nonlinear columns
177
175
# --------------------------------------
@@ -236,15 +234,15 @@ def create_model(eleType=None):
236
234
eleType = "forceBeamColumn"
237
235
238
236
# tag ndI ndJ transfTag integrationTag
239
- model .element (eleType , 1 , (1 , 5 ), 1 , itg )
240
- model .element (eleType , 2 , (2 , 6 ), 1 , itg )
241
- model .element (eleType , 3 , (3 , 7 ), 1 , itg )
242
- model .element (eleType , 4 , (4 , 8 ), 1 , itg )
237
+ model .element (eleType , 1 , ( 1 , 5 ), 1 , itg )
238
+ model .element (eleType , 2 , ( 2 , 6 ), 1 , itg )
239
+ model .element (eleType , 3 , ( 3 , 7 ), 1 , itg )
240
+ model .element (eleType , 4 , ( 4 , 8 ), 1 , itg )
243
241
244
- model .element (eleType , 5 , (5 , 10 ), 1 , itg )
245
- model .element (eleType , 6 , (6 , 11 ), 1 , itg )
246
- model .element (eleType , 7 , (7 , 12 ), 1 , itg )
247
- model .element (eleType , 8 , (8 , 13 ), 1 , itg )
242
+ model .element (eleType , 5 , ( 5 , 10 ), 1 , itg )
243
+ model .element (eleType , 6 , ( 6 , 11 ), 1 , itg )
244
+ model .element (eleType , 7 , ( 7 , 12 ), 1 , itg )
245
+ model .element (eleType , 8 , ( 8 , 13 ), 1 , itg )
248
246
249
247
model .element (eleType , 9 , (10 , 15 ), 1 , itg )
250
248
model .element (eleType , 10 , (11 , 16 ), 1 , itg )
@@ -378,21 +376,17 @@ def analyze(model):
378
376
379
377
380
378
if __name__ == "__main__" :
381
-
382
- element = "forceBeamColumn"
383
- model = create_model (element )
384
- displacements = analyze (model )
385
-
386
379
import matplotlib .pyplot as plt
387
380
try :
388
381
plt .style .use ("typewriter" )
389
382
except :
390
- pass
383
+ pass
384
+
385
+ element = "forceBeamColumn"
386
+ model = create_model (element )
387
+ displacements = analyze (model )
391
388
392
389
u3 = displacements [9 ]
393
390
plt .plot (u3 )
394
391
plt .show ()
395
392
396
-
397
-
398
-
0 commit comments