Making structural and geotechnical systems simulation with OpenSees and OpenSeesPy effortless and straightforward

Welcome to the documentation for opstool, a thoughtfully crafted preprocessing and postprocessing package designed for OpenSeesPy.


Design Philosophy of opstool

Philosophy
  • OpenSeesPy as the core analysis and solution engine

  • Modular, end-to-end workflow

  • xarray-driven data organization

  • Unified element-type classification

  • Consistent response handling across elements

  • Interchangeable visualization backends

  • Minimal intrusion into user scripts

Architecture diagram of the opstool package
_images/opstool-architecture.png

opstool is a modular, data-oriented framework built on OpenSeesPy (It can also be a version compiled by yourself) to support the complete structural analysis workflow, including pre-processing, analysis, post-processing, and visualization.

OpenSeesPy is used strictly as the analysis and solution engine, while opstool focuses on structuring and managing analysis data. Simulation results are organized using xarray-based labeled N-dimensional arrays, enabling clear, consistent handling of time-dependent and high-dimensional responses.

A key design choice is that most OpenSees element types are systematically classified (e.g., nodal, truss, frame, shell, plane, and solid elements). This classification allows responses from different element formulations to be stored, queried, and visualized in a unified manner, independent of the underlying element implementation.

By separating numerical solving from data organization and visualization, opstool enhances usability and extensibility while preserving the flexibility of script-based OpenSeesPy modeling.

Note

For v1.0.20 and earlier document versions See https://opstool.readthedocs.io/en/v1.0.20/.

Citing opstool

If you find opstool useful in your research or projects, please consider citing the following publication:

OPSTOOL Publication

Yexiang Yan and Yazhou Xie. “opstool: A Python library for OpenSeesPy analysis automation, streamlined pre-and post-processing, and enhanced data visualization.” SoftwareX 30 (2025): 102126. DOI: https://doi.org/10.1016/j.softx.2025.102126.

https://www.sciencedirect.com/science/article/pii/S2352711025000937
Bibtex entry
@article{YAN2025102126,
   title = {opstool: A Python library for OpenSeesPy analysis automation, streamlined pre- and post-processing, and enhanced data visualization},
   author = {Yexiang Yan and Yazhou Xie},
   journal = {SoftwareX},
   volume = {30},
   pages = {102126},
   year = {2025},
   issn = {2352-7110},
   doi = {https://doi.org/10.1016/j.softx.2025.102126},
   }

Features Overview

Preprocessing
  • Fiber Section Meshing and Property Calculation

  • Easily translate Tcl-based OpenSees models into Python scripts

  • Unified Unit Conversion System

  • Integration with Gmsh Meshing

  • Fast gravity load application

  • System matrix extraction

  • Features in Development

Elegant Visualization
  • Powered by PyVista and Plotly

  • Supporting most commonly used OpenSees element types.

  • Truss Elements

  • Frame Elements

  • Link Elements

  • Shell Elements

  • Plane Elements

  • Solid Elements

Results Post-Processing
  • Powered by xarray

  • Nodal Responses, Various Element Responses (Truss, Frame, Link, Shell, Plane, Solid, Contact).

  • Static and Dynamic Analysis

  • Sensitivity Analysis

  • Linear Buckling Analysis

Analysis Assistance
  • Smart Analysis, features include automatic step size division, algorithm switching, and other advanced functionalities

  • Moment-Curvature Analysis of Sections

  • Linar Buckling Analysis


Why Choose opstool?

  • Efficiency: Streamlines complex workflows, reducing time spent on repetitive tasks.

  • Flexibility: Provides nearly identical interfaces for different visualization engines.

  • Accessibility: Makes advanced structural analysis tools like OpenSeesPy more approachable to users of all levels.

opstool is actively evolving, with continuous additions of new features planned for the future. With opstool, you can focus on what matters most: understanding and solving your structural engineering challenges. Whether you are building models, visualizing results, or interpreting data, opstool is your go-to solution for OpenSeesPy workflows.

Contents

Theory Reference

Acknowledgements

I sincerely thank EOS for the Honorable Mention in Pre/Post-processing & Implementations at the 1st EOS OpenSees Research and Innovation Awards.

🎉 Announcing the Winners of the 1st EOS OpenSees Research and Innovation Awards! 🎉