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.68
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.68-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| fers_calculations-0.2.68-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.68-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl | CPython 3.9 | abi3 | macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 | Details |
Total release size: 20.5 MB
Release files / fers_calculations-0.2.68-cp39-abi3-win_amd64.whl
| Download URL | fers_calculations-0.2.68-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
7dffbb74df620920dea7920d60209d67cc2014662752ed04e177e65b003ca769
|
|
BLAKE2b-256 checksum How to use checksums |
7a487e25c608bca0efe99032fcb7a267884c496cd7c22bfdd4588c128e6a5f9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / fers_calculations-0.2.68-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fers_calculations-0.2.68-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 |
642eaadfc695a0b046388525fd29639c481540f1232e452fcdd2cd80421498f4
|
|
BLAKE2b-256 checksum How to use checksums |
32a862f879d6bf111a4dd5d4a7ded5f7b765d8372816aa054fba14d33200f102
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / fers_calculations-0.2.68-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | fers_calculations-0.2.68-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 |
1fcc33dba6cc9a32b5f12ce11b941621158c5658816702e55819acb452be7203
|
|
BLAKE2b-256 checksum How to use checksums |
3b2cbebedd188eba5955fc4e5978291ef788af94a16a415bcd3cc4328a6d7920
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|