abaqus2py

Abaqus to Python interface


Keywords
abaqus, python, interface
License
BSD-3-Clause
Install
pip install abaqus2py==1.2.3

Documentation

Abaqus2Py

GitHub license

Docs | GitHub | PyPI

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 classesAbaqusSimulator (standalone driver) and F3DASMAbaqusSimulator (an f3dasm.DataGenerator adapter).
  • Full simulation lifecyclepreprocesssubmitpostprocess, or a single combined run.
  • ABAQUS-free development — ABAQUS is invoked via the abaqus CLI, 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 ExperimentData with 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:

Authors affiliation:

  • Bessa Research Group @ Delft University of Technology

Maintainers:

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 abaqus command-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.