GitHub & MATLAB Resources | ARC Centre of Excellence in Exciton Science


Follow these links to access resources in GitHub.

Knapsack 1.0.0

Knapsack is a FORTRAN 08 package that implements multiple algorithms for the efficient enumeration of bosonic configurations subject to an energy criterion. These configurations can then be used to determine non-radiative rates (internal conversion) within the Franck-Condon and Hertzberg-Teller regimes. More detailed documentation will be available shortly, but in the meantime, example inputs for calculating rates can be found in the examples folder.


PyPhotonics is a post-processing python code that calculates photonic properties of materials. Based on the outcome of DFT, constrained DFT and vibrational calculations using DFT performed using VASP for a defect system, PyPhotonics uses the results in the output files and calculates the Huang-Rhys factor of the defect and the photoluminescence line-shape. Soon, the code will calculate the carrier capture coefficient and carrier lifetimes for defects, which are essential quantities for assessing the photovoltaic efficiency of materials.


CrystalFeatures is a set of python codes that extract features of crystal systems, using only the CIF file as input, for machine learning applications. There are three classes of features in CrystalFeatures: basic descriptors, which include statistical properties of the atoms in the materials as well as the crystal symmetry; geometry features, which are based on bonding properties; and SDFT features, which stands for "superficial" DFT, where the eigen values of the material are obtained using a single-point single step calculation is performed using GPAW.

Machine learning predictor 

Exciton Science Associate Investigator Dr Sherif Abdulkader Tawfik has set up a machine learning predictor. You can copy & paste your material structure in the white box, and then the website will use trained machine learning models to predict the bandgap and the formation energy in a few seconds/or fraction of a second:

You can also access Exciton Science's library of online tutorial recordings here:


Follow these links to access resources in MATLAB.

Luminescent Solar Concentrator MATLAB Simulation Code

An opensource Matlab-based simulation code for luminescent solar concentrators (LSCs) has been developed. The Monte Carlo ray tracing simulator with a graphical user interface (MCRTS-GUI) has been developed to provide a quantitative description, performance evaluation and photon loss analysis of planar LSCs. A paper has been published describing the code and its applications:

A compressed version of the MCRTS-GUI code can be downloaded from: