diff --git a/README.md b/README.md index bf0641ea37a0f71fc1816f0d47bd0b5f9400aaa9..78b5a80ec997728fb966a51eb90eac2ab1001f52 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ### Prerequisites -The codes uses SOAP descriptors through the Dscribe Library, Machine Learning tools with scikit-learn library and the Atomic Simulation Environment (ASE) Library. +The code uses SOAP descriptors through the Dscribe Library, Machine Learning tools of the scikit-learn Library and the Atomic Simulation Environment (ASE) Library. Here is the list of libraries you need to install to execute the code: - python==3.10 @@ -20,26 +20,28 @@ pip install -r requirements.txt ## Usage -This code purpose is to recreate Energy Adsorption Map (EAM) using machine learning. +The code builts Energy Adsorption Map (EAM) using machine learning. -running file "run.py" will train a model using an ase "train.traj" object as a training set. It then predicts on a n $\times$ n regular grid above the POSCAR file the adsorption energy. Results are written on "resultat.txt". +The running file "run.py" (i) trains a model from a training set containing adsorption energies calculated on selected sites (".traj" file), and (ii) predicts adsorption energies of new sites located on a n $\times$ n regular grid above the surface. Results are written in the file "result.txt". -train set file, POSCAR file, n value as well as parameters for the SOAP and Gaussian Process Regression can be modify in the "run.py" file. +The ".traj" file contains data useful to describe the simulation box, the atomic positions, the grid (n) as well as parameters for the SOAP descriptors and the Gaussian Process Regression. -The code to create AEM image like "Ag111_AEM.pdf" is also given and uses matplotlib package. Run in same repository as "results.txt" obtained previously to create AEM pdf map. +The code to create the Adsorption Enery Map ("Ag111_AEM.pdf", Working Example) is also given and uses the matplotlib package. Code execution must take place in the same directory as the file "result.txt" previously obtained. ## Data sets -Two data bases are given in this git. The minimum working exemple is focused on the adsorption of Hydrogen on Ag(111), its corresponding train set (3 Hydrogen positions relaxed by DFT) is used by default when running "run.py". We also give the data for Hydrogen adsorption on Al<sub>13</sub>Co<sub>4</sub>(100) on wich the related [paper](https://doi.org/10.1021/acs.jctc.4c00367) focuses. +Two data bases are provided. -The data "final.traj" located in the folder "data_Al13Co4" consist of the 20 $\times$ 20 positions above the surface where DFT relaxation is done. In order to recreate results obtained in the [paper](https://doi.org/10.1021/acs.jctc.4c00367), one may create a "train.traj" from a fraction of the "final.traj". In order to select the positions run the code "position_selection.py" which uses the Farthest Point Sampling method ; you can change the value "ncomp" in the first line of this code to choose the number of position selected. Once the "train.traj" is create, you can run code for Al<sub>13</sub>Co<sub>4</sub>(100) after changing the directory in "run.py". +The minimum working exemple deals with atomic Hydrogen adsorption on Ag(111), and the training set contains DFT data calculated on 3 distinct surface sites. + +The data set corresponding to atomic Hydrogen adsorption on Al<sub>13</sub>Co<sub>4</sub>(100) is the one used in the [paper](https://doi.org/10.1021/acs.jctc.4c00367). The file "final.traj" located in the folder "data_Al13Co4" contains DFT relaxations calculated in 20 $\times$ 20 surface sites. To obtain the results published in the [paper](https://doi.org/10.1021/acs.jctc.4c00367), a "train.traj" file has to be generated from a fraction of the "final.traj" file. The choice of relevant sites can be achieved with the code "position_selection.py" which uses the Farthest Point Sampling method ; The number of selected positions is given by the integer "ncomp" (first line of the code). The training can be performed with the "run.py" code. Both files ("train.traj" and "run.py") have to be located in the same directory. ## Citation ``` -@inproceedings{Boulangeot24hyd, -author = {Boulangeot, Nathan, Brix, Florian, Sur, Frédéric, Gaudry, Émilie}, -title = {Hydrogen, oxygen and lead adsorbates onAl13Co4(100) : accurate potential energysurfaces at low computational cost bymachine learning and DFT-based data}, +@article{Boulangeot24hyd, +author = {Nathan Boulangeot and Florian Brix and Frédéric Sur and Emilie Gaudry}, +title = {Hydrogen, oxygen and lead adsorbates on Al$_{13}$Co$_4$(100) : accurate potential energy surfaces at low computational cost by machine learning and DFT-based data}, journal = {Journal of Chemical Theory and Computation}, year = {2024}, doi = {10.1021/acs.jctc.4c00367}