Está en la página 1de 20

6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

UNIVERSIDAD NACIONAL DE INGENIERIA

Facultad de Ingeniería Civil- Unidad de Posgrado

ALUMNA: ISELA CHAMBI ROJAS

C-801 PROYECTO HITO 06

Finalidad

El l objetivo de este hito es examinar la respuesta dinámica del modelo del tanque elevado de agua bajo la excitación bidireccional del terreno.

In [1]:

import openseespy.opensees as ops


import scipy.linalg as slin
import matplotlib.pyplot as plt
import numpy as np
import opsvis as opsv
import math

1.- UNIDADES BASICAS Y DERIVADAS

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 1/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

In [2]:

kN = 1.0
mm = 1.0
sec = 1.0
min = 60*sec
m = 1000*mm
kip = 4.448*kN
inch = 25.4*mm
g = 9810*mm/sec**2

ft = 12*inch
ksi = kip/inch**2
GPa = kN/mm**2
MPa = (1/1000)*GPa

2.-PROPIEDADES DEL MATERIAL

In [3]:

E = 200*GPa # (E=29000ksi)
v = 0.30
G = E/(2*(1+v))

3.-CALCULO DE 𝑏
In [4]:

Fy = 317.16/1000*GPa
Fu = 399.90/1000*GPa
E = 200*GPa
Esh = 3998.96/1000*GPa
eps_sh = 0.012
eps_ult = 0.16
ey = Fy/E
E2 = (Fu-Fy)/(eps_ult-ey)
bs = E2/E

print(ey,E2,bs)

0.0015858 0.522301662350976 0.00261150831175488

4.-FUNCION BOXSECTION

In [5]:

def BoxSection (d,t):


A=d*d - (d-2*t)**2
Iz = d**4/12 - (d-2*t)**4/12
Iy = Iz
J = Iz + Iy

return [A,Iz,Iy,J]

5.-DEFINICION DE LA SECCION FIBRAS

In [6]:

def DefineSection(tag,matTag,d,t,Nfw,Nff,GJ):

ops.section('Fiber',tag,'-GJ',GJ)
ops.patch('rect',matTag,Nff,Nff,d/2,d/2,d/2-t,d/2-t)
ops.patch('rect',matTag,Nff,Nfw,d/2,d/2-t,d/2-t,-d/2+t)

ops.patch('rect',matTag,Nff,Nff,d/2,-d/2+t,d/2-t,-d/2)
ops.patch('rect',matTag,Nfw,Nff,d/2-t,d/2,-d/2+t,d/2-t)

ops.patch('rect',matTag,Nfw,Nff,d/2-t,-d/2+t,-d/2+t,-d/2)
ops.patch('rect',matTag,Nff,Nff,-d/2+t,d/2,-d/2,d/2-t)

ops.patch('rect',matTag,Nff,Nfw,-d/2+t,d/2-t,-d/2,-d/2+t)
ops.patch('rect',matTag,Nff,Nff,-d/2+t,-d/2+t,-d/2,-d/2)

6.-PLOTEO DE LA SECCION FIBRAS

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 2/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

In [7]:

tag = 1
matTag = 1
Nfw = 4
Nff = 1
d = 30.0*inch
t = 0.625*inch
A,Iz,Iy,J = BoxSection(d,t)

GJ = G*J

fib_sec_1 = [['section','Fiber',tag,'-GJ',GJ],
['patch','rect',matTag,Nff,Nff,d/2,d/2,d/2-t,d/2-t],
['patch','rect',matTag,Nff,Nfw,d/2,d/2-t,d/2-t,-d/2+t],

['patch','rect',matTag,Nff,Nff,d/2,-d/2+t,d/2-t,-d/2],
['patch','rect',matTag,Nfw,Nff,d/2-t,d/2,-d/2+t,d/2-t],

['patch','rect',matTag,Nfw,Nff,d/2-t,-d/2+t,-d/2+t,-d/2],
['patch','rect',matTag,Nff,Nff,-d/2+t,d/2,-d/2,d/2-t],

['patch','rect',matTag,Nff,Nfw,-d/2+t,d/2-t,-d/2,-d/2+t],
['patch','rect',matTag,Nff,Nff,-d/2+t,-d/2+t,-d/2,-d/2]]
matcolor = ['y', 'lightgrey', 'gold', 'w', 'w', 'w']
opsv.plot_fiber_section(fib_sec_1, matcolor = matcolor)
plt.axis('equal')
plt.show()

7.-DEFINICION DEL MODELO DEL TANQUE ELEVADO

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 3/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 4/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

In [8]:

ops.wipe()
ops.model('basic','-ndm',3,'-ndf',6)

L = 9*m
offset = L/500

#Nudos y sus restricciones


ops.node(1,-8.20*m,-8.20*m,0.0*m); ops.fix(1,1,1,1,0,0,0)
ops.node(2,+8.20*m,-8.20*m,0.0*m); ops.fix(2,1,1,1,0,0,0)
ops.node(3,+8.20*m,+8.20*m,0.0*m); ops.fix(3,1,1,1,0,0,0)
ops.node(4,-8.20*m,+8.20*m,0.0*m); ops.fix(4,1,1,1,0,0,0)

#Nudos de la Estructura:
#Piso 1
ops.node(5,-7.38*m,-7.38*m,+8.20*m)
ops.node(6,+7.38*m,-7.38*m,+8.20*m)
ops.node(7,+7.38*m,+7.38*m,+8.20*m)
ops.node(8,-7.38*m,+7.38*m,+8.20*m)
#Piso 2
ops.node(9,-6.56*m,-6.56*m,+16.40*m)
ops.node(10,+6.56*m,-6.56*m,+16.40*m)
ops.node(11,+6.56*m,+6.56*m,+16.40*m)
ops.node(12,-6.56*m,+6.56*m,+16.40*m)
#Piso 3
ops.node(13,-5.74*m,-5.74*m,+24.60*m)
ops.node(14,+5.74*m,-5.74*m,+24.60*m)
ops.node(15,+5.74*m,+5.74*m,+24.60*m)
ops.node(16,-5.74*m,+5.74*m,+24.60*m)
#Piso 4
ops.node(17,-4.92*m,-4.92*m,+32.80*m)
ops.node(18,+4.92*m,-4.92*m,+32.80*m)
ops.node(19,+4.92*m,+4.92*m,+32.80*m)
ops.node(20,-4.92*m,+4.92*m,+32.80*m)
#Piso 5
ops.node(21,-4.10*m,-4.10*m,+41.00*m)
ops.node(22,+4.10*m,-4.10*m,+41.00*m)
ops.node(23,+4.10*m,+4.10*m,+41.00*m)
ops.node(24,-4.10*m,+4.10*m,+41.00*m)

ops.node(25,-8.20*m,-4.10*m,+41.00*m)
ops.node(26,-4.10*m,-8.20*m,+41.00*m)
ops.node(27,+4.10*m,-8.20*m,+41.00*m)
ops.node(28,+8.20*m,-4.10*m,+41.00*m)
ops.node(29,+8.20*m,+4.10*m,+41.00*m)
ops.node(30,+4.10*m,+8.20*m,+41.00*m)
ops.node(31,-4.10*m,+8.20*m,+41.00*m)
ops.node(32,-8.20*m,+4.10*m,+41.00*m)
#Piso 6
ops.node(33,-4.10*m,-4.10*m,+49.20*m)
ops.node(34,+4.10*m,-4.10*m,+49.20*m)
ops.node(35,+4.10*m,+4.10*m,+49.20*m)
ops.node(36,-4.10*m,+4.10*m,+49.20*m)

ops.node(37,-8.20*m,-4.10*m,+49.20*m)
ops.node(38,-4.10*m,-8.20*m,+49.20*m)
ops.node(39,+4.10*m,-8.20*m,+49.200*m)
ops.node(40,+8.20*m,-4.10*m,+49.20*m)
ops.node(41,+8.20*m,+4.10*m,+49.20*m)
ops.node(42,+4.10*m,+8.20*m,+49.20*m)
ops.node(43,-4.10*m,+8.20*m,+49.20*m)
ops.node(44,-8.20*m,+4.10*m,+49.20*m)

#Diafragma Rigido Piso


ops.node(45,0.0*m,0.0*m,41.0*m); ops.fix(45,0,0,1,1,1,0)
ops.rigidDiaphragm(3,45,*[21,22,23,24,25,26,27,28,29,30,31,32])

#Diafragma Rigido Techo


ops.node(46,0.0*m,0.0*m,49.2*m); ops.fix(46,0,0,1,1,1,0)
ops.rigidDiaphragm(3,46,*[33,34,35,36,37,38,39,40,41,42,43,44])

#Nodos adicionales para el Pandeo Inelastico 1er Segmento


ops.node(47,-7.79*m-offset,-7.79*m,4.10*m)
ops.node(48,7.79*m+offset,-7.79*m,4.10*m)
ops.node(49,7.79*m+offset,7.79*m,4.10*m)
ops.node(50,-7.79*m-offset,7.79*m,4.10*m)

#Arriostres
ops.node(51,-0.41*m,-7.79*m-offset,4.10*m)
ops.node(52,0.41*m,-7.79*m-offset,4.10*m)
ops.node(53,7.79*m+offset,-0.41*m,4.10*m)
ops.node(54,7.79*m+offset,0.41*m,4.10*m)
ops.node(55,0.41*m,7.79*m+offset,4.10*m)
ops.node(56,-0.41*m,7.79*m+offset,4.10*m)
ops.node(57,-7.79*m-offset,0.41*m,4.10*m)
ops.node(58,-7.79*m-offset,-0.41*m,4.10*m)

# Eje X local a partir de las Coordenadas nodales


XYZ1 = ops.nodeCoord(1)
XYZ5 = ops.nodeCoord(5)
xaxis = np.subtract(XYZ5,XYZ1)

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 5/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook
# Vectores en los planos locales x-y y x-z
vecxy = [0,0,1] # y - vector en el plano local x-y (default=[0,0,1])
vecxz = np.cross(xaxis,vecxy)
print(vecxy)
print(vecxz)
print(xaxis)
ops.geomTransf('Corotational',1,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ2 = ops.nodeCoord(2)
XYZ6 = ops.nodeCoord(6)
xaxis = np.subtract(XYZ6,XYZ2)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',2,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ3 = ops.nodeCoord(3)
XYZ7 = ops.nodeCoord(7)
xaxis = np.subtract(XYZ7,XYZ3)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',3,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ4 = ops.nodeCoord(4)
XYZ8 = ops.nodeCoord(8)
xaxis = np.subtract(XYZ8,XYZ4)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',4,*vecxz)

ops.geomTransf('Corotational',5,0.0,-1.0,0.0) # Para elementos verticales

# Eje X local a partir de las Coordenadas nodales


XYZ5 = ops.nodeCoord(5)
XYZ6 = ops.nodeCoord(6)
xaxis = np.subtract(XYZ6,XYZ5)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',6,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ6 = ops.nodeCoord(6)
XYZ7 = ops.nodeCoord(7)
xaxis = np.subtract(XYZ7,XYZ6)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',7,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ7 = ops.nodeCoord(7)
XYZ8 = ops.nodeCoord(8)
xaxis = np.subtract(XYZ8,XYZ7)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',8,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ8 = ops.nodeCoord(8)
XYZ5 = ops.nodeCoord(5)
xaxis = np.subtract(XYZ5,XYZ8)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',9,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ5 = ops.nodeCoord(5)
XYZ7 = ops.nodeCoord(7)
xaxis = np.subtract(XYZ7,XYZ5)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',10,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ6 = ops.nodeCoord(6)
XYZ8 = ops.nodeCoord(8)
xaxis = np.subtract(XYZ8,XYZ6)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',11,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ1 = ops.nodeCoord(1)
XYZ6 = ops.nodeCoord(6)
xaxis = np.subtract(XYZ6,XYZ1)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',12,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ2 = ops.nodeCoord(2)

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 6/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook
XYZ5 = ops.nodeCoord(5)
xaxis = np.subtract(XYZ5,XYZ2)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',13,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ2 = ops.nodeCoord(2)
XYZ7 = ops.nodeCoord(7)
xaxis = np.subtract(XYZ7,XYZ2)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',14,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ3 = ops.nodeCoord(3)
XYZ6 = ops.nodeCoord(6)
xaxis = np.subtract(XYZ6,XYZ3)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',15,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ3 = ops.nodeCoord(3)
XYZ8 = ops.nodeCoord(8)
xaxis = np.subtract(XYZ8,XYZ3)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',16,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ4 = ops.nodeCoord(4)
XYZ7 = ops.nodeCoord(7)
xaxis = np.subtract(XYZ7,XYZ4)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',17,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ4 = ops.nodeCoord(4)
XYZ5 = ops.nodeCoord(5)
xaxis = np.subtract(XYZ5,XYZ4)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',18,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ1 = ops.nodeCoord(1)
XYZ8 = ops.nodeCoord(8)
xaxis = np.subtract(XYZ8,XYZ1)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',19,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ25 = ops.nodeCoord(25)
XYZ33 = ops.nodeCoord(33)
xaxis = np.subtract(XYZ33,XYZ25)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',20,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ21 = ops.nodeCoord(21)
XYZ37 = ops.nodeCoord(37)
xaxis = np.subtract(XYZ37,XYZ21)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',21,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ21 = ops.nodeCoord(21)
XYZ34 = ops.nodeCoord(34)
xaxis = np.subtract(XYZ34,XYZ21)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',22,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ22 = ops.nodeCoord(22)
XYZ33 = ops.nodeCoord(33)
xaxis = np.subtract(XYZ33,XYZ22)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',23,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ26 = ops.nodeCoord(26)
XYZ33 = ops.nodeCoord(33)
xaxis = np.subtract(XYZ33,XYZ26)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 7/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook
ops.geomTransf('Corotational',24,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ21 = ops.nodeCoord(21)
XYZ38 = ops.nodeCoord(38)
xaxis = np.subtract(XYZ38,XYZ21)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',25,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ21 = ops.nodeCoord(21)
XYZ36 = ops.nodeCoord(36)
xaxis = np.subtract(XYZ36,XYZ21)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',26,*vecxz)

# Eje X local a partir de las Coordenadas nodales


XYZ24 = ops.nodeCoord(24)
XYZ33 = ops.nodeCoord(33)
xaxis = np.subtract(XYZ33,XYZ24)
# Vectores en los planos locales x-y y x-z
vecxz = np.cross(xaxis,vecxy)
ops.geomTransf('Corotational',27,*vecxz)

# SECCION HSS30X30x5/8 (246.47lb/ft)

# A = 72.4*inch**2; Iy = 10300*inch**4; Iz = 10300*inch**4; Jxx = 16000*inch**4

d = 30*inch
t = 0.625*inch
A,Iz,Iy,J = BoxSection(d,t)

GJ = G*J
tag = 201
matTag = 500
Nfw = 4
Nff = 1

ops.uniaxialMaterial('Steel02', matTag,Fy,E,bs)
#ops.uniaxialMaterial('Elastic',matTag,E)
DefineSection(tag,matTag,d,t,Nfw,Nff,GJ)
#ops.section('Elastic',1,E,A,Iz,Iy,G,Jxx)
ops.beamIntegration('Lobatto',1,201,4)

#ops.element('forceBeamColumn',1,1,5,1,1)
ops.element('forceBeamColumn',1,1,47,1,1)
ops.element('forceBeamColumn',150,47,5,1,1)
#ops.element('forceBeamColumn',2,2,6,2,1)
ops.element('forceBeamColumn',2,2,48,2,1)
ops.element('forceBeamColumn',151,48,6,2,1)
#ops.element('forceBeamColumn',3,3,7,3,1)
ops.element('forceBeamColumn',3,3,49,3,1)
ops.element('forceBeamColumn',152,49,7,3,1)
#ops.element('forceBeamColumn',4,4,8,4,1)
ops.element('forceBeamColumn',4,4,50,4,1)
ops.element('forceBeamColumn',153,50,8,4,1)

ops.element('forceBeamColumn',5,5,9,1,1)
ops.element('forceBeamColumn',6,6,10,2,1)
ops.element('forceBeamColumn',7,7,11,3,1)
ops.element('forceBeamColumn',8,8,12,4,1)

ops.element('forceBeamColumn',9,9,13,1,1)
ops.element('forceBeamColumn',10,10,14,2,1)
ops.element('forceBeamColumn',11,11,15,3,1)
ops.element('forceBeamColumn',12,12,16,4,1)

ops.element('forceBeamColumn',13,13,17,1,1)
ops.element('forceBeamColumn',14,14,18,2,1)
ops.element('forceBeamColumn',15,15,19,3,1)
ops.element('forceBeamColumn',16,16,20,4,1)

ops.element('forceBeamColumn',17,17,21,1,1)
ops.element('forceBeamColumn',18,18,22,2,1)
ops.element('forceBeamColumn',19,19,23,3,1)
ops.element('forceBeamColumn',20,20,24,4,1)

ops.element('forceBeamColumn',21,21,33,5,1)
ops.element('forceBeamColumn',22,22,34,5,1)
ops.element('forceBeamColumn',23,23,35,5,1)
ops.element('forceBeamColumn',24,24,36,5,1)

# SECCION HSS20X20x5/8 (161.40lb/ft)

#A = 47.4*inch**2; Iy = 2940*inch**4; Iz = 2940*inch**4; Jxx = 4620*inch**4

d = 20*inch
t = 0.625*inch
A,Iz,Iy,Jxx = BoxSection(d,t)

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 8/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook
ops.section('Elastic',2,E,A,Iz,Iy,G,Jxx)
ops.beamIntegration('Lobatto',2,2,4)

ops.element('forceBeamColumn',25,25,37,5,2)
ops.element('forceBeamColumn',26,26,38,5,2)
ops.element('forceBeamColumn',27,27,39,5,2)
ops.element('forceBeamColumn',28,28,40,5,2)
ops.element('forceBeamColumn',29,29,41,5,2)
ops.element('forceBeamColumn',30,30,42,5,2)
ops.element('forceBeamColumn',31,31,43,5,2)
ops.element('forceBeamColumn',32,32,44,5,2)

ops.element('forceBeamColumn',57,21,22,6,2)
ops.element('forceBeamColumn',58,22,23,7,2)
ops.element('forceBeamColumn',59,23,24,8,2)
ops.element('forceBeamColumn',60,24,21,9,2)

ops.element('forceBeamColumn',61,25,21,6,2)
ops.element('forceBeamColumn',62,22,28,6,2)
ops.element('forceBeamColumn',63,32,24,6,2)
ops.element('forceBeamColumn',64,23,29,6,2)
ops.element('forceBeamColumn',65,26,21,7,2)
ops.element('forceBeamColumn',66,24,31,7,2)
ops.element('forceBeamColumn',67,27,22,7,2)
ops.element('forceBeamColumn',68,23,30,7,2)

ops.element('forceBeamColumn',69,33,34,6,2)
ops.element('forceBeamColumn',70,34,35,7,2)
ops.element('forceBeamColumn',71,35,36,8,2)
ops.element('forceBeamColumn',72,36,33,9,2)

ops.element('forceBeamColumn',73,37,33,6,2)
ops.element('forceBeamColumn',74,34,40,6,2)
ops.element('forceBeamColumn',75,44,36,6,2)
ops.element('forceBeamColumn',76,35,41,6,2)
ops.element('forceBeamColumn',77,38,33,7,2)
ops.element('forceBeamColumn',78,36,43,7,2)
ops.element('forceBeamColumn',79,39,34,7,2)
ops.element('forceBeamColumn',80,35,42,7,2)

ops.element('forceBeamColumn',121,25,33,20,2)
ops.element('forceBeamColumn',122,21,37,21,2)
ops.element('forceBeamColumn',123,21,34,22,2)
ops.element('forceBeamColumn',124,22,33,23,2)
ops.element('forceBeamColumn',125,22,40,20,2)
ops.element('forceBeamColumn',126,28,34,21,2)
ops.element('forceBeamColumn',127,32,36,20,2)
ops.element('forceBeamColumn',128,24,44,21,2)
ops.element('forceBeamColumn',129,24,35,22,2)
ops.element('forceBeamColumn',130,23,36,23,2)
ops.element('forceBeamColumn',131,23,41,20,2)
ops.element('forceBeamColumn',132,29,35,21,2)

ops.element('forceBeamColumn',133,26,33,24,2)
ops.element('forceBeamColumn',134,21,38,25,2)
ops.element('forceBeamColumn',135,21,36,26,2)
ops.element('forceBeamColumn',136,24,33,27,2)
ops.element('forceBeamColumn',137,24,43,24,2)
ops.element('forceBeamColumn',138,31,36,25,2)
ops.element('forceBeamColumn',139,27,34,24,2)
ops.element('forceBeamColumn',140,22,39,25,2)
ops.element('forceBeamColumn',141,22,35,26,2)
ops.element('forceBeamColumn',142,23,34,27,2)
ops.element('forceBeamColumn',143,23,42,24,2)
ops.element('forceBeamColumn',144,30,35,25,2)

# HSS12X12x1/2 (76.07lb/ft)

#A = 22.4*inch**2; Iy = 485*inch**4; Iz = 485*inch**4; Jxx = 777*inch**4

d = 12*inch
t = 0.5*inch
A,Iz,Iy,J = BoxSection(d,t)

GJ = G*J
tag = 202
matTag = 501
Nfw = 4
Nff = 1

ops.uniaxialMaterial('Steel02', matTag,Fy,E,bs)
#ops.uniaxialMaterial('Elastic',matTag,E)
DefineSection(tag,matTag,d,t,Nfw,Nff,GJ)
#ops.section('Elastic',3,E,A,Iz,Iy,G,Jxx)
ops.beamIntegration('Lobatto',3,202,4)

ops.element('forceBeamColumn',37,5,7,10,3)
ops.element('forceBeamColumn',38,6,8,11,3)

ops.element('forceBeamColumn',43,9,11,10,3)
ops.element('forceBeamColumn',44,10,12,11,3)

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 9/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook
ops.element('forceBeamColumn',49,13,15,10,3)
ops.element('forceBeamColumn',50,14,16,11,3)

ops.element('forceBeamColumn',55,17,19,10,3)
ops.element('forceBeamColumn',56,18,20,11,3)

# HSS14X14x5/8 (110.36lb/ft)

# A = 32.4*inch**2; Iy = 952*inch**4; Iz = 952*inch**4; Jxx = 1530*inch**4

d = 14*inch
t = 0.625*inch
A,Iz,Iy,J = BoxSection(d,t)

GJ = G*J
tag = 203
matTag = 503
Nfw = 4
Nff = 1

ops.uniaxialMaterial('Steel02', matTag,Fy,E,bs)
#ops.uniaxialMaterial('Elastic',matTag,E)
DefineSection(tag,matTag,d,t,Nfw,Nff,GJ)
#ops.section('Elastic',4,E,A,Iz,Iy,G,Jxx)
ops.beamIntegration('Lobatto',4,203,4)

ops.element('forceBeamColumn',33,5,6,6,4)
ops.element('forceBeamColumn',34,6,7,7,4)
ops.element('forceBeamColumn',35,7,8,8,4)
ops.element('forceBeamColumn',36,8,5,9,4)

ops.element('forceBeamColumn',39,9,10,6,4)
ops.element('forceBeamColumn',40,10,11,7,4)
ops.element('forceBeamColumn',41,11,12,8,4)
ops.element('forceBeamColumn',42,12,9,9,4)

ops.element('forceBeamColumn',45,13,14,6,4)
ops.element('forceBeamColumn',46,14,15,7,4)
ops.element('forceBeamColumn',47,15,16,8,4)
ops.element('forceBeamColumn',48,16,13,9,4)

ops.element('forceBeamColumn',51,17,18,6,4)
ops.element('forceBeamColumn',52,18,19,7,4)
ops.element('forceBeamColumn',53,19,20,8,4)
ops.element('forceBeamColumn',54,20,17,9,4)

#ops.element('forceBeamColumn',81,1,6,12,4)
ops.element('forceBeamColumn',81,1,51,12,4)
ops.element('forceBeamColumn',154,51,6,12,4)
#ops.element('forceBeamColumn',82,2,5,13,4)
ops.element('forceBeamColumn',82,2,52,13,4)
ops.element('forceBeamColumn',155,52,5,13,4)
#ops.element('forceBeamColumn',83,2,7,14,4)
ops.element('forceBeamColumn',83,2,53,14,4)
ops.element('forceBeamColumn',156,53,7,14,4)
#ops.element('forceBeamColumn',84,3,6,15,4)
ops.element('forceBeamColumn',84,3,54,15,4)
ops.element('forceBeamColumn',157,54,6,15,4)
#ops.element('forceBeamColumn',85,3,8,16,4)
ops.element('forceBeamColumn',85,3,55,16,4)
ops.element('forceBeamColumn',158,55,8,16,4)
#ops.element('forceBeamColumn',86,4,7,17,4)
ops.element('forceBeamColumn',86,4,56,17,4)
ops.element('forceBeamColumn',159,56,7,17,4)
#ops.element('forceBeamColumn',87,4,5,18,4)
ops.element('forceBeamColumn',87,4,57,18,4)
ops.element('forceBeamColumn',160,57,5,18,4)
#ops.element('forceBeamColumn',88,1,8,19,4)
ops.element('forceBeamColumn',88,1,58,19,4)
ops.element('forceBeamColumn',161,58,8,19,4)

ops.element('forceBeamColumn',89,5,10,12,4)
ops.element('forceBeamColumn',90,6,9,13,4)
ops.element('forceBeamColumn',91,6,11,14,4)
ops.element('forceBeamColumn',92,7,10,15,4)
ops.element('forceBeamColumn',93,7,12,16,4)
ops.element('forceBeamColumn',94,8,11,17,4)
ops.element('forceBeamColumn',95,8,9,18,4)
ops.element('forceBeamColumn',96,5,12,19,4)

ops.element('forceBeamColumn',97,9,14,12,4)
ops.element('forceBeamColumn',98,10,13,13,4)
ops.element('forceBeamColumn',99,10,15,14,4)
ops.element('forceBeamColumn',100,11,14,15,4)
ops.element('forceBeamColumn',101,11,16,16,4)
ops.element('forceBeamColumn',102,12,15,17,4)
ops.element('forceBeamColumn',103,12,13,18,4)
ops.element('forceBeamColumn',104,9,16,19,4)

ops.element('forceBeamColumn',105,13,18,12,4)
ops.element('forceBeamColumn',106,14,17,13,4)
ops.element('forceBeamColumn',107,14,19,14,4)

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 10/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook
ops.element('forceBeamColumn',108,15,18,15,4)
ops.element('forceBeamColumn',109,15,20,16,4)
ops.element('forceBeamColumn',110,16,19,17,4)
ops.element('forceBeamColumn',111,16,17,18,4)
ops.element('forceBeamColumn',112,13,20,19,4)

ops.element('forceBeamColumn',113,17,22,12,4)
ops.element('forceBeamColumn',114,18,21,13,4)
ops.element('forceBeamColumn',115,18,23,14,4)
ops.element('forceBeamColumn',116,19,22,15,4)
ops.element('forceBeamColumn',117,19,24,16,4)
ops.element('forceBeamColumn',118,20,23,17,4)
ops.element('forceBeamColumn',119,20,21,18,4)
ops.element('forceBeamColumn',120,17,24,19,4)

# CARGAS DE GRAVEDAD
# Nodos de apoyo 4 columnas X 04 niveles
na = 18.0*kip

#Nodos del piso del tanque: 4 nodos interiores y 8 nodos exteriores


npint = 760.0*kip
npext = 260.0*kip

# techo del tanque para los 12 nodos


tt = 70.0*kip

ops.timeSeries('Constant',12)
ops.pattern('Plain',10,12)

# Cargas-Nodos de apoyo
ops.load(5,0.0,0.0,-na,0,0,0)
ops.load(6,0.0,0.0,-na,0,0,0)
ops.load(7,0.0,0.0,-na,0,0,0)
ops.load(8,0.0,0.0,-na,0,0,0)

ops.load(9,0.0,0.0,-na,0,0,0)
ops.load(10,0.0,0.0,-na,0,0,0)
ops.load(11,0.0,0.0,-na,0,0,0)
ops.load(12,0.0,0.0,-na,0,0,0)

ops.load(13,0.0,0.0,-na,0,0,0)
ops.load(14,0.0,0.0,-na,0,0,0)
ops.load(15,0.0,0.0,-na,0,0,0)
ops.load(16,0.0,0.0,-na,0,0,0)

ops.load(17,0.0,0.0,-na,0,0,0)
ops.load(18,0.0,0.0,-na,0,0,0)
ops.load(19,0.0,0.0,-na,0,0,0)
ops.load(20,0.0,0.0,-na,0,0,0)

# Cargas - Nodos del tanque (piso):


#4 nodos interiores
ops.load(21,0.0,0.0,-npint,0,0,0)
ops.load(22,0.0,0.0,-npint,0,0,0)
ops.load(23,0.0,0.0,-npint,0,0,0)
ops.load(24,0.0,0.0,-npint,0,0,0)
#8 nodos exteriores
ops.load(25,0.0,0.0,-npext,0,0,0)
ops.load(26,0.0,0.0,-npext,0,0,0)
ops.load(27,0.0,0.0,-npext,0,0,0)
ops.load(28,0.0,0.0,-npext,0,0,0)
ops.load(29,0.0,0.0,-npext,0,0,0)
ops.load(30,0.0,0.0,-npext,0,0,0)
ops.load(31,0.0,0.0,-npext,0,0,0)
ops.load(32,0.0,0.0,-npext,0,0,0)

#Cargas -Nodos del tanque(techo)


ops.load(33,0.0,0.0,-tt,0,0,0)
ops.load(34,0.0,0.0,-tt,0,0,0)
ops.load(35,0.0,0.0,-tt,0,0,0)
ops.load(36,0.0,0.0,-tt,0,0,0)
ops.load(37,0.0,0.0,-tt,0,0,0)
ops.load(38,0.0,0.0,-tt,0,0,0)
ops.load(39,0.0,0.0,-tt,0,0,0)
ops.load(40,0.0,0.0,-tt,0,0,0)
ops.load(41,0.0,0.0,-tt,0,0,0)
ops.load(42,0.0,0.0,-tt,0,0,0)
ops.load(43,0.0,0.0,-tt,0,0,0)
ops.load(44,0.0,0.0,-tt,0,0,0)

# DEFINICION DE LAS MASAS TRASLACIONALES


# Cargas en 4 columnas principales x 04 niveles
Mna = na/g

#Primer segmento (18.00 kip)


ops.mass(5,Mna,Mna,Mna,0,0,0)
ops.mass(6,Mna,Mna,Mna,0,0,0)
ops.mass(7,Mna,Mna,Mna,0,0,0)
ops.mass(8,Mna,Mna,Mna,0,0,0)

#Segundo segmento (18.00 kip)


ops.mass(9,Mna,Mna,Mna,0,0,0)

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 11/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook
ops.mass(10,Mna,Mna,Mna,0,0,0)
ops.mass(11,Mna,Mna,Mna,0,0,0)
ops.mass(12,Mna,Mna,Mna,0,0,0)

#Tercer segmento (18.00 kip)


ops.mass(13,Mna,Mna,Mna,0,0,0)
ops.mass(14,Mna,Mna,Mna,0,0,0)
ops.mass(15,Mna,Mna,Mna,0,0,0)
ops.mass(16,Mna,Mna,Mna,0,0,0)

#Cuarto segmento (18.00 kip)


ops.mass(17,Mna,Mna,Mna,0,0,0)
ops.mass(18,Mna,Mna,Mna,0,0,0)
ops.mass(19,Mna,Mna,Mna,0,0,0)
ops.mass(20,Mna,Mna,Mna,0,0,0)

#Cargas en los nudos del piso del tanque: 04 nudos interiores y 08 exteriores
Mnpint = npint/g
Mnpext = npext/g

#Masa agregada al nodo interior del piso del tanque


ops.mass(21,Mnpint,Mnpint,Mnpint,0,0,0)
ops.mass(22,Mnpint,Mnpint,Mnpint,0,0,0)
ops.mass(23,Mnpint,Mnpint,Mnpint,0,0,0)
ops.mass(24,Mnpint,Mnpint,Mnpint,0,0,0)

#Masa agregada al nodo exterior del piso del tanque


ops.mass(25,Mnpext,Mnpext,Mnpext,0,0,0)
ops.mass(26,Mnpext,Mnpext,Mnpext,0,0,0)
ops.mass(27,Mnpext,Mnpext,Mnpext,0,0,0)
ops.mass(28,Mnpext,Mnpext,Mnpext,0,0,0)
ops.mass(29,Mnpext,Mnpext,Mnpext,0,0,0)
ops.mass(30,Mnpext,Mnpext,Mnpext,0,0,0)
ops.mass(31,Mnpext,Mnpext,Mnpext,0,0,0)
ops.mass(32,Mnpext,Mnpext,Mnpext,0,0,0)

#Cargas en los nudos del techo del tanque:12 nudos


Mtt = tt/g

#Masa agregada al techo del tanque


ops.mass(33,Mtt,Mtt,Mtt,0,0,0)
ops.mass(34,Mtt,Mtt,Mtt,0,0,0)
ops.mass(35,Mtt,Mtt,Mtt,0,0,0)
ops.mass(36,Mtt,Mtt,Mtt,0,0,0)
ops.mass(37,Mtt,Mtt,Mtt,0,0,0)
ops.mass(38,Mtt,Mtt,Mtt,0,0,0)
ops.mass(39,Mtt,Mtt,Mtt,0,0,0)
ops.mass(40,Mtt,Mtt,Mtt,0,0,0)
ops.mass(41,Mtt,Mtt,Mtt,0,0,0)
ops.mass(42,Mtt,Mtt,Mtt,0,0,0)
ops.mass(43,Mtt,Mtt,Mtt,0,0,0)
ops.mass(44,Mtt,Mtt,Mtt,0,0,0)

# Definicion de las cargas de gravedad de 100kip en la parte superior del tanque elevado
#ops.load(37,100.0*kip,0.0,0.0,0.0,0.0,0.0)
#ops.load(38,0.0,100.0*kip,0.0,0.0,0.0,0.0)

ops.constraints('Transformation')
#ops.numberer('Plain')
ops.numberer('RCM')
#ops.system('BandGen')
ops.system('UmfPack')
ops.test('NormDispIncr',1.0e-8,7)
ops.algorithm('Newton')

ops.integrator('LoadControl',0.1)
ops.analysis('Static')
ops.analyze(10)

ops.loadConst('-time',0.0)

#ops.constraints('Transformation')
#ops.analysis('Static')
#ops.analyze(1)
#ops.reactions()

# Calculo de las Reacciones


ops.reactions()
print(f'Node 1 Reaction={ops.nodeReaction(1,3)}KN')
print(f'Node 2 Reaction={ops.nodeReaction(2,3)}KN')
print(f'Node 3 Reaction={ops.nodeReaction(3,3)}KN')
print(f'Node 4 Reaction={ops.nodeReaction(4,3)}KN')

# Desplazamiento(Nudo 33)
print(f'Node 33 ux={ops.nodeDisp(33,1)}mm')
print(f'Node 33 uy={ops.nodeDisp(33,2)}mm')

print('nivel 0')
print(f'Node 1 Desplz en z={ops.nodeDisp(1,3)}')
print(f'Node 2 Desplz en z={ops.nodeDisp(2,3)}')
print(f'Node 3 Desplz en z={ops.nodeDisp(3,3)}')
print(f'Node 4 Desplz en z={ops.nodeDisp(4,3)}')

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 12/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook
print('nivel 1')
print(f'Node 5 Desplz en z={ops.nodeDisp(5,3)}')
print(f'Node 6 Desplz en z={ops.nodeDisp(6,3)}')
print(f'Node
[0, 0, 1] 7 Desplz en z={ops.nodeDisp(7,3)}')
print(f'Node
[ 820. -820. 8 Desplz
0.] en z={ops.nodeDisp(8,3)}')
[ 820. 820. 8200.]
weight
Node 1 = ops.nodeReaction(1,3) + ops.nodeReaction(2,3) + ops.nodeReaction(3,3) + ops.nodeReaction(4,3)
Reaction=6947.776000000008KN
print(weight)
Node 2 Reaction=6947.776000000005KN
Node 3 Reaction=6947.776000000004KN
#opsv.plot_model(element_labels=0,fig_wi_he=(50,50),local_axes=False)
Node 4 Reaction=6947.776000000003KN
M = 35
Node 33 ux=7.83167665830204e-15mm
N = 35
Node 33 uy=-5.130525674871183e-14mm
opsv.plot_model(fig_wi_he=(M,N))
nivel 0
Node 1 Desplz en z=0.0
Node 2 Desplz en z=0.0
Node 3 Desplz en z=0.0
Node 4 Desplz en z=0.0
nivel 1
Node 5 Desplz en z=-5.639493748902849
Node 6 Desplz en z=-5.639493748902826
Node 7 Desplz en z=-5.639493748902836
Node 8 Desplz en z=-5.639493748902844
27791.10400000002

Out[8]:

<Axes3DSubplot:xlabel='X', ylabel='Y'>

8.-ANALISIS DE EIGENVALUE

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 13/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

In [9]:

N = 4
omegaSquared = ops.eigen(N)
#omegaSquared = ops.eigen('-fullGenLapack',N)
for mode in range(N):
omega = omegaSquared[mode]**0.5
T = 2*np.pi/omega
print(f'Period, mode {mode+1} = {T}')
M = 15
N = 15
opsv.plot_mode_shape(mode+1,fig_wi_he=(M,N))

ndf = 4
N = 4

for n in range(N):
Mn = 0.0
Ln = 0.0
for nd in ops.getNodeTags():
ndMass = ops.nodeMass(nd)
ndEigen = ops.nodeEigenvector(nd,n+1)
Ln += ndEigen[0]*ndMass[0]
for dof in range(ndf):
Mn +=(ndEigen[dof]**2)*ndMass[dof]
Gamman = Ln/Mn
Tn = 2*np.pi/omegaSquared[n]**0.5
print(f'Mode {n+1}, Tn = {Tn}, Mn = {Mn}, Gamma = {Gamman}')

Period, mode 1 = 1.3504085943235875


Period, mode 2 = 1.3500458255764325
Period, mode 3 = 0.7543543246780616
Period, mode 4 = 0.33500439992951964
Mode 1, Tn = 1.3504085943235875, Mn = 1.000000000000002, Gamma = -7.462973692279285e-05
Mode 2, Tn = 1.3500458255764325, Mn = 0.9999999999999988, Gamma = -1.6361113885598433
Mode 3, Tn = 0.7543543246780616, Mn = 1.0, Gamma = 1.1530799752523802e-10
Mode 4, Tn = 0.33500439992951964, Mn = 1.0000000000000009, Gamma = 9.110891241306732e-10

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 14/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

9.-CALCULO DEL COEFICIENTE DE RAYLEIGH

In [10]:

#Amortiguamientos para nodos 1 y 2 (2%)


zeta1 = 0.02 # Nodo 1
zeta2 = 0.02 # Nodo 2

omega1 = 2*np.pi/(5.0*sec)
omega2 = 2*np.pi/(0.5*sec)

#Calculo de los coeficientes de Rayleigt


B = np.zeros(shape=(2,2))
B[0,0] = 1/omega1; B[0,1] = omega1
B[1,0] = 1/omega2; B[1,1] = omega2

b = np.zeros(2)
b[0] = 2*zeta1
b[1] = 2*zeta2

a = np.linalg.solve(B,b)

print(f'a = {a}')

a = [0.04569589 0.00289373]

10.- RESPUESTA A CARGAS LATERALES (PUSHOVER)

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 15/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

In [11]:

# M KT KI Kn
ops.rayleigh(a[0],0.0,0.0,a[1])

# Vectores de ploteo
uPlot = []
VbPlot = []

dt = 0.05*sec # Cortante basal


Tfinal = 180*sec # Desplazamiento del tanque

ops.timeSeries('Linear',777,'-factor',0.3*g/min)
ops.pattern('UniformExcitation',7777,1,'-accel',777)
ops.analysis('Transient')

Nsteps = 3600 #Tfinal/dt

for i in range(Nsteps):
ok=ops.analyze(1,dt)
if ok < 0:
break
ops.reactions('-dynamic')

u = ops.nodeDisp(46,1) # Desplazamiento de azotea


Vb = ops.nodeReaction(1,1) + ops.nodeReaction(2,1) + ops.nodeReaction(3,1) + ops.nodeReaction(4,1) # Cortante basal

# Guardar para ploteo


uPlot = np.append(uPlot,u)
VbPlot = np.append(VbPlot,Vb)

plt.figure()
plt.plot(-uPlot,VbPlot,linewidth=2)
plt.xlabel('Desp Azotea (mm)')
plt.ylabel('Cortante Basal (kN)')
#plt.xlim(0,17)
plt.grid()

#opsv.plot_defo(10)
M = 35
N = 35
opsv.plot_defo(fig_wi_he=(M,N))

WARNING analysis Transient - no Integrator specified,


TransientIntegrator default will be used
WARNING: CTestNormDispIncr::test() - failed to converge
after: 7 iterations current Norm: 0.00112562 (max: 1e-08, Norm deltaR: 0.0510019)
NewtonRaphson::solveCurrentStep() -the ConvergenceTest object failed in test()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 56.25
OpenSees > analyze failed, returned: -3 error flag

Out[11]:

6.007034317502477

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 16/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

In [12]:

ops.remove('loadPattern',777)
ops.reset()

11.- ANALISIS DE RESPUESTAS A ACELERACIONES DE TERRENO (TIEMPO-HISTORIA) NO LINEAL

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 17/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 18/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook

In [13]:

# M KT KI Kn
ops.rayleigh(a[0],0.0,0.0,a[1])

# Definir el registro
# dt = 0.02 es la digitalizacion del registro

ops.timeSeries('Path',5,'-dt',0.02,'-filePath','tabasFN.txt','-factor',1.0*g)
ops.pattern('UniformExcitation',88,1,'-accel',5) # 1 es para la direccion x

ops.timeSeries('Path',6,'-dt',0.02,'-filePath','tabasFP.txt','-factor',1.0*g)
ops.pattern('UniformExcitation',888,2,'-accel',6) # 2 es para la direccion y

ops.integrator('Newmark',0.50,0.25)
ops.analysis('Transient') # Auntomatica utiliza Newmark Accel Cons gamma=1/2, beta =1/4

tPlot = []
uxPlot = []
VbxPlot = []
Pl11Plot = []
Pl12Plot = []
Pl13Plot = []
Pl14Plot = []

tPlot = []
uyPlot = []
VbyPlot = []

# Retorna el tiempo
t = ops.getTime()

# Delta de t de analisis y duracion


dt =0.01*sec
Tfinal = 60.0*sec

while t < Tfinal:


ok = ops.analyze(1,dt) #1 es el paso, es decir un paso
if ok < 0:
break
ops.reactions()

t = ops.getTime() # Tiempo actual


ux = ops.nodeDisp(46,1) # Desplazamiento de techo, es decir en el nudo 46
Vbx = ops.nodeReaction(1,1) + ops.nodeReaction(2,1) + ops.nodeReaction(3,1) + ops.nodeReaction(4,1) # Cortante basal
uy = ops.nodeDisp(46,2) # Desplazamiento de techo, es decir en el nudo 46
Vby = ops.nodeReaction(1,2) + ops.nodeReaction(2,2) + ops.nodeReaction(3,2) + ops.nodeReaction(4,2) # Cortante basal

P1 = ops.basicForce(1)[0]
P2 = ops.basicForce(2)[0]
P3 = ops.basicForce(3)[0]
P4 = ops.basicForce(4)[0]

# Guardar los vectores para ploteo


tPlot = np.append(tPlot,t)
uxPlot = np.append(uxPlot,ux)
VbxPlot = np.append(VbxPlot,Vbx)
uyPlot = np.append(uyPlot,uy)
VbyPlot = np.append(VbyPlot,Vby)
Pl11Plot = np.append(Pl11Plot,P1)
Pl12Plot = np.append(Pl12Plot,P2)
Pl13Plot = np.append(Pl13Plot,P3)
Pl14Plot = np.append(Pl14Plot,P4)

plt.figure()
plt.plot(tPlot,uxPlot,color='green',label="Direccion(X)-ux vs t")
plt.plot(tPlot,uyPlot,color='red',label="Direccion(Y)-uy vs t")
plt.title('Historia de Respuestas de desplazamientos de techo en las direcciones X e Y')
plt.xlabel('Tiempo, t(sec)',fontsize=13)
plt.ylabel('Despl Azotea X e Y (mm)',fontsize=13)
plt.legend(loc='lower left')
plt.grid()

plt.figure()
plt.plot(tPlot,VbxPlot,color='purple',label="Direccion(X)-Vbx vs t")
plt.plot(tPlot,VbyPlot,color='black',label="Direccion(Y)-Vby vs t")
plt.title('Historia de Respuestas de cortantes basales en las direcciones X e Y')
plt.xlabel('Tiempo, t(sec)',fontsize=13)
plt.ylabel('Corte Basal (kN)',fontsize=13)
plt.legend(loc='lower left')
plt.grid()

plt.figure()
plt.plot(uxPlot,VbxPlot,color='purple',label="Direccion(X)-Vbx vs ux")
plt.plot(uyPlot,VbyPlot,color='green',label="Direccion(X)-Vby vs uy")
plt.title('Respuesta ciclica del cortante basal vs desplazamiento de techo')
plt.xlabel('Despl Azotea X e Y, (mm)',fontsize=13)
plt.ylabel('Corte Basal (kN)',fontsize=13)
plt.legend(loc='lower left')
plt.grid()

d = 30*inch

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 19/23


6/1/23, 21:41 PROYECTO HITO 6-ISELA CHAMBI ROJAS - Jupyter Notebook
t = 0.625*inch
Ag = d*d-(d-2*t)**2
print(Ag*Fy)
plt.figure()
plt.plot(tPlot,Pl11Plot,color='purple',label="Columna SW del segmento 1")
plt.plot(tPlot,Pl12Plot,color='red',label="Columna SE del segmento 1")
plt.plot(tPlot,Pl13Plot,color='green',label="Columna NW del segmento 1")
plt.plot(tPlot,Pl14Plot,color='blue',label="Columna NE del segmento 1")
plt.axhline(y=-Fy*Ag,linestyle='--',color='green')
plt.axhline(y=+Fy*Ag,linestyle='--',color='green')
plt.title('Columnas SW-SE-NW-NE del 1er segmento',fontsize=13)
plt.xlabel('Tiempo, t(sec)',fontsize=13)
plt.ylabel('F_axial (kN)')
plt.legend(loc='upper left')
plt.grid()

#plt.figure()
#plt.plot(tPlot,Pl33Plot)
#plt.title('Elemento 3 - Extremo I')
#plt.xlabel('Tiempo, t(sec)')
#plt.ylabel('Momento (kip-in)')
#plt.grid()

#opsv.plot_defo(10)
M = 35
N = 35
opsv.plot_defo(fig_wi_he=(M,N))

In [14]:

ops.remove('loadPattern',2)
ops.reset()

In [15]:

ops.integrator('LoadControl',0.0)
ops.analysis('Static')
ops.analyze(1)

WARNING can't set static integrator in transient analysis

Out[15]:

12.-COMENTARIOS

12.1 Analisis de eigenvalores

12.1.1-Se define las masas nodales traslacionales(En direcciones X, Y, Z) y la constante gravitacional, g=9.81m/s2, manteniendo las cargas muertas del modelo.

localhost:8888/notebooks/C-801/PROYECTO HITO 6-ISELA CHAMBI ROJAS.ipynb 20/23

También podría gustarte