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

STEM: Soil and Track System Modelling Tool

Tests Documentation Status codecov PyPI version Python versions License

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.10, 3.11, or 3.12
  • 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.0

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.0
File Size Uploaded
stem_vibrations-1.4.0.tar.gz 179.7 kB Details

Built distribution (wheel)

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

Total release size: 291.5 kB

Release files / stem_vibrations-1.4.0.tar.gz

Download URL stem_vibrations-1.4.0.tar.gz
Size 179.7 kB
Tags Source
SHA-256 checksum
How to use checksums
dce766ad927748193b07e1a461de52fc2cb956cb4c194bcb154091583d57a011
BLAKE2b-256 checksum
How to use checksums
90d6327d5f8e383ef1aa30bda6800031a7fd591cbe2aef2b0c32def294614bd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.11

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

Download URL stem_vibrations-1.4.0-py3-none-any.whl
Size 111.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
78b1f13d9eedab223df51ad435b1e68e8c7177225f03882f0bfda4a55eab445b
BLAKE2b-256 checksum
How to use checksums
b4fb8b66d1146179f2cf8697b349227a1bf9f5c2ccff1a8dc41bf0c04db870ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.11

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1

2 release files

1.0

2 release files

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