Skip to content

Commit

Permalink
Add code + docs for res2tep
Browse files Browse the repository at this point in the history
  • Loading branch information
simonp0420 committed Dec 13, 2024
1 parent 0a2153e commit f61afbe
Show file tree
Hide file tree
Showing 43 changed files with 259 additions and 1,884 deletions.
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "PSSFSS"
uuid = "6b20a5d4-3c6c-44cd-883b-1480592d72be"
authors = ["Peter Simon <psimon0420@gmail.com>"]
version = "1.9.0"
version = "1.10.0"

[deps]
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
Expand Down
25 changes: 15 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# PSSFSS - analysis of polarization and frequency selective surfaces in Julia
# PSSFSS - Analysis of polarization and frequency selective surfaces in Julia


| **Documentation** | **Tests** | **CodeCov** |
|:--------:|:---------------:|:-------:|
|[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://simonp0420.github.io/PSSFSS.jl/stable/manual) [![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://simonp0420.github.io/PSSFSS.jl/dev/manual)| [![CI](https://github.com/simonp0420/PSSFSS.jl/workflows/CI/badge.svg?branch=main)](https://github.com/simonp0420/PSSFSS.jl/actions) | [![codecov.io](https://codecov.io/github/simonp0420/PSSFSS.jl/coverage.svg?branch=main)](https://codecov.io/github/simonp0420/PSSFSS.jl?branch=main) |

`PSSFSS` is a Julia package for analyzing
`PSSFSS` is a Julia package for analyzing planar
[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.
Expand All @@ -16,8 +16,8 @@ and their associated triangulations can be conveniently visualized using Julia's
[`Plots`](https://github.com/JuliaPlots/Plots.jl) 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](https://en.wikipedia.org/wiki/Comma-separated_values) 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.
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](https://julialang.org/).


## Features
Expand All @@ -42,6 +42,7 @@ performed in the same analysis script using the immensely powerful Julia program
* Delta insertion phase delay (ΔIPD)
* Delta insertion loss (ΔIL)
* Axial ratio
* Analysis results can be exported to TICRA-compatible TEP (tabulated electrical properties) files.

## Limitations

Expand All @@ -61,34 +62,38 @@ performed in the same analysis script using the immensely powerful Julia program
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.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.

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

```julia
(@v1.8) pkg> add PSSFSS
```

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


## Documentation
- The theory documentation is [here](https://github.com/simonp0420/PSSFSS.jl/blob/main/docs/TheoryDocs/theorydoc.pdf)
- The user manual is [here](https://simonp0420.github.io/PSSFSS.jl/stable/manual)
- If you prefer interactive documentation using Jupyter notebooks, the user documentation in the form of notebooks is
[here](https://github.com/simonp0420/PSSFSS.jl/blob/main/docs/notebooks)

## Citing PSSFSS
If you use PSSFSS for a scientific publication, please cite the 2024
[ACES Journal paper](https://journals.riverpublishers.com/index.php/ACES/article/view/22443) 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:
or use this BibTeX entry:

```bib
@article{simo:24,
Expand Down
1 change: 1 addition & 0 deletions docs/PSS_&_FSS_Element_Gallery/config.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"title": "PSS & FSS Element Gallery",
"theme": "bulmagrid"
}
2 changes: 2 additions & 0 deletions docs/PSS_&_FSS_Element_Gallery/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# PSS & FSS Element Gallery
{{{democards}}}
2 changes: 1 addition & 1 deletion docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"

[compat]
DemoCards = "0.5.2"
Documenter = "0.27.25"
Documenter = "1"
Literate = "2.15.0, 2.15.1"
111 changes: 0 additions & 111 deletions docs/literate/angular_ss_example.md

This file was deleted.

89 changes: 0 additions & 89 deletions docs/literate/band_pass_filter.md

This file was deleted.

21 changes: 7 additions & 14 deletions docs/literate/compile.jl
Original file line number Diff line number Diff line change
Expand Up @@ -10,37 +10,30 @@ examples_list = ["symmetric_strip.jl", "resistive_square_patch.jl",
"cross_on_dielectric_substrate.jl",
"square_loop_absorber.jl", "flexible_absorber.jl", "splitringexample.jl", "reflectarray_example.jl",
"band_pass_filter.jl", "cpss1.jl", "cpss_optimization.jl", "cpss2.jl", "splitring_cpss.jl",
"angular_ss_example.jl"]
"angular_ss_example.jl", "tepfile_creation_example.jl"]

# Adds examples as subsections to the Examples page:
function replace_unknowns(str)
findstr = """EditURL = "<unknown>"""
replace(str, findstr => """EditURL = "https://github.com/simonp0420/PSSFSS.jl/tree/main/docs/literate""")
end

flist = ["manual.jl"]
for file in flist
Literate.markdown(file, "../src", codefence=("```@repl manual" => "```"), credit=false,
postprocess=replace_unknowns)
Literate.markdown(file, "../src", codefence=("```@repl manual" => "```"), credit=false)
#Literate.notebook(file, "../notebooks", preprocess=notebook_filter, execute=false)
Literate.notebook(file, "../notebooks", execute=false)
end

for (i,file) in enumerate(examples_list)
fnpre = splitext(file)[1]
Literate.markdown(file, ".", credit=false)
Literate.markdown(file, "../src", credit=false)
#Literate.notebook(file, "../notebooks", preprocess=notebook_filter, execute=false)
Literate.notebook(file, "../notebooks", execute=false)
end

function postinclude(str)
str = replace_unknowns(str)
for file in examples_list
mdfile = splitext(file)[1] * ".md"
str *= replace_unknowns(read(mdfile, String))
#rm(mdfile)
mdfile = joinpath("..", "src", splitext(file)[1] * ".md")
str *= read(mdfile, String)
rm(mdfile)
end
str
return str
end

Literate.markdown("examples.jl", "../src", postprocess=postinclude, credit=false)
Loading

0 comments on commit f61afbe

Please sign in to comment.