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.22.0.tar.gz (388.6 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.22.0-cp314-cp314-win_amd64.whl (965.9 kB view details)

Uploaded CPython 3.14Windows x86-64

momwire-0.22.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

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

momwire-0.22.0-cp314-cp314-macosx_14_0_arm64.whl (470.0 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

momwire-0.22.0-cp313-cp313-win_amd64.whl (939.8 kB view details)

Uploaded CPython 3.13Windows x86-64

momwire-0.22.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

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

momwire-0.22.0-cp313-cp313-macosx_14_0_arm64.whl (470.2 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

momwire-0.22.0-cp312-cp312-win_amd64.whl (939.7 kB view details)

Uploaded CPython 3.12Windows x86-64

momwire-0.22.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

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

momwire-0.22.0-cp312-cp312-macosx_14_0_arm64.whl (470.2 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

momwire-0.22.0-cp311-cp311-win_amd64.whl (934.7 kB view details)

Uploaded CPython 3.11Windows x86-64

momwire-0.22.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

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

momwire-0.22.0-cp311-cp311-macosx_14_0_arm64.whl (466.1 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

momwire-0.22.0-cp310-cp310-win_amd64.whl (934.0 kB view details)

Uploaded CPython 3.10Windows x86-64

momwire-0.22.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

momwire-0.22.0-cp310-cp310-macosx_14_0_arm64.whl (464.6 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for momwire-0.22.0.tar.gz
Algorithm Hash digest
SHA256 007f550f862846d9b4e1e14d80ab7432049ee3c94cb5a8ae5d33346fdf7311cb
MD5 e3f1d774ff714aa0d43b5a1bbdb28f72
BLAKE2b-256 2808ce4bd15be70fd98ab16fae468fbd3aec7e2a99870438e9e93d3bc94f90ce

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.22.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 965.9 kB
  • 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.22.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ca9de3532e3b00cb6af1c9f8b2fd7426f62d8889f86ca13298373f373fe3c712
MD5 8cbdbf9bbd7fe70427b004ac051d719d
BLAKE2b-256 07f60ae95b8994f3cfbd1c10bba4b62cd0539ab9c626b11853b54b5312e3b237

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1aa7d1e696fe814b84489b5fb5a65d83449e7edf989160ee2c36b7433fd28311
MD5 b88f177164a6b4306a7d4f454d972c14
BLAKE2b-256 e74b3b6d942dd5e361a45fad1378a8aefd74205dc5f102e2f01c9bad1435c425

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 89e6f8a80c11a4d72cf389f82cb70de2ef2ace11a207a4b52381ce28d2668258
MD5 2d0187c4966f1b7b2a8d06e3290070d9
BLAKE2b-256 b592b73c077f8da2f97c1b8058ca24771088a51c6cceb98063e2443ce1c9afcd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.22.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 939.8 kB
  • 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.22.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ae734e6f675a339d5cde2a01218939dc077edb5506721f564455ee74768b90aa
MD5 e8748ae1b9da5e735c26eca4b4f40c9e
BLAKE2b-256 8f700f91e905eb273470853d423d7d15de2de1a6af0c0df3f72f5014e54b16b1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71e865d582b91c5412efe7f2f0e4d271d18802a3ed22d0692222ce0f02335e5e
MD5 cfb70f7be8585faca2e47ed796761153
BLAKE2b-256 ed2b072ba6b9ee9dbeb177bcba22cc3ceb05b0bfb94a045fd823a86750e889e4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 15efe792cf11fb8fc804b65575e19cedc23b89696addb0fd65f3ca4c49b28e13
MD5 fe3643b36c5ed6802438a298f047ab41
BLAKE2b-256 9f44e28653b991d412804b54c87779e9ab80f0c83c9aa5ba1c39f20cc39480d4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.22.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 939.7 kB
  • 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.22.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 44d0957caa6021908549a92b5a3c86cfee450212b2ce1c149a72919ac09de8da
MD5 d1b871d003ecf6b945009ab889454567
BLAKE2b-256 fe08afd6e31d1f6bb352deb0eb92b1b3bc36831090e7704ebc4263b7b1d1899d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 077787c1cd1cca26cf1e117bb318f52395cced2391841dc5f70316a318fcbe1d
MD5 779df2b5755674b1493e4a266d46d0eb
BLAKE2b-256 b4e4d88e66446bce55959c53b04a2e7df16699fddd567c2f49d92cb73d3e0472

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8ed3bd8beab27194335bfa119d532f8c90bcada3ce8ab69e4a2dbcb3798d0f9b
MD5 6094b29c2823611da9cf1ca43293e3c4
BLAKE2b-256 73125b3d1ecf0e22edbfa421e385c3e6f370d2998811900a5b9b074fc35c66e4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.22.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 934.7 kB
  • 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.22.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5d35e45277cb5963ea973ba624e6c0411c8439bd6ec14efa2e9b8ca746646c2b
MD5 fc8b010b1b80874c0a634ff2f5bc07b6
BLAKE2b-256 666e1077f6fa15577e9a9306eef49d39e48c769f4dbd92a225b50bda956c0e10

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 29ac4cd821b8c46241235935ab971b3cc718d665556e9b6f7e351a11503789ef
MD5 0984940e571cc7386e3222b35775af65
BLAKE2b-256 e850043475349adf82d2399df7402795575e4fd7a1f4189c7a6199b352f98c72

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 39d8486c4809590fb51947dd6341354aa8eca932e3f88bda9c5f4b8fed0b77cb
MD5 ce80de6575f68a38db70854f747d1c14
BLAKE2b-256 49827aed31f6a9d853f1a3b3de8eb35f36ff657963e4d0fa5b944724514c3c8f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.22.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 934.0 kB
  • 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.22.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3d077512e353425c3fa44cb559817915795ec0dedc38889367eb97a00926b5f1
MD5 162073d5196e702b678269b7d7c00d7e
BLAKE2b-256 3852536765f94397c9a8106b44c84b6cdf7c1309a08c14d8d428d5ad4bf14864

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 21bed9f2c00cd8ce565cc96bdf0d482913ecb086c0dd464b1eb2985817166881
MD5 3c91dd9a0211f4c37b64dedc439d1678
BLAKE2b-256 9be55ebe69767cb2aef48e8d7c8ef98e64e6a1fb75dc2a3486b1d71dd9ca1ad2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.22.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 deea2aff53dc506b1f1f1ed2e373b0023a1976cd4e72b22358f1838a96dd23d7
MD5 8fd8294f51852b7b6cbb0a6a880030bf
BLAKE2b-256 217ec94163f5c188ee3cbd6b8de39036a396c2b0a2b495a116abd27efb122720

See more details on using hashes here.

Provenance

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

This release

0.22.0 This release

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