An intermediate representation system for multi-physics problems.
Define Topology, Attach Metadata, Solve.
Keep consistent representation across physics.
[!IMPORTANT] This README contains the architectural and conceptual vision of
PyFEA. Version0.1is intended to be released onDecember 11, 2026.
Overview
PyFEA is a solver-adaptor engine that functions as an intermediate representation system for computational engineering. It creates a consistent representation across domains because continuous problems should use continuous tooling.
[!IMPORTANT] Objectives:
- Allow for the same methodology across domains: define, attach, and solve.
- Allow for solver-adaptors across
planar,axisymmetric, andfull 3Dsolutions usingCSG.- Support integration with solvers across finite element, lumped parameters, and SPICE models.
- Restrict all inputs and outputs to dimensionally consistent units.
What is a Solver Adaptor?
An abstract boundary between a solver and PyFEA, it allows PyFEA to orchestrate the problem while the solver computes the solution.
For example, if you wanted to simulate an axial flux motor, it would require a 3D magnetostatic solver and perhaps a
circuit solver for the triple half-bridge driver.
SPICE Circuit Solver
↓
3D Magnetostatic Solver
↓
Mechanical Integrator
↺
This is much easier than writing one large solver for axial flux motors. However, this isn't the only benefit.
The main benefit is that a new arbitrary problem becomes a single custom adaptor away from solving.
For example, if you wanted to simulate an Astrospheric ion engine, it would require a 3D electromagnetic solver and a 3D fluid dynamics solver.
But what about ionization? This is where a custom solver-adaptor comes in — you can write your own ionization solver and the pipeline is complete.
3D Electromagnetic Solver
↓
3D Fluid Dynamics Solver
↓
Custom Ionization Solver
↺
High-Level Architecture
PyFEA has a series of foundational dependencies that allow the engine itself to stay streamlined.
UIV/UT (DSL) → PicoUnits (Runtime Analysis) → PicoMaterials (Material Library) → PyFEA (Solver-Adaptors)
Unit-Informed Values (.uiv) is the custom domain-specific language for parameter and material files. PicoUnits interprets the .uiv
file format and performs runtime dimensional analysis. Using .uiv and PicoUnits, PicoMaterials stores material data and passes material
assumptions to PyFEA, which orchestrates the solver adaptors to solve the problem and returns the assumption tree.
Installation
Until release, this only installs the overview page and related files:
pip install pyfea
Documentation
[!important]
Internal Documentationrefers to engineering logs, problem-solving notes, and unpolished application notes. For polished documentation, refer toExternal Documentation.
All internal documentation can be found within this repo's issues.
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 pyfea-0.0.1.tar.gz.
File metadata
- Download URL: pyfea-0.0.1.tar.gz
- Upload date:
- Size: 34.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5416d85233a22e870243d0ecc6689075f46ed2d395dddb20bd3f62d3e03bec3
|
|
| MD5 |
47c6b6f43d81e52095208781c5b110fc
|
|
| BLAKE2b-256 |
6fc99b109033129588e91d7e1d94b2677c7897640a1ba1ed59f14280c548f771
|
Provenance
The following attestation bundles were made for pyfea-0.0.1.tar.gz:
Publisher:
publish_pyfea.yaml on Bowley-Systems/PyFEA
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyfea-0.0.1.tar.gz -
Subject digest:
b5416d85233a22e870243d0ecc6689075f46ed2d395dddb20bd3f62d3e03bec3 - Sigstore transparency entry: 2422488251
- Sigstore integration time:
-
Permalink:
Bowley-Systems/PyFEA@94bf3e23b5b20eb07f3f6d60ece31e2747c657c2 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/Bowley-Systems
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_pyfea.yaml@94bf3e23b5b20eb07f3f6d60ece31e2747c657c2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyfea-0.0.1-py3-none-any.whl.
File metadata
- Download URL: pyfea-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
827358576b870092050c43ff4c234d956b3eb7b2658212331b9fa99fe77354a0
|
|
| MD5 |
30672664f7b6ccc706935d4b8b0aef47
|
|
| BLAKE2b-256 |
993b313198386778f4673e1f32d7047ca6992523a1ffc9f4d857ca9f10609fdd
|
Provenance
The following attestation bundles were made for pyfea-0.0.1-py3-none-any.whl:
Publisher:
publish_pyfea.yaml on Bowley-Systems/PyFEA
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyfea-0.0.1-py3-none-any.whl -
Subject digest:
827358576b870092050c43ff4c234d956b3eb7b2658212331b9fa99fe77354a0 - Sigstore transparency entry: 2422488267
- Sigstore integration time:
-
Permalink:
Bowley-Systems/PyFEA@94bf3e23b5b20eb07f3f6d60ece31e2747c657c2 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/Bowley-Systems
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_pyfea.yaml@94bf3e23b5b20eb07f3f6d60ece31e2747c657c2 -
Trigger Event:
push
-
Statement type: