OpenSees

Using my gmshtranslator python tool to interface gmsh with opensees.

Using my gmshtranslator python tool to interface gmsh with opensees.

Mon, 26 Feb 2018 by jaabell / Tutorials

I wrote the gmshtranslator tool a while back during my …

Read more

Video of 2-D SSI model of an RC Shear Wall Building

Thu, 09 Nov 2017 by jaabell / ResearchHighlight

The RC shear-wall building is modeled in OpenSees using non-linear fiber based beam column elements. Soil is modeled as a continuum using quad elements and linear stress-strain relationship. Soil shear wave-speed is varied in depth such as to obtain a \(V_{s30}\) consistent with a class B site according to chilean seismic code. Lysmer-Kulhemeyer dashpots are used along the soil boundary to model seismic radiation and earthquake wave-field input.

The performance of the building will be assessed for varying site fundamental periods. This is an aspect of SSI that is not covered by the chilean seismic code, and has been shown to be a problem in past earthquakes.

This is part of an on-going study with Prof. Carolina Magna from Adolfo Ibañez Unversity and her MS student Miguel Ángel Rodriguez from UDP.

Read more

New cable element in OpenSees

Thu, 07 Sep 2017 by jaabell / ResearchHighlight

With my student, Pablo Ibañez, we implemented a new catenary cable element in OpenSees. This element is based on the work by Salehi et al[1].

The stiffness of this element is obtained using a flexibility formulation. Basically the shape of the cable is determined by the integral:

$$ \newcommand{\pare}[1]{\left( #1 \right)} \newcommand{\brak}[1]{\left[ #1 \right]} \newcommand{\brac}[1]{\left\lbrace #1 \right\rbrace} \newcommand{\vect}[1]{\boldsymbol{#1}} \newcommand{\uv}[1]{\hat{\boldsymbol{#1}}} \newcommand{\ud}{\,\mathrm{d}} \begin{align*} \vect{x}(s) = \vect{x}_1 - \int_0^s \dfrac{\vect{w}s + \vect{f}}{\Vert \vect{w}s + \vect{f} \Vert^2}\pare{\dfrac{\Vert \vect{w}s + \vect{f} \Vert}{EA} + \pare{1 + \alpha \Delta T}} \ud s \\ \vect{w} = \brak{w_1,\, w_2,\, w_3}^T \qquad \vect{f} = \brak{f_1,\, f_2,\, f_3}^T \end{align*} $$

Where \(\vect{x_1}\) is the position of the first node of the cable, \(\vect{w}\) is the weight vector in each direction, \(EA\) is the stiffness, \(\alpha \Delta T\) is the change in strain due to temperature and \(\vect{f}\) is the force vector at the start node. This equation is iterated (with the forces as variable) upon until the the shape of the cable matches the nodal postiions imposed by the finite element program (trial displacements). Then it is used to derive a stiffness matrix.

The element, as is, passes all our static verification tests. With the additional assumption of a lumped-mass matrix, we're currently working on a dynamic verification suite as well as some validation experiments.

The animation above was created using OpenSees to simulate the cable and Blender to render it.

Reference

[1] Salehi Ahmad Abad, M., Shooshtari, A., Esmaeili, V., & Naghavi Riabi, A. (2013). Nonlinear analysis of cable structures under general loadings. Finite Elements in Analysis and Design, 73, 11–19. https://doi.org/10.1016/j.finel.2013.05.002

Read more

OpenSees coming to python!

Sat, 14 Jan 2017 by jaabell / Blog

One of the gripes a lot of people have with …

Read more