That you can invert a stiffness matrix does not tell you everything about the numerical stability of a structural model built in OpenSees or any other finite element software. In fact, no finite element software actually forms the inverse of the stiffness matrix, but let's go with the misleading terminology anyway. Consider the beam shown … Continue reading Invertible Does Not Mean Stable
Category: Linear Analysis
No Reaction
As the old mantra goes, "you can displace without deforming, but you can't deform without displacing". Other than a post here and there on particle dynamics, the examples on this site deal with element deformation (or strain), which requires nodal displacement. But what about examples with elements that undergo only rigid body displacement with no … Continue reading No Reaction
The Good, the Not So Bad, and the Full General
Just like shopping for a new refrigerator, picking a linear equation solver in OpenSees (via the system command) can lead to paralysis of choice. And while you can consult Consumer Reports for the pros and cons of refrigerators A, B, and C, the only way to figure out the pros and cons of OpenSees solvers … Continue reading The Good, the Not So Bad, and the Full General
A Load at a Fixed DOF
If you apply a nodal load in the direction of a fixed DOF, will you get a reaction? The answer depends on which structural analysis software you use. Let's see what happens in OpenSees with a minimal working example. All we need is one fixed node and an applied load, P. This is one of … Continue reading A Load at a Fixed DOF
Minimal Thermal Example
For verification purposes, I needed to come up with the fixed-end axial force for a beam subjected to uniform thermal expansion. It's not rocket science, nowhere near an LPU, but a little pencil and paper and the free end axial deflection is $latex \alpha (\Delta T) L$. The fixed-end axial force, to push the free … Continue reading Minimal Thermal Example
What Is a Good Penalty Number?
I often see the penalty constraint handler used with seemingly high penalty numbers like the following: ops.constraints('Penalty',1e18,1e18) I'm not sure why these specific numbers are used so often in scripts, but I suspect these values were used in an old example and have been passed down. And while the 1e18 values might have worked for … Continue reading What Is a Good Penalty Number?
Making a Point Load
The midterm exam in my graduate course on matrix methods of structural analysis was based on a linear-elastic, geometrically linear model of what is essentially Lee's frame. I asked the students to analyze the model using two elements and treat the point load as a member load instead of defining an additional node and applying … Continue reading Making a Point Load
How to Mesh Shells
If you have created a mesh of planar (2D) elements in OpenSees, creating a mesh of shell elements (3D) is not that different. You can use either the block2D command or Minjie's line and mesh commands. However, you will quickly find that the block2D command--2D because the mesh is planar, not because the command is … Continue reading How to Mesh Shells
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
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
