Name | antenna-simulation-driver JSON |
Version |
0.1.3
JSON |
| download |
home_page | None |
Summary | Software to run antenna simulations, for parameter studies and optimizations. |
upload_time | 2025-01-09 16:59:38 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | None |
keywords |
ham
amateur radio
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Antenna simulation driver and optimizer
## What?
This is a way of running the NEC2 antenna simulation
[nec2++](https://github.com/tmolteno/necpp). You need to install that
yourself. See to it that the [pull request
82](https://github.com/tmolteno/necpp/pull/82) is on board,
otherwiese, this won't work. Finally, see to it that the `nec2++`
executable can be called, that is, is reachable via `PATH`.
## What not?
There is a [Python binding](https://pypi.org/project/PyNEC/) for
`nec2++`. I tried to get that to work, but failed. If that stuff
works for you, you probably don't need this.
So this is a pedestrian approach: Run `nec2++` in a separate
process and communicate with that process via stdin/stdout.
## Why?
- *Parameter studies.* Which terrible things happen if you make your
antenna shorter and shorter, or lower and lower, or whatever.
- *Optimization.* Put this project and an appropriate
[scipy optimization algorithm](https://docs.scipy.org/doc/scipy/reference/optimize.html#global-optimization)
into a tumbler and stir well. Voila: A best antenna!
## How?
The `antenna_simulation_driver` package is your entry point. You need to feed it with a string
that contains the content you would usually put into a `.nec` file.
The problem: That format is neither documented here nor in the context
of the `nec2pp` project. The NEC software traces its origin to the
1970s, when punched (paper) cards were commonplace. The original
input format for NEC2 software was defined in terms of such puched
cards. Old printed documentation of the day has been OCR'ed,
manually polished, and is now available at [www.nec2.org](https://www.nec2.org/).
In particular, the [NEC-2 manual](https://www.nec2.org/other/nec2prt3.pdf)
(converted from paper September 1996) is a good reference.
Today's nec2 implementations still read that stuff, even though they
are no longer as picky about column numbers as the old code used to be.
If you got your cards that you want to put into the simulation
as a Python string, and used an `RP` card to actually start
the simulation process somewhere in there, then my method
`run_nec2pp` of package `antenna_simulation_driver`
will run the simulation for you and give you a `Nec2ppOutput`
object back (defined in package `nec2pp_output_parser`)
that is a big bucket containing information about
the simulation run's result.
There is a showcase of how to actually use this stuff to do parameter
studies. It also has a few examples of useful card input to get
you started. This showcase is publicized via my personal block at
[https://dj3ei.famsik.de/blog/antennas/antenna_simulation_driver_showcase](https://dj3ei.famsik.de/blog/antennas/antenna_simulation_driver_showcase).
## Limitations
- The output parser has just started to catch information
about the antenna's gain diagram and radiation diagram.
This is preliminary, largely untested, and may change
depending on whether I like it or don't.
- One frequency, one call to `antenna_simulation_driver`.
Don't yet specify more than one frequency in your `FR` card.
Raw data
{
"_id": null,
"home_page": null,
"name": "antenna-simulation-driver",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "ham, amateur radio",
"author": null,
"author_email": "\"Dr. Andreas Kr\u00fcger, DJ3EI\" <dj3ei@famsik.de>",
"download_url": "https://files.pythonhosted.org/packages/50/2d/9fbe37c46c7b1a643f5524539c92925f9adfcfe04c9366927ce22584cf72/antenna_simulation_driver-0.1.3.tar.gz",
"platform": null,
"description": "# Antenna simulation driver and optimizer\n\n## What?\n\nThis is a way of running the NEC2 antenna simulation\n[nec2++](https://github.com/tmolteno/necpp). You need to install that\nyourself. See to it that the [pull request\n82](https://github.com/tmolteno/necpp/pull/82) is on board,\notherwiese, this won't work. Finally, see to it that the `nec2++`\nexecutable can be called, that is, is reachable via `PATH`.\n\n## What not?\n\nThere is a [Python binding](https://pypi.org/project/PyNEC/) for\n`nec2++`. I tried to get that to work, but failed. If that stuff\nworks for you, you probably don't need this.\n\nSo this is a pedestrian approach: Run `nec2++` in a separate\nprocess and communicate with that process via stdin/stdout.\n\n## Why?\n\n- *Parameter studies.* Which terrible things happen if you make your\n antenna shorter and shorter, or lower and lower, or whatever.\n- *Optimization.* Put this project and an appropriate\n [scipy optimization algorithm](https://docs.scipy.org/doc/scipy/reference/optimize.html#global-optimization)\n into a tumbler and stir well. Voila: A best antenna!\n\n## How?\n\nThe `antenna_simulation_driver` package is your entry point. You need to feed it with a string\nthat contains the content you would usually put into a `.nec` file.\n\nThe problem: That format is neither documented here nor in the context\nof the `nec2pp` project. The NEC software traces its origin to the\n1970s, when punched (paper) cards were commonplace. The original\ninput format for NEC2 software was defined in terms of such puched\ncards. Old printed documentation of the day has been OCR'ed,\nmanually polished, and is now available at [www.nec2.org](https://www.nec2.org/).\nIn particular, the [NEC-2 manual](https://www.nec2.org/other/nec2prt3.pdf)\n(converted from paper September 1996) is a good reference.\n\nToday's nec2 implementations still read that stuff, even though they\nare no longer as picky about column numbers as the old code used to be.\n\nIf you got your cards that you want to put into the simulation\nas a Python string, and used an `RP` card to actually start\nthe simulation process somewhere in there, then my method\n`run_nec2pp` of package `antenna_simulation_driver`\nwill run the simulation for you and give you a `Nec2ppOutput`\nobject back (defined in package `nec2pp_output_parser`)\nthat is a big bucket containing information about\nthe simulation run's result.\n\nThere is a showcase of how to actually use this stuff to do parameter\nstudies. It also has a few examples of useful card input to get\nyou started. This showcase is publicized via my personal block at\n[https://dj3ei.famsik.de/blog/antennas/antenna_simulation_driver_showcase](https://dj3ei.famsik.de/blog/antennas/antenna_simulation_driver_showcase).\n\n## Limitations\n\n- The output parser has just started to catch information\n about the antenna's gain diagram and radiation diagram. \n This is preliminary, largely untested, and may change\n depending on whether I like it or don't.\n\n- One frequency, one call to `antenna_simulation_driver`.\n Don't yet specify more than one frequency in your `FR` card.\n",
"bugtrack_url": null,
"license": null,
"summary": "Software to run antenna simulations, for parameter studies and optimizations.",
"version": "0.1.3",
"project_urls": {
"Homepage": "https://gitlab.com/4ham/antenna_simulation_driver",
"Issues": "https://gitlab.com/4ham/antenna_simulation_driver/-/issues",
"Repository": "https://gitlab.com/4ham/antenna_simulation_driver"
},
"split_keywords": [
"ham",
" amateur radio"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e1b214a397ad5fb580622473becec37798fb6c7495d8fcf28469676ece53c0b5",
"md5": "e7d67fc8ee5df2cacaf43024cd165e36",
"sha256": "d0611d20350d34e3012e821ca05e98f6dcd8deb8fd626f565f3696a78104d684"
},
"downloads": -1,
"filename": "antenna_simulation_driver-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e7d67fc8ee5df2cacaf43024cd165e36",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 9477,
"upload_time": "2025-01-09T16:59:34",
"upload_time_iso_8601": "2025-01-09T16:59:34.795802Z",
"url": "https://files.pythonhosted.org/packages/e1/b2/14a397ad5fb580622473becec37798fb6c7495d8fcf28469676ece53c0b5/antenna_simulation_driver-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "502d9fbe37c46c7b1a643f5524539c92925f9adfcfe04c9366927ce22584cf72",
"md5": "60c0c4e75c887ebcd2abda6c9320c803",
"sha256": "fd3cda8c2cc8654def4b8c2130814dda310229790cae9a89ecddb31bf965e3c5"
},
"downloads": -1,
"filename": "antenna_simulation_driver-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "60c0c4e75c887ebcd2abda6c9320c803",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 11723,
"upload_time": "2025-01-09T16:59:38",
"upload_time_iso_8601": "2025-01-09T16:59:38.060615Z",
"url": "https://files.pythonhosted.org/packages/50/2d/9fbe37c46c7b1a643f5524539c92925f9adfcfe04c9366927ce22584cf72/antenna_simulation_driver-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-09 16:59:38",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "4ham",
"gitlab_project": "antenna_simulation_driver",
"lcname": "antenna-simulation-driver"
}