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
         ↺

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfea-0.0.3.tar.gz (34.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyfea-0.0.3-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file pyfea-0.0.3.tar.gz.

File metadata

  • Download URL: pyfea-0.0.3.tar.gz
  • Upload date:
  • Size: 34.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyfea-0.0.3.tar.gz
Algorithm Hash digest
SHA256 be5ff4f33fe97a71f8b1bdb568160fd69321cdcf5096676cfe1442e9704ba921
MD5 c15c46f3698e4a3eee3fceaa58f899a2
BLAKE2b-256 5bbf0ef01e2312c535806cc5555fb13d9d9ac64871d8e2772f8b925c8c7cc3ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfea-0.0.3.tar.gz:

Publisher: publish_pyfea.yaml on Bowley-Systems/PyFEA

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfea-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: pyfea-0.0.3-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

Hashes for pyfea-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2fa0fb408520c2b6de35735411cf217816abf34cdafcd1d3d3e7c741bda6af9b
MD5 3096d749fc42ae6ee3b4849ab23ce912
BLAKE2b-256 74c38b5e96fe400bbe3da00ef89dabc8c8a7e6fa53d3e2870c48fa7e9a6577f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfea-0.0.3-py3-none-any.whl:

Publisher: publish_pyfea.yaml on Bowley-Systems/PyFEA

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page