Abaqus2Py¤
Docs | GitHub | PyPI | Installation
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.