Agent skill

abaqus-odb

Read analysis results. Use when user asks about maximum stress, extracting displacements, reaction forces, or exporting results. Post-processes ODB files.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/abaqus-odb

SKILL.md

Abaqus ODB Skill

This skill reads and extracts analysis results from Abaqus ODB files.

When to Use This Skill

Route here when user mentions:

  • "What is the maximum stress?", "extract displacement"
  • "Get reaction forces", "post-process the ODB"
  • "Export results to CSV", "what are the eigenfrequencies?"

Route elsewhere:

  • Running the analysis → /abaqus-job
  • Configuring what output to save → /abaqus-output
  • Exporting geometry (STL, STEP) → /abaqus-export

Key Decisions

1. What Result is Needed?

Need Field Notes
Displacement U Use .magnitude for total
Stress S Use .mises for von Mises
Reaction force RF Sum components for total
Strain E Similar structure to stress
Temperature NT Thermal analysis results
Eigenfrequency Frame description Parse from frame metadata

2. Which Step/Frame?

Scenario Frame Selection
Final results step.frames[-1]
All time history Loop all frames
Specific time Find by frameValue
Modal analysis Each frame = mode

3. Location: Global Max or Specific?

Need Approach
Overall maximum Loop all values, find max
Specific node Filter by nodeLabel
Subset/region Use getSubset(region=...)

4. Export Format?

Format Use Case
Print to console Quick check
CSV file Spreadsheet analysis
Text report Documentation

What to Ask User

If unclear, ask:

  1. What result? Stress, displacement, reaction force, frequency?
  2. Which step/frame? Final, specific time, or all?
  3. Location? Maximum anywhere, or specific node/region?
  4. Output format? Print, CSV, or report?

Workflow

  1. Open ODB - Use readOnly=True for extraction
  2. Navigate to step/frame - List steps with odb.steps.keys()
  3. Get field output - Access via frame.fieldOutputs['U']
  4. Extract values - Loop field.values, use .magnitude, .mises
  5. Close ODB - Always close when done

Common Tasks

Task Approach
Max displacement Loop U values, find max magnitude
Max von Mises stress Loop S values, find max mises
Total reaction force Sum RF components across all nodes
Displacement at node Filter by nodeLabel
Results in region Use getSubset with node/element set
Eigenfrequencies Parse frame.description in frequency step
Time history Use historyRegions and historyOutputs
Export to CSV Write values with csv module

Troubleshooting

Error Cause Solution
"ODB locked" Another process has it Delete .lck file
"Key not found" Wrong variable name List available keys first
"No values" Output not requested Check FieldOutputRequest in model
"AttributeError: mises" Element has no mises Check element formulation

Code Patterns

For API syntax and code examples, see:

Didn't find tool you were looking for?

Be as detailed as possible for better results