Carbonxs GUI – a Graphical Front End for Carbonxs
Authors: Tsui Lok-kun , Garzon Fernando H 
Published: February 2020

Disordered nanostructured carbons are commonly used as support materials for components in fuel cells, batteries, and catalysts. Deriving structural parameters from x-ray diffraction analysis is a critical tool to optimize the performance of these systems. CarbonXS is a Fortran 77 program originally developed in 1993 by Shi, Reimers, and Dahn that uses a model of 2D carbon layers instead of a 3D model used in traditional Rietveld refinement of x-ray diffraction patterns.1,2 The model uses the diffraction from stacked layers of graphene sheets with random perturbation to calculate a complete diffraction pattern. The χ2 loss function between the calculated and the experimental diffraction pattern is then minimized by Levenberg-Marquardt optimization algorithm. The parameters that CarbonXS optimize include the size of the crystalline domains in the lateral and stacking directions, the degree of turbostratic disorder, and the size of strain. It has been demonstrated to accurately model than 40 disordered and graphitized carbons.1,2 Zheng et al. also used this program to derive a correlation between the calculated disorder of carbons used as Li-ion batteries electrodes and their intercalation capacity.3

The original CarbonXS program was only available for old versions of Windows as a command line program, must be configured through a text file system, and only outputs to text files. These limitations have prevented its widespread adoption in fields where structural characterization of carbons is essential in optimizing performance. After receiving the source code for the original CarbonXS program along with permission to continue development for modern platform, we have recently released CarbonXS GUI as a Python program which acts as a cross-platform graphical front-end to a recompiled version of CarbonXS that works on modern operating systems. Currently supported platforms include Microsoft Windows, Apple OSX, and Linux. A screenshot of the program after performing an optimization is shown in Figure 1. CarbonXS GUI improves upon the command line experience by giving the user a complete graphical user interface to control their fitting process. Additional features of CarbonXS GUI include the ability to export and import fitting parameters as JSON files, instant feedback with a visual plot of the fit and the experimental data, and a calculation mode that allows a user to tune their parameters without running an optimization. The current version of CarbonXS GUI (v1.2.1) and its documentation are available as free, open-source software at Ref 4 and 5 respectively. We will demonstrate the use of this updated program in the context of structural analysis for nanoscale non-PGM catalyst materials for fuel cells.
References
1. H. Shi, thesis, Simon Fraser University (1993) http://summit.sfu.ca/system/files/iritems1/5690/b1523325x.pdf.
2. H. Shi, J. N. Reimers, and J. R. Dahn, J. Appl. Crystallogr., 26, 827–836 (1993).
3. T. Zheng, J. N. Reimers, and J. R. Dahn, Phys. Rev. B, 51, 734–741 (1995).
4. L. Tsui, CarbonXS GUI(2017) http://github.com/lktsui/carbon_xs_gui.
5. L. Tsui, CarbonXS GUI Documentation(2017) https://lktsui.github.io/carbon_xs_gui/.
Figure 1. Screenshot of the CarbonXS GUI program after an optimization session. (a) Configuration panel. (b) Plot of experimental data and fit result. (c) Console output from CarbonXS.

Figure 1