Herein you can find the code used for analysis and plotting for this paper.
Note that future development of this codebase will take place here; this repo is considered an archival companion to the published manuscript!
You can view it in nbviewer here: Note that this can take quite awhile to load!
You can also of course run the notebook (dataviz.ipynb
) locally if you have a Julia install!
If you just want to reproduce the analysis done in the paper, head over to export_figure_data.jl
and then run the figure_*.py
scripts to plot.
If you want to play, I'd suggest you start with the interactive data visualization (see above) to get a sense for what's going on. Otherwise, here's a description of the other contents of this repository:
DOSes/
: Contains DFT-computed DOSes for each material considered in our manuscript. First column is energy relative to Fermi level in eV, second is number of statesexp_data/
: experimental data from this paper for three electrolyte, first column is overpotential in V and second is current in mA/cm^2figs/
: empty on Github, you'll have to populate it yourself by running the scripts! (You may have to manually add in some subdirectories)figure_data/
: Contains all the data used to plot the figures from our manuscript (so you can run the Python scripts directly)
check_cutoff.jl
: The file we used to verify that truncating the DOS had no noticeable effect on the rate constant plotscompare_materials.jl
: This will generate a bunch of plots for different interfaces at different equilibrium Fermi levels, and also plot the material DOSesexport_figure_data.jl
: Runs the analysis done for our manuscript and saves out the data to be plottedfit_exp_data.jl
: Perform fits for different electrolytesfunctions.jl
: The workhorse file. All the functions for analysis, and a few plotting shortcuts, are defined here.interactive_plots.jl
: Code for generating the interactive plots. Run by the Binder notebook referenced above, but you can run in your local IDE too!
Analysis was done in Julia 1.4.2 with the dependencies specified in Project.toml
. Plotting was done in Python 3.6 requires the following packages:
- numpy
- pandas
- matplotlib
- seaborn
We hope to make the analytical tools developed for this into a proper Julia package eventually!