Analysis of Polarization and Frequency Selective Surfaces
Author simonp0420
0 Stars
Updated Last
2 Years Ago
Started In
July 2020

PSSFSS - analysis of polarization and frequency selective surfaces in Julia

Documentation Tests CodeCov
Stable Dev CI

PSSFSS is a Julia package for analyzing polarization selective surfaces (PSSs), frequency selective surfaces (FSSs), reflectarray elements, radomes, and similar structures. It is intended to be useful to antenna design engineers and others who work in applied electromagnetic engineering.

The user specifies the geometry to be analyzed as a Vector containing two or more dielectric Layers and zero or more Sheet objects that define the PSS/FSS surfaces. Due to the included plot recipes, the surfaces and their associated triangulations can be conveniently visualized using Julia's standard Plots package. After also specifying the scan angles or unit cell incremental phasings, frequencies to be analyzed, and optionally selecting performance parameters to be written to CSV file(s), the user then invokes the analyze function to perform the analysis. Post-processing and plotting of results can be performed in the same analysis script using the immensely powerful Julia programming language.


  • Designed to be useful and accessible to working engineers.
  • 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 without approximations or interpolation using a wide-band expansion of the potential Green's functions for a stratified medium with quasi-periodic excitation.
  • 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 or complex coefficients 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


  • Only zero-thickness FSS/PSS sheets are currently supported.
  • Frequency sweeps are fast for normal incidence or for the case where unit cell incremental phase shifts ψ₁ and ψ₂ are constant with frequency (as in a waveguide). Frequency sweeps where the angle of incidence is held constant are typically much slower (except for normal incidence).


You can obtain PSSFSS using Julia's Pkg REPL-mode (hitting ] as the first character of the command prompt):

(v1.6) pkg> add PSSFSS

or with using Pkg; Pkg.add("PSSFSS").


  • The theory documentation is here
  • The user manual is here
  • If you prefer interactive documentation using Jupyter notebooks, the user documentation in the form of notebooks is here


Help from the community is actively sought and greatly appreciated! There are several open issues which you might want to tackle, and the documentation could always be improved. Pull requests are welcome. Feel free to open more issues, whether for basic capability, performance, examples, documentation, etc.

Used By Packages

No packages found.