Skip to main content

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
  • 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 PSSFSS version 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypssfss-0.1.0.tar.gz (243.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypssfss-0.1.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

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

Hashes for pypssfss-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fea44e447e6b7ddb9ed9b6211f2c3f4e0eb5b95126c7db3d5e5511284733aab1
MD5 43ea19f4fb97ff2f0c701c68bd1cf823
BLAKE2b-256 cadab2e46ccd91025c1fc901a5b109e482b6243c1d2a36a942a2912656be9c3a

See more details on using hashes here.

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

Hashes for pypssfss-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5c4db3daac5874dcae7e68ed43ae6dd7cc56f040f59f5c3d61093b97423849dd
MD5 ddad464357b1f785dbb0c7e42a20e4d0
BLAKE2b-256 2f5ae93573bc47fe26c9092e2130fb2ce3afeccacbfbd56426ce1be92e9a869a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page