PyMMM - Würth Elektronik Magnetic Modeling Module
Python wrapper over OpenMagnetics for flyback transformer and current transformer selection from Würth's catalog.
Features
- Energy-based magnetic filtering - Quickly filter catalog by storable energy
- Virtual magnetics - Generate winding combinations from real products
- Flyback/CT design - Process design inputs for flyback and current transformers
- Full simulation - Core losses, winding losses, temperature rise calculations
- Visualization - SVG plots of cores, windings, and magnetic fields
Installation
pip install wheelhouse/pymmm-*.whl
Quick Start
import PyMMM
# Load catalog
PyMMM.load_magnetics_from_file("flybacks.ndjson", expand=True)
# Define requirements
inputs = {
"inputVoltage": {"minimum": 85, "maximum": 265},
"operatingPoints": [{
"outputVoltages": [12],
"outputCurrents": [1],
"switchingFrequency": 100000,
"mode": "Discontinuous Conduction Mode"
}]
}
# Filter by energy
PyMMM.compute_energy_cache(100, inputs)
min_energy = PyMMM.calculate_flyback_required_magnetic_energy(inputs)
refs = PyMMM.filter_magnetics_by_energy(min_energy, min_energy * 2)
# Get virtual magnetics
for ref in refs:
result = PyMMM.calculate_virtual_magnetics_by_reference(ref, inputs, True)
print(result["virtualMagnetics"])
Building from Source
# Build wheel
python3 -m pipx run build
# Or with cibuildwheel for manylinux
cibuildwheel
Documentation
See llms.txt for detailed API documentation and usage patterns.
API Reference
Run help(PyMMM) or help(PyMMM.function_name) for function documentation.
Key Functions
| Function | Description |
|---|---|
load_magnetics_from_file |
Load catalog from NDJSON |
compute_energy_cache |
Precompute storable energy |
filter_magnetics_by_energy |
Filter by energy range |
calculate_virtual_magnetics_by_reference |
Generate winding combinations |
filter_magnetics_by_flow |
Score and rank magnetics |
devirtualize_mas_by_reference |
Map virtual to real product |
calculate_saturation_current |
Calculate saturation current |
License
Proprietary - Würth Elektronik
Metadata
Release files for PyMMM 0.7.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pymmm-0.7.12-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| pymmm-0.7.12-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 | Details |
| pymmm-0.7.12-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 | Details |
| pymmm-0.7.12-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 | Details |
Total release size: 29.3 MB
Release files / pymmm-0.7.12-cp312-cp312-win_amd64.whl
| Download URL | pymmm-0.7.12-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e06305eb8c82198c64003faba0de58fa4d19cbdf9a8775c11d6a8ea90e051d6e
|
|
BLAKE2b-256 checksum How to use checksums |
bab3cf96bd49f3aa396c15c645f84e30df17514f7d603974a6a4a8ea0d5f0801
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / pymmm-0.7.12-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pymmm-0.7.12-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.5 MB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4da77a16448d5af38623d0750dbd2c01b8d6c7d195e1910912a1d263f31f5f45
|
|
BLAKE2b-256 checksum How to use checksums |
11fc004227168226436f7c8436717cf1283dc4c3cbd103508f03ac0b90bf511d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / pymmm-0.7.12-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pymmm-0.7.12-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.5 MB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
18d474b212f1dd9949a92895eab40699c1ea583cb1b2f8e8e71016d671678ecc
|
|
BLAKE2b-256 checksum How to use checksums |
6f2cfa28da88e0074a0dd3197efff0ab471e1c24a88ce5fe4d4899f053b9e3dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / pymmm-0.7.12-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pymmm-0.7.12-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.5 MB |
| Tags | CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
96fc9aa71e5da776605054e6c5571215d41d8a5c7c1a5068174a2b1329783c6d
|
|
BLAKE2b-256 checksum How to use checksums |
2c95ddf98905db169a08876986177aff86870888166db1b35e66b88449574cbf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|