# \[ANN\] Announcing PSSFSS: Polarization and Frequency Selective Surfaces

**URL:** <https://discourse.julialang.org/t/ann-announcing-pssfss-polarization-and-frequency-selective-surfaces/61331>\
**Category:** Package Announcements\
**Tags:** package, engineering\
**Created:** [May 17, 2021, 11:47pm UTC](https://discourse.julialang.org/t/ann-announcing-pssfss-polarization-and-frequency-selective-surfaces/61331 "2021-05-17T23:47:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![PeterSimon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petersimon/32/25193_2.png) [@PeterSimon](https://discourse.julialang.org/u/PeterSimon)\
**Post date:** [May 17, 2021, 11:47pm UTC](https://discourse.julialang.org/t/ann-announcing-pssfss-polarization-and-frequency-selective-surfaces/61331/1 "2021-05-17T23:47:43Z")

</div>

I’m excited to announce a new package [PSSFSS.jl](https://github.com/simonp0420/PSSFSS.jl) for analyzing [polarization selective surfaces](https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=polarization+selective+surface&btnG=) (PSSs), [frequency selective surfaces](https://en.wikipedia.org/wiki/Frequency_selective_surface) (FSSs), [reflectarray](https://en.wikipedia.org/wiki/Reflectarray_antennahttps://en.wikipedia.org/wiki/Reflectarray_antenna) elements, [radomes](https://en.wikipedia.org/wiki/Radome), and similar structures. It is intended to be useful to antenna design engineers and others who work in applied electromagnetic engineering.

Here are some of the features of the software:

- 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

I hope this package is useful to the applied electromagnetics community, and I would be very glad to receive constructive critical feedback. Collaborators would be welcome!

---

<div class="post-metadata">

**Author:** ![PeterSimon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petersimon/32/25193_2.png) [@PeterSimon](https://discourse.julialang.org/u/PeterSimon)\
**Post date:** [December 14, 2024, 10:31pm UTC](https://discourse.julialang.org/t/ann-announcing-pssfss-polarization-and-frequency-selective-surfaces/61331/2 "2024-12-14T22:31:25Z")

</div>

Although I’ve been remiss on reporting updates here, the PSSFSS.jl package has indeed been continuously updated since my original release announcement. I just released v1.10! Here is a summary of the releases to date:

- Version 1.1: A highly reliable fast sweep is now the default, resulting in order-of-magnitude speedups.
- Version 1.2: Sheet resistance has been replaced by a possibly complex sheet impedance. Also, sheet conductivity and surface roughness may now be specified.
- Version 1.3: `loadedcross`, `jerusalemcross`, and 4-sided `polyring` elements are now triangulated using a structured mesh, by default, resulting in reduced execution times. To obtain the old, unstructured mesh on these elements, specify `structuredtri = false` in the constructor argument list.
- Version 1.4: Chiral `manji` element added.
- Version 1.5: `sinuous` element added.
- Version 1.6: Added `export_sheet` for exporting FSS/PSS sheets to STL-format CAD files.
- Version 1.7: Function `extract_result_file` is deprecated in favor of a new method for `extract_result`.
- Version 1.8: Improved multi-threading in matrix fill functions.
- Version 1.9: Added `orient` keyword to `rectstrip`, allowing geometry rotation within the stationary unit cell.
- Version 1.10: New `res2tep` function allows saving results in the form of a TICRA-compatible TEP (tabulated electrical properties) file.

---

<div class="post-metadata">

**Author:** ![PeterSimon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petersimon/32/25193_2.png) [@PeterSimon](https://discourse.julialang.org/u/PeterSimon)\
**Post date:** [January 16, 2025, 10:50pm UTC](https://discourse.julialang.org/t/ann-announcing-pssfss-polarization-and-frequency-selective-surfaces/61331/3 "2025-01-16T22:50:32Z")

</div>

PSSFSS.jl version 1.11 has been released. Users can now export results to [HFSS](https://www.ansys.com/products/electronics/ansys-hfss)-compatible Fresnel tables via the [`res2fresnel`](https://simonp0420.github.io/PSSFSS.jl/stable/reference/#PSSFSS.Outputs.res2fresnel) function.

---

<div class="post-metadata">

**Author:** ![PeterSimon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petersimon/32/25193_2.png) [@PeterSimon](https://discourse.julialang.org/u/PeterSimon)\
**Post date:** [March 8, 2025, 9:27pm UTC](https://discourse.julialang.org/t/ann-announcing-pssfss-polarization-and-frequency-selective-surfaces/61331/4 "2025-03-08T21:27:01Z")

</div>

PSSFSS.jl 1.12 has been released. It now includes the `pixels` and `sympixels` constructors for creating pixelated (i.e. fragmented) FSS elements.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/6/e/6eb9c2d9029addb0e792414c7fd92daea6d03d02.png)

---

<div class="post-metadata">

**Author:** ![PeterSimon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petersimon/32/25193_2.png) [@PeterSimon](https://discourse.julialang.org/u/PeterSimon)\
**Post date:** [June 12, 2025, 3:45pm UTC](https://discourse.julialang.org/t/ann-announcing-pssfss-polarization-and-frequency-selective-surfaces/61331/5 "2025-06-12T15:45:36Z")

</div>

I recently released [PyPSSFSS](https://simonp0420.github.io/pypssfss/) , a Python wrapper for PSSFSS that uses the amazing [JuliaCall](https://pypi.org/project/juliacall/) package. PyPSSFSS allows Python users with no knowledge of Julia to access all the functionality of PSSFSS. Hopefully, some of them will be inspired to learn about Julia.
