Simulación de Estructuras con OpenSees en Python

Tutorial de Simulación de Estructuras con OpenSees en Python

Introducción

OpenSees es un software de código abierto para el análisis y diseño de estructuras. Es una herramienta poderosa que puede utilizarse para realizar simulaciones de estructuras de todo tipo, desde edificios hasta puentes.

En este tutorial, aprenderemos a utilizar OpenSees para realizar simulaciones de estructuras en Python. Python es un lenguaje de programación de alto nivel que es ideal para la ciencia e ingeniería. Es fácil de aprender y usar, y tiene una gran comunidad de usuarios que han desarrollado una amplia gama de bibliotecas y herramientas para el análisis estructural.

Instalación

Para instalar OpenSees en Python, primero debemos instalar OpenSees en nuestro sistema. Podemos hacerlo descargando el código fuente de la página web de OpenSees y compilando el software. Una vez que tengamos OpenSees instalado, podemos instalar el paquete de Python para OpenSees. Para ello, podemos usar el gestor de paquetes pip:

pip install opensees

Creando un modelo de estructura

Para crear un modelo de estructura en OpenSees, debemos definir la geometría y las propiedades de los elementos estructurales. Podemos hacer esto utilizando la clase Node para definir los nodos y la clase Element para definir los elementos.

Por ejemplo, el siguiente código crea un modelo de una viga simple:

Python
from opensees import *

# Definimos los nodos
node1 = Node(1, 0, 0)
node2 = Node(2, 1, 0)

# Definimos el elemento
element = Element('ElasticBeam2', 1, node1, node2, 1000, 10000, 0.01)

# Agregamos el elemento al modelo
model = Model()
model.addElement(element)

Este código crea un modelo con dos nodos, uno en (0, 0) y otro en (1, 0). El elemento es una viga elástica con una longitud de 1 metro, una sección transversal de 100 mm x 100 mm y un módulo de elasticidad de 10000 MPa.

Aplicando cargas y condiciones de borde

Una vez que hemos creado un modelo de estructura, podemos aplicar cargas y condiciones de borde. Podemos hacer esto utilizando las clases Load y Constraint.

Por ejemplo, el siguiente código aplica una carga de 1000 kN en el nodo 2:

Python
# Definimos la carga
load = Load(2, 1000)

# Aplicamos la carga al modelo
model.addLoad(load)

Este código aplica una carga de 1000 kN en el nodo 2. La dirección de la carga se determina por el signo del valor de la carga.

También podemos aplicar condiciones de borde a los nodos. Por ejemplo, el siguiente código fija el nodo 1 en su posición:

Python
# Definimos la condición de borde
constraint = Constraint('Fixed', 1)

# Aplicamos la condición de borde al modelo
model.addConstraint(constraint)

Este código fija el nodo 1 en su posición. La condición de borde se determina por el tipo de condición de borde.

Realizando la simulación

Una vez que hemos aplicado cargas y condiciones de borde a nuestro modelo, podemos realizar la simulación. Podemos hacer esto utilizando el método analyze() de la clase Model.

El siguiente código realiza una simulación de la viga simple que creamos anteriormente:

Python
# Realizamos la simulación
model.analyze(1)

Este código realiza una simulación de la viga simple con un paso de tiempo de 1 segundo.

Obteniendo los resultados

Una vez que se ha realizado la simulación, podemos obtener los resultados. Podemos hacerlo utilizando los métodos getNodalReactions() y getNodalDisps() de la clase Model.

El siguiente código obtiene las reacciones en los nodos de la viga simple:

Python
# Obtenemos las reacciones en los nodos
reactions = model.getNodalReactions()

# Imprimimos las reacciones
print(reactions)

Este código imprime las reacciones en los nodos de la viga simple.

Conclusión

En este tutorial, aprendimos a utilizar OpenSees para realizar simulaciones de estructuras en Python. OpenSees es una herramienta poderosa que puede utilizarse para realizar simulaciones de estructuras de