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.25.0.tar.gz (522.3 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.25.0-cp314-cp314-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.14Windows x86-64

momwire-0.25.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

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

momwire-0.25.0-cp314-cp314-macosx_14_0_arm64.whl (591.9 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

momwire-0.25.0-cp313-cp313-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.13Windows x86-64

momwire-0.25.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

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

momwire-0.25.0-cp313-cp313-macosx_14_0_arm64.whl (592.5 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

momwire-0.25.0-cp312-cp312-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.12Windows x86-64

momwire-0.25.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

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

momwire-0.25.0-cp312-cp312-macosx_14_0_arm64.whl (592.4 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

momwire-0.25.0-cp311-cp311-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.11Windows x86-64

momwire-0.25.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

momwire-0.25.0-cp311-cp311-macosx_14_0_arm64.whl (587.5 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

momwire-0.25.0-cp310-cp310-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.10Windows x86-64

momwire-0.25.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

momwire-0.25.0-cp310-cp310-macosx_14_0_arm64.whl (586.4 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for momwire-0.25.0.tar.gz
Algorithm Hash digest
SHA256 a8af9af0fe0aae5303248d274d6dff357c3f19aede8e150badf595dd12a1605d
MD5 4a20b9ad3ac46a4750e2c71aa7c410ec
BLAKE2b-256 2bc44835aa5a03607155ce9857a8ff79c801c307f208fefc07430185125b54f5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.25.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.25.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 1d3fc2887a381549d56a1403deb667381cc098fb9f9fdf9ac66cca7dc4e4807f
MD5 0a721557592a243969b3bde5da30fe2a
BLAKE2b-256 b8b88771bd3f9baabf1b0794c2143eaaa3c4fac743196481962e038c79221bd7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7adfbcc79290805b63c692c784aa0343d43c1f8da43716814a11fd231afe2a29
MD5 0a8677e899b911014e36bae78da759a1
BLAKE2b-256 27a6995f131e6a636b8f99f1faa5ad4a0af41d7eaa71b4d645c3e70c85d64669

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bbef93cde99d3933fe53788d7f602e6189ad855207d74b098be1de70259c0014
MD5 3e65495cfa2b90b2c215be8503a0b85e
BLAKE2b-256 09cd5e4c54a01622c4f3c8b9dfd87e77b5307b623d7d182aad69a5ee5fbd4d58

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.25.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.0 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.25.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c440cc89f477cbf299ff10a788ebc7956b18a393013ce62cb33f849de33ab2f6
MD5 7758f9b7832ced452a8dc5e09c3c1761
BLAKE2b-256 c425b9b76685d44f465ab9fec12a335823abb988e9ca30619922b9185158de02

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 68f089514ba92193260ccbb7a8e7f0242bced249f856e9ba05ea14a8d7afc5cb
MD5 dbb286d940691d3ea60c0648228b5d2b
BLAKE2b-256 03f88283f9620681a23f51217e961596775e588f2d8db01a7bf8884b50daa01e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7a150177b35c8f71c5092d67e2ad2c53b2434d8303104df912e638213d35fa98
MD5 e06d394c90f00766dc56b0a56543a23a
BLAKE2b-256 a8ad74e9fc7a53d7766e61c1098ef8a611d9a8a4b1e3ebb18df17f261cae93f4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.25.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.0 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.25.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 44793d07c8c255965ce3eaf2f9ebbaa3e85712a0ee8139c069d80924bc56102d
MD5 2ee68cc93f80ce343bc25c384d1ac1dd
BLAKE2b-256 36e584cad678026b2f7be57dac3aa8d7a2785e25ff6eb941e0951caa5c8a788b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72c272a8aff356251678341117db3c771559bbb21e977200050eb45941534e25
MD5 229a92c5115203b2883aea37af9022e5
BLAKE2b-256 c27f2d85db10ce9822e3cd6e237d17086515d7546d87cfc53e3f6f117a73d2f0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 861cf591394a161c3dd426db66c2c1a47dea8ff1c4b2545e48d8e63daff6a60a
MD5 19afd6fac27bd251df4d6e5d01480521
BLAKE2b-256 3b5c0e29a1cfcd690e574d97f221745c256973e37d5985089155ad2c12e95942

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.25.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.0 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.25.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a5eaabaada7c4453f713d1a47a7647a9056276d6b96d74a42456742e05cab158
MD5 af54eb27a254dd7acd4b2d6b5f63fece
BLAKE2b-256 37480fb14bb4dec3630f4507c52a43dfc04f31cd1aefb82cf373fee037873578

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 349248bdf829ba3bda3b435615edec7c31af6767f19efbad8f5802ede5204046
MD5 3371fd7a45ad32970d31fecf35e6c101
BLAKE2b-256 55b887593170f266ef17a55b0395269cc218dc1a44280ba916cf28024437fed1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 43193a7c68908c838d3f8eaf5a7937666034f4c4db9a37c495edc9981de8d660
MD5 8fe0d2fd0cffe3271d03e8e23d8520e0
BLAKE2b-256 6355d5a4d08a69945298392ef9d0d4a21e5ba1a61b42069b2c6c6c9d2c2517d4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.25.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.0 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.25.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ce2803a407929a9fd98b0157cf38af8d0ee97cd156fbbaebbd5f7d889b885b0c
MD5 3ae1f5920214730c8b2a37608aceff8c
BLAKE2b-256 cbcacf65a9c4708449cfd2175b14beb4842ac154573005582f95798fa92fbd1e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 882ddf23deb561b1d72b0a7d79529b27f12286ddcd5ab977291bb716b82cb0db
MD5 a5788f31cf7a4992a73d38f341627f69
BLAKE2b-256 59851caa179fb5cedf2adf9e4e7ce00be69d317d7986cc11e1c6e982654abb82

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.25.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9db892172c1cd0e315427c440cfb7eedeb640f5ed1c571b65a861f8d3013f919
MD5 8fdde9e8c74791c57f2955c240d0c2e4
BLAKE2b-256 77f2e926b875901bdcab96cf5d7cc4fd7a5be62e9034d6707f40724d4d6fc824

See more details on using hashes here.

Provenance

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

This release

0.25.0 This release

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