GithubHelp home page GithubHelp logo

simonp0420 / pssfss.jl Goto Github PK

View Code? Open in Web Editor NEW
24.0 3.0 4.0 999.64 MB

Analysis of Polarization and Frequency Selective Surfaces

Home Page: https://simonp0420.github.io/PSSFSS.jl/

License: MIT License

Julia 100.00%
electromagnetics electrical-engineering microwave-engineering antennas computational-electromagnetics frequency-selective-surfaces electromagnetic-simulation julia

pssfss.jl's Introduction

PSSFSS - analysis of polarization and frequency selective surfaces in Julia

Documentation Tests CodeCov
Stable Dev CI codecov.io

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.

Features

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

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.

News

  • 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: New, chiral manji element added.
  • Version 1.5: sinuous element added.
  • Version 1.6: Added export_sheet for exporting RWGSheet triangulations 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.

Installation

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

(@v1.8) pkg> add PSSFSS

(and then hitting <Backspace> to return to the REPL) or with import Pkg; Pkg.add("PSSFSS").

Documentation

  • 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

Citing PSSFSS

If you use PSSFSS for a scientific publication, please cite the 2024 ACES Journal paper in the following way:

P. S. Simon, “PSSFSS—An Open-source Code for Analysis of Polarization and Frequency Selective Surfaces”, ACES Journal, vol. 39, no. 02, pp. 139–148, Feb. 2024.

BibTeX entry:

@article{simo:24,
  title={{PSSFSS}---An Open-source Code for Analysis of Polarization and Frequency Selective Surfaces},
  volume={39},
  url={https://journals.riverpublishers.com/index.php/ACES/article/view/22443},
  DOI={https://doi.org/10.13052/2024.ACES.J.390207},
  number={02},
  journal={The Applied Computational Electromagnetics Society Journal (ACES)},
  author={Simon, Peter S.},
  year={2024},
  month={feb},
  pages={139--148}
}

Community

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.

pssfss.jl's People

Contributors

fredrikekre avatar github-actions[bot] avatar simonp0420 avatar timholy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pssfss.jl's Issues

Faster sweeps for constant scan angle

The Green's function formulation is wide-band only when the unit cell incremental phasings are held constant with frequency. For constant scan angle frequency scans, the spatial series integrals have to be recomputed for each frequency, which is time consuming. The literature has several methods of interpolating the MoM interaction matrices over frequency which provide dramatic speedups. One of these could be implemented, or we could look for ways to interpolate only the spatial series integrals.

Wider use of structured meshes

Currently, only meander, rectstrip, and diagstrip use structured meshes. Several additional elements could use structured meshes, which are analyzed more efficiently by PSSSFSS. These include

  • 4-sided polyring
  • 4-sided splitring that uses the gapwidth keyword argument, rather than gapangle
  • loadedcross
  • jerusalemcross

Partially completed as of Version 1.3. Only 4-sided splitring remains.

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Add "oriented" meander elements

A multilayer CPSS can have consistent square unit cells throughout (and therefore be analyzed rigorously using GSMs) if the meanderline elements can be rotated by multiples of 45 degrees without rotating the entire unit cell (as is currently done with the "rot" optional keyword argument). See the paper D. Sjöberg and A. Ericsson, "A multi layer meander line circular polarization selective structure (MLML-CPSS)," The 8th European Conference on Antennas and Propagation (EuCAP 2014), 2014, pp. 464-468, doi: 10.1109/EuCAP.2014.6901792. There the authors rigorously analyzed a 5-sheet CPSS in CST and using a square unit cell.

Add additional element types

Including user-defined and tripole type elements. Also more PSS elements, such as a swastika or other chiral geometries.

Finite Thickness Sheets

Sheet finite thickness can have a substantial effect in some cases. See if there is some approximate way to account for finite thickness.

add new structure elements

Can you add the FSS structure in the figure? and Can this complex FSS structure be simulated by PSSFSS?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.