Antenna simulation driver showcase

I provide a Python package antenna_simulation_driver. This page you presently read gives you an idea what you can do with it, via some examples (complete with source).

The software itself, its license, and technical details how to use it are all available via its git repo, in particular, its README.md.

Resonant dipoles 🔗

As one initial example of what this software can do, I recommend a straightforward parameter study that examines resonant half-wave dipoles at different heights. This is available as a blog post.

If you then want to get an idea at how these results were obtained, I have some Python code for you to read. The results for the blog post were obtained via some Jupyter notebook.

For a first glance, a crappy rendering of the Jupyter notebook is available. This is what Nikola, the software I use for this blog, does when I throw my notebook at it.

For a better rendering, set up Jupyter notebook on your own computer (see the following section) and use it to view the original notebook source.

How to set up Jupyter notebook? 🔗

  • Install Python. Any recent version (3.11 or newer) should work (as I write this, I use 3.13). On Debian Linux Trixie systems, the fastest way to install Python is: sudo apt-get install python3.13-venv . Similar commands should work for other Linux distributions.
  • Create a virtual environment
    • either barefeet
    • or install uv (which also allows to install Python versions at will, if you are stuck with an old version) and use that.
  • Activate that virtual environment and install notebook with pip (either plain pip install notebook or uv pip install notebook, depending on what you did in the previous step). Now in the same terminal, start jupyter notebook in some directory into which you downloaded the notebook source, e.g., under the name resonant-dipoles.ipynb.
  • To use that notebook to run your own antenna simulations, you will need to install some more software: nec2++ and some more Python packages. The antenna-simulation-driver README points you to nec2++, the notebook itself tells you what other Python software is needed (near the bottom).

hwg and short dipoles 🔗

This is about a Jupyter Notebook that showcases another use of antenna-simulation-driver to run parameter studies.

The studies done here use nec2++’s impedance and efficiency values.

The notebook is available in a rendered version, which has fun graphs and a bit of antenna theory. Unfortunately, the Python code is again formatted in a crappy way. This is simply Nikola’s out-of-the-box formatting, where Nikola is the static site generator I’m using for this web site / blog.

For a better result, you can download the same notebook as source, rename it to hwg-antenna.ipynb (or whatever name you want), install and start jupyter notebook as explained above and in the browser window that opens, navigate to the file you just downloaded.

There was also a German online presentation on this topic given 2025-01-07. The slides are available as a PDF file and also as Libreoffice-source, both in a slightly polished version.

Reproducing the ZS6BKW 🔗

The ZS6BKW is a well-known multiband antenna invented by Brian Austin G0GSF, ex ZS6BKW. It consists of a center-fed dipole and a 400 Ω feedline. Feedline length and dipole length are carefully adjusted so this antenna shows low SWR on five different short-wave bands from 40 m through 10 m (not on 15 m and 30 m).

With a standard optimization algorithm, my interface to nec2++, and a bit of Python code to create a team out of those two, it is fairly straightforward to reconstruct the required dipole and feedline lengths from a list of frequencies on which to minimize SWR.

This is again demonstrated as a Jupyter Notebook. It is provided as a somewhat crappy rendered version and as source.