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

Uploaded CPython 3.14Windows x86-64

momwire-0.28.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

momwire-0.28.1-cp314-cp314-macosx_14_0_arm64.whl (675.5 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

momwire-0.28.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

momwire-0.28.1-cp313-cp313-macosx_14_0_arm64.whl (676.0 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

momwire-0.28.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

momwire-0.28.1-cp312-cp312-macosx_14_0_arm64.whl (676.0 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

momwire-0.28.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

momwire-0.28.1-cp311-cp311-macosx_14_0_arm64.whl (670.9 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

momwire-0.28.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.6 MB view details)

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

momwire-0.28.1-cp310-cp310-macosx_14_0_arm64.whl (669.6 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for momwire-0.28.1.tar.gz
Algorithm Hash digest
SHA256 b50a40fb577cafabafce2fd5ab1d6ec56816a83db462f0e1e3a51d6220c8fe4e
MD5 9648caa3c801448095cca9d0bda88e8e
BLAKE2b-256 185b2dcd4044ecee9e10f039dc3bb63e726bdcccda21f1e873049e03a84a5c64

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.1-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.28.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3a4c391769dddaa38bcf899128b5298140d8d19f1df0ef06ad27e94b873ac0dc
MD5 3d65f3c74fccc4f01a4d797d9a459db3
BLAKE2b-256 7abfe5a3106239a04372a772cf3d17eb98aaf2601892e5accda57f642d936b53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 879b4e8ade1891291abed7ee824ec6eaf250de9d97723872df7d5d706863b00a
MD5 3409030ce5368902f82277f434c6562c
BLAKE2b-256 8b1886baaf75e50256d8a3d6bd8f682bbafb2b1ab29d19d61d069bff084a3116

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 43fa8e6a1cbb88da08aeca1ca89870bef21a856432e900b7be4a8424e80132ae
MD5 d69d9a216bd8410cab5868ea84134df4
BLAKE2b-256 63f047a5579612123ab1c0880f4c19217c4396d1866a66d9f77f4e38545fd4df

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.1-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.28.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 57fdff7eda310922d2c30969b87fb37fb8dfef47f9ac31d3117eafc4c0372257
MD5 71408a2eba1e3b56ebfdf092da184ba3
BLAKE2b-256 c187b76c77e9891d3f722a3338ac6b758f0f38db8bf8bff148fd1ad0cf5680c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a00b96dbe3894479da260fbbe24861ae22fec9c588c6c22279e1666ca98c1dc
MD5 5cd476437126358d3645207fdfb2ce0f
BLAKE2b-256 e924d1399ac5ae31f261c362a39bee61406465c0edd312ee9d8bcd6dd2804583

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fd99417beb26fb7acf069bad1365d676a635f35c0fd3e960f9952c860d747256
MD5 6946621ab26b4d7bc55fb02044fda1f4
BLAKE2b-256 1e9336de68136c9715a3115124f021ce483a4da9d13bd6e00851f02173b79a66

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.1-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.28.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a6ac78f29bf685b052aef3ffd1d24a8575f59582d49f2b31e151ed6d963364fa
MD5 7f9695f5125c1627282ca24b65266bc1
BLAKE2b-256 75dcca01c23b1c26b31d96c508558fdb92193021397c2ead1514e355b2ede808

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f09449c5e601a2fc04da7fadf6c02fef4ad7916705c626b773d044684d552ad
MD5 408fcb96bebfb8f442ef7752f59d8022
BLAKE2b-256 f96aa28648beed7aba46deb870bff7463ba4b0b3272ad33886fd18a81fc16782

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 30c2b4eaca3f63c19f18caf90b005f1ac76540f6183532fc877436cf2f391b84
MD5 62d285ae63c60de7a0f198034d076307
BLAKE2b-256 67f36cb4f3264faa9c889cf172a4bba1ae82dd59358e47411f5bcf5322a2ce41

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.1-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.28.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8db06386f6b4b034ad3798465e24629a32a7f0b763105bb20a57eef073a1f38d
MD5 9d0aba4b5b0a436b97c91993f4175800
BLAKE2b-256 ea142b19c656e83f04ffb56f69b86999e92aa6ea462f5a5e879fe7de1e3b1cc9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 860396bf2a75b37db0a6b19108e7d003877ba5a44de8b98cece9ee3fa29c2051
MD5 f98f337c9b5ad790f38c7ecae9ce19cc
BLAKE2b-256 2dbd3c74f4f62eec42c8c6653c9c6ad6659c0a50eac5c9110afe4c3d4a16a791

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1252cd6a5104ad4e290e4e1ca26ba8c091e057b73e2c89488d8e260daff8e8ce
MD5 6f41bca0cce02c55c70d6c35f851602e
BLAKE2b-256 74a3d8832082bef40cc3b9c73a3c908069d6f6c09baafaa2ca8c19e814b99527

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.1-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.28.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 66fbbdca549b9525627a8b765add878c91a03f69247e70d421bae24f4524dd24
MD5 1a066d006f67dff8e370c4b652a2e49b
BLAKE2b-256 28bd5a24b04b09b8ae37da52b0e71ae05c6a36f984fa62c69fe848d4bdd03b45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 598b708228599496c3967a9b2a8a4f43a35209147b17707af3294b919d0247cf
MD5 93d893737249ef86021eb5af2b3c985f
BLAKE2b-256 be2f67667625818458b4c8fa6cc35a8ea465621f040ce4c72def45dcec37cf3f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1873cb9a326b4e62629573ec6a2077da9dd2507ae09ff1edb20edb62e57d0ac6
MD5 413172e4a9dcb36f9bc8913eb60b75ef
BLAKE2b-256 830142b521310aa7fbbfbdcbbc3c73b5c2bdc4b55311f1a1092579694f59bb8e

See more details on using hashes here.

Provenance

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

This release

0.28.1 This release

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

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