0% ont trouvé ce document utile (0 vote)
10 vues1 page

Modélisation et analyse avec OpenSeesPy

Le document présente un script Python utilisant OpenSeesPy pour modéliser une structure en 2D avec des nœuds, des éléments, des matériaux et des conditions aux limites. Il inclut également des charges appliquées et effectue une analyse statique, suivie de la visualisation des résultats à l'aide de graphiques. Les résultats incluent des déplacements, des réactions et des efforts dans le modèle.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues1 page

Modélisation et analyse avec OpenSeesPy

Le document présente un script Python utilisant OpenSeesPy pour modéliser une structure en 2D avec des nœuds, des éléments, des matériaux et des conditions aux limites. Il inclut également des charges appliquées et effectue une analyse statique, suivie de la visualisation des résultats à l'aide de graphiques. Les résultats incluent des déplacements, des réactions et des efforts dans le modèle.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

!

pip install openseespy opsvis matplotlib


# -*- coding: utf-8 -*-
"""
Created on Mon May 12 01:17:47 2025
@author: daniel saavedra maldonado UMSA
Ref: Prof. Michael Scott
"""

import [Link] as ops


import opsvis as opsv
import [Link] as plt

[Link]()

# CREAR MODELO

[Link]('basic', '-ndm', 2, '-ndf', 2)

#===========================================================================
# CREAR NODOS
#===========================================================================

[Link](1, 0., 0.)


[Link](2, 0., 0.5)
[Link](3, 0., 1.0)
[Link](4, 0., 1.5)
[Link](5, 0., 1.75)
[Link](6, 0.4, 0.)
[Link](7, 0.4, 0.5)
[Link](8, 0.4, 1.0)
[Link](9, 0.4, 1.5)
[Link](10, 0.4, 1.75)
[Link](11, 0.8, 0.)
[Link](12, 0.8, 0.5)
[Link](13, 0.8, 1.0)
[Link](14, 0.8, 1.5)
[Link](15, 0.8, 1.75)
[Link](16, 1.25, 0.)
[Link](17, 1.25, 0.5)
[Link](18, 1.25, 1.0)
[Link](19, 1.25, 1.5)
[Link](20, 1.25, 1.75)

# - plot model
opsv.plot_model()
[Link]()

#===========================================================================
# CREAR MATERIAL
#===========================================================================

[Link]('ElasticIsotropic', 1, 150000, 0.45)

#===========================================================================
# CREAR ELEMENTOS
#===========================================================================

[Link]('quad', 1, 1, 6, 7, 2, 1, 'PlaneStress', 1)
[Link]('quad', 2, 2, 7, 8, 3, 1, 'PlaneStress', 1)
[Link]('quad', 3, 3, 8, 9, 4, 1, 'PlaneStress', 1)
[Link]('quad', 4, 4, 9, 10, 5, 1, 'PlaneStress', 1)
[Link]('quad', 5, 6, 11, 12, 7, 1, 'PlaneStress', 1)
[Link]('quad', 6, 7, 12, 13, 8, 1, 'PlaneStress', 1)
[Link]('quad', 7, 8, 13, 14, 9, 1, 'PlaneStress', 1)
[Link]('quad', 8, 9, 14, 15, 10, 1, 'PlaneStress', 1)
[Link]('quad', 9, 11, 16, 17, 12, 1, 'PlaneStress', 1)
[Link]('quad', 10, 12, 17, 18, 13, 1, 'PlaneStress', 1)
[Link]('quad', 11, 13, 18, 19, 14, 1, 'PlaneStress', 1)
[Link]('quad', 12, 14, 19, 20, 15, 1, 'PlaneStress', 1)

#===========================================================================
# CONDICIONES DE BORDE
#===========================================================================

[Link](1, 1, 1)
[Link](6, 1, 1)
[Link](11, 1, 1)
[Link](16, 1, 1)

[Link](2, 17, 1, 2)
[Link](3, 18, 1, 2)
[Link](4, 19, 1, 2)
[Link](5, 20, 1, 2)

#===========================================================================
# CARGAS
#===========================================================================

[Link]('Linear', 1)
[Link]('Plain', 1, 1)
[Link](5, 150, -50.)
[Link](20, 0., -50.)

#===========================================================================
# ANALYSIS
#===========================================================================

[Link]('Static')
[Link](1)

[Link]()

u_desplaz__extizq = [Link](5, -1)


u_desplaz__extder = [Link](20, -1)
R_1 = [Link](1, -1)
R_6 = [Link](6, -1)
R_11 = [Link](11, -1)
R_16 = [Link](16, -1)

#===========================================================================
# GRAFICOS
#===========================================================================

opsv.plot_model()
[Link]('equal')
[Link]('x [m]')
[Link]('y [m]')
[Link]('Discretizacion')

opsv.plot_load()
[Link]('x [m]')
[Link]('y [m]')
[Link]('Cargas en el modelo')

opsv.plot_defo(unDefoFlag=1)
[Link]('equal')
[Link]('x [m]')
[Link]('y [m]')
[Link]('Modelo deformado')

# Graficar esfuerzos
for jstr in ['sxx', 'syy', 'sxy', 'vmis']:
[Link]()
opsv.plot_stress(jstr)
[Link]('x [m]')
[Link]('y [m]')
[Link](f'{jstr}')

[Link]()

Vous aimerez peut-être aussi