FERS_calculations
FERS_calculations is a high-performance library for Rust-backed calculations in mechanical engineering. It can process JSON input files to deliver fast and accurate results. While it can be run as a standalone tool, integration with FERS_core simplifies input creation and workflow management.
Features
- Standalone Functionality: Run directly by providing a valid JSON input file.
- Rust-Powered Performance: Designed for speed and reliability in computational tasks.
- Python Integration: Seamless integration with
FERS_corefor easy preprocessing and result handling. - Engineer-Friendly Design: Minimal coding effort required for complex structural engineering calculations.
Installation
pip install fers_calculations
This installs the pre-built Rust bindings -- no Rust toolchain required.
Usage
Standalone (Python)
You can call fers_calculations directly from Python without FERS_core:
import fers_calculations
# Load your JSON input
with open("001_cantilever_with_end_load.json") as f:
json_data = f.read()
# Run the analysis
results_json = fers_calculations.calculate_from_json(json_data)
# Save the results
with open("results.json", "w") as f:
f.write(results_json)
Premium licensing and timeouts
Passing api_key unlocks Premium model limits. That is the only thing that makes
the library contact the network — omit it and no request is ever sent.
Because a licence check is a network call, it is bounded. If ferscloud.com does
not answer within license_timeout seconds (default 30) the call raises
fers_calculations.FersTimeoutError before the solve starts, so retrying is
always safe:
import fers_calculations
try:
fers_calculations.calculate_to_file(
json_data, "results.json", api_key=KEY, license_timeout=60
)
except fers_calculations.FersTimeoutError:
... # transient — retry or skip this model
FersTimeoutError subclasses the built-in TimeoutError, so except TimeoutError
catches it too. A definitive failure — an invalid key, a non-premium account, an
unreachable host — raises RuntimeError instead, since retrying those is pointless.
license_timeout bounds the licence handshake only, not the solve. To put a
hard ceiling on a whole solve, run it in a killable subprocess.
Two environment variables are read (real process environment only — .env files
are loaded by the CLI binary, never by this extension module):
| Variable | Purpose | Default |
|---|---|---|
FERS_LICENSE_TIMEOUT |
Default license_timeout, in seconds |
30 |
FERS_CLOUD_URL |
Base URL of the licence API | https://ferscloud.com |
With FERS_core (recommended)
For a more ergonomic workflow, install FERS_core which handles model creation, calling the Rust engine, and post-processing / visualisation:
pip install fers-core
from fers_core import FERS
model = FERS.from_json("001_cantilever_with_end_load.json")
model.calculate()
model.plot_results_3d()
See FERS_core on PyPI for full documentation.
Metadata
Release files for fers-calculations 0.2.69
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fers_calculations-0.2.69-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| fers_calculations-0.2.69-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| fers_calculations-0.2.69-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl | CPython 3.9 | abi3 | macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) | Details |
Total release size: 20.5 MB
Release files / fers_calculations-0.2.69-cp39-abi3-win_amd64.whl
| Download URL | fers_calculations-0.2.69-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6f4c966b98ab9656b04846ffddd605187b16b2d4441a2a0a6abfb36499ef5ecc
|
|
BLAKE2b-256 checksum How to use checksums |
b184fb76165a2396acacf449b1f5f409c6ca04bb7d5ea93815d230fd9b57fd0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / fers_calculations-0.2.69-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fers_calculations-0.2.69-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.4 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
a72c78915cf3deca0c129a1169202972216993beaef81bf24832c37387e645be
|
|
BLAKE2b-256 checksum How to use checksums |
ecc670b603cd1bbb29e43f51d2270d4c8234bf996565579127baaf1574a27379
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / fers_calculations-0.2.69-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | fers_calculations-0.2.69-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 6.1 MB |
| Tags | CPython 3.9 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
137c3b514bc9b33bf0cef1d1eaa49f1c346a7576cc65ae1f3c86a0842cc2b573
|
|
BLAKE2b-256 checksum How to use checksums |
af82d114ebcda03eba4463c6a1f98ea5c4ac27773911d6497481200064118f37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|