pyemfield
is a Python library designed for antenna radiation pattern analysis and gain optimization. The package leverages SciPy, NumPy, Matplotlib, and ANSYS HFSS (via pyaedt
) to automate high-frequency structure simulations, process electromagnetic data, and visualize results.
- Gain Calculation and Optimization: Provides methods to calculate antenna gain with multiple optimization options, including exhaustive, heuristic, and SciPy-based optimizations.
- Radiated Power Density and Cumulative Distribution: Calculates and visualizes cumulative distribution functions (CDFs) for radiation characteristics.
- Custom Radiation Pattern and Gain Distribution Plots: Offers multiple plotting functions to visualize radiated power density, gain, and other related data.
- Integration with HFSS: Automates the export of far-field data from HFSS simulations for further analysis and optimization.
You can install the package using pip
:
pip install pyemfield
Note: Ensure that
pyaedt
and ANSYS HFSS are installed to fully utilize all functionalities in this package.
This package requires the following libraries:
numpy
scipy
matplotlib
pyaedt
The following example demonstrates how to use pyemfield
to calculate and visualize antenna gain:
from pyemfield import hfss_design, get_ffds, Beam
folder = r'D:\OneDrive - ANSYS, Inc\GitHub\pyemfield\tests\ffds'
ffds = get_ffds(folder)
ffds.keys()
x = {j:(1,0) for i, j in ffds.items()}
b1 = Beam(x)
b1.ffd_excitation
b2 = b1.optimize_gain(60, 60)
b2.plot_realized_gain_contour()
b2.ffd_excitation
hd.update_excitation(b2.ffd_excitation)
# Set up multiple beams and create a Plane
plane = create_plane("MyPlane", beam, [(0, 0), (90, 90)], fast=True)
plane.plot_rGain_cdf()
plane.plot_eirp_cdf()