Skip to main content
     _______..___________. _______ .___  ___.
    /       ||           ||   ____||   \/   |
   |   (----``---|  |----`|  |__   |  \  /  |
    \   \        |  |     |   __|  |  |\/|  |
.----)   |       |  |     |  |____ |  |  |  |
|_______/        |__|     |_______||__|  |__|

STEM: Soil and Track System Modelling Tool

Tests Documentation Status codecov PyPI version Python versions License DOI

STEM is an open-source finite element model for computing railway-induced vibrations and evaluating the effectiveness of mitigation measures. It simulates the train–track interaction and the propagation of vibrations through the subsurface, taking into account track irregularities, the type of train and train speed, and the spatial variability of the track and soil properties. STEM is powered by Kratos Multiphysics.

The tool provides a set of commands for creating the geometry of the model, defining the soil and track properties, setting the boundary conditions and loads, generating the mesh, and performing post-processing on the results.

Features

  • Parametric geometry, meshing, and model generation for 2D (plane strain) and 3D soil–track systems
  • Beam, triangular, and tetrahedral element support (linear and quadratic order)
  • Train–track interaction via a user-defined vehicle model (UVEC), including rail irregularities and dipped rail joints
  • Linear elastic soil models, with non-linear models available through the UMAT API definition
  • Point, line, surface, and moving loads
  • Dirichlet, Neumann, and absorbing (Lysmer) boundary conditions
  • Implicit and explicit time integration, dynamic analysis, quasi-static analyses, and multi-stage simulations
  • Post-processing and output to JSON and VTK for visualisation in ParaView

Requirements

  • Python 3.12, 3.13 or 3.14
  • ParaView (to visualise results)
  • Git

Installation

STEM can be downloaded and installed on any system that supports Python. It is recommended to install STEM inside a Python virtual environment. To install the latest stable release, run:

pip install STEM-Vibrations

Further details, including the development and editable (developer) installs, can be found in the installation guide.

Usage

To get started, refer to the tutorials, which build up from basic usage to more advanced features. For the theory and numerical methods behind the model, see the formulation documentation.

Benchmarks

STEM is validated against analytical solutions. The automatically generated benchmark report is available as a PDF here. In addition to these analytical benchmarks, STEM contains a set of benchmarks and unit tests that run automatically on every commit to the repository.

Contributing

Contributions are welcome. Please refer to the contribution guidelines.

Authors

See the full list of authors and contributors.

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

Metadata

Release files for STEM-Vibrations 1.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for STEM-Vibrations 1.4.1
File Size Uploaded Provenance
stem_vibrations-1.4.1.tar.gz 179.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for STEM-Vibrations 1.4.1
File Interpreter ABI Platform
stem_vibrations-1.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 291.0 kB

Release files / stem_vibrations-1.4.1.tar.gz

Download URL stem_vibrations-1.4.1.tar.gz
Size 179.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1a6d81089486ec6de895b35b3e35fd5379065590ff7b454c5a229cc301782816
BLAKE2b-256 checksum
How to use checksums
4c3d3b471adf2b58a8598a14a4f2d8c30ec5f342264045358b452130ae1bd8be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / stem_vibrations-1.4.1-py3-none-any.whl

Download URL stem_vibrations-1.4.1-py3-none-any.whl
Size 111.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2991df1d8eb76dd1d84f90864bb44d77e478cda8664f95de9660933887c6a2f4
BLAKE2b-256 checksum
How to use checksums
70e3f4a72f5ac3c0eece0561789b9553ad6b5ce236017584a23b185a083584d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Security for STEM-Vibrations 1.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page