AgentSkillsCN

abaqus-odb

读取分析结果。当用户询问“最大应力”、“提取位移”、“反作用力”,或需要导出结果时,可选用此方法。该方法会对ODB文件进行后处理。

SKILL.md
--- frontmatter
name: abaqus-odb
description: Read analysis results. Use when user asks about maximum stress, extracting displacements, reaction forces, or exporting results. Post-processes ODB files.
allowed-tools:
  - Read
  - Write
  - Edit
  - Glob
  - Grep
  - Bash(abaqus:*)
  - Bash(python:*)

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?

NeedFieldNotes
DisplacementUUse .magnitude for total
StressSUse .mises for von Mises
Reaction forceRFSum components for total
StrainESimilar structure to stress
TemperatureNTThermal analysis results
EigenfrequencyFrame descriptionParse from frame metadata

2. Which Step/Frame?

ScenarioFrame Selection
Final resultsstep.frames[-1]
All time historyLoop all frames
Specific timeFind by frameValue
Modal analysisEach frame = mode

3. Location: Global Max or Specific?

NeedApproach
Overall maximumLoop all values, find max
Specific nodeFilter by nodeLabel
Subset/regionUse getSubset(region=...)

4. Export Format?

FormatUse Case
Print to consoleQuick check
CSV fileSpreadsheet analysis
Text reportDocumentation

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

TaskApproach
Max displacementLoop U values, find max magnitude
Max von Mises stressLoop S values, find max mises
Total reaction forceSum RF components across all nodes
Displacement at nodeFilter by nodeLabel
Results in regionUse getSubset with node/element set
EigenfrequenciesParse frame.description in frequency step
Time historyUse historyRegions and historyOutputs
Export to CSVWrite values with csv module

Troubleshooting

ErrorCauseSolution
"ODB locked"Another process has itDelete .lck file
"Key not found"Wrong variable nameList available keys first
"No values"Output not requestedCheck FieldOutputRequest in model
"AttributeError: mises"Element has no misesCheck element formulation

Code Patterns

For API syntax and code examples, see: