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|ObjectType syntax

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

Property
Type
Description
Default

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 nodes

  • Set MergeNearest=true for load application points and boundary condition nodes

  • Set MergeSameLoc=false only when you need separate nodes at identical coordinates (e.g., hinges, springs)

  • Use StiffnessMatrix for complex foundation springs with coupled DOF behavior

  • For 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

Property
Type
Description
Default

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 0 for 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

Property
Type
Description
Default

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

Property
Type
Description
Default

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

Property
Type
Description
Default

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 as ParentGroup.

  • Location identity + filter: Export endpoints (locx1..locz2) and stamp FE elements (the Line inside FELine/FEMeshLine) with X1..Z2. Example filtered group and FELine:

  • FEMeshLine note (X1..Z2 on Line):

  • Selection step: Construction/Deconstruction collects the selected *_fegroup_fltrd entries with removedup(map(...)), wraps them in a ParentGroup FEGroup, and points StructureState to that wrapper; a Guard skips when nothing is selected.

  • Loads: Use per-type load FEGroup (e.g., Truss_Temp, CrossFrame_Temp); set ParentGroup to 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

Property
Type
Description
Default

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

Property
Type
Description
Default

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

Property
Type
Description
Default

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

Property
Type
Description
Default

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:

  1. Self Mass: Element mass from self-weight

  2. Load Case Mass: Vertical forces converted to mass

  3. 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

Property
Type
Description
Default

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

Property
Type
Description
Default

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 AnalysisCasePushoverStep objects

  • Displacement 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

Property
Type
Description
Default

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

  • Stiffness property: true = active, false = deactivated

  • Active 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 apply

  • Factor: 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 component

  • forcePos(component, element, loadCase, station?) - Extract maximum force value

  • forceNeg(component, element, loadCase, station?) - Extract minimum force value

  • stress(loadCase, element, station?) - Extract stress components

  • disp(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 application

  • TendonPathPoint: 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 configuration

  • DesignLane: Traffic lane definitions

  • Vehicle 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_Lane1

  • Number 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" attribute

  • Example 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