FEA Guide
Overview
OpenBrIM's FEA (Finite Element Analysis) system provides comprehensive structural analysis capabilities for bridge engineering. The FEA module integrates seamlessly with the parametric engine (ParamML), allowing AI agents to create complex analysis models using XML-based object definitions.
This guide explains the FEA objects, analysis types, and patterns for AI agents who will create finite element models and perform structural analysis.
Key Capabilities:
Analysis Types: Static linear, eigenvalue/modal, response spectrum, pushover, staged construction
Element Library: Beam, truss, shell, spring elements
Advanced Features: Automatic meshing, live load analysis, prestressing, time-dependent effects
Integration: Full parametric control via ParamML expressions
Core Concepts
1. FEA Object Hierarchy
All FEA objects follow the OpenBrIM object model:
Objects have unique IDs, Names (N), and Types (T)
Properties are defined as parameters (P elements)
Objects reference each other by name using the
@ObjectName|ObjectTypesyntax
2. Coordinate Systems
Nodes can be positioned using different coordinate systems:
Global Coordinates (X, Y, Z): Project-wide XYZ coordinates
Alignment-Based Coordinates (XLocal, YLocal, ZLocal): Coordinates relative to a bridge alignment/station
Node Local Coordinate System: Each node can have its own local coordinate system for custom orientation
3. Degrees of Freedom (DOF)
Each node has 6 DOF:
Translations: Tx (index 0), Ty (index 1), Tz (index 2)
Rotations: Rx (index 3), Ry (index 4), Rz (index 5)
These indices are used in properties like Dir in pushover analysis.
Core FEA Objects
1. Node (Finite Element Node)
Nodes are points in space with 6 degrees of freedom (3 translations + 3 rotations).
Object Type: Node Prefix: NODE
Key Properties
Coordinates
X, Y, Z
Number
Global coordinates
0
XLocal, YLocal, ZLocal
Number
Alignment-based coordinates (relative to bridge alignment/station)
0
CoorSys
OpenBrIM.CoorSys
Coordinate system reference
-
Constraints
Tx, Ty, Tz
Number
Translation constraints
0 (free)
Rx, Ry, Rz
Number
Rotation constraints
0 (free)
Node Linking
TxLink, TyLink, TzLink
Node
Couple translation DOF to another node
-
RxLink, RyLink, RzLink
Node
Couple rotation DOF to another node
-
Gaps
TxGap, TyGap, TzGap
Number
Gap distance for nonlinear contact
0
RxGap, RyGap, RzGap
Number
Rotational gap
0
Stiffness
StiffnessMatrix
6x6 Matrix
Custom stiffness matrix
-
Grouping
Group
FEGroup
Element group membership
-
Constraint Encoding
Constraint values have special meanings:
-1: Free (completely unconstrained)
0: Free (same as -1, default)
1: Fixed (fully restrained)
Positive value: Spring stiffness (units: Force/Length for translations, Force*Length/Radian for rotations)
Spring Stiffness Formula:
XML Examples
Simple Pinned Support (Fixed translations, free rotations):
Fixed Support (All DOF restrained):
Spring Support:
6x6 Stiffness Matrix Support:
Linked Nodes (Slave-Master Relationship):
Advanced Node Attributes
MergeNearest - Controls node merging behavior during mesh compilation:
MergeSameLoc - Controls automatic merging of coincident nodes:
Best Practices:
Set
MergeNearest=false(default) for all primary structural nodesSet
MergeNearest=truefor load application points and boundary condition nodesSet
MergeSameLoc=falseonly when you need separate nodes at identical coordinates (e.g., hinges, springs)Use
StiffnessMatrixfor complex foundation springs with coupled DOF behaviorFor simple uncoupled springs, use individual Tx/Ty/Tz/Rx/Ry/Rz values instead
2. FELine (Beam/Truss Element)
1D finite elements connecting two nodes. Supports beams, trusses, cables, and inelastic elements.
Object Type: FELine Prefix: LINE
Element Types
FEType property values:
0 (BEAM): Beam element with bending, axial, and shear
1 (TRUSS): Truss element (axial only, pin-pin)
2 (COMPTRUSS): Compression-only truss
3 (TENSTRUSS): Tension-only truss
4 (CABLE): Cable element (tension-only, catenary)
5 (INELASTIC): Inelastic beam (plastic hinges)
Key Properties
Connectivity
Node1, Node2
Node
End nodes
Required
Element Type
FEType
FELineType
Element formulation
BEAM
Cross-Section
Sec
SEC.Section
Primary cross-section
Required
Sec2
SEC.Section
Secondary section at Node2 (tapered)
-
SecN
Text
Section reference name
-
Material
Material
MAT.Material
Material reference
-
PropMatE
Number
Young's modulus override
-
PropMatNu
Number
Poisson's ratio override
-
Orientation
Orientation
Number
Rotation angle around element axis (radians)
0
Offsets
Node1OffX, Node1OffY, Node1OffZ
Number
Global offset at Node1
0
Node2OffX, Node2OffY, Node2OffZ
Number
Global offset at Node2
0
Node1LocalOffX/Y/Z
Number
Local offset at Node1
0
Node2LocalOffX/Y/Z
Number
Local offset at Node2
0
End Releases
Node1Tx through Node1Rz
Number
Release at Node1 (6 DOF)
0
Node2Tx through Node2Rz
Number
Release at Node2 (6 DOF)
0
UseLocalRelease
Boolean
Releases in local coordinates
false
Grouping
Group
FEGroup
Element group
-
End Release Encoding
End release values have special meanings:
-1: Released (free, hinge)
0: Connected (rigid connection, default)
Positive value: Rotational spring stiffness
Common Release Patterns:
Pin-Pin Truss: Node1Rz=-1, Node2Rz=-1
Cantilever End: Node2Rx=-1, Node2Ry=-1, Node2Rz=-1
Semi-Rigid Connection: Node2Rz=50000 (spring stiffness)
XML Examples
Simple Beam:
Truss Element:
Beam with End Releases (Simple Support):
Tapered Beam:
Beam with Offsets:
Advanced FELine Attributes
IsRigid - Creates rigid elements with infinite stiffness:
Use Cases for Rigid Elements:
Rigid end offsets for eccentric connections
Rigid diaphragms
Master-slave constraints
Rigid zones at beam-column connections
Best Practices:
Still requires a Section assignment (though properties are ignored)
Use short lengths to minimize numerical issues
Set BetaAngle appropriately even for rigid elements
BetaAngle - Rotates local element coordinate system about longitudinal axis:
Element Local Coordinate System:
X-axis: Along element (Node1 → Node2)
Y-axis: Perpendicular to X, default vertical
Z-axis: Right-hand rule from X and Y
BetaAngle: Rotation about X-axis (radians)
When BetaAngle is Critical:
I-beams, channels, and asymmetric sections
Skewed bridges
Members with specific orientation requirements
Wind/seismic load direction alignment
Caution: Incorrect BetaAngle can cause strong-axis bending in the weak direction!
CastingDay - Defines when concrete was cast for time-dependent analysis:
Staged Construction Analysis:
How CastingDay Works:
Element age = Current Stage Day - CastingDay
Used to calculate concrete strength, modulus, creep, and shrinkage
Elements must be cast (age ≥ 0) before being loaded
Different ages produce different time-dependent behavior
Applications:
Staged construction modeling
Creep and shrinkage analysis
Concrete strength gain over time
Construction sequence effects
Node Release Patterns:
The end release properties (Node1Rx through Node2Rz) control connection behavior:
Values:
-1: Released (free, pin)0: Connected (rigid, default for most)Positive value: Semi-rigid spring stiffness
Common Connection Types:
Best Practices for Releases:
Always specify releases at both ends for clarity
Use
0for true pin connections (moment release)Use positive values for semi-rigid connections based on research/testing
Verify connection behavior matches structural design intent
For cap-to-column connections, match releases to design assumptions (fixed vs. pinned)
3. FESurface (Shell Element)
2D finite elements for plates and shells. Supports quadrilateral (4-node) and triangular (3-node) elements with membrane and bending behavior.
Object Type: FESurface Prefix: SURF
Key Properties
Connectivity
Node1, Node2, Node3, Node4
Node
Corner nodes (counter-clockwise)
Required
Material
Mat
MAT.Material
Material reference
Required
PropMatE
Number
Young's modulus override
-
PropMatNu
Number
Poisson's ratio override
-
Geometry
Thickness
Number
Shell thickness
Required
PropTh
Number
Property thickness override
-
Offsets
Node1-4 OffX, OffY, OffZ
Number
Global offsets at corners
0
Node1-4 LocalOffX/Y/Z
Number
Local offsets at corners
0
Grouping
Group
FEGroup
Element group
-
XML Examples
Quadrilateral Shell:
Triangular Shell:
4. FESpring (Spring Element)
Zero-length spring or connector element with custom stiffness properties.
Object Type: FESpring Prefix: SPRING
Key Properties
Connectivity
Node1, Node2
Node
Connected nodes (can be same node)
Required
Stiffness
Tx, Ty, Tz
Number
Translational stiffness (Force/Length)
0
Rx, Ry, Rz
Number
Rotational stiffness (Force*Length/Radian)
0
StiffnessMatrix
6x6 Matrix
Custom stiffness matrix
-
Gaps
TxGap, TyGap, TzGap
Number
Gap distance for compression/tension
0
RxGap, RyGap, RzGap
Number
Rotational gap
0
Grouping
Group
FEGroup
Element group
-
XML Examples
Simple Vertical Spring:
6-DOF Spring:
Gap Element (Compression Only):
5. FEGroup (Element Grouping)
Hierarchical groups for organizing FE objects. Groups can filter elements based on ParamML expressions.
Object Type: FEGroup Prefix: GROUP
Key Properties
Name
Text
Group name
Required
ParentGroup
FEGroup or Array
Parent group(s)
-
Filter
ParamML.Param
Filter expression
-
AlignmentN
Text
Alignment reference name
-
XML Examples
Simple Group:
Filtered Group:
Hierarchical Groups:
FEGroup Quick Pattern (Bridge-Level Selection)
Bridge-level groups: Define per-type FEGroups on the bridge (e.g.,
TrussFEGroup,CrossFrameFEGroup,DeckFEGroup). Child objects do not create their own groups; they use the bridge FEGroup asParentGroup.Location identity + filter: Export endpoints (
locx1..locz2) and stamp FE elements (theLineinside FELine/FEMeshLine) withX1..Z2. Example filtered group and FELine:FEMeshLine note (X1..Z2 on Line):
Selection step: Construction/Deconstruction collects the selected
*_fegroup_fltrdentries withremovedup(map(...)), wraps them in a ParentGroup FEGroup, and pointsStructureStateto that wrapper; aGuardskips when nothing is selected.Loads: Use per-type load FEGroup (e.g.,
Truss_Temp,CrossFrame_Temp); setParentGroupto the bridge counterpart; aim TemperatureLoad at that FEGroup.Purpose: Default expectation is to act on the selected elements and avoid “everything shares one FEGroup” mistakes. If a step is meant to hit all elements (bridge-scope or mode-based like partial/complete), set selection scope accordingly (selected-only or all).
Mesh Generation Objects
1. FEMesh (Automatic Meshing)
FEMesh manages automatic discretization of geometry into finite elements.
Mesh Data Format
Automatic meshing produces nodes and elements in the following format:
Nodes: Array of [X, Y, Z] coordinates
Elements: Arrays of node indices (0-based)
lines: 2-node line elements
[[n1, n2], ...]triangles: 3-node triangular shells
[[n1, n2, n3], ...]quads: 4-node quadrilateral shells
[[n1, n2, n3, n4], ...]
Note: Element connectivity uses 0-based indexing into the nodes array.
Load Objects
1. AnalysisCase (Base Load Case)
Base class for all analysis types. Contains load case metadata and configuration.
Object Type: AnalysisCase Prefix: SLC (Static Load Case)
Load Type Values
Common LoadType values:
Dead Loads: DL, IL, DW
Live Loads: LL, LP, LLI, LLL, LLP, LLS, LLF, BR, LLH, LLAG, LLPV, LLR
Wind: WS, WL, WI
Seismic: EQ, EL, EP, EV, EH, DD, ES
Prestress: PS, PSLR, PSLO, PSAL
Time-Dependent: SH (Shrinkage), CR (Creep), TU (Temperature)
Construction: CDL, CIL, CLL, CWS, CH, CM
Other: SL (Snow), CT/CV/CE (Collision), RS (Stream), BU (Buoyancy), SFP (Stream Flow), IC (Ice), BL (Blast)
Key Properties
Identification
Name
Text
Load case name
Required
AnalysisID
Text
Unique analysis identifier
Auto
LoadType
LoadTypeEnum
Load classification
None
Analysis Control
Active
Boolean
Enable this analysis
true
Nonlinear
Boolean
Nonlinear analysis
false
Steps
Number
Max load steps
1
Iterations
Number
Max iterations per step
50
ForceTolerance
Number
Force convergence tolerance
0.001
DisplacementTolerance
Number
Displacement tolerance
0.001
Element Selection
ActiveGroup
FEGroup
Elements to analyze
-
Group
FEGroup
Load application group
-
XML Example
2. NodeLoad (Point Load on Nodes)
Concentrated forces and moments applied to nodes.
Object Type: NodeLoad Prefix: NLOAD
Key Properties
LC
AnalysisCase
Parent load case
Required
Node
Node or FEGroup
Target node(s)
Required
Fx, Fy, Fz
Number
Force components
0
Mx, My, Mz
Number
Moment components
0
Sys
Number
Coordinate system (0=Global, 1=Local)
0
XML Examples
Vertical Point Load:
Load on Multiple Nodes (via Group):
Moment Load:
3. PointLoad (Load on Surface)
Load applied at a specific point on FE surfaces. Automatically distributed to underlying elements/nodes.
Object Type: PointLoad Prefix: PLOAD
Key Properties
LC
AnalysisCase
Parent load case
Required
Group
FEGroup
Target surface group
Required
PointX, PointY
Number
Load location on surface
0
Fx, Fy, Fz
Number
Force components
0
Mx, My, Mz
Number
Moment components
0
XML Example
4. Combination (Load Combination)
Linear combination of analysis cases with factors.
Object Type: Combination Prefix: COMB
A combination contains multiple CombinationItem child objects, each specifying a load case and factor.
XML Example
Analysis Types
1. Static Linear Analysis
Basic linear elastic analysis. Default analysis type.
Configuration
Use base AnalysisCase object with:
Nonlinear = false(default)Steps = 1(single step)
XML Example
2. Eigenvalue/Modal Analysis
Extract natural frequencies and mode shapes.
Object Type: AnalysisCaseEigen Prefix: SLC
Mode Extraction Methods
ModeType property values:
"Eigen": Standard eigenvalue extraction
"RitzWYD": Wilson-Yuan-Dickens Ritz vectors
"RitzLWYD": Leger-Wilson-Clough Ritz vectors
"RitzQSRV": Quasi-Static Ritz Vectors (frequency-shifted)
Key Properties
Mode Extraction
Modes
Number
Number of modes to extract
1
ModeType
ModeType
Extraction method
"Eigen"
Gravity
Number
Gravitational acceleration
386.088583
DenseSolver
Boolean
Use dense eigenvalue solver
false
Mass Sources
SelfMassFactor
Number
Self-weight mass factor
1.0
MassCase1-5
AnalysisCase
Additional mass from loads
-
MassCaseFactor1-5
Number
Mass case factors
1.0
Ritz Parameters
AppliedLoad
AnalysisCase
Load pattern for Ritz methods
-
CenteringFreq
Number
Centering frequency for QSRV (rad/s)
-
Response Spectrum
Curve1, Curve2, Curve3
ResponseSpectrumCurve
Spectrum curves (3 directions)
-
Scale1, Scale2, Scale3
Number
Direction scale factors
1.0
BetaAngle
Number
Direction rotation angle (radians)
0
DampingRatio
Number
Constant damping ratio
0.05
DampingCurve
ResponseSpectrumCurve
Variable damping vs frequency
-
Modal Combination
ModalCombType
ResponseSpectrumModalCombMethod
CQC or SRSS
-
SpatialCombType
ResponseSpectrumSpatialCombMethod
ABS or SRSS
-
Modal Combination Methods:
CQC: Complete Quadratic Combination (accounts for modal coupling, use for closely-spaced modes)
SRSS: Square Root of Sum of Squares (assumes uncoupled modes)
Spatial Combination Methods:
ABS: Absolute Sum
SRSS: Square Root of Sum of Squares
Mass Assembly
Total mass matrix assembled from:
Self Mass: Element mass from self-weight
Load Case Mass: Vertical forces converted to mass
Nodal Mass: Explicit mass objects (NodeMass)
NodeMass Object
Object Type: NodeMass Prefix: MASS
Output
Frequencies Table for each mode:
Mode number (1-based)
Frequency (Hz)
Period (seconds)
Cumulative mass participation X, Y, Z (%)
Participation factors X, Y, Z
Mode Shapes stored as displacement results in AnalysisCaseEigenMode objects.
XML Examples
Basic Modal Analysis:
Ritz Vector Analysis:
3. Response Spectrum Analysis
Seismic analysis using response spectrum curves.
ResponseSpectrumCurve Object
Object Type: ResponseSpectrumCurve Prefix: RSAC
Name
Text
Curve name
Required
XAxis
"time" or "frequency"
X-axis type (period or frequency)
"time"
YAxis
"acceleration"
Y-axis type
"acceleration"
MaxX
Number
Maximum period/frequency
16
Curve Data: Define as child Point objects where:
X = Period (seconds) or Frequency (Hz)
Y = Spectral acceleration (g's)
Response Spectrum Configuration
Uses AnalysisCaseEigen with spectrum curves defined.
XML Examples
Response Spectrum Curve (ASCE 7):
Response Spectrum Analysis:
4. Pushover Analysis
Nonlinear static pushover analysis for seismic performance evaluation.
Object Type: AnalysisCasePushover Prefix: PUSH
Key Properties
Control
Node
Node
Reference control node
Required
RefNodeGroup
FEGroup
Or group of control nodes
-
Dir
Number
Control direction (0-5: Fx,Fy,Fz,Mx,My,Mz)
Required
Disp
Number
Target displacement
1
DispControl
Boolean
Use displacement control
false
Load Control
InitFactor
Number
Initial load factor
1
Increment
Number
Load factor increment
1
Solver Settings
Steps
Number
Maximum number of steps
100
Iterations
Number
Max iterations per step
50
ForceTolerance
Number
Force convergence tolerance
0.001
DisplacementTolerance
Number
Displacement tolerance
0.001
Nonlinear
Boolean
Enable nonlinear analysis
true
XML Example
Output:
Pushover curve (load factor vs displacement)
Step-by-step results in
AnalysisCasePushoverStepobjectsDisplacement and force results at each step
5. Staged Construction Analysis
Multi-stage construction with time-dependent material effects (creep, shrinkage, relaxation).
Object Type: ConstructionStage (extends AnalysisCase) Prefix: STAGE
Key Properties
Stage Sequencing
ParentStage
ConstructionStage
Previous construction stage
-
ParentStageOrig
ConstructionStage
Original parent (skips generated)
-
Day
Number
Construction day
28
Substage
Boolean
Is this a substage
false
Environmental
Temperature
Number
Temperature (degrees)
72
Humidity
Number
Humidity (%)
80
Time-Dependent Effects
Creep
Boolean
Include concrete creep
true
Shrinkage
Boolean
Include shrinkage
true
Relaxation
Boolean
Include steel relaxation
true
PTLoss
Boolean
Include PT losses
true
TimeDepE
Boolean
Time-dependent elastic modulus
true
CreepOfTension
Boolean
Creep of tensile forces
false
TimeDepModal
Text
Code reference for formulas
-
Construction
ConstMethod
"none", "equal", "match"
Construction method
"none"
LoadType
LoadTypeEnum
Load type classification
-
Nonlinear
Boolean
Nonlinear analysis
false
Stage Activation
Elements and supports are activated/deactivated using structure state:
Structure State Pattern:
Each stage defines which groups are active/inactive
Stiffnessproperty:true= active,false= deactivatedActive elements contribute to stiffness matrix
Inactive elements removed from analysis
Load Sequencing
Loads are applied to stages using ConstructionStageLoading objects with properties:
Case: The load case to applyFactor: Load factor (default: 1.0)
Time-Dependent Effects
When enabled (via boolean properties), the following effects are calculated:
Creep: Concrete creep using code formulas (CEB-FIP, ACI, etc.)
Shrinkage: Age-dependent shrinkage strains
PT Relaxation: Prestressing steel relaxation over time
PT Losses: Elastic shortening and other prestress losses
XML Examples
Simple 3-Stage Construction:
Staged Construction with Element Removal:
Output:
Cumulative displacements at each stage
Time-dependent deformations (creep, shrinkage)
PT losses over time
Element forces at each construction stage
Materials and Sections
1. Material References
Materials defined in MAT module, referenced by FE elements.
Module: MAT.Material
Key Properties:
Young's modulus (E)
Poisson's ratio (Nu)
Shear modulus (G)
Density
Thermal expansion coefficient
Reference in Elements:
Material is typically assigned through the Section, not directly on FELine. However, you can override material properties:
2. Section References
Cross-sections defined in SEC module for beam elements.
Module: SEC.Section
Key Properties:
Area (A)
Moments of inertia (Ix, Iy, Iz)
Torsional constant (J)
Section moduli
Width property (for distributed loads)
Reference in FELine:
Analysis Results
After running FEA analyses, results must be extracted and organized for design checks and reporting.
Result Types Available:
Nodal displacements: Translations (Tx, Ty, Tz) and rotations (Rx, Ry, Rz)
Nodal reactions: Support forces and moments
Element forces: Axial, shear, moment, torque for beam elements
Element stresses: For shell and solid elements
Modal data: Natural frequencies and mode shapes (eigenvalue analysis)
Result Extraction:
Results are extracted using ParamML functions within expressions. For comprehensive information on extracting and organizing FEA results, refer to the AI-FEA-Results-Guide.md.
Common Result Functions:
force(element, loadCase, component, station?)- Extract specific force componentforcePos(component, element, loadCase, station?)- Extract maximum force valueforceNeg(component, element, loadCase, station?)- Extract minimum force valuestress(loadCase, element, station?)- Extract stress componentsdisp(node, loadCase, component)- Extract nodal displacement
See AI-FEA-Results-Guide.md for:
Complete result extraction function reference
Multi-station extraction patterns
Limit state organization
Concurrent force extraction
Envelope and governing results
Result data structures and indexing
Advanced FEA Objects
1. Tendon (Prestressing)
Prestressed tendon definition and loading.
Object Type: Tendon
Related Objects:
TendonLoad: Prestress force applicationTendonPathPoint: Tendon geometry control points
Properties:
Path geometry (control points)
Prestress force
Jacking stress
Duct diameter
Friction coefficients
2. LiveLoadSurface
Define vehicle travel paths for live load analysis.
Object Type: LiveLoadSurface
Related:
AnalysisCaseLive: Live load analysis configurationDesignLane: Traffic lane definitionsVehicle libraries (AASHTO trucks, etc.)
Properties:
Surface boundary
Travel direction
Lane configurations
Vehicle placement rules
Complete XML Examples
Example 1: Simple Beam Model
Example 2: Shell Structure (Slab)
Example 3: Complete Bridge Girder Analysis
Best Practices
1. Constraint Encoding Conventions
Always use consistent constraint encoding:
0 or -1: Free DOF
1: Fixed DOF
Positive value: Spring stiffness in consistent units
2. Group Organization
Organize elements into logical groups:
By structural component (girders, deck, substructure)
By material (steel, concrete)
By construction stage (existing, new)
Use hierarchical groups for complex structures
3. Load Case Naming
Use descriptive, consistent names:
Include load type:
DL_,LL_,WS_, etc.Include location/direction:
DL_Girders,LL_Lane1Number sequentially:
DL_1,DL_2
4. Analysis Type Selection
Choose appropriate analysis:
Static Linear: Most common, elastic behavior
Modal: Natural frequencies, dynamic properties
Response Spectrum: Seismic analysis
Pushover: Seismic performance, capacity curves
Staged Construction: Bridges built in phases, time-dependent effects
5. Mesh Quality
For automatic meshing:
Use aspect ratios < 4:1 for shells
Avoid highly skewed elements
Refine mesh in high-stress areas
Check mesh connectivity before analysis
6. Nonlinear Solver Tuning
For nonlinear analysis:
Start with small load increments
Use displacement control for softening behavior
Set appropriate tolerances (0.001 typical)
Increase max iterations for complex problems (50-100)
7. Modal Analysis Mass Sources
Properly define mass:
Include self-weight (SelfMassFactor = 1.0)
Add sustained loads (MassCase with appropriate factors)
Use NodeMass for concentrated masses
Typical live load mass factor: 0.25-0.33
8. Time-Dependent Analysis
For staged construction:
Define realistic stage durations (Day property)
Set environmental conditions (Temperature, Humidity)
Enable appropriate effects (Creep, Shrinkage, Relaxation)
Use code-based formulas (TimeDepModal)
9. Reference Patterns
Use consistent object references:
Always use the format:
V="@ObjectName|ObjectType"For P element references, add
T="ObjectType"attributeExample inline:
Node1="@NODE_1|Node"Example P element:
<P N="Node1" V="@NODE_1|Node" T="Node"/>
10. Unit Consistency
Maintain unit consistency throughout model:
Force: kip, kN, or lb
Length: in, ft, m, or mm
Stress: ksi, MPa, or psi
Gravity: 386.088583 in/s², 32.174 ft/s², 9.81 m/s²
Common Patterns
1. Constraint Value Encoding
2. Reference Patterns
Objects reference each other using the @ObjectName|ObjectType syntax:
3. Mesh Connectivity Indexing
Mesh arrays use 0-based indexing:
4. Load Combination Envelope
Debugging Tips
1. Check Node Connectivity
Verify all elements reference valid nodes:
Check node names match exactly (case-sensitive)
Ensure nodes exist before elements reference them
Verify Node1 ≠ Node2 for beam/spring elements
2. Verify Constraint Definitions
Check boundary conditions:
At least 3 DOF must be constrained to prevent rigid body motion
For 2D problems: constrain Tx, Ty, Rz (minimum)
For 3D problems: constrain all 6 DOF at one node (minimum)
Check for over-constrained systems (warnings)
3. Inspect Mesh Quality
Before analysis:
Visualize mesh to check connectivity
Look for duplicate nodes (coincident but separate)
Check element normals (all pointing same direction for shells)
Verify element aspect ratios
4. Troubleshoot Convergence
If nonlinear analysis fails to converge:
Reduce load increment
Increase max iterations
Check for mechanism (insufficient constraints)
Look for material/geometric nonlinearity issues
Use displacement control instead of force control
5. Modal Participation Factors
After eigenvalue analysis:
Check cumulative mass participation (should reach 90%+ in each direction)
If low participation: extract more modes
Verify mass sources (self-weight, mass cases, nodal masses)
Check for missing mass (verify all elements have density/mass)
6. Time-Dependent Analysis Validation
For staged construction:
Verify stage sequence (Day values increasing)
Check ParentStage references
Validate element activation/deactivation
Compare results to hand calculations for simple cases
Monitor PT losses over time
7. Result Extraction
If results appear incorrect:
Verify correct AnalysisID in result keys
Check unit system consistency
Confirm load case is Active
Inspect convergence (check analysis log)
Validate coordinate system (Global vs Local results)
8. Spring/Gap Elements
For spring and gap elements:
Verify stiffness values are reasonable (not too large or small)
Check gap distances (positive = initial gap)
For compression-only: use high stiffness + gap
For tension-only: use TENSTRUSS element type
9. Response Spectrum Analysis
If RSA results unexpected:
Check spectrum curve units (period vs frequency)
Verify direction scale factors (Scale1, Scale2, Scale3)
Confirm modal combination method (CQC for closely-spaced modes)
Check damping ratio (typical: 0.05)
Ensure enough modes extracted (90% mass participation)
10. Load Combinations
For combination issues:
Verify all referenced load cases exist and are Active
Check factors (negative for reversal)
Confirm load cases have completed successfully
Check envelope type (max, min, abs max)
Summary
The OpenBrIM FEA system provides comprehensive analysis capabilities for bridge engineering:
Core Objects:
Nodes (Node) with 6 DOF and flexible boundary conditions
Elements (FELine, FESurface, FESpring) for beam, shell, and spring elements
Groups (FEGroup) for organization and filtering
Loads (NodeLoad, PointLoad, etc.) with multiple application methods
Analysis Types:
Static Linear: Basic elastic analysis
Eigenvalue/Modal: Natural frequencies and mode shapes
Response Spectrum: Seismic analysis with spectrum curves
Pushover: Nonlinear static performance evaluation
Staged Construction: Multi-phase construction with time-dependent effects
Key Features:
Parametric integration via ParamML expressions
Automatic mesh generation
Hierarchical grouping and filtering
Comprehensive material and section libraries
Advanced prestressing support
Best Practices:
Use consistent constraint encoding (-1/0=free, 1=fixed, +value=spring)
Organize elements into logical groups
Properly define mass sources for dynamic analysis
Set appropriate solver tolerances for nonlinear problems
Verify mesh quality and connectivity before analysis
By following this guide, AI agents can create sophisticated finite element models for bridge analysis, leveraging the full power of the OpenBrIM parametric FEA system.
Last updated