Abaqus to Python interface
Project description
Abaqus2Py
First publication: March 15, 2024
Summary
Abaqus2Py is a thin Python interface for driving ABAQUS finite-element simulations from regular Python function calls. It wraps the lifecycle of a simulation—preprocessing, job submission, and postprocessing—behind a small API, so that running an ABAQUS model becomes as simple as calling a function and reading back its results.
Statement of need
ABAQUS is a widely used finite-element solver, but it is driven through its own command-line tools and Python-2 scripting interpreter, which makes it awkward to embed in modern, data-driven workflows. Generating large datasets of simulations—for surrogate modeling, design optimization, or machine learning—requires gluing together input-file generation, job submission, result extraction, and synchronization with the solver, all while bridging the gap to a contemporary Python 3 environment.
Abaqus2Py provides that glue. It generates the preprocess/postprocess scripts
that ABAQUS executes in its own interpreter, submits jobs through the abaqus
CLI, polls for completion, and reads the results back into Python 3—handling
the Python-2 pickle compatibility details transparently. ABAQUS itself is
not a Python dependency, so the library can be developed and tested without
it installed. Through its f3dasm adapter, Abaqus2Py plugs directly into
data-driven design pipelines, turning an ExperimentData of design parameters
into a batch of ABAQUS simulations with reproducible, HPC-ready orchestration.
Key Features
- Two public classes —
AbaqusSimulator(standalone driver) andF3DASMAbaqusSimulator(anf3dasm.DataGeneratoradapter). - Full simulation lifecycle —
preprocess→submit→postprocess, or a single combinedrun. - ABAQUS-free development — ABAQUS is invoked via the
abaqusCLI, never imported, so the package installs and tests without a solver present. - Python-2 ↔ Python-3 bridging — generated scripts and pickle (de)coding transparently handle ABAQUS's Python-2 interpreter.
- f3dasm integration — run simulations over an
ExperimentDatawith per-sample working directories and HPC/SLURM orchestration.
Dependencies
Abaqus2Py builds on the following packages:
| Package | Description |
|---|---|
| f3dasm | Framework for data-driven design and analysis of structures and materials |
| ABAQUS | Finite-element solver, driven through its abaqus CLI (not a Python dependency) |
Authorship
Authors:
- Jiaxiang Yi (J.Yi@tudelft.nl)
- Martin van der Schelling (M.P.vanderSchelling@tudelft.nl)
Authors affiliation:
- Bessa Research Group @ Delft University of Technology
Maintainers:
- Martin van der Schelling (M.P.vanderSchelling@tudelft.nl)
Maintainers affiliation:
- Bessa Research Group @ Delft University of Technology
Getting started
Installation instructions for users
The package is available on PyPI:
pip install abaqus2py
Alternatively, install the latest version from source:
git clone https://github.com/bessagroup/abaqus2py.git
cd abaqus2py
pip install -e .
Abaqus2Py drives the solver through the
abaquscommand-line tool; a working ABAQUS installation is required at runtime, but not to install or test the package.
Installation instructions for developers
To install the package for development (or for building the mkdocs documentation), install the optional dependency groups after cloning:
pip install -e '.[dev,docs,tests]'
This project is uv-managed, so you can equivalently run uv sync. See the
Contributing Guide for detailed development instructions, and
the Getting Started Guide for a walkthrough of the API.
Studies
studies/fragile_becomes_supercompressible/ is a full worked example
reproducing Bessa et al. (2019), wiring F3DASMAbaqusSimulator into a
Hydra-configured, HPC-oriented two-stage (linear-buckle → Riks) f3dasm
workflow. The accompanying ABAQUS modeling scripts live in scripts/. See
studies/fragile_becomes_supercompressible/main.py for the canonical
end-to-end usage pattern.
Community Support
- If you find any issues, bugs or problems within this repository, please use the GitHub issue tracker to report them.
- If you have questions, feature requests or ideas for this project, please use the GitHub Discussions
Please refer to abaqus2py's Code of Conduct
Citing
If you use Abaqus2Py in your research, please cite it. Citation metadata is provided in CITATION.cff; the corresponding BibTeX entry is:
@software{abaqus2py,
author = {Yi, Jiaxiang and van der Schelling, Martin P.},
title = {{Abaqus2Py: A Python interface for running ABAQUS simulations}},
year = {2026},
version = {1.1.0},
url = {https://github.com/bessagroup/abaqus2py}
}
License
Copyright 2026, Bessa Research Group
All rights reserved.
This project is licensed under the BSD 3-Clause License. See LICENSE for the full license text.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file abaqus2py-1.2.0.tar.gz.
File metadata
- Download URL: abaqus2py-1.2.0.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20c56ce0c17f0f304c6db4acc07f3b2cb57ce30f40592139911ad3df0f4579a5
|
|
| MD5 |
651f2625abdac9494015dad129807bd1
|
|
| BLAKE2b-256 |
6fff07b3cd5d50ff88f99adaf7cd3035cccfe701c09e9e78140d83eac7446fd5
|
File details
Details for the file abaqus2py-1.2.0-py3-none-any.whl.
File metadata
- Download URL: abaqus2py-1.2.0-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
247f51bb1b0aa497d411f8e41081622d1a9fc35a0397c98ba070343a36b6b52b
|
|
| MD5 |
e2aeb40f014ae567b2f5e4f334a64b32
|
|
| BLAKE2b-256 |
f474777ffdc89b96ed1c11be7d65d98c813026cf961edf37457627441c187c3c
|