Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: perspe
- License: other
- Language: HTML
- Default Branch: main
- Size: 97 MB
Statistics
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 6
Metadata Files
README.md
Transfer Matrix Method Graphical Interface
⚠️ If using this software in scientific publications, please cite https://doi.org/10.5334/jors.511.
Usage Example

Description
This script implements a graphical interface (on PyQt5) to interact with the transfer matrix method (calculate Reflection/Transmission/Absorption for 1D stacked material layers). The transfer matrix method was developed from the information provided on the Computational Electromagnetics Youtube video series by EMPossible. The program has a database of materials (easily expanded with new materials), that is used to perform the calculations. This program allows for:
- Calculation of Reflection/Transmission/Absorption for arbitrarily sized stacks of planar materials
- Calculation of Absoprtion for a particular layer in the stack
- Calculation of Reflection/Transmission/Absorption for broad-angle/broadband simulations
- Export the results of simulations to text files
- Import data to compare with simulations
- Add materials built from different dispersion formulas (Tauc Lorentz, Sellmeier Absorbent, Cauchy, New Amorphous, Constant)
- Thickness fitting from imported data (using a particle swarm algorithm to find the thickness combination for all layers that minimizes the error between the simulation algorithm and the imported data.
- It also has a interface for the python structures used in the calculations (Described APITutorial.html and APITutorial.ipynb files)
The program was written using the following version of different python packages (although it should also work with any recent version of these packages)
- python 3.8.12
- pandas 1.3.5
- numpy 1.21.4 (minimal version of 1.20 needed for typing module)
- scipy 1.7.3
- matplotlib 3.5
- pyqt 5.9.2
- appdirs 1.4.4
Note: The program also has a module built under cython. There are
compiled binaries for Windows 10, and Linux (used in Mint and Arch). In
any case, it should be possible to compile it (provided a compiler is
installed, like g++) by running python setup.py in the modules
folder.
The program can also be ran from the terminal by running the scatmm.py script
python python scatmm.py
The script can be also run from IDEs, although it is important to guarantee that all the required packages are properly installed in the virtual environment.
It also possible to run everything from the backend functions (as exmplained in APITutorial.html and APITutorial.ipynb)
When run the program will display the image bellow. The help menu provides a brief description of all the program's capabilities

Owner
- Login: perspe
- Kind: user
- Repositories: 1
- Profile: https://github.com/perspe
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Alexandre"
given-names: "Miguel"
orcid: "https://orcid.org/0000-0002-7533-9469"
- family-names: "Santos"
given-names: "Ivan M."
orcid: "https://orcid.org/0000-0001-6593-8698"
- family-names: "Martins"
given-names: "Rodrigo"
orcid: "https://orcid.org/0000-0002-1997-7669"
- family-names: "Mendes"
given-names: "Manuel J."
orcid: "https://orcid.org/0000-0002-7374-0726"
title: "SCATMM: Easy-to-Use Graphical User Interface for Light Propagation in Arbitrary Multilayers"
version: 3.8.3
doi: 10.5334/jors.511
date-released: 2024-08-19
url: "https://github.com/perspe/Scatmm"
preferred-citation:
type: article
doi: 10.5334/jors.511
authors:
- family-names: "Alexandre"
given-names: "Miguel"
orcid: "https://orcid.org/0000-0002-7533-9469"
- family-names: "Santos"
given-names: "Ivan M."
orcid: "https://orcid.org/0000-0001-6593-8698"
- family-names: "Martins"
given-names: "Rodrigo"
orcid: "https://orcid.org/0000-0002-1997-7669"
- family-names: "Mendes"
given-names: "Manuel J."
orcid: "https://orcid.org/0000-0002-7374-0726"
journal: "Journal of open research software"
month: 8
title: "SCATMM: Easy-to-Use Graphical User Interface for Light Propagation in Arbitrary Multilayers"
issue: 1
volume: 12
year: 2024