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

Uploaded CPython 3.14Windows x86-64

momwire-0.28.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.28.0-cp314-cp314-macosx_14_0_arm64.whl (675.4 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

momwire-0.28.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.28.0-cp313-cp313-macosx_14_0_arm64.whl (675.9 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

momwire-0.28.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.28.0-cp312-cp312-macosx_14_0_arm64.whl (675.8 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

momwire-0.28.0-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.0-cp311-cp311-macosx_14_0_arm64.whl (670.7 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

momwire-0.28.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.28.0-cp310-cp310-macosx_14_0_arm64.whl (669.4 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: momwire-0.28.0.tar.gz
  • Upload date:
  • Size: 638.8 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.0.tar.gz
Algorithm Hash digest
SHA256 102586aa28cac4f19aef1cff7bacd0d3553c75ae9a3505d9eeda8f9708373bdf
MD5 df42283b5c5775c2ee52262612c56a44
BLAKE2b-256 ffce1582ce7fa3a027e3de9fb5f3fcf72c6f885ff2c447e7943e1d2283ff9240

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.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.28.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8c6072fbbe47f603e7bdb2bcc3b617bc7728e0b1fc47cd33cda837d054ccefee
MD5 be89758e1995fb2367c0f9af75450ea5
BLAKE2b-256 aa9187ac498a222f4765c158b6482fb1dfee2fe58ef75ddaa659a6ba8b0fd0e0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fa887e18b60bc4ed67defb0045bf056ad0e35d0bd3f3c08cacd1ab0266bb5fd6
MD5 8b001686761f4cdd559ef8578de011c7
BLAKE2b-256 9a90f90516ce8f06b6a76b1866f3ea21c81e7ffcce648c5c0a202af38af1c974

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1188b1fb2174a7bd7c4bd3cd301dd96a517ef5b2adbe4fbe2741aed1df6d035d
MD5 dbe16021e85bce35ed53f70dbdc06560
BLAKE2b-256 e59838969ed8d33fecbc287b8838146de63402075ad2171255117f2452c115e7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.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.28.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4a8d53a3498403332f4e44cabb0cff08a164658a24b6d4c8038e854c33e89acf
MD5 da3025b87f31e0649ab228ebdd798f11
BLAKE2b-256 0689aade70e14521eff5e0c76e436723438dd41b3b2d5dee10fcf38a1d7205f7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0dd6dcabc5c548fa626bb410f42219ffff23bdb40048c63001d1c8b52f9d8730
MD5 d1c6755681a4f2f2393aeeff29ca70c4
BLAKE2b-256 eaad134281771dd7e2714142e064491ca1fc61b4859aa14e19422247ec12363f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d8cb1d314f8312e4c376ad4614f92f59d270f8033874b6f029c6d5af7418a4b9
MD5 4a5a2505bfb4c6d1ebe946da84b77df5
BLAKE2b-256 576fd60e5cf1b8955a7ba58bb0ddde2fdc3f9deabe8c1b027fe3455a82ca0eed

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.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.28.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b94e36828bc5ecf14c8d485207651f5ae5d57ba9394e9b2fbbe9341044374a07
MD5 f5f77a58ff8d01fef7f01c6d1f8204e2
BLAKE2b-256 6dc8c57682eced9d1c292c0a571ad869ca3382a7ea994b7a552cb3af84a8d8a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4573b29a697c767c4debca8c84ad0f09e96e7382912d6aed879e3b680dc960df
MD5 3a3b09fe2c5e1d4a12febc244631bdb9
BLAKE2b-256 4b26b8a44b4395387738fde0e192255fe09f8c599abea939413763ad839431c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1532816718dfc47d5543e209f169b5621ec3f6c3556c8697689b4cb2b23cc01e
MD5 89d57f1f14e464a48e215b77eb50698d
BLAKE2b-256 ae50e2e3758b47110611088463c4807be9ab1e286f5b3d04e333e142091ee686

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.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.28.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bcda1ceddbfa3fc7fc189b01c087059a8e7cd8907ee77220e5c7bee4f570365d
MD5 29bfb18149d41f3a25c94d3ebe3a91cb
BLAKE2b-256 e73c3f3a878ee3e2c368356898cca67fff804f9e014bb3aaf52585a3f94024ab

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9dbdf02fa4ba66173d39531f0b2fa41579874eed0a3b1a34d616e9416a2fa122
MD5 5e6d52828453f087971f4eecc904a6b4
BLAKE2b-256 7f0e50c8eb0d79b76c27bff4cb4279c238aba56785bd7a140f7b7784b15fb220

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 76576012bc61098a9000203901f58a1725ac36903052429fcd75e917ee42207a
MD5 d4f8ad3271424c3a9130ceda9e579085
BLAKE2b-256 7e160ad77e314a1c5947eec035613b4162aa8b28c2dbc0b2944dedb563a57052

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: momwire-0.28.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.28.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 80824f103b0e95653fe8aaff0c18873e273a2bf3fe3681a460d5958b1562a83a
MD5 2ed81b32842a61418d757bcf536646fe
BLAKE2b-256 0134c3f1e42846500f73be3deaacb2aef17a3c0eaf2879b535c097dc52349191

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 58e9fb016de6cb47f731532f72722fac6c67ace8e1470ad20667f814f0ccb992
MD5 e9fbabf262488bcab9fb5a68e71a36f8
BLAKE2b-256 2cabf8f449ee7fe3cd38422787275c5f14d1e51757b8302db2aaf2ec1749cf91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for momwire-0.28.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 374f03ec3f344ba3abedfea021a1e715bf4050c31d8d3f99be88b32708c0a562
MD5 bf8d03ea180e516e745e195f264158f4
BLAKE2b-256 667168518c43b1c981c3ece8d6ce3be535a279033404067861a2fbd5e6846301

See more details on using hashes here.

Provenance

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

This release

0.28.0 This release

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