Skip to main content

pyFea

An intermediate representation system for multi-physics problems.

Define Topology, Attach Metadata, Solve.
Keep consistent representation across physics.


License Python Version Status

[!IMPORTANT] This README contains the architectural and conceptual vision of PyFEA. Version 0.1 is intended to be released on December 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, and full 3D solutions using CSG.
  • 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
         ↺ (Feeds back over time state)

[!note] ↺ signifies that the Mechanical Integrator feeds back into the Circuit Solver at each time step.

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 Atmospheric 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 Documentation refers to engineering logs, problem-solving notes, and unpolished application notes. For polished documentation, refer to External Documentation.

All internal documentation can be found within this repo's issues.

Metadata

Release files for PyFEA 0.0.4

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

Source distribution (sdist)

Source distribution for PyFEA 0.0.4
File Size Uploaded
pyfea-0.0.4.tar.gz 34.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PyFEA 0.0.4
File Interpreter ABI Platform
pyfea-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 39.2 kB

Release files / pyfea-0.0.4.tar.gz

Download URL pyfea-0.0.4.tar.gz
Size 34.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d668c0fa4ddf356037863c68a75edd55a600bdc44378e0440d99d4ffd51f87b8
BLAKE2b-256 checksum
How to use checksums
8a223593a125a0b482e423526c67fa553384890874bb46f628f2e7f1dd50df42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.

Transparency log

Release files / pyfea-0.0.4-py3-none-any.whl

Download URL pyfea-0.0.4-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1988bc6956d99c29a629e4d56edce0029e3a93c50138881b8c8de62c82f2cddf
BLAKE2b-256 checksum
How to use checksums
484628a298b6ac37df3b2440d2ce37cd91f5e6428082e56594df8c71546d0eaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.1

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