Skip to main content

momwire

A pure-Python method-of-moments antenna simulator with optional C++ accelerators (pybind11).

Extracted from antenna_designer.

Install

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .

macOS: the C++ accelerator uses Homebrew's OpenMP runtime, so brew install libomp is required — both to compile from source and to run the prebuilt Apple-Silicon wheel. The wheel deliberately does not bundle libomp (it links Homebrew's by absolute path) so that it shares a single OpenMP runtime with pynec-accel; two private copies in one process abort with OMP: Error #15 (or deadlock). Without libomp installed, the accelerator can't load and momwire warns and falls back to the slower pure-Python path. On Linux the system libgomp covers this, so no extra step is needed.

Test

pip install -e ".[test]"   # core + test deps (pytest, matplotlib, scikit-rf)
pytest tests/

The cross-validation against NEC2 (tests/test_pynec_backend.py) additionally needs PyNEC — a test-only dependency installed separately from a wheel (see below). Those tests skip cleanly when it isn't present; everything else runs without it.

Optional: PyNEC backend (test-only)

momwire can be cross-validated against NEC2 via PyNEC (the tests/test_pynec_backend.py suite); NEC2 also delivers ~5–10× faster single-frequency solves. PyNEC is a test-flow-only dependency — momwire's own solver never imports it.

Install the PyNEC wheel

Install PyNEC from the python-necpp fork's release. The distribution is named pynec-accel (the import name stays PyNEC); the wheels are self-contained — OpenBLAS is vendored (via scipy-openblas32), so no system BLAS, SWIG, or build toolchain is needed — and cover Linux, Windows, and macOS (arm64) on CPython 3.10–3.14:

pip install pynec-accel --no-index \
    --find-links https://github.com/stevenmburns/python-necpp/releases/expanded_assets/v1.7.6

--no-index ensures pip takes the fork's wheel rather than upstream PyNEC on PyPI (which is broken on current Python and lacks the OpenBLAS/OpenMP work). On macOS the wheel shares Homebrew's libomp (brew install libomp) rather than vendoring its own, so it can coexist with momwire's accelerator in one process. After install, from PyNEC import nec_context works and the cross-validation tests run; without it they're skipped (momwire itself needs no PyNEC).

Runtime thread pinning

The wheel links OpenBLAS and parallelises the NEC2 matrix fill with OpenMP. Pick thread counts up front:

export OMP_NUM_THREADS=$(nproc --all)   # PyNEC matrix fill
export OPENBLAS_NUM_THREADS=1           # muzzle numpy/scipy's idle pool

Pinning OPENBLAS_NUM_THREADS=1 stops numpy/scipy from spinning up their own OpenBLAS thread pool that contends with PyNEC's threads on the same cores. On a 100-director Yagi (2142 segs) this is worth ~8% wall time at NP=4.

Download files

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

Source Distribution

momwire-0.26.0.tar.gz (543.0 kB view details)

Uploaded Source

Built Distributions

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

momwire-0.26.0-cp314-cp314-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.14Windows x86-64

momwire-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

momwire-0.26.0-cp314-cp314-macosx_14_0_arm64.whl (624.0 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

momwire-0.26.0-cp313-cp313-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86-64

momwire-0.26.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

momwire-0.26.0-cp313-cp313-macosx_14_0_arm64.whl (624.6 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

momwire-0.26.0-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

momwire-0.26.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

momwire-0.26.0-cp312-cp312-macosx_14_0_arm64.whl (624.6 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

momwire-0.26.0-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

momwire-0.26.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

momwire-0.26.0-cp311-cp311-macosx_14_0_arm64.whl (619.5 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

momwire-0.26.0-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86-64

momwire-0.26.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

momwire-0.26.0-cp310-cp310-macosx_14_0_arm64.whl (618.0 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file momwire-0.26.0.tar.gz.

File metadata

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

File hashes

Hashes for momwire-0.26.0.tar.gz
Algorithm Hash digest
SHA256 d5c8ea606a9cc8b66b9f3a1e8f2b9bbe3f83d3ada50bc50d03c6665a2ae77f4a
MD5 acc975f593ffe404390eb5c30a594c30
BLAKE2b-256 570d178670149ead0819014216fbb2be575313647d977c1fbd4520abd7ef1a52

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0.tar.gz:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: momwire-0.26.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for momwire-0.26.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 dece1396b527bfe476ff425842b209dc888d05c2ad68aa9158ded213e4ff37dc
MD5 9e257a51dc2b47a47ef15c48f8d3d95d
BLAKE2b-256 4ba531701fc3251a7f115164b47e98e7f361cf7dc71645e27c345aff053948bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp314-cp314-win_amd64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a85395fdd2b422bd8d5e1443c0f54bbd5eeb90ab3bff2a4e6f4bfb782a4881a1
MD5 76e3cf3401a6b1ee5ae7bd9c2bc69196
BLAKE2b-256 9cc5dcf9e46f5f51585d6350e4762e34863aec409b34d0c892914634f895e9d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 11ca0d583a675ccae6b24d4903f6f4eaf2a471e8a566110356c926ffefd52108
MD5 d50b91390eef400fbb7081e0096e920b
BLAKE2b-256 8949f25e21081e81c42c2edc44c09a94bdaaa41fc32b382650de7176370f69e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: momwire-0.26.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for momwire-0.26.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9a1380bf9fa40a0ae99627960e7ace0447847c894a04a585c01fe025250019ad
MD5 2177cca01aea57c5f32f739f2cea7d3d
BLAKE2b-256 d0964daa572d5168160343ee4024b72f192321a9e1ed09993e71b689956ee552

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 22943065c2347a7acd8aba6ee41acdfa36fb4f0f82faccbd4a9e7aa652a34875
MD5 e1a64b78fbf294301a543b3af3382733
BLAKE2b-256 2a2fb25dda37d16671ff0f9d9fe6802e0edc6af91ab2428d8665b43f4bea645e

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 78915d5faef28385730f1eb91d628fdb76b2f62d208c551cfbd06c8e09f2ff8c
MD5 aad4946285702a6600b8cf36e2f176b8
BLAKE2b-256 c6f947c58c13ea98edfb8c1fc5f6ce15ba108605a5467dcd9da4b343dd69f205

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: momwire-0.26.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for momwire-0.26.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4d5cbed89a15e02a3ec4b8a1113c72bbeec1d0a8c20cfffb9f3ee702667df5a2
MD5 2db1198942d794312f6a8448d95a93d4
BLAKE2b-256 83552abdf6919f4637aadfd5865b09688a01dba535f53581506c87c20a3bcb31

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd4719dadfdf3729bfaaef739020f119f138176dbe0d9b53e7b910be20cc68e3
MD5 a9f1a972b070bd6e1308f6d20d9a6ea2
BLAKE2b-256 73ba75dc14b40bba347581effa8c02b53bb474a69a251a5d3c79f30499a81b0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 790884d9ff7e95afd1840ceef0d3c428f8ee5af717f49141ed7780da020410c8
MD5 edc12ef4ecb44fdcb75fe6909c9f25f0
BLAKE2b-256 358fdd1edffaa9e3c3d908b90779ae200b224613b3b75d91bbe4bd3b1667daee

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: momwire-0.26.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for momwire-0.26.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8eed9631c0392d2b8d22049154a182b0190ecad8c12294e5991223d8716e14aa
MD5 abc2d58a73a6a98436a572ed50b4ce18
BLAKE2b-256 2eac3dcb88503f1952e381a9630b494604703a79f60191f030aa3e3c3962c99e

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2643aef908ec2e44566b3d17cf37059bd32424de9b3bfc3d0ec1161342f59c41
MD5 927fee1b12e2cdbbfe3e7aff0ed9be9d
BLAKE2b-256 fd90f69ebef1dada1e2182999130c6a5440da3ab8c90eaece8b435ef37cf7782

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d93346dd90f9da18100851eb1f2939c5430d6b0d4a55a7d0c2d7fac5db4e3163
MD5 cce0395e2edd68d18daa6a6ecb6e444d
BLAKE2b-256 69b806fb0a228f272b61ed9826b3e73f8c4d4576a8bb6ade7bc49e74a9ed1daa

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: momwire-0.26.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for momwire-0.26.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d662bb728cd133c4d959f1fd29197c3f7ee26908b748ee44678b1b5c055b8195
MD5 06a57a0590661bda2f8fd119896f967a
BLAKE2b-256 64904b1fb08c84fd6ad55aee77cdffb71e304b5def9cbed1a5ad020d6422059e

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a86fcc52a55a136f2d6f8a65f306dd908f0b77b2040681cca083088ac187e7f0
MD5 a797da184b2167e1dd7ea7a6fdfd04ed
BLAKE2b-256 24875f6838cdadb15da0e7d61e4d43db4160d330baf7cab19aa02f705d1fc434

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

File details

Details for the file momwire-0.26.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.26.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 159cb14997d0a4cd480a3ab7f9690ae9bbfb554fb046b85b9f21a56e0cb9f34c
MD5 d49e2166cd9a9d2a6492d9c69b305ff0
BLAKE2b-256 2b36d6b50f9e99a86e67b97b1103bb4c9880b26b59e7e50ab00d71dae8674488

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.26.0-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: wheels.yml on stevenmburns/momwire

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

Release history Release notifications | RSS feed

0.50.0

19 files

0.49.0

19 files

0.48.0

19 files

0.47.0

19 files

0.46.0

16 files

0.45.0

16 files

0.44.0

16 files

0.43.0

16 files

0.42.0

16 files

0.41.0

16 files

0.40.0

16 files

0.39.0

16 files

0.38.0

16 files

0.37.0

16 files

0.36.1

16 files

0.36.0

16 files

0.35.1

16 files

0.35.0

16 files

0.34.0

16 files

0.33.0

16 files

0.32.0

16 files

0.31.0

16 files

0.30.0

16 files

0.29.0

16 files

0.28.1

16 files

0.28.0

16 files

0.27.0

16 files

This release

0.26.0 This release

16 files

0.25.0

16 files

0.24.0

16 files

0.23.0

16 files

0.22.0

16 files

0.21.0

16 files

0.20.0

16 files

0.19.0

16 files

0.18.0

16 files

0.17.0

16 files

0.16.0

16 files

0.15.0

16 files

0.14.0

16 files

0.13.0

16 files

0.12.0

16 files

0.11.0

16 files

0.10.0

16 files

0.9.0

16 files

0.8.0

16 files

0.7.0

16 files

0.6.0

16 files

0.5.0

16 files

0.4.1

16 files

0.4.0

16 files

0.3.0

16 files

0.2.3

16 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