Python wrapper for Julia package PSSFSS - Analysis of Polarization and Frequency Selective Surfaces
Project description
PyPSSFSS - Analysis of polarization and frequency selective surfaces in Python
PyPSSFSS is a Python package for analyzing planar
polarization selective surfaces (PSSs), frequency selective surfaces (FSSs),
reflectarray elements,
radomes, and similar structures. It wraps the
PSSFSS package which is written in the Julia
programming language. Note that it is not necessary to preinstall Julia or PSSFSS
before using PyPSSFSS. If Julia is not found in the user's PATH, then
PyPSSFSS will install it (locally to a virtual environment, if one is active). Similarly, it will automatically install and compile PSSFSS on first use.
To use PyPSSFSS, one first specifies the geometry to be analyzed as a Python
list containing two or more dielectric Layers and zero or more RWGSheet objects that define the PSS/FSS surfaces.
Due to the included plot_sheet function, FSS/PSS surface triangulations can be conveniently visualized using the standard
Matplotlib library. After also specifying the frequencies to be analyzed
and scan angles (or unit cell incremental phasings), the user then invokes the analyze function
to perform the analysis. Post-processing and plotting of results can be performed in the same Python analysis script.
Features
- Designed to be useful and accessible to working engineers and students.
- Accommodates planar FSS/PSS surfaces with no limits to number of dielectric layers or FSS/PSS sheets.
- Automatically chooses number of modes needed for cascading multiple FSS/PSS sheets using generalized scattering matrices (GSMs).
- Supports (approximate) cascading multiple sheets of different periodicities, as in a multilayer meanderline polarizer.
- Simple specification of geometry to be analyzed.
- Solution of mixed-potential integral equation using Rao-Wilton-Glisson triangle subdomain basis functions and multi-threaded method of moments.
- Fast analysis for frequency sweeps using an extremely robust rational function interpolation algorithm.
- Automatic triangulation of sheet geometries to user-specified number of triangles.
- Exploits redundancies inherent in structured meshes for greater numerical efficiency.
- Easy extraction of useful engineering performance parameters, including
- Reflection and transmission coefficient magnitudes and/or phases for the field components of
- TE/TM
- Vertical/horizontal (Ludwig 3)
- LHCP/RHCP (circular polarization)
- Delta insertion phase delay (ΔIPD)
- Delta insertion loss (ΔIL)
- Axial ratio
- Reflection and transmission coefficient magnitudes and/or phases for the field components of
- FSS/PSS element geometry can be exported to STL files for later import into CAD programs.
- Analysis results can be exported to
- HFSS SBR+-compatible Fresnel tables
- TICRA-compatible TEP (tabulated electrical properties) files.
Limitations
- Only zero-thickness FSS/PSS sheets are currently supported.
- Frequency sweeps are fastest for normal incidence or for the case where unit cell incremental phase shifts ψ₁ and ψ₂ are
constant with frequency (as in a waveguide). This is due to the use of a wide-band expansion of the
potential Green's functions for a stratified medium with quasi-periodic excitation. Frequency sweeps for non-normal
angle of incidence are typically slower. However, as of
PSSFSSversion 1.1, all frequency sweeps are now much faster, often by more than an order of magnitude, compared to previous versions. The speedup is due to the use of a fast interpolated sweep by default.
Installation
Installing Using pip
pip install pypssfss
Installing from the base repository
Activate Python environment and then clone and install:
git clone https://github.com/simonp0420/pypssfss.git
cd pypssfss
pip install .
Documentation
The documentation for PyPSSFSS is here.
The documentation for the underlying Julia package PSSFSS is here.
Familiarity with both of these manuals is required for use of PyPSSFSS.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypssfss-0.1.0.tar.gz.
File metadata
- Download URL: pypssfss-0.1.0.tar.gz
- Upload date:
- Size: 243.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fea44e447e6b7ddb9ed9b6211f2c3f4e0eb5b95126c7db3d5e5511284733aab1
|
|
| MD5 |
43ea19f4fb97ff2f0c701c68bd1cf823
|
|
| BLAKE2b-256 |
cadab2e46ccd91025c1fc901a5b109e482b6243c1d2a36a942a2912656be9c3a
|
File details
Details for the file pypssfss-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pypssfss-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c4db3daac5874dcae7e68ed43ae6dd7cc56f040f59f5c3d61093b97423849dd
|
|
| MD5 |
ddad464357b1f785dbb0c7e42a20e4d0
|
|
| BLAKE2b-256 |
2f5ae93573bc47fe26c9092e2130fb2ce3afeccacbfbd56426ce1be92e9a869a
|