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.24.0.tar.gz (430.0 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.24.0-cp314-cp314-win_amd64.whl (996.7 kB view details)

Uploaded CPython 3.14Windows x86-64

momwire-0.24.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.5 MB view details)

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

momwire-0.24.0-cp314-cp314-macosx_14_0_arm64.whl (505.0 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

momwire-0.24.0-cp313-cp313-win_amd64.whl (970.2 kB view details)

Uploaded CPython 3.13Windows x86-64

momwire-0.24.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.5 MB view details)

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

momwire-0.24.0-cp313-cp313-macosx_14_0_arm64.whl (505.4 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

momwire-0.24.0-cp312-cp312-win_amd64.whl (970.2 kB view details)

Uploaded CPython 3.12Windows x86-64

momwire-0.24.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.5 MB view details)

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

momwire-0.24.0-cp312-cp312-macosx_14_0_arm64.whl (505.3 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

momwire-0.24.0-cp311-cp311-win_amd64.whl (965.5 kB view details)

Uploaded CPython 3.11Windows x86-64

momwire-0.24.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

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

momwire-0.24.0-cp311-cp311-macosx_14_0_arm64.whl (500.5 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

momwire-0.24.0-cp310-cp310-win_amd64.whl (964.8 kB view details)

Uploaded CPython 3.10Windows x86-64

momwire-0.24.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

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

momwire-0.24.0-cp310-cp310-macosx_14_0_arm64.whl (499.4 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for momwire-0.24.0.tar.gz
Algorithm Hash digest
SHA256 407d30243782d2ef478dbbb5d324f399f206152fc79d3c797595999fa03a9114
MD5 56811d49ab26361a7efa704c542d138b
BLAKE2b-256 10b4bdffe0813522f42aa5f6cbd2c9c8995f6fcf052d04193cd2aec228da60dd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.24.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 996.7 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.24.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5a2a432c8310c86318079cebe546dc295c8086a9d05392bd72828f0f2e2d8871
MD5 211e74cee265e943cf4be349f1f9f5f8
BLAKE2b-256 3b6fcdecc02e1b6559256c7998a26d534b8f257bcf031f5d094e280a17ac0d3a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cfa6c2e330c4607856bd1e588b65ab952f5e38432d3bf6fa7b3615fc1302b420
MD5 655f4fa40e8be169094bab31954dc17f
BLAKE2b-256 1d08ad6cd870a4c6d998235e5474cdac670a6499a2411fc9e5c11e0beb7cf4f2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 72c4477149d1ba27ee05e8d75a14e223fd4ca5b52970c44f690cd88828180e5a
MD5 366f838d757129d9ae511cd77bea49d6
BLAKE2b-256 51cab47f9a1b77e7593d859e5a11a70e11291ecb5bfb998612f5b554aaad4ac8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.24.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 970.2 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.24.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 956bc540504c2d71f27539822f153445c940fcf8d804b5e0976c9ca2831fc019
MD5 502bf17f3055eb9d09271bf7b2ad3ccf
BLAKE2b-256 9d94e928cf3349af5d1e1e2e8511388072f302753f811cecb689185754841c88

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab814b8d43fc62ee5677a852cb448c2af917a2e012350f3eebd45b612f20968a
MD5 31472ee15245305e6e5b4d4ef6dd749e
BLAKE2b-256 3da1f0dfde0eb93ee367ee32485287c400adde6d8d75590d372fe3aacb1a7efb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3b00f86f1bd6e93f5247978ec711f692e8f57d85613a25ad45cc4802bcedd3fa
MD5 135aea42e5d1833c116b07047b364b32
BLAKE2b-256 c2bf8231161cc6899f72b7e41d1f9690942a2b17a05c42b9292e90a73ec25e99

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.24.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 970.2 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.24.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b2c5a14cc5d3af7dbfd601f8c2bdc45e30c52a5865d0b16b1f05b64f3380b4f5
MD5 696b9559c9ad2be5cdc13132cd78b966
BLAKE2b-256 1d138d70f274bd5e30b13e00dab244a2d182a135d2c1afaa3b40cf5309753359

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6fd22dbbc72e2b4a8c7b3587324e37457454b1bcf5f5e259219bbff5567a34d
MD5 3bdc5be50889a55153c73c1ee4f45730
BLAKE2b-256 b88d3f24d765d194bc2056fc437389dc8458a47a5454913a224fa1ffe23d6f45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3bdd411a1ebe6ee6f99641420274c671d10bdcd2f8dc7103ee717c1e664b9133
MD5 fc21c361850de7894f2a48cb4655eb2c
BLAKE2b-256 790c7726556f157e677532053015f0b99cb9434a1abc14926c6e9e8787b386cd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.24.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 965.5 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.24.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 821a43daea6e97a3f98fabf3fafdfcb1104a1cb74acf5479dd57761da9a40676
MD5 621b6b9119f4fb9cd8aa0d2a298af7e7
BLAKE2b-256 21fae273bda80d825bca7c744703777cb64b6eaa9e996b4090b5712c4aa4cfa8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 364e59cc4da01290497cee933b823b5a1eeb5e75815bf6c3bc55e02c9dcbe60b
MD5 afcd38028dec80e244ebb2801535444d
BLAKE2b-256 9fe494788652cf164eff7c70bc247abb50d1b2a8cfb90eeca7ac0062452e08d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 714714e26d4e13f83f792128a6d0007256ce88e52273036c81c05d7e7aeb93be
MD5 d9b82a825f459b58468d62d7d7bcf7f8
BLAKE2b-256 251d29cbf04ce0e9f6da103bb5c4c5ea8525e721f92447550f4f30b3b6768b5c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.24.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 964.8 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.24.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1cf6604b2437cb21ecd7a99c802bbf03d4192bf4019128184634e87ca2b7fdb2
MD5 a20bf1d19b985e333cd367b083800936
BLAKE2b-256 3fa6c222d1fd8fa00e2d7dada65361eea9df44c5e28a5cddfd43f3b50091fd84

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 64682843d543fe3a7edc3bd98bbd27bcea1c57cc2f6e62fd47d702b4edd6835b
MD5 0cc1a38dc843372761a0ff5a1147e417
BLAKE2b-256 caee4c61a74186a85ea8c2d52396f664ad4f8e127aa0c8d041f6ead610503f44

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.24.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a7d53b74734c6f892b5b97cb3f97cea2fa72ad86558b313cbd1250b0f7bf9ada
MD5 b14cc43460e1d6218a68211048f3b2cb
BLAKE2b-256 489dcd2ad20b9d67b3d70b7a7e1ceffbcaa6c68abc29bd192fb5abbc13c29480

See more details on using hashes here.

Provenance

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

This release

0.24.0 This release

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