Skip to main content

ODBLAB: Post-Processor for Abaqus and Ansys

ODBLAB (from Output DataBase LABoratory) provides a unified, easy-to-use workflow for post-processing Abaqus and Ansys results in Python by extracting the finite element mesh and field output data into a portable, non-proprietary, NumPy-based format. It also includes a fully featured viewer application based on Qt and VTK.

ODBLAB is free and open-source software distributed under the GPLv3 licence.

You can also use ODBLAB from MATLAB with the official MATLAB wrapper!

How Does It Work?

ODBLAB first converts an Abaqus Output Database (*.odb) or an Ansys Results File (*.rst) into a portable, open (i.e., non-proprietary) *.odbz or *.rstz file, respectively. These files are standard NumPy *.npz archives (see the NPY/NPZ format). They also serve as cache: when the original *.odb or *.rst file is loaded again, ODBLAB reuses the corresponding *.odbz or *.rstz file if it is up to date, avoiding repeated extraction.

ODBLAB then provides a straightforward, easy-to-use interface for accessing the finite element mesh, retrieving field outputs, computing and storing derived results, and visualizing the extracted and post-processed data.

Design and Features

ODBLAB aims to provide a unified post-processing workflow across Abaqus, Ansys, Python, and MATLAB. It is designed for practical engineering use, balancing computational efficiency, ease of use, and long-term maintainability. The following features reflect these design priorities:

  • Unified Abaqus and Ansys data model: Results from both solvers are exposed using the same database structure and API, enabling solver-independent post-processing workflows.

  • Straightforward array representation: Mesh and results are exposed as regular NumPy arrays in Python and native arrays in MATLAB, making them easy to work with in familiar vectorized workflows.

  • Unified finite element mesh: Abaqus assemblies and instances are mapped into a single, unified global mesh, simplifying post-processing and ensuring compatibility with the unified Abaqus-Ansys data model.

  • Efficient post-processing: Results can be retrieved at nodes or element centroids and optionally filtered by region and/or specific time frames, making it easy to focus computations on critical regions and relevant stages of the analysis.

  • Portable and extensible result files: Extracted and post-processed results can be stored in open, transferable archives and explored in the built-in viewer.

Result Positions

ODBLAB exposes field output data at mesh nodes and element centroids, regardless of the original solver:

Typical Results Original Solver Position Available ODBLAB Position
Displacement (U), Reaction Force (RF) Mesh nodes Mesh nodes
Element Volume (EVOL) Element centroids Element centroids
Stress (S), Strain (E) Integration points (Abaqus), element nodes (Ansys) Mesh nodes and element centroids

When the available position differs from the original position, results are obtained by interpolation/extrapolation using the original solver. Unique nodal values are obtained by averaging contributions from adjacent elements (known as smoothing).

Computed Invariants

ODBLAB automatically detects vector and tensor fields, computes their invariants, and stores them alongside the extracted field outputs:

Field Type Computed Invariant Output Suffix
Vector Magnitude MAGNITUDE
Tensor Maximum principal value MAX_PRINCIPAL
Tensor Intermediate principal value MID_PRINCIPAL
Tensor Minimum principal value MIN_PRINCIPAL
Tensor Absolute maximum principal value ABS_PRINCIPAL
Stress tensor (S) von Mises equivalent stress MISES
Stress tensor (S) Tresca equivalent stress TRESCA
Stress tensor (S) Pressure PRESSURE

Where applicable, invariants are computed after extrapolation and nodal smoothing. To compare ODBLAB with Abaqus, enable Compute scalars after averaging under Result > Options... in Abaqus/Viewer.

Known Limitations

ODBLAB currently supports 2D and 3D solid element models with a fixed mesh. Shells, beams, and models involving remeshing are not supported.

Installation

For Python Users

Install ODBLAB from PyPI using pip install odblab. Python 3.10 or later is required.

For MATLAB Users

Python 3.10 or later is required. MATLAB R2022b is the earliest release supporting Python 3.10. If using a newer Python version, check the MATLAB-Python compatibility table. You can use pyenv to verify or configure the Python interpreter used by MATLAB.

Once Python is available to MATLAB, simply download the MATLAB wrapper and place odblab.m in the current folder or on the MATLAB path. If necessary, the wrapper will ask for permission to run pip install odblab automatically.

Usage

The following examples demonstrate the ODBLAB workflow in both Python and MATLAB.

Load and View a Database

Loading an Abaqus Output Database (*.odb) or an Ansys Results File (*.rst) requires a single function call. ODBLAB automatically extracts the data when necessary and reuses the corresponding *.odbz or *.rstz cache on subsequent calls. The *.odbz and *.rstz files can also be loaded directly.

Python

import odblab                   # import the ODBLAB package
db = odblab.load("example.odb") # load an Abaqus database
print(db)                       # inspect the database
odblab.view(db)                 # open the viewer application

MATLAB

% 'odblab.m' must be in the current folder or on the MATLAB path
db = odblab.load("example.odb"); % load an Abaqus database
disp(db);                        % inspect the database
odblab.view(db);                 % open the viewer application

Output

Example of a double-lap bolted joint model under tensile loading with bolt preload.

ODBLAB Viewer Application

Retrieve Field Output Data

Use get to retrieve one or more field outputs at the mesh nodes or element centroids. For example, the stress components and invariants can be retrieved for the whole model and all available time frames as follows:

Python

position = "nodes" # or "centroids"
[s11, s22, s33, s12, s23, s31] = db.get(["S.S11", "S.S22", "S.S33", "S.S12", "S.S23", "S.S13"], position)
[s1, s2, s3, s1_abs] = db.get(["S.MAX_PRINCIPAL", "S.MID_PRINCIPAL", "S.MIN_PRINCIPAL", "S.ABS_PRINCIPAL"], position)
[mises, tresca, pressure] = db.get(["S.MISES", "S.TRESCA", "S.PRESSURE"], position)

MATLAB

position = "nodes"; % or "centroids"
[s11, s22, s33, s12, s23, s31] = db.get(["S.S11", "S.S22", "S.S33", "S.S12", "S.S23", "S.S13"], position);
[s1, s2, s3, s1_abs] = db.get(["S.MAX_PRINCIPAL", "S.MID_PRINCIPAL", "S.MIN_PRINCIPAL", "S.ABS_PRINCIPAL"], position);
[mises, tresca, pressure] = db.get(["S.MISES", "S.TRESCA", "S.PRESSURE"], position);

Each returned matrix has one row per node (if position="nodes") or element (if position="centroids") and one column per time frame. If a field is unavailable for a particular region or time frame, the corresponding value is NaN. For example, equivalent plastic strain (PEEQ) is only available in regions undergoing plastic deformation, so elastic regions return NaN.

Results can also be restricted to a specific region and/or selected time frames. For nodal results, region must be a node set name; for elemental/centroidal results, it must be an element set name. The frames parameter accepts a boolean filter over db.times. For example:

Python

position = "nodes"                            # get nodal results
region = "PLATE-1.CRITICAL_PLATE_SURFACE"     # at the specified region
frames = (db.times > 3.0) & (db.times <= 4.0) # for t in (3, 4]
[u1, u2, u3] = db.get(["U.U1", "U.U2", "U.U3"], position, region, frames)

Metadata

Release files for odblab 0.1.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for odblab 0.1.12
File Size Uploaded
odblab-0.1.12.tar.gz 733.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for odblab 0.1.12
File Interpreter ABI Platform
odblab-0.1.12-py3-none-any.whl Python 3 none any Details

Total release size: 801.9 kB

Release files / odblab-0.1.12.tar.gz

Download URL odblab-0.1.12.tar.gz
Size 733.9 kB
Tags Source
SHA-256 checksum
How to use checksums
07d80b259b35973f05fd380bb5c0f8c54ab49f3f971cc6b33c7d2ea69690dbd8
BLAKE2b-256 checksum
How to use checksums
72190227dbda4c06fd1cd63151ced14033b31d16587ba1b2362dd172c8bb2d4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.17.0 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.14.6"},"installer":{"name":"hatch","version":"1.17.0"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.14.6","system":{"name":"Windows","release":"11"}} HTTPX2/2.5.0

Release files / odblab-0.1.12-py3-none-any.whl

Download URL odblab-0.1.12-py3-none-any.whl
Size 68.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f1c1f62feadbc7edac8cb48bfb2b0508458c874d100fc904ab8cbfaeeea81d72
BLAKE2b-256 checksum
How to use checksums
fad3ad52f37218ea736093724f6eaba02458c60f93d8b9858f23399568d66ffa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.17.0 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.14.6"},"installer":{"name":"hatch","version":"1.17.0"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.14.6","system":{"name":"Windows","release":"11"}} HTTPX2/2.5.0

Release history Release notifications | RSS feed

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.12 This release

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page