Python SDK for authoring and running FrequenSolve finite-element simulations
Project description
FrequenSolve Python SDK
FrequenSolve Python is the authoring and orchestration SDK for FrequenSol finite-element wave simulation software. It builds solver-ready simulation inputs, manages model and acquisition metadata, reads trace outputs, and provides optional adapters for local, SLURM, and cloud execution.
The commercial solver binaries and backend services are licensed separately. This repository contains the Python SDK and lightweight mesh bindings needed to prepare inputs and inspect outputs.
Installation
FrequenSolve supports Python 3.10, 3.11, and 3.12 on macOS and Linux.
python -m pip install frequensolve
Install optional capabilities only when needed:
python -m pip install "frequensolve[parallel]" # SLURM/SSH/Dask helpers
python -m pip install "frequensolve[fast-fft]" # pyFFTW acceleration
python -m pip install "frequensolve[cloud]" # FrequenSol cloud backend
python -m pip install "frequensolve[seismic-io]" # SEG-Y/ASDF and seismic I/O
python -m pip install "frequensolve[visual]" # plotting helpers
python -m pip install "frequensolve[dev,docs]" # development and docs
Quickstart
from frequensolve.model import ModelSubdomain
from frequensolve.simulation import SeismicSimulation
from frequensolve.units import ureg
layer = ModelSubdomain(
mesh_block_id=1,
physics="acoustic",
properties={
"vp": 1.5 * ureg.km / ureg.s,
"rho": 2.2 * ureg.g / ureg.cm**3,
},
)
sim = SeismicSimulation(name="simple_acoustic")
sim.model.subdomains.append(layer)
sim.save("sim.json")
The SDK exports JSON/HDF5 contracts consumed by fast solver builds. Solver execution requires a licensed solver binary or an enabled FrequenSol execution backend.
Development
Create a local development environment from the repository root:
python -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[dev,docs,visual]"
Run deterministic unit tests by default:
python -m pytest
Release checks:
pre-commit run --all-files
git status --short
python -m build
python -m twine check dist/*
For a release, build from a clean tagged commit. Versioneer uses plain PEP 440
tags, so tag releases as 0.2.0, 0.2.1, and so on. The GitHub release
workflow builds the sdist and wheel, rejects dirty or untagged versions, and can
publish to TestPyPI from workflow_dispatch or PyPI from a published GitHub
Release after Trusted Publishing is configured for the testpypi and pypi
environments.
Solver, cloud, HPC, and visual tests are marked and must be selected explicitly:
python -m pytest -m integration
python -m pytest -m cloud
python -m pytest -m hpc
python -m pytest -m visual
Documentation
Build the Sphinx documentation locally with:
python -m pip install -e ".[docs]"
cd docs
make html
Fast solver contract updates are tracked in docs/source/fast_solver_api_updates.rst.
License And Support
FrequenSolve Python SDK is open source under the MIT license. The fast solver is licensed separately; for solver access and support, contact support@frequensol.com.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file frequensolve-0.2.0.tar.gz.
File metadata
- Download URL: frequensolve-0.2.0.tar.gz
- Upload date:
- Size: 463.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e964330fd12071c9a1ceef1a0424f9e1653217089ed95ce3136587b4a2a01e47
|
|
| MD5 |
0f74505a5c75a6d981b6feb3db5b01d0
|
|
| BLAKE2b-256 |
5a385184628c2ee54e621b25489a1e7bd5a670f9b04c9c772e7dfbb928be3e0b
|
Provenance
The following attestation bundles were made for frequensolve-0.2.0.tar.gz:
Publisher:
release.yml on FrequenSol/FrequenSolve
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
frequensolve-0.2.0.tar.gz -
Subject digest:
e964330fd12071c9a1ceef1a0424f9e1653217089ed95ce3136587b4a2a01e47 - Sigstore transparency entry: 1655956578
- Sigstore integration time:
-
Permalink:
FrequenSol/FrequenSolve@90252b7011b1bc618c09b7130e83cce5b98ce8a9 -
Branch / Tag:
refs/tags/0.2.0 - Owner: https://github.com/FrequenSol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@90252b7011b1bc618c09b7130e83cce5b98ce8a9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file frequensolve-0.2.0-py3-none-any.whl.
File metadata
- Download URL: frequensolve-0.2.0-py3-none-any.whl
- Upload date:
- Size: 419.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcb95aa2c672f5c05b59fe5bde356db2f8162c860c6f60960cf6763d2145717b
|
|
| MD5 |
78bb8eb4a9373cf2e4d2a75be589bc8e
|
|
| BLAKE2b-256 |
7d410dcd6b53a52441c003172c5ac7d111916c82331bccaedea2f1fd5f4c8fe2
|
Provenance
The following attestation bundles were made for frequensolve-0.2.0-py3-none-any.whl:
Publisher:
release.yml on FrequenSol/FrequenSolve
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
frequensolve-0.2.0-py3-none-any.whl -
Subject digest:
fcb95aa2c672f5c05b59fe5bde356db2f8162c860c6f60960cf6763d2145717b - Sigstore transparency entry: 1655956720
- Sigstore integration time:
-
Permalink:
FrequenSol/FrequenSolve@90252b7011b1bc618c09b7130e83cce5b98ce8a9 -
Branch / Tag:
refs/tags/0.2.0 - Owner: https://github.com/FrequenSol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@90252b7011b1bc618c09b7130e83cce5b98ce8a9 -
Trigger Event:
workflow_dispatch
-
Statement type: