Skip to content

Latest commit

 

History

History
54 lines (44 loc) · 2.45 KB

README.rst

File metadata and controls

54 lines (44 loc) · 2.45 KB

jl_spectra_2_structure

Methods for converting spectra to structure and solving the materials gap

This is documentation for https://github.com/JLans/jl_spectra_2_structure. jl_spectra_2_structure trains neural network models to learn quantitative descriptions of surface coordination for either extended surfaces or nanoparticles. The model is trained on complex synthetic IR data (secondary data). A class is provided for generating complex (secondary) data from low coverage dft frequency and intensity data (primary data). Another class is provided for generating the primary data from forces on atoms and integrated charges computed by vasp and chargemol respectively.

Documentation

See our documentation page for examples, equations used, and docstrings.

Developer

Dependencies

  • Python3
  • Atomic Simulation Environment: Used for I/O operations and for visualiztion
  • Numpy: Used for vector and matrix operations
  • Pandas: Used to import data from concatenated chargemol files and summing intensities from similar modes
  • SciPy: Used for fitting coverage scaling relations
  • Matplotlib: Used for plotting data
  • scikit-learn: Used for batching data during neural network training and k-means clustering
  • JSON_tricks: Used for reading and writing neural network and cross validation parameters
  • Imbalanced-learn: Used for balancing the primary data before generating secondary data
  • StatsModels: Used to get descriptive statistics of the coverage scaling parameters
  • Pillow: Used for writing jpeg files
  • uuid: Used forgetting unique identifiers when writing cross validation results during mpi runs

License

This project is licensed under the MIT License - see the LICENSE.md file for details.