Skip to main content

FERS_core

FERS_core is an open-source Finite Element Method (FEM) library written in Rust with a Python interface. It provides the foundational tools and components necessary for performing FEM analysis. This core package is designed for users who need a reliable and efficient FEM solver.

Features

  • Basic Finite Element Method (FEM) solvers
  • Mesh generation and manipulation tools
  • Support for various types of finite elements
  • Easy-to-use Python interface for integration with existing workflows
  • Designed for high performance with Rust

Installation

You can install FERS_core via pip:

pip install FERS

Solving a model

from fers_core.builders import create_beam

model = create_beam(5.0, "IPE180", udl=-5000.0)   # 5 m span, 5 kN/m downward
model.run_analysis()
print(model.resultsbundle)

Use run_analysis_to_file(path, ...) instead when the result is large — it streams the JSON straight to disk rather than through the Python heap.

Premium solves and timeouts

Without an API key the solver runs at Free-tier limits (100 members) and makes no network call at all. Passing api_key raises those limits:

model.run_analysis(api_key=KEY)

A key means each solve first verifies the licence with ferscloud.com, so that handshake is bounded. If the licence server does not answer within license_timeout seconds (default 30) the call raises FersTimeoutError before the solve starts — so retrying is always safe:

import fers_calculations

try:
    model.run_analysis(api_key=KEY, license_timeout=60)
except fers_calculations.FersTimeoutError:
    ...   # transient stall — retry or skip this model
except RuntimeError:
    ...   # definitive — bad key, non-premium account, or a rejected model

Keeping those two arms apart is the point: retrying a RuntimeError fails identically, while collapsing both into except Exception turns a retryable blip into a lost result. See fers_core/examples/203_Premium_Batch_Solve.py for the full unattended-batch pattern.

FersTimeoutError subclasses the built-in TimeoutError, so a plain except TimeoutError catches it too.

Set FERS_LICENSE_TIMEOUT (seconds) to change the default without editing any call sites. It must be a real environment variable — .env files are not read by the engine.

license_timeout bounds the licence handshake, not the solve. A solve is native code with no cancellation point, so no in-process timeout can interrupt it. For a hard ceiling on total wall time per model, run each solve in a killable subprocess — that also reclaims its memory.

Requires engine fers_calculations >= 0.2.53.

Metadata

Release files for FERS 0.1.97

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

Source distribution (sdist)

Source distribution for FERS 0.1.97
File Size Uploaded
fers-0.1.97.tar.gz 300.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for FERS 0.1.97
File Interpreter ABI Platform
fers-0.1.97-py3-none-any.whl Python 3 none any Details

Total release size: 699.8 kB

Release files / fers-0.1.97.tar.gz

Download URL fers-0.1.97.tar.gz
Size 300.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c600a02cd1c0369a94a452ecfdb6c6493183ccd003927f72695c164dbc79d875
BLAKE2b-256 checksum
How to use checksums
cceb8c181ca0c46a689ebdb793bc93f8b1ee05f138fae9ac8de14e3389bc7985
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / fers-0.1.97-py3-none-any.whl

Download URL fers-0.1.97-py3-none-any.whl
Size 399.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ab2f4f804508391bcff8bf9d21738f5ab7bca697e97d1ce8253d930f079d9fdd
BLAKE2b-256 checksum
How to use checksums
dd30e31354c1bef467244cec169437425043a7e2fe5586f17563c114228e8d44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

0.1.99

2 release files

0.1.98

2 release files

This release

0.1.97 This release

2 release files

0.1.96

2 release files

0.1.95

2 release files

0.1.94

2 release files

0.1.93

2 release files

0.1.85

2 release files

0.1.83

2 release files

0.1.82

2 release files

0.1.80

2 release files

0.1.79

2 release files

0.1.77

2 release files

0.1.71

2 release files

0.1.70

2 release files

0.1.68

2 release files

0.1.67

2 release files

0.1.66

2 release files

0.1.65

2 release files

0.1.61

2 release files

0.1.60

2 release files

0.1.59

2 release files

0.1.56

2 release files

0.1.55

2 release files

0.1.54

2 release files

0.1.53

2 release files

0.1.52

2 release files

0.1.51

2 release files

0.1.49

2 release files

0.1.48

2 release files

0.1.47

2 release files

0.1.46

2 release files

0.1.45

2 release files

0.1.44

2 release files

0.1.43

2 release files

0.1.42

2 release files

0.1.41

2 release files

0.1.40

2 release files

0.1.38

2 release files

0.1.37

2 release files

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.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