abaqus-odb

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

16 stars

Best use case

abaqus-odb is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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

Teams using abaqus-odb should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/abaqus-odb/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/abaqus-odb/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/abaqus-odb/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How abaqus-odb Compares

Feature / Agentabaqus-odbStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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:
- [ODB Extraction Patterns](references/extraction-patterns.md)
- [Common Queries](references/common-queries.md)
- [Export Templates](references/export-templates.md)

Related Skills

abaqus

16
from diegosouzapw/awesome-omni-skill

Master skill for Abaqus FEA scripting. Use for any finite element analysis, topology optimization, or Abaqus Python scripting task. Routes to appropriate specialized skills.

abaqus-step

16
from diegosouzapw/awesome-omni-skill

Define analysis steps and procedures. Use when user mentions static analysis, dynamic step, frequency analysis, heat transfer step, or asks about analysis type, time increments, or nlgeom.

abaqus-static-analysis

16
from diegosouzapw/awesome-omni-skill

Complete workflow for static structural analysis. Use when analyzing stress, displacement, or reaction forces under constant loads. For strength and stiffness evaluation.

abaqus-shape-optimization

16
from diegosouzapw/awesome-omni-skill

Optimize fillet/notch geometry. Use when user mentions stress concentration, fillet optimization, reshaping surfaces, or reducing peak stress. Moves surfaces only.

abaqus-output

16
from diegosouzapw/awesome-omni-skill

Configure output requests - field outputs, history outputs. Use when user asks what results to save, output variables, reduce output file size, or history output.

abaqus-mesh

16
from diegosouzapw/awesome-omni-skill

Generate finite element meshes. Use when user mentions mesh, elements, nodes, refine mesh, mesh size, or asks about element types like C3D8R, C3D10, S4R.

abaqus-load

16
from diegosouzapw/awesome-omni-skill

Apply forces and pressures to structures. Use when user asks to apply a force, add pressure, put a load on, or mentions gravity, point loads, or distributed forces.

abaqus-interaction

16
from diegosouzapw/awesome-omni-skill

Define contact and interactions - contact pairs, tie constraints, connectors. Use when user mentions contact, friction, tie, parts touching, or bonded surfaces.

abaqus-field

16
from diegosouzapw/awesome-omni-skill

Define initial conditions and predefined fields. Use when user mentions initial temperature, pre-stress, residual stress, or import from previous analysis.

abaqus-export

16
from diegosouzapw/awesome-omni-skill

Export Abaqus geometry and results. Use when user mentions exporting to STL, STEP, CSV, or generating input files for external use.

abaqus-coupled-analysis

16
from diegosouzapw/awesome-omni-skill

Complete workflow for coupled thermomechanical analysis. Use when user mentions thermal stress, thermal expansion, or temperature causing deformation.

abaqus-contact-analysis

16
from diegosouzapw/awesome-omni-skill

Analyze multi-body contact. Use when user mentions parts touching, friction between surfaces, bolt-plate contact, press fit, or assembly with contact.