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

Uploaded CPython 3.14Windows x86-64

momwire-0.27.0-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.27.0-cp314-cp314-macosx_14_0_arm64.whl (672.5 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

momwire-0.27.0-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.27.0-cp313-cp313-macosx_14_0_arm64.whl (673.0 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

momwire-0.27.0-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.27.0-cp312-cp312-macosx_14_0_arm64.whl (672.9 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

momwire-0.27.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.6 MB view details)

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

momwire-0.27.0-cp311-cp311-macosx_14_0_arm64.whl (667.9 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

momwire-0.27.0-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.27.0-cp310-cp310-macosx_14_0_arm64.whl (666.5 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: momwire-0.27.0.tar.gz
  • Upload date:
  • Size: 629.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.27.0.tar.gz
Algorithm Hash digest
SHA256 35a22c24eee19f55f520e4fdf6cb35c47188d7593d4fbda938ebd597bbe758d0
MD5 08497abe093b16755a0a19c19a1ee51d
BLAKE2b-256 39aaa58f00e529c4d0f9c7e5b321b21ab66c51174c0bc56dc4857e8e8a0e081d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.27.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.27.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 fe70bd967aed680b9bfafa4f30cba46fd114ef423ac28014e174432abfa07acd
MD5 0fe25be04fcf8146209dc91cda6e3c7b
BLAKE2b-256 a3f448427c0fc9309f703c9330f74b0bd67965362f077788ea16f79e38291314

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7fb145d889ae76c9ac449e6ef75020c3f17b6d731222e48c0ff4e90f026172c5
MD5 fe94741397feec043a48d892032d7f28
BLAKE2b-256 a269c3bd597636dc2028afec1fbe876c2a0c73a8216617420e6ae7484bfc7258

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4c6d354b647d54da7b0a64d38b546d3761d2e883e8c2a2993dbcd546a1b358a7
MD5 4f97a262fa8eb0ae85cb6ec10983b5d0
BLAKE2b-256 aa6bbad38fdb5e6219dbbc8f65da4bb2994da6e3a3c0d5ee65b719e7eba965c8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.27.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.27.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bcc26a6f4bd071e70a16ae1d4640740e4b115b8a8e06f0dac3f1ee3cd397051f
MD5 b4b8a700acfe35457e037f8bd2c6db40
BLAKE2b-256 fe15b40f75d0e102d3574f4544700c896b7a1f793923fc0daa8ccccdedfa78b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 944170223cca76620578161f7cb8a3177c1297c9d8ad9c6696c8a438413e6fa9
MD5 795a87e4404c623191d5b865b572e825
BLAKE2b-256 0e5adf78e2191a0fe323bd8d62f0ecd92e2b72a9d32acfbb353da3510334a104

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 85fbddd07a45f5639e93818563aa3760a52abf330fe8225921059fc17f8b41df
MD5 7be82adf2a70310168c3f8e4f76f8936
BLAKE2b-256 8bd7b40ca6de9d07baf09899e6557947185ce2a23c9d84dbe65c0bab1dfe8e85

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.27.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.27.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5ae1a7f741fc2703160019632ca03f41a23b69fe1741976a31f200615d4aad74
MD5 04338cd6cf01e71bf1278173e0eae702
BLAKE2b-256 1ed2ce9d1e9bff808dbbb3a56850c97e6b13df38e90d4d40a411657515ed6d32

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3e8aea2a296578e838c4c334673ef8e5d86943c45f3367eeaee72dc2e00eae5e
MD5 a274a69dc5c290a4bb19cb77250ad8a7
BLAKE2b-256 61c76f80b7df8efb64195aee3442dc2ebb8ead8d145c84c94b442b979d592b5d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0fdc595fea2acc781af61670d128bf3544012b2a5cd760d159dc024a80e0a743
MD5 fc20c7ed8ba88d94e4d177c7eb01aaff
BLAKE2b-256 f5d92cdebc10c8e7b10cd4b29ba7db4d67df90774ba473f9b4044c55dbaa54bf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.27.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.27.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 122b64858988e300845123147035ccf20341e65bc6775e95e8447ec22afa0178
MD5 ff19a0bedd5a4722fbf412b6e8cf765b
BLAKE2b-256 7ff70af1de891dc73ef87ce6e3f919b07ba40167f1579fbc4d19140f085ba534

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d6e9d149a63d759430ea820816bb758f44879228aa292b9ef544ea566949fb4
MD5 c47724c7c9598960273bcc4358e9ee92
BLAKE2b-256 a8b96518540e662eb6d03a106ccbea8f3694989837c06b4996c1fa4914d749d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 320f34311e1d7a09d53da34660f0dc884f397d8cc93f4d291c0afcf84e11ffc7
MD5 56229cbcac25bbab5dde4bc525f09a85
BLAKE2b-256 2fe01bbf5ee99cd18c21bfa79a3ded14c74e1ba80a737fb333268f461e3e9d96

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.27.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.27.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2ea181a25987ce42d5f2612761ec25005c40de6b82077a861fb8fa9e7f3217a9
MD5 31889b628f428cd98ba7b093af8cbd41
BLAKE2b-256 ea42cc547e113df1ac29673bdbaddf4680d6f0cfcbd30a7a1c52354b8950a2d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1556dc26b4680e6900a3adda15b8bdad4747cac375f88921ab2a41f58b63c730
MD5 0b98157efa0ecb74d746b2575f7986f0
BLAKE2b-256 6ad15d38ffd05ad45f9f6358c342c47b33957bb0ea6f3b69de802f248a987b8f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.27.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0eb54605e3fe5a73e94cbe69ceec4fe0b931a8b032f79b3264a7fd93dcec0d04
MD5 c81cf83c63588a142774bf136ce9efe1
BLAKE2b-256 5d5743184eb78516c50f6fdf3e4051cd0d70efff9a2785c43c581bb95f0ca1a9

See more details on using hashes here.

Provenance

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

This release

0.27.0 This release

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