Most beam-column elements in OpenSees take mass density, $latex \rho$ (mass per unit length), as an input. The elements then return lumped mass $latex \rho L/2$ for the translational DOFs at the element ends. The elasticBeamColumn element can also return a consistent mass matrix with the -cMass input option. ops.element('elasticBeamColumn',tag,...,'-mass',rho,'-cMass') The dispBeamColumn and forceBeamColumn elements … Continue reading Distributed Mass Beam Vibration
It’s OK to Be Negative
A common question is whether or not OpenSees allows negative tags for nodes, elements, materials, time series, patterns, etc. in a model. The obvious answer is "Don't think, just throw". But the polite answer is "Yes, you can define model objects with negative tags". Below is a minimal example where all tags are negative. import … Continue reading It’s OK to Be Negative
Flipping Rotation Axes
Zero length rotational springs are a popular approach to model concentrated plasticity in frame members. Although distributed plasticity formulations are not perfect either, the zero length concentrated plasticity approach has a number of issues: implicit plastic hinge length (at best, it's a unitless 1) and having to define equalDOF constraints. There's also the outcomes of … Continue reading Flipping Rotation Axes
Tuned Damper Models
An inerter is a passive vibration control device, where the force is proportional to relative acceleration, i.e., $latex F = b(\ddot{u}_2-\ddot{u}_1)$. The inertance, b, has units of mass. While working on inerter models in OpenSees, I found a paper by Lazar et al (2013) in which tuned inerter dampers (TID) were calibrated to give similar … Continue reading Tuned Damper Models
Right, then Left
I don't expect every OpenSees contributor to be an expert coder, but I see some dubious coding more frequently than I should. And when I see questionable coding practices, I will call out the offenses so that maybe, just maybe, someone else will consider leaving the cargo cult. For example, the author of CargoConcrete23 wrote … Continue reading Right, then Left
Handling a Doubt
After a post on the "constraint matrix not identity" warning message, a couple people followed up (one by post comment and the other by direct communication) that they didn't realize the Plain constraint handler works with equalDOF constraints. The Plain constraint handler has not always been able to handle equalDOF constraints--I vaguely recall Frank modifying … Continue reading Handling a Doubt
Pleasing the Compiler
Around the transition from G3 to OpenSees, the Visual Studio (VS) compiler was not fully compliant with the then current ISO C++ standard. There were perhaps many items out of compliance, but the non-compliance that drove us nuts was the scoping rule on variables defined in the initialization statement of for loops. The VS compiler … Continue reading Pleasing the Compiler
Constraint Matrix Not Identity
The equalDOF, rigidLink, and rigidDiaphragm commands constrain one or more nodes to move in direct proportion to the motion of another node. In the case of the equalDOF command, the constraint is of the form us = up, where us is the displacement of the secondary node and up is the displacement of the primary … Continue reading Constraint Matrix Not Identity
The PFEM in OpenSees
The Particle Finite Element Method (PFEM), developed by researchers at CIMNE in Barcelona, is an effective approach for simulating fluid-structure interaction (FSI). Because it is Lagrangian, as opposed to Eulerian, the PFEM is a natural choice for coupling with the structural finite elements in OpenSees. And the coupling is monolithic, i.e., in one system of … Continue reading The PFEM in OpenSees
Do It Your Self-Weight
Most solid elements in OpenSees don't do body forces very well, if at all. Among elements that have body forces, the implementation and execution are inconsistent. With surface loads, the story is even more convoluted. However, OpenSees is pretty good at dynamics, so all solid elements handle mass density. Yes, the implementations are inconsistent because … Continue reading Do It Your Self-Weight
