Skip to main content

Abaqus to Python interface

Project description

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.

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

abaqus2py-1.2.2.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abaqus2py-1.2.2-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file abaqus2py-1.2.2.tar.gz.

File metadata

  • Download URL: abaqus2py-1.2.2.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

Hashes for abaqus2py-1.2.2.tar.gz
Algorithm Hash digest
SHA256 6aa010ce8a128c3145e9f341868d2a340d7db17956c00621314cb65dcd8d17f3
MD5 ab4a899c907624b0a99892f7dc0710c8
BLAKE2b-256 044ebe1c239d0272abc6437b7ec30d700eb16c9970263e1a578d3f66b07a7210

See more details on using hashes here.

File details

Details for the file abaqus2py-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: abaqus2py-1.2.2-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

Hashes for abaqus2py-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7ba58518d47eb34f6e60683354434416b9ca1cfd8c115ab2258256ce12a0cefd
MD5 ad45ac78c4ad066929a7680a25180844
BLAKE2b-256 ac2b5b8f6e0d7a4254bfa8ad1d24611a2478c1cb116b653fdf36ed7767b8f7df

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page