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 wheels are self-contained — OpenBLAS is vendored (via scipy-openblas32), so no system BLAS, SWIG, or build toolchain is needed — and cover Linux + Windows on CPython 3.10–3.14:

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

--no-index ensures pip takes the fork's wheel rather than upstream PyNEC on PyPI (same version, but its builds are broken on current Python and it lacks the OpenBLAS/OpenMP work). 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.5.0.tar.gz (185.4 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.5.0-cp314-cp314-win_amd64.whl (825.8 kB view details)

Uploaded CPython 3.14Windows x86-64

momwire-0.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.6 MB view details)

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

momwire-0.5.0-cp314-cp314-macosx_14_0_arm64.whl (320.2 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

momwire-0.5.0-cp313-cp313-win_amd64.whl (800.7 kB view details)

Uploaded CPython 3.13Windows x86-64

momwire-0.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.6 MB view details)

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

momwire-0.5.0-cp313-cp313-macosx_14_0_arm64.whl (320.4 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

momwire-0.5.0-cp312-cp312-win_amd64.whl (800.6 kB view details)

Uploaded CPython 3.12Windows x86-64

momwire-0.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.6 MB view details)

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

momwire-0.5.0-cp312-cp312-macosx_14_0_arm64.whl (320.4 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

momwire-0.5.0-cp311-cp311-win_amd64.whl (796.7 kB view details)

Uploaded CPython 3.11Windows x86-64

momwire-0.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

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

momwire-0.5.0-cp311-cp311-macosx_14_0_arm64.whl (316.7 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

momwire-0.5.0-cp310-cp310-win_amd64.whl (796.3 kB view details)

Uploaded CPython 3.10Windows x86-64

momwire-0.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

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

momwire-0.5.0-cp310-cp310-macosx_14_0_arm64.whl (315.3 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: momwire-0.5.0.tar.gz
  • Upload date:
  • Size: 185.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for momwire-0.5.0.tar.gz
Algorithm Hash digest
SHA256 4473c1901bd7cf4b4c345c7fd12ebb2dd433f00ba151b7de81962897aeb25e43
MD5 30c3fc384eeb3f0fb63c661c4c7c7485
BLAKE2b-256 83b768c8b28af05c5f643d3e4b0c80a46ba6f6479767252f0c5d4972a2fc1795

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: momwire-0.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 825.8 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for momwire-0.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4d174742d7aaba8ea480e06b75098ce6f375db817bf005dd67cc49a3dec50e0d
MD5 408f55db3cd65b214d7da7180ebbe470
BLAKE2b-256 e0195a179511977a598970118439f577ff50ea9e5852537283c0b518487ced06

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f483a2594316676561bc5224189cc51bbcda981b0d9f09726a3b8943545ba84a
MD5 39e99abf30e74403866f35d05c67e825
BLAKE2b-256 d6d10e4c9a1647d02cc518e4293573ba438b2842776b53f07d494c656338571a

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 64b8035c5df09e08d3e88466e6800d8f5e1b912cb79ab346ab44500e4690ecdd
MD5 9f8f4015c8821fa46de57060b019baae
BLAKE2b-256 8c66494079b059411664ad3326f6997f46c1937fbbe0c281834666223992a0fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: momwire-0.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 800.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for momwire-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c4502140851e6e65bd7cf16f56007101cba06385cede83c32c4197e41d0b408a
MD5 9fd78c33cf2f3b6d269dd57f35ebf404
BLAKE2b-256 c3582de0e03d984d6bc46d4095906190928b34fca3d8ea7511c9c06770eaf7a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc4d6b6e8b2a2a66770ebc78fb1463fb0a2cf8df40c77915022b877670c4c019
MD5 59cbe35fa1744b18d882e38823446e13
BLAKE2b-256 44202ff4e8b32318b4729a4dd086fc07d8effd40340736b5a289d9ac647e3a86

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2b72d0db87b0c1039ea62cb33e0baab3e17186713caaa59461c500d80c63d186
MD5 0e89c642aa78ee77fd0caeffa97af419
BLAKE2b-256 236550330c63c55fc50fa159a8df1bae19c80701e58b746bd2aa13af3cb89944

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: momwire-0.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 800.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for momwire-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f235dda0374734896bfebb7b78f1f0a2bde5bd29ecaa105be66bd75848e4abd2
MD5 e2647bdf75187529c6dde5d4fc8d16a6
BLAKE2b-256 210e0bd24d62e292feb45db464ace6e163579e5ef87e1a3617613b0eedbd44ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9fc0f358242420ad0c9fdd10b5113e2e2d86689d54659f7f34d9c5e554d9087c
MD5 dbaf5fe98ea7ffb3434e02677626b4df
BLAKE2b-256 5e0e875b8f15b5be1b94dac6b9c465f092b5fc0ef4c8418cec58f37c5dfda675

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8d3adbab5f58792383c5a1b36f0631a53a318d2db2a80142f15a8e37b443192e
MD5 b565821ac78f2b4ec83ca5a102fa09d2
BLAKE2b-256 cf1ef67251b3bb3ddac6440477306728d90e5d3469923ba2700e68db83a9af2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: momwire-0.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 796.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for momwire-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 42fe88db0d8ffbf637ac9fa8722b9edd1e029b8f2b178d591e62a44162d8e33e
MD5 4dd002e3eba98649abd46378f2535390
BLAKE2b-256 b5909e43ec92ee9acbd8af6458f4b97deeb5a65e72f299f568ed37a00561d187

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f0b923156677382f06df7fe218adc853006ee4b5cdf482e1e7efad0b9b4fbec6
MD5 4a8abf549951c11260999f37bfb46ec6
BLAKE2b-256 e7ca85039f4b241d7b0e40efe2d35c87189977f726f7d653d4cb1a9982f106e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 aa8f68fa33c5d457ec9b0ce44b7d7145e604b716bafb4b160df466fabc01f959
MD5 3c81c502fa2df11dd08a619201f0ff1f
BLAKE2b-256 35d1e506b91f96b6c5fef662ca87bf45d3758d35b902c2e60bf7b73093e165d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: momwire-0.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 796.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for momwire-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 99d3a53e5b70170794cc7353bc6ee330b43c5533c1c7e6c22ac6c006b7452598
MD5 7ecb1aaea8c3390ed639794291c9ae22
BLAKE2b-256 92ad686a19805fd3f0c71c0d80e988e877a893151b48f90aa0e1bbdc72b8b680

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ae734471a69f6c28c4d71b6ac4b88d59b4cbe90ab525d39b7b4ca54708d4bb3
MD5 ae6d2d8eb2f312cbe07c43dc0ed0eaef
BLAKE2b-256 8594ace44c5846e6ee01161d6ce0a9c2efacad84c15bd37b97e315b3570b5999

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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.5.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for momwire-0.5.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4876c4fb376da1aae7b00069cf6335090bd34a9a8be59f930bee489a45e1020a
MD5 847e5a619a4daf4ad9995f7854cb58ff
BLAKE2b-256 98309371737d7a23268d504f925797e0ddcbc68a5c687bfa6d889cde2db28a7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for momwire-0.5.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

0.26.0

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

This release

0.5.0 This release

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