Claude-skill-registry abaqus-odb
Read analysis results. Use when user asks about maximum stress, extracting displacements, reaction forces, or exporting results. Post-processes ODB files.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/abaqus-odb" ~/.claude/skills/majiayu000-claude-skill-registry-abaqus-odb && rm -rf "$T"
manifest:
skills/data/abaqus-odb/SKILL.mdsafety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- dumps environment variables
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
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 | | Use for total |
| Stress | | Use for von Mises |
| Reaction force | | Sum components for total |
| Strain | | Similar structure to stress |
| Temperature | | Thermal analysis results |
| Eigenfrequency | Frame description | Parse from frame metadata |
2. Which Step/Frame?
| Scenario | Frame Selection |
|---|---|
| Final results | |
| All time history | Loop all frames |
| Specific time | Find by |
| Modal analysis | Each frame = mode |
3. Location: Global Max or Specific?
| Need | Approach |
|---|---|
| Overall maximum | Loop all values, find max |
| Specific node | Filter by |
| Subset/region | Use |
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:
- What result? Stress, displacement, reaction force, frequency?
- Which step/frame? Final, specific time, or all?
- Location? Maximum anywhere, or specific node/region?
- Output format? Print, CSV, or report?
Workflow
- Open ODB - Use
for extractionreadOnly=True - Navigate to step/frame - List steps with
odb.steps.keys() - Get field output - Access via
frame.fieldOutputs['U'] - Extract values - Loop
, usefield.values
,.magnitude.mises - 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 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: