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.12.0.tar.gz (230.9 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.12.0-cp314-cp314-win_amd64.whl (887.5 kB view details)

Uploaded CPython 3.14Windows x86-64

momwire-0.12.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

momwire-0.12.0-cp314-cp314-macosx_14_0_arm64.whl (391.0 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

momwire-0.12.0-cp313-cp313-win_amd64.whl (861.6 kB view details)

Uploaded CPython 3.13Windows x86-64

momwire-0.12.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

momwire-0.12.0-cp313-cp313-macosx_14_0_arm64.whl (391.2 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

momwire-0.12.0-cp312-cp312-win_amd64.whl (861.5 kB view details)

Uploaded CPython 3.12Windows x86-64

momwire-0.12.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

momwire-0.12.0-cp312-cp312-macosx_14_0_arm64.whl (391.1 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

momwire-0.12.0-cp311-cp311-win_amd64.whl (856.5 kB view details)

Uploaded CPython 3.11Windows x86-64

momwire-0.12.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

momwire-0.12.0-cp311-cp311-macosx_14_0_arm64.whl (386.3 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

momwire-0.12.0-cp310-cp310-win_amd64.whl (856.0 kB view details)

Uploaded CPython 3.10Windows x86-64

momwire-0.12.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

momwire-0.12.0-cp310-cp310-macosx_14_0_arm64.whl (385.1 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for momwire-0.12.0.tar.gz
Algorithm Hash digest
SHA256 35b6e641ba86a7aa52242112b3444959bbd0647dd8d97b1936d06f23cc5dc4cd
MD5 841e2474b066207e61a8508b98925b7c
BLAKE2b-256 a3099db2a4862582ee4274887a0c400567abe1bee5b6030f5ed6bab7df007dd7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.12.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 887.5 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.12.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bffc0760b0fc22dabc4ead298a15dfae0c836b3101ab8ed35e891f93babffd27
MD5 b081aa937efec364ae95f663232b4e77
BLAKE2b-256 d76d09c2f5fd6f01d17bb81dfbab786196186821757c3b3b2edef048f1a5f3f2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44b87013a99c484363c2a37b5e9204db740a0fe4a4387e5d9e8fb6b4d74b50f8
MD5 35c56c8935a843407239cefa55a61087
BLAKE2b-256 33fbeaa43d3b536c4f392ff7f7a9e543241200159c0d92d3fdfd95e1688ce843

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7fd471224ed8c90cee49d93eaeff518951e783c4546f9890ea26be78f61375a8
MD5 71c3bd58120487b442c42f9a381983c1
BLAKE2b-256 56d5b2ed3db9c41672b3fc15766cc83edb7d1d75a9862178120ffb661a5c0bba

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.12.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 861.6 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.12.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d31c2b7ed074425280f60569ad4acbce73fa0f4ebbb165746105bdbf0057f8a2
MD5 ce7fe4bbcf282fc2fcc3c5fe37fa4526
BLAKE2b-256 772ca3ca80370964c594e01804928f3adb4e688bb3d603a306eae00506fe8c10

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee8da2f9d9dd1da91cc3b3c43f6561d66e7573ad7ef28be9021b68cf2ff92142
MD5 45834233adecf940e280971182589ff6
BLAKE2b-256 a4ff0c7576931bdd165f154d27a5eed54b55619fb53503193f0ffeb85f946faf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c069d586a3ca8b9ca1e4411ac2082d85ee16755dd9c0268f2675b0eeae71e6a1
MD5 ff3a749e4acaacb6c7720b5e9c576687
BLAKE2b-256 7181f588000ebff50a34779b76a7cc65dc529153fbc36faf8e243b5ce8273a95

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.12.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 861.5 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.12.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8e65345a473b66e4ca4b6c3ee847c3e17328d89a5f83165239ea7b2030cee394
MD5 7240818b57fb5a151fa81cbf72222914
BLAKE2b-256 eb3c79fce41e9bef7b8f081d797cf51f01c358d50043b1d74804f7388eac8b7e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e17a507215458f1bfbd9b656b42eb32eba3b4d592489f058cd9b970da4bdab7
MD5 a4a5075c75b4a66bdbf945cb7fe404ab
BLAKE2b-256 6f1cc480c9afe5a31f86726567f7060ae232422826d67ed234109bc21e960c98

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a716cb08d0be198bc7f413e77ce24256d2d4a47b14098a3374c23699b22e6b16
MD5 030a017860b943bbb9d5a5b9b1dbb80d
BLAKE2b-256 5840235af6f657d7d81b937faff2be4395085b4998121966c37f1fa3c3d4e2f5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.12.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 856.5 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.12.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4a095c7a69cfb55820508cbf89d3b76ef5d10ae3fa8960b87f11922b32b61e9c
MD5 2478e00b469509939806833b686b979f
BLAKE2b-256 e9af6d191af5b08edcb6806145dc1cf7a13d14196e8e7440b19c538a258b48f8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 021271c64aa38a386bfa86bf5f7d04a2eba334a42efc41f43bbb02847287ea7b
MD5 7ca27ca1633c301458a25065b210c198
BLAKE2b-256 bf5907b0781bf16c82cf2895f27770bad3567df383719e367bc7521498f4fb93

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b399d8c63f15144fe2fccb126994c4ba778dab081d89d41e5e0f9e6e4d09296e
MD5 05302952c3ecf7f3788ba8577ed16f45
BLAKE2b-256 c57b2a3ebb37750aa83e60a5b65faf832eeb3daea22574ef5d15233d6def1d02

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.12.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 856.0 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.12.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 957016d80ab1b1712b0afb6eb78a467998ee3d8321f7cb510ce8b271bec8fb3c
MD5 29d8f8fb0c05db27276a1c056cfe8574
BLAKE2b-256 f4ec96c7e249500804cb9167f9a1e00b8fac498aea3954222f03504f64eae3a6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0b064a05caf8ec25f7a1e1d6f3d1c0989079ee1b8a82cfa723141e3844350122
MD5 ebe1953a874646ee01bc595bfd407c46
BLAKE2b-256 1d55ad97e1c73ab9a9a5c50b04f82e595da902a07b4ddbb30df20a6f537cd258

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.12.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e3b0e3bfcb04b055774749fc1903479dd960297b5b44ee0b4efb822df38294d1
MD5 ca1c156df46e2852d101b1f77017d89f
BLAKE2b-256 c6f3d424e251ff3ff0fb54d501cfdb54e272b8b6545c07c7e711590cc9a4ab2a

See more details on using hashes here.

Provenance

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

This release

0.12.0 This release

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