Adding New Truss Types

See the following discussion between Brooks & Eva about how to add new types of trusses (or portal frames) to the wizard templates: Truss Wizard Development Discussion This recording covers the development workflow for extending the wizard templates with new structural configurations.

Common Issue: Self-Weight Toggle Error

Problem Description

Error when toggling to “No” in “Include Self-Weight” (works when it’s “Yes”) You may experience this error when toggling to not consider self-weight in a truss:
Solver validation failed error

Root Cause Analysis

According to Brooks, this is why the error happens and how to understand it:

Short Answer

The truss is too long and slender and is unstable in pure axial action, but not when bending action is considered.

Long Answer

This truss has been modeled with all joints pinned - and this is the problem with the academic approach of modeling every joint in a truss as pinned. As you make the truss longer and more slender, the mathematics for analyzing that truss become progressively more unstable (i.e., minuscule changes or errors in loads, stiffnesses, or support conditions become massively amplified).
Technical Details: To keep our solvers efficient, we’re only using 16-bit floating point numbers in our solver calculations. When you have numbers in a solver equation that differ in magnitude by more than about 10^12, then the basic precision of floating point numbers becomes enough to cause an unstable mathematical equation to explode and give nonsense results.
In matrix mathematics, this is referred to as having a ‘poorly-conditioned matrix’. When the stiffness matrix in FEA is poorly-conditioned enough, then we can’t perform FEA. We do capture when the stiffness matrix has exploded - and that’s what the “Solver validation failed” message basically means.

Why Self-Weight Affects Stability

Why would it work with self-weight applied but not without? anaStruct supports two types of elements:
  1. Beam elements - support both axial and bending loads
  2. Truss elements - ONLY support axial loads
We use truss elements if:
  • An element’s connectivity is pin-pin, AND
  • There are no lateral loads
When you switch self-weight on and off, you’re switching between beam and truss elements, and switching whether or not bending degrees of freedom are considered in the FEA analysis.

Solutions for Users

What could a user do to make this analysis work?
  1. Include self-weight or other lateral loads on at least all the chord elements
  2. Change chord elements to be continuous, which probably also reflects reality better
  3. Use another FEA package - Most FEA packages that aren’t cloud-based use 64-bit numbers and are able to handle more instability in their analyses

Template Development Considerations

When developing truss wizard templates:
  • Consider the stability implications of pin-pin connections
  • Account for the difference between beam and truss element behavior
  • Provide appropriate warnings or guidance for unstable configurations
  • Consider default settings that promote stable analysis (e.g., including self-weight by default)
The truss wizard is a good example of how engineering theory (all-pinned truss analysis) sometimes conflicts with numerical stability requirements in real-world software implementation.