Many OpenSees use cases, from the embarrassingly parallel to large, high fidelity models, require high performance computing (HPC). But even today, HPC remains out of reach for many OpenSees users for a variety of reasons. If you or your organization is able to purchase HPC hardware, the overhead to maintain and operate the hardware remains … Continue reading Run OpenSees in the Cloud
A Rigid Bar Walks Into a Bar
OpenSees has two rigidLink commands that enforce constraints between a primary node (pNode) and a secondary node (sNode). ops.rigidLink('-beam',pNode,sNode) ops.rigidLink('-bar',pNode,sNode) The beam option works well, enforcing linear kinematic constraints as if the two nodes were connected by a beam of infinite axial and flexural stiffness. The bar option should give constraints assuming only infinite axial … Continue reading A Rigid Bar Walks Into a Bar
My Favorite Ternary Operation
Most native C++ operations are binary, taking two arguments, e.g., a + b, or unary, taking one argument, e.g., a++. But C++ (and many other languages) has a native "conditional operator", which is ternary, taking three arguments. Known simply as ?:, the conditional operator has the following syntax (condition) ? true_outcome : false_outcome; The conditional … Continue reading My Favorite Ternary Operation
How to Bend Beams in 3D
Most structural frame models are analyzed in two dimensions (2D), for a variety of legitimate reasons. But sometimes, you have to go to three dimensions (3D). And the most confusing thing about making that jump in OpenSees is the geometric transformation and its "vector in the x-z plane". Instead of going into the details of … Continue reading How to Bend Beams in 3D
Pity the Reader
Kurt Vonnegut was a 20th century American author, best known for Slaughterhouse-Five. Although Vonnegut passed away in 2007, one of his former writing students, Suzanne McConnell, published in 2019 Pity the Reader: On Writing with Style, a collection of Vonnegut's writing advice. You will find the ground work for a chapter or two of Pity … Continue reading Pity the Reader
Shutting Off the Containment Unit
If you've used OpenSees--even if you're a geotech--you've used the force-based element. When Remo implemented the force-based element, it was the only material nonlinear frame element available in OpenSees (G3 at the time); thus, the original name nonlinearBeamColumn. Only after a standard displacement-based frame element (dispBeamColumn) was added did we change the name from nonlinearBeamColumn … Continue reading Shutting Off the Containment Unit
Not Everything Should Be a Direct Translation
Like learning another language, not everything in OpenSees, and programming in general, is a direct translation from textbooks. Your mother tongue could be $latex {\bf x} = {\bf A}^{-1}{\bf b}$, but you should never invert the matrix then multiply. Instead, call an equation solver. For small matrices in OpenSees, use A.Solve(b, x) from the Matrix … Continue reading Not Everything Should Be a Direct Translation
Pruning OpenSees
Most OpenSees pull requests add to the code base. Often incremental and sometimes innovative, the new additions keep OpenSees moving forward, offering something for everyone. But it's rare that we remove code. Although it would be great to purge OpenSees of Concrete23 and all its unused variations, to prune code in frequently used OpenSees classes … Continue reading Pruning OpenSees
Modal and Stiffness Proportional Damping
OpenSees allows you to use both modal damping and stiffness proportional damping in a dynamic analysis. This combination of damping models is useful when you want to control damping in the low frequency modes and not let undamped high frequency response tarnish the analysis. Consider a simplified model of a 40 story building. The story … Continue reading Modal and Stiffness Proportional Damping
Eigenvalues of the Stiffness Matrix
Students are exposed to eigenvalues and eigenvectors a few times through their structural engineering education. After the math department's obligatory treatment to sophomores with definitions, characteristic polynomials, and toy matrices, two to three years pass before students see eigenanalysis again as first year graduate students: Structural dynamics - find natural modes of vibration of a … Continue reading Eigenvalues of the Stiffness Matrix
