1,720,962 research outputs found
Atomistic Modelling of Transport and Aggregation Phenomena for Energy Applications
L'abstract è presente nell'allegato / the abstract is in the attachmen
Enhancing the ReaxFF DFT database
<h1>Enhancing the ReaxFF DFT database</h1>
<p>This repository contains the database used to re-parametrize the ReaxFF force field for LiF, an inorganic compound. The purpose of the database is to improve the accuracy and reliability of ReaxFF calculations for LiF. The results and method used were published in the article <a href="https://doi.org/10.1038/s41598-023-50978-5">Enhancing ReaxFF for Molecular Dynamics Simulations of Lithium-Ion Batteries: An interactive reparameterization protocol</a>.</p>
<p>This database was made using the simulation obtained using the protocol published in <a href="https://github.com/paolodeangelis/Enhancing_ReaxFF">Enhancing ReaxFF repository</a>.</p>
<h2>Installation</h2>
<p>To use the database and interact with it, ensure that you have the following Python requirements installed:</p>
<p><strong>Minimum Requirements:</strong></p>
<ul>
<li>Python 3.9 or above</li>
<li>Atomic Simulation Environment (ASE) library</li>
<li>Jupyter Lab</li>
</ul>
<p><strong>Requirements for Re-running or Performing New Simulations:</strong></p>
<ul>
<li>SCM (Software for Chemistry & Materials) Amsterdam Modeling Suite</li>
<li>PLAMS (Python Library for Automating Molecular Simulation) library</li>
</ul>
<p>You can install the required Python packages using pip:</p>
<pre><code>pip install -r requirements.txt</code></pre>
<blockquote>
<p><strong>Warning</strong></p>
<p>Make sure to have the appropriate licenses and installations of SCM Amsterdam Modeling Suite and any other necessary software for running simulations.</p>
</blockquote>
<h2>Folder Structure</h2>
<p>The repository has the following folder structure:</p>
<pre><code>.
├── CONTRIBUTING.md
├── CREDITS.md
├── LICENSE
├── README.md
├── requirements.txt
├── assets
├── data
│ ├── LiF.db
│ ├── LiF.json
│ └── LiF.yaml
├── notebooks
│ ├── browsing_db.ipynb
│ └── running_simulation.ipynb
└── tools
├── db
├── plams_experimental
└── scripts</code></pre>
<ul>
<li><code>CONTRIBUTING.md</code>: This file provides guidelines and instructions for contributing to the repository. It outlines the contribution process, coding conventions, and other relevant information for potential contributors.</li>
<li><code>CREDITS.md</code>: This file acknowledges and credits the individuals or organizations that have contributed to the repository.</li>
<li><code>LICENSE</code>: This file contains the license information for the repository (CC BY 4.0). It specifies the terms and conditions under which the repository's contents are distributed and used.</li>
<li><code>README.md</code>: This file.</li>
<li><code>requirements.txt</code>: This file lists the required Python packages and their versions. (see <a href="#installation">installation section</a>)</li>
<li><code>assets</code>: This folder contains any additional assets, such as images or documentation, related to the repository.</li>
<li><code>data</code>: This folder contains the data files used in the repository.
<ul>
<li><code>LiF.db</code>: This file is the SQLite database file that includes the DFT data used for the ReaxFF force field. Specifically, it contains data related to the inorganic compound LiF.</li>
<li><code>LiF.json</code>: This file provides the database metadata in a human-readable format using JSON.</li>
<li><code>LiF.yaml</code>: This file also contains the database metadata in a more human-readable format, still using YAML.</li>
</ul>
</li>
<li><code>notebooks</code>: This folder contains Jupyter notebooks that provide demonstrations and examples of how to use and analyze the database.
<ul>
<li><code>browsing_db.ipynb</code>: This notebook demonstrates how to handle, select, read, and understand the data points in the <code>LiF.db</code> database using the ASE database Python interface. It serves as a guide for exploring and navigating the database effectively.</li>
<li><code>running_simulation.ipynb</code>: In this notebook, you will find an example of how to get a data point from the <code>LiF.db</code> database and use it to perform a new simulation. The notebook showcases how to utilize either the <a href="https://www.scm.com/doc/plams/index.html">PLAMS</a> library or the <a href="https://www.scm.com/doc/plams/interfaces/amscalculator.html">AMSCalculator</a> and ASE Python library to conduct simulations based on the retrieved data and then store it as a new data point in the <code>LiF.db</code> database. It provides step-by-step instructions and code snippets for a seamless simulation workflow.</li>
</ul>
</li>
<li><code>tools</code>: This directory contains a collection of Python modules and scripts that are useful for reading, analyzing, and re-running simulations stored in the database. These tools are indispensable for ensuring that this repository adheres to the principles of <strong>I</strong>nteroperability and <strong>R</strong>eusability, as outlined by the <a href="https://www.go-fair.org/fair-principles/">FAIR principles</a>.
<ul>
<li><code>db</code>: This Python module provides functionalities for handling, reading, and storing data in the database.</li>
<li><code>plasm_experimental</code>: This Python module includes the necessary components for using the <code>AMSCalculator</code> with PLASM and the SCM software package, utilizing the ASE API. It facilitates running simulations, and performing calculations.</li>
<li><code>scripts</code>: This directory contains additional scripts for advanced usage scenarios of this repository.</li>
</ul>
</li>
</ul>
<h2>Interacting with the Database</h2>
<p>There are three ways to interact with the database: using the ASE db command line, the web interface, and the ASE Python interface.</p>
<h3>ASE db Command-line</h3>
<p>To interact with the database using the ASE db terminal command, follow these steps:</p>
<ol>
<li>
<p>Open a terminal and navigate to the directory containing the <code>LiF.db</code> file.</p>
</li>
<li>
<p>Run the following command to start the ASE db terminal:</p>
<pre><code>ase db LiF.db</code></pre>
</li>
<li>
<p>You can now use the available commands in the terminal to query and manipulate the database. More information can be found in the <a href="https://wiki.fysik.dtu.dk/ase/ase/db/db.html">ASE database documentation</a>.</p>
</li>
</ol>
<h3>Web Interface</h3>
<p>To interact with the database using the web interface, follow these steps:</p>
<ol>
<li>
<p>Open a terminal and navigate to the directory containing the <code>LiF.db</code> file.</p>
</li>
<li>
<p>Run the following command to start the ASE db terminal:</p>
<pre><code>ase db -w LiF.db</code></pre>
</li>
<li>
<p>Open your web browser and connect to the local server at <a href="http://127.0.0.1:5000">http://127.0.0.1:5000</a>.</p>
</li>
</ol>
<blockquote>
<p><strong>Warning</strong></p>
<p>To visualize the 3D structure of the system, you need to install the <a href="https://jmol.sourceforge.net/">JMOL extension</a>. You can use the script <code>tools/scripts/install_jmol.py</code> to automatically download and install it:</p>
<pre><code>cd tools/scripts/
python install_jmol.py</code></pre>
</blockquote>
<h3>ASE Python Interface</h3>
<p>To interact with the database using the ASE Python interface, you can use the following example code:</p>
<pre><code>from ase.db import connect
# Connect to the database
db = connect("LiF.db")
# Query the database
results = db.select("success=True")
# Iterate over the results
for row in results:
print(f"ID: {row.id}, Energy: {row.energy}")</code></pre>
<div>
<pre>For a more detailed example, refer to the notebook <code>notebooks/browsing_db.ipynb</code>. To learn how to perform a simulation, check the notebook <code>notebooks/running_simulation.ipynb</code>.</pre>
</div>
<h2>Contributing</h2>
<p>If you would like to contribute to the Enhancing ReaxFF DFT Database by performing new simulations and expanding the database, please follow the guidelines outlined in the <a href="CONTRIBUTING.md">Contribution Guidelines</a>. You are welcome to submit pull requests or open issues in the repository. Your contributions are greatly appreciated!</p>
<h2>How to Cite</h2>
<p>If you use the database or the tools provided in this repository for your work, please cite it using the following BibTeX entries:</p>
<pre><code>@article{deangelis2023enhancing,
title={Enhancing ReaxFF for molecular dynamics simulations of lithium-ion batteries: an interactive reparameterization protocol},
author={De Angelis, Paolo and
Cappabianca, Roberta and
Fasano, Matteo and
Asinari, Pietro and
Chiavazzo, Eliodoro},
journal={Scientific Reports},
volume={14},
number={1},
pages={978},
year={2024},
publisher={Nature Publishing Group UK London}
}</code></pre>
<pre><code>@dataset{EnhReaxFFdatabase,
author = {De Angelis, Paolo and
Cappabianca, Roberta and
Fasano, Matteo and
Asinari, Pietro and
Chiavazzo, Eliodoro},
title = {{Enhancing the ReaxFF DFT database}},
month = may,
year = 2023,
publisher = {Zenodo},
version = {1.0.0-beta},
doi = {10.5072/zenodo.1204707},
url = {https://doi.org/10.5281/zenodo.7959121}
}</code></pre>
<div>
<h2>License</h2>
</div>
<p>The contents of this repository are licensed under the <a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p>
<h2>Acknowledgments</h2>
<p>This project has received funding from the European Union's <a href="https://ec.europa.eu/programmes/horizon2020/en">Horizon 2020 research and innovation programme</a> under grant agreement <a href="https://cordis.europa.eu/project/id/957189">No 957189</a>. The project is part of <a href="https://battery2030.eu/">BATTERY 2030+</a>, the large-scale European research initiative for inventing the sustainable batteries of the future.</p>
<p>The authors also acknowledge that the simulation results of this database have been achieved using the <a href="https://prace-ri.eu/hpc-access/deci-access/">DECI</a> resource <a href="https://www.archer2.ac.uk/">ARCHER2</a> based in UK at <a href="https://www.epcc.ed.ac.uk/">EPCC</a> with support from the <a href="https://prace-ri.eu/">PRACE</a> aisbl.</p>
Enhancing the ReaxFF protocol
<h1>Enhancing the ReaxFF protocol</h1>
<p>This repository contains the jupyter notebooks used to re-parametrize the ReaxFF force field for LiF, an inorganic compound. The purpose of the set of notebooks is to facilitate the reparameterization ReaxFF force field for LiF. The results and method used were published in the article <a href="https://doi.org/10.1038/s41598-023-50978-5">Enhancing ReaxFF for Molecular Dynamics Simulations of Lithium-Ion Batteries: An interactive reparameterization protocol</a>.</p>
<p>The database containing the simulation data from <em>ab initio</em> simulations obtained from this protocol is published in <a href="https://github.com/paolodeangelis/Enhancing_ReaxFF_DFT_database">Enhancing ReaxFF repository DFT Database</a>.</p>
<p>The Jupyter Notebooks provided here are designed to facilitate the configuration building, execution of DFT simulations, and optimization of the ReaxFF potential, as described in the workflow diagram shown below. To manage the complexity of the overall operation, we have divided the process into four main Jupyter Notebooks, with an additional auxiliary notebook.</p>
<p>Each notebook can be executed independently, allowing for flexibility in adapting the workflow to optimize the ReaxFF potential for different compounds with minimal modifications.</p>
<p>The four main Jupyter Notebooks cover various aspects of the workflow, including configuration setup, DFT simulations, and ReaxFF optimization. By following the sequence of these notebooks, you will be able to efficiently perform the entire process, from initial configuration generation to the optimization of the ReaxFF potential.</p>
<h2>Installation</h2>
<p>To use the protocol and interact with it, ensure that you have the following Python requirements installed:</p>
<p><strong>Minimum Requirements:</strong></p>
<ul>
<li>Python 3.8 or above</li>
<li>Atomic Simulation Environment (ASE) library</li>
<li>Jupyter Lab</li>
</ul>
<p><strong>Requirements for Re-running or Performing New Simulations:</strong></p>
<ul>
<li>SCM (Software for Chemistry & Materials) Amsterdam Modeling Suite (version < 2022.4)</li>
<li>PLAMS (Python Library for Automating Molecular Simulation) library</li>
</ul>
<p><strong>Requirements for Re-running ReaxFF optimization:</strong></p>
<ul>
<li>AMS (Amsterdam Modeling Suite) Python Stack (<a href="https://www.scm.com/doc/Scripting/Python_Stack/Python_Stack.html">more info here</a>)</li>
</ul>
<p>You can install the required Python packages using pip:</p>
<pre><code>pip install -r requirements.txt</code></pre>
<blockquote>
<p><strong>Warning</strong></p>
<p>This do not include the ParAMS packages since is available only in AMS Python Stack.</p>
<p>See instruction below.</p>
</blockquote>
<pre><code>export SCM_PYTHONDIR=AMSBIN/amspython --install_venv
source venv/AMSYYYY.X.venv/bin/activate # Replace YYYY.X with the correct AMS version</code></pre>
<blockquote>
<p><strong>Warning</strong></p>
<p>Make sure to have the appropriate licenses and installations of SCM Amsterdam Modeling Suite and any other necessary software for running simulations.</p>
</blockquote>
<h3>Configure <code>Material Project API</code></h3>
<p><strong>Get <em>Material Project</em> API key</strong></p>
<p>Access to <a href="https://materialsproject.org/">Material Project</a> and follow the instructions on the <a href="https://materialsproject.org/api">documentation</a></p>
<h4>Make the configuration file</h4>
<ol>
<li>Run the script replacing <code><MATERIAL_PROJECT_KEY></code> with the Material Project API key.</li>
</ol>
<pre><code>python tools/mpinterface_setup.py -k <MATERIAL_PROJECT_KEY></code></pre>
<h2>Folder Structure</h2>
<p>The repository has the following folder structure:</p>
<div><pre><code><span><a href="#cb4-1"></a><span>.</span></span>
<span><a href="#cb4-2"></a>├── <span>CREDITS.md</span></span>
<span><a href="#cb4-3"></a>├── <span>LICENSE</span></span>
<span><a href="#cb4-4"></a>├── <span>README.md</span></span>
<span><a href="#cb4-5"></a>├── <span>requirements.txt</span></span>
<span><a href="#cb4-6"></a>├── <span>assets</span></span>
<span><a href="#cb4-7"></a>├── <span>data</span></span>
<span><a href="#cb4-8"></a>│ ├── <span>training_set.yaml</span></span>
<span><a href="#cb4-9"></a>│ ├── <span>test_set.yaml</span></span>
<span><a href="#cb4-10"></a>│ ├── <span>ffield.reax.CHOSiLiF_K.S.Yun_etal_2017.ff</span></span>
<span><a href="#cb4-11"></a>│ └── <span>ffield.reax.optimized.ff</span></span>
<span><a href="#cb4-12"></a>├── <span>tools</span></span>
<span><a href="#cb4-13"></a>├── <span>JNB1-Initial_configrations.ipynb</span></span>
<span><a href="#cb4-14"></a>├── <span>JNB2-Simulations.ipynb</span></span>
<span><a href="#cb4-15"></a>├── <span>JNB3-Build_traingset.ipynb</span></span>
<span><a href="#cb4-16"></a>├── <span>preJNB4-ReaxFF_optimization.ipynb</span></span>
<span><a href="#cb4-17"></a>└── <span>JNB4-ReaxFF_optimization.ipynb</span></span></code></pre></div>
<ul>
<li><code>CREDITS.md</code>: This file acknowledges and credits the individuals or organizations that have contributed to the repository.</li>
<li><code>LICENSE</code>: This file contains the license information for the repository (CC BY 4.0). It specifies the terms and conditions under which the repository's contents are distributed and used.</li>
<li><code>README.md</code>: This file (repository overview and instructions).</li>
<li><code>requirements.txt</code>: This file lists the required Python packages and their versions (see <a href="#installation">installation section</a>).</li>
<li><code>assets</code>: This folder contains any additional assets, such as images or documentation, related to the repository.</li>
<li><code>data</code>: This folder contains the data files resulting from this work.
<ul>
<li><code>training_set.yaml</code>: YAML (human and machine-readable) file with the training-set quantities.</li>
<li><code>test_set.yaml</code>: YAML (human and machine-readable) file with the test-set quantities.</li>
<li><code>ffield.reax.CHOSiLiF_K.S.Yun_etal_2017.ff</code>: This file is the starting point ReaxFF corresponding to the article <a href="https://doi.org/10.1021/acs.jpclett.7b00898"><em>Yun et al., J. Phys. Chem. Lett. 2017, 8, 13, 2812–2818</em></a>.</li>
<li><code>ffield.reax.optimized.ff</code>: This file is the optimized ReaxFF resulting from using these Jupyter notebooks, as explained in the related <a href="https://doi.org/10.1038/s41598-023-50978-5">journal article</a>.</li>
</ul></li>
<li><code>notebooks</code>: This folder contains Jupyter notebooks that provide demonstrations and examples of how to use and analyze the database.
<ul>
<li><code>JNB1-Initial_configurations.ipynb</code>: Jupyter Notebook where the protocol is initialized by querying the <em>Materials Project</em> database, downloading the unit crystals, and producing all the initial configurations for the DFT simulations using the <em>pymatgen</em> library.</li>
<li><code>JNB2-Simulations.ipynb</code>: This notebook performs the simulations using BAND and DFTB codes available in the Amsterdam Modeling Suite. The simulations are performed in parallel using the <em>PLAMS</em> library and <em>SLURM</em> scheduler.</li>
<li><code>JNB3-Build_trainingset.ipynb</code>: Here, the quantities needed for the database are extracted and tuned to favor accuracy on the energy.</li>
<li><code>preJNB4-ReaxFF_optimization.ipynb</code>: This is an auxiliary Notebook where the old ReaxFF is converted into a Python object, and it is possible to select the subset of coefficients related to specific interactions to change during the optimization (e.g., bond, van der Waals, angular, etc.).</li>
<li><code>JNB4-ReaxFF_optimization.ipynb</code>: This notebook takes the database and the ReaxFF Python object to perform a multi-objective optimization and find the new ReaxFF potential that minimizes the Sum of Squared Errors (SSE).</li>
</ul></li>
<li><code>tools</code>: This directory contains a collection of Python modules and scripts.</li>
</ul>
<blockquote>
<p><strong>Note</strong></p>
<p>Please note that the Jupyter notebooks <code>preJNB4-ReaxFF_optimization.ipynb</code> and <code>JNB4-ReaxFF_optimization.ipynb</code> can be run multiple times to gradually optimize the ReaxFF potential. This optimization process involves selecting different subsets of parameters, as demonstrated in the workflow and described in the accompanying <a href="https://doi.org/10.1038/s41598-023-50978-5">article</a>.</p>
</blockquote>
<h2>Contributing</h2>
<p>At the moment the contribution to this repository is closed since all the work is under peer-review revision.</p>
<h2>How to Cite</h2>
<p>If you use the protocol or part of this repository for your work, please cite it using the following BibTeX entries:</p>
<div><pre><code><span><a href="#cb5-1"></a><span>@article</span>{<span>deangelis2024enhancing</span>,</span>
<span><a href="#cb5-2"></a> <span>title</span>={Enhancing ReaxFF for molecular dynamics simulations of lithium-ion batteries: an interactive reparameterization protocol},</span>
<span><a href="#cb5-3"></a> <span>author</span>={De Angelis, Paolo and</span>
<span><a href="#cb5-4"></a> Cappabianca, Roberta and</span>
<span><a href="#cb5-5"></a> Fasano, Matteo and</span>
<span><a href="#cb5-6"></a> Asinari, Pietro and</span>
<span><a href="#cb5-7"></a> Chiavazzo, Eliodoro},</span>
<span><a href="#cb5-8"></a> <span>journal</span>={Scientific Reports},</span>
<span><a href="#cb5-9"></a> <span>volume</span>={14},</span>
<span><a href="#cb5-10"></a> <span>number</span>={1},</span>
<span><a href="#cb5-11"></a> <span>pages</span>={978},</span>
<span><a href="#cb5-12"></a> <span>year</span>={2024},</span>
<span><a href="#cb5-13"></a> <span>publisher</span>={Nature Publishing Group UK London}</span>
<span><a href="#cb5-14"></a>}</span></code></pre></div>
<div><pre><code><span><a href="#cb6-1"></a><span>@software{EnhancingReaxFF,</span></span>
<span><a href="#cb6-2"></a><span> author = {De Angelis, Paolo and</span></span>
<span><a href="#cb6-3"></a><span> Cappabianca, Roberta and</span></span>
<span><a href="#cb6-4"></a><span> Fasano, Matteo and</span></span>
<span><a href="#cb6-5"></a><span> Asinari, Pietro and</span></span>
<span><a href="#cb6-6"></a><span> Chiavazzo, Chiavazzo},</span></span>
<span><a href="#cb6-7"></a><span> title = {Enhancing the ReaxFF protocol},</span></span>
<span><a href="#cb6-8"></a><span> month = jun,</span></span>
<span><a href="#cb6-9"></a><span> year = 2023,</span></span>
<span><a href="#cb6-10"></a><span> publisher = {Zenodo},</span></span>
<span><a href="#cb6-11"></a><span> version = {1.0.0-alpha},</span></span>
<span><a href="#cb6-12"></a><span> doi = {10.5281/zenodo.8036775},</span></span>
<span><a href="#cb6-13"></a><span> url = {https://doi.org/10.5281/zenodo.8036775}</span></span>
<span><a href="#cb6-14"></a><span>}</span></span></code></pre></div>
<h2>License</h2>
<p>The contents of this repository are licensed under the <a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p>
<h2>Acknowledgments</h2>
<p>This project has received funding from the European Union's <a href="https://ec.europa.eu/programmes/horizon2020/en">Horizon 2020 research and innovation programme</a> under grant agreement <a href="https://cordis.europa.eu/project/id/957189">No 957189</a>. The project is part of <a href="https://battery2030.eu/">BATTERY 2030+</a>, the large-scale European research initiative for inventing the sustainable batteries of the future.</p>
<p>The authors also acknowledge that the simulation results of this database have been achieved using the <a href="https://prace-ri.eu/hpc-access/deci-access/">DECI</a> resource <a href="https://www.archer2.ac.uk/">ARCHER2</a> based in UK at <a href="https://www.epcc.ed.ac.uk/">EPCC</a> with support from the <a href="https://prace-ri.eu/">PRACE</a> aisbl.</p>
Enhancing the ReaxFF protocol
<p>This repository contains the jupyter notebooks used to re-parametrize the ReaxFF force field for LiF, an inorganic compound. The purpose of the set of notebooks is to facilitate the reparameterization ReaxFF force field for LiF. The results and method used were published in the article <a href="https://doi.org/TBD">Enhancing ReaxFF for Molecular Dynamics Simulations of Lithium-Ion Batteries: An interactive reparameterization protocol</a>.</p>
<p>The database containing the simulation data from <em>ab initio</em> simulations obtained from this protocol is published in <a href="https://github.com/paolodeangelis/Enhancing_ReaxFF_DFT_database">Enhancing ReaxFF repository DFT Database</a>.</p>
<p>The Jupyter Notebooks provided here are designed to facilitate the configuration building, execution of DFT simulations, and optimization of the ReaxFF potential. To manage the complexity of the overall operation, we have divided the process into four main Jupyter Notebooks, with an additional auxiliary notebook.</p>
<p>Each notebook can be executed independently, allowing for flexibility in adapting the workflow to optimize the ReaxFF potential for different compounds with minimal modifications.</p>
<p>The four main Jupyter Notebooks cover various aspects of the workflow, including configuration setup, DFT simulations, and ReaxFF optimization. By following the sequence of these notebooks, you will be able to efficiently perform the entire process, from initial configuration generation to the optimization of the ReaxFF potential.</p>
<strong>Installation</strong>
<p>To use the database and interact with it, ensure that you have the following Python requirements installed:</p>
<p><em>Minimum Requirements:</em></p>
<ul>
<li>Python 3.8 or above</li>
<li>Atomic Simulation Environment (ASE) library</li>
<li>Jupyter Lab</li>
</ul>
<p><em>Requirements for Re-running or Performing New Simulations:</em></p>
<ul>
<li>SCM (Software for Chemistry & Materials) Amsterdam Modeling Suite</li>
<li>PLAMS (Python Library for Automating Molecular Simulation) library</li>
</ul>
<p><em>Requirements for Re-running ReaxFF optimization:</em></p>
<ul>
<li>AMS (Amsterdam Modeling Suite) Python Stack (<a href="https://www.scm.com/doc/Scripting/Python_Stack/Python_Stack.html">more info here</a>)</li>
</ul>
<p>You can install the required Python packages using pip:</p>
<pre class="shell"><code>pip install -r requirements.txt</code></pre>
<p><strong>Warning</strong></p>
<p>This do not include the ParAMS packages since is available only in AMS Python Stack.</p>
<p>See instruction below.</p>
<pre class="shell"><code>export SCM_PYTHONDIR=AMSBIN/amspython --install_venv
source venv/AMSYYYY.X.venv/bin/activate # Replace YYYY.X with the correct AMS version</code></pre>
<p><strong>Warning</strong></p>
<p>Make sure to have the appropriate licenses and installations of SCM Amsterdam Modeling Suite and any other necessary software for running simulations.</p>
<h3>Configure <code>Material Project API</code></h3>
<p><em>Get <em>Material Project</em> API key</em></p>
<p>Access to <a href="https://materialsproject.org/">Material Project</a> and follow the instruction on the <a href="https://materialsproject.org/api">documentation</a></p>
<h4>Make the configuration file</h4>
<ol>
<li>Run the script replacing <code><MATERIAL_PROJECT_KEY></code> with the Material Project API key.</li>
</ol>
<pre class="shell"><code>python tools/mpinterface_setup.py -k <MATERIAL_PROJECT_KEY></code></pre>
<strong>Folder Structure</strong>
<p>The repository has the following folder structure:</p>
<pre><code class="language-bash">
.
├── CREDITS.md
├── LICENSE
├── README.md
├── requirements.txt
├── assets
├── data
│ └── ffield.reax.optimized.ff
├── tools
├── JNB1-Initial_configrations.ipynb
├── JNB2-Simulations.ipynb
├── JNB3-Build_traingset.ipynb
├── preJNB4-ReaxFF_optimization.ipynb
└── JNB4-ReaxFF_optimization.ipynb
</code>
</pre>
<ul>
<li><code>CREDITS.md</code>: This file acknowledges and credits the individuals or organizations that have contributed to the repository.</li>
<li><code>LICENSE</code>: This file contains the license information for the repository (CC BY 4.0). It specifies the terms and conditions under which the repository's contents are distributed and used.</li>
<li><code>README.md</code>: This file (repository overview and instructions).</li>
<li><code>requirements.txt</code>: This file lists the required Python packages and their versions (see <a href="#installation">installation section</a>).</li>
<li><code>assets</code>: This folder contains any additional assets, such as images or documentation, related to the repository.</li>
<li><code>data</code>: This folder contains the data files resulting from this work.
<ul>
<li><code>ffield.reax.optimized.ff</code>: This file is the optimized ReaxFF resulting from using these Jupyter notebooks, as explained in the related <a href="https://doi.org/TBD">journal article</a>.</li>
</ul></li>
<li><code>notebooks</code>: This folder contains Jupyter notebooks that provide demonstrations and examples of how to use and analyze the database.
<ul>
<li><code>JNB1-Initial_configurations.ipynb</code>: Jupyter Notebook where the protocol is initialized by querying the <em>Materials Project</em> database, downloading the unit crystals, and producing all the initial configurations for the DFT simulations using the <em>pymatgen</em> library.</li>
<li><code>JNB2-Simulations.ipynb</code>: This notebook performs the simulations using BAND and DFTB codes available in the Amsterdam Modeling Suite. The simulations are performed in parallel using the <em>PLAMS</em> library and <em>SLURM</em> scheduler.</li>
<li><code>JNB3-Build_trainingset.ipynb</code>: Here, the quantities needed for the database are extracted and tuned to favor accuracy on the energy.</li>
<li><code>preJNB4-ReaxFF_optimization.ipynb</code>: This is an auxiliary Notebook where the old ReaxFF is converted into a Python object, and it is possible to select the subset of coefficients related to specific interactions to change during the optimization (e.g., bond, van der Waals, angular, etc.).</li>
<li><code>JNB4-ReaxFF_optimization.ipynb</code>: This notebook takes the database and the ReaxFF Python object to perform a multi-objective optimization and find the new ReaxFF potential that minimizes the Sum of Squared Errors (SSE).</li>
</ul></li>
<li><code>tools</code>: This directory contains a collection of Python modules and scripts.</li>
</ul>
<p><strong>Note</strong></p>
<p>Please note that the Jupyter notebooks <code>preJNB4-ReaxFF_optimization.ipynb</code> and <code>JNB4-ReaxFF_optimization.ipynb</code> can be run multiple times to gradually optimize the ReaxFF potential. This optimization process involves selecting different subsets of parameters, as demonstrated in the workflow and described in the accompanying <a href="https://doi.org/TBD">article</a>.</p>
<strong>Contributing</strong>
<p>At the moment the contribution to this repository is closed since all the work is under peer-review revision.</p>
<strong>License</strong>
<p>The contents of this repository are licensed under the <a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p>
<strong>Acknowledgments</strong>
<p>This project has received funding from the European Union's <a href="https://ec.europa.eu/programmes/horizon2020/en">Horizon 2020 research and innovation programme</a> under grant agreement <a href="https://cordis.europa.eu/project/id/957189">No 957189</a>. The project is part of <a href="https://battery2030.eu/">BATTERY 2030+</a>, the large-scale European research initiative for inventing the sustainable batteries of the future.</p>
<p>The authors also acknowledge that the simulation results of this database have been achieved using the <a href="https://prace-ri.eu/hpc-access/deci-access/">DECI</a> resource <a href="https://www.archer2.ac.uk/">ARCHER2</a> based in UK at <a href="https://www.epcc.ed.ac.uk/">EPCC</a> with support from the <a href="https://prace-ri.eu/">PRACE</a> aisbl.</p>
Enhancing ReaxFF for molecular dynamics simulations of lithium-ion batteries: an interactive reparameterization protocol
Lithium-ion batteries (LIBs) have become an essential technology for the green economy transition, as they are widely used in portable electronics, electric vehicles, and renewable energy systems. The solid-electrolyte interphase (SEI) is a key component for the correct operation, performance, and safety of LIBs. The SEI arises from the initial thermal metastability of the anode-electrolyte interface, and the resulting electrolyte reduction products stabilize the interface by forming an electrochemical buffer window. This article aims to make a first—but important—step towards enhancing the parametrization of a widely-used reactive force field (ReaxFF) for accurate molecular dynamics (MD) simulations of SEI components in LIBs. To this end, we focus on Lithium Fluoride (LiF), an inorganic salt of great interest due to its beneficial properties in the passivation layer. The protocol relies heavily on various Python libraries designed to work with atomistic simulations allowing robust automation of all the reparameterization steps. The proposed set of configurations, and the resulting dataset, allow the new ReaxFF to recover the solid nature of the inorganic salt and improve the mass transport properties prediction from MD simulation. The optimized ReaxFF surpasses the previously available force field by accurately adjusting the diffusivity of lithium in the solid lattice, resulting in a two-order-of-magnitude improvement in its prediction at room temperature. However, our comprehensive investigation of the simulation shows the strong sensitivity of the ReaxFF to the training set, making its ability to interpolate the potential energy surface challenging. Consequently, the current formulation of ReaxFF can be effectively employed to model specific and well-defined phenomena by utilizing the proposed interactive reparameterization protocol to construct the dataset. Overall, this work represents a significant initial step towards refining ReaxFF for precise reactive MD simulations, shedding light on the challenges and limitations of ReaxFF force field parametrization. The demonstrated limitations emphasize the potential for developing more versatile and advanced force fields to upscale ab initio simulation through our interactive reparameterization protocol, enabling more accurate and comprehensive MD simulations in the future
Enhancing the ReaxFF protocol
<p>This repository contains the jupyter notebooks used to re-parametrize the ReaxFF force field for LiF, an inorganic compound. The purpose of the set of notebooks is to facilitate the reparameterization ReaxFF force field for LiF. The results and method used were published in the article <a href="https://doi.org/TBD">Enhancing ReaxFF for Molecular Dynamics Simulations of Lithium-Ion Batteries: An interactive reparameterization protocol</a>.</p><p>The database containing the simulation data from <i>ab initio</i> simulations obtained from this protocol is published in <a href="https://github.com/paolodeangelis/Enhancing_ReaxFF_DFT_database">Enhancing ReaxFF repository DFT Database</a>.</p><p>The Jupyter Notebooks provided here are designed to facilitate the configuration building, execution of DFT simulations, and optimization of the ReaxFF potential. To manage the complexity of the overall operation, we have divided the process into four main Jupyter Notebooks, with an additional auxiliary notebook.</p><p>Each notebook can be executed independently, allowing for flexibility in adapting the workflow to optimize the ReaxFF potential for different compounds with minimal modifications.</p><p>The four main Jupyter Notebooks cover various aspects of the workflow, including configuration setup, DFT simulations, and ReaxFF optimization. By following the sequence of these notebooks, you will be able to efficiently perform the entire process, from initial configuration generation to the optimization of the ReaxFF potential.</p><p><strong>Installation</strong></p><p>To use the database and interact with it, ensure that you have the following Python requirements installed:</p><p><i>Minimum Requirements:</i></p><ul><li>Python 3.8 or above</li><li>Atomic Simulation Environment (ASE) library</li><li>Jupyter Lab</li></ul><p><i>Requirements for Re-running or Performing New Simulations:</i></p><ul><li>SCM (Software for Chemistry & Materials) Amsterdam Modeling Suite (version < 2022.4)</li><li>PLAMS (Python Library for Automating Molecular Simulation) library</li></ul><p><i>Requirements for Re-running ReaxFF optimization:</i></p><ul><li>AMS (Amsterdam Modeling Suite) Python Stack (<a href="https://www.scm.com/doc/Scripting/Python_Stack/Python_Stack.html">more info here</a>)</li></ul><p>You can install the required Python packages using pip:</p><p>pip install -r requirements.txt</p><p><strong>Warning</strong></p><p>This do not include the ParAMS packages since is available only in AMS Python Stack.</p><p>See instruction below.</p><p>export SCM_PYTHONDIR=AMSBIN/amspython --install_venv source venv/AMSYYYY.X.venv/bin/activate # Replace YYYY.X with the correct AMS version</p><p><strong>Warning</strong></p><p>Make sure to have the appropriate licenses and installations of SCM Amsterdam Modeling Suite and any other necessary software for running simulations.</p><p>Configure Material Project API</p><p><i>Get Material Project API key</i></p><p>Access to <a href="https://materialsproject.org/">Material Project</a> and follow the istruction on the <a href="https://materialsproject.org/api">documentation</a></p><p>Make the configuration file</p><ol><li>Run the script replacing <MATERIAL_PROJECT_KEY> with the Material Project API key.</li></ol><p>python tools/mpinterface_setup.py -k <MATERIAL_PROJECT_KEY></p><p><strong>Folder Structure</strong></p><p>The repository has the following folder structure:</p><p>├── CREDITS.md<br>├── LICENSE<br>├── README.md<br>├── requirements.txt<br>├── assets<br>├── data<br>│ ├── training_set.yaml<br>│ ├── test_set.yaml<br>│ ├── ffield.reax.CHOSiLiF_K.S.Yun_etal_2017.ff<br>│ └── ffield.reax.optimized.ff<br>├── tools<br>├── JNB1-Initial_configrations.ipynb<br>├── JNB2-Simulations.ipynb<br>├── JNB3-Build_traingset.ipynb<br>├── preJNB4-ReaxFF_optimization.ipynb<br>└── JNB4-ReaxFF_optimization.ipynb</p><ul><li>CREDITS.md: This file acknowledges and credits the individuals or organizations that have contributed to the repository.</li><li>LICENSE: This file contains the license information for the repository (CC BY 4.0). It specifies the terms and conditions under which the repository's contents are distributed and used.</li><li>README.md: This file (repository overview and instructions).</li><li>requirements.txt: This file lists the required Python packages and their versions (see <a href="#installation">installation section</a>).</li><li>assets: This folder contains any additional assets, such as images or documentation, related to the repository.</li><li>data: This folder contains the data files resulted from this work.<ul><li>training_set.yaml: YAML (human and machine-readable) file with the training-set quantities.</li><li>test_set.yaml: YAML (human and machine-readable) file with the test-set quantities.</li><li>ffield.reax.CHOSiLiF_K.S.Yun_etal_2017.ff: This file is the starting point ReaxFF corresponding to the article <a href="https://doi.org/10.1021/acs.jpclett.7b00898"><i>Yun et al., J. Phys. Chem. Lett. 2017, 8, 13, 2812–2818</i></a>.</li><li>ffield.reax.optimized.ff: This file is the optimized ReaxFF resulted from using these Jupyter notebooks, as explained in the related <a href="https://doi.org/TBD">journal article</a>.</li></ul></li><li>notebooks: This folder contains Jupyter notebooks that provide demonstrations and examples of how to use and analyze the database.<ul><li>JNB1-Initial_configurations.ipynb: Jupyter Notebook where the protocol is initialized by querying the <i>Materials Project</i> database, downloading the unit crystals, and producing all the initial configurations for the DFT simulations using the <i>pymatgen</i> library.</li><li>JNB2-Simulations.ipynb: This notebook performs the simulations using BAND and DFTB codes available in the Amsterdam Modeling Suite. The simulations are performed in parallel using the <i>PLAMS</i> library and <i>SLURM</i> scheduler.</li><li>JNB3-Build_trainingset.ipynb: Here, the quantities needed for the database are extracted and tuned to favor accuracy on the energy.</li><li>preJNB4-ReaxFF_optimization.ipynb: This is an auxiliary Notebook where the old ReaxFF is converted into a Python object, and it is possible to select the subset of coefficients related to specific interactions to change during the optimization (e.g., bond, van der Waals, angular, etc.).</li><li>JNB4-ReaxFF_optimization.ipynb: This notebook takes the database and the ReaxFF Python object to perform a multi-objective optimization and find the new ReaxFF potential that minimizes the Sum of Squared Errors (SSE).</li></ul></li><li>tools: This directory contains a collection of Python modules and scripts.</li></ul><p><strong>Note</strong></p><p>Please note that the Jupyter notebooks preJNB4-ReaxFF_optimization.ipynb and JNB4-ReaxFF_optimization.ipynb can be run multiple times to gradually optimize the ReaxFF potential. This optimization process involves selecting different subsets of parameters, as demonstrated in the workflow and described in the accompanying <a href="https://doi.org/TBD">article</a>.</p><p><strong>Contributing</strong></p><p>At the moment the contribution to this codes is close since all the work is under peer-review revision.</p><p><strong>License</strong></p><p>The contents of this repository are licensed under the <a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p><p><strong>Acknowledgments</strong></p><p>This project has received funding from the European Union's <a href="https://ec.europa.eu/programmes/horizon2020/en">Horizon 2020 research and innovation programme</a> under grant agreement <a href="https://cordis.europa.eu/project/id/957189">No 957189</a>. The project is part of <a href="https://battery2030.eu/">BATTERY 2030+</a>, the large-scale European research initiative for inventing the sustainable batteries of the future.</p><p>The authors also acknowledge that the simulation results of this database have been achieved using the <a href="https://prace-ri.eu/hpc-access/deci-access/">DECI</a> resource <a href="https://www.archer2.ac.uk/">ARCHER2</a> based in UK at <a href="https://www.epcc.ed.ac.uk/">EPCC</a> with support from the <a href="https://prace-ri.eu/">PRACE</a> aisbl.</p>
Enhancing the ReaxFF DFT database
This project contains the database used to re-parametrize the ReaxFF force field for LiF, an inorganic compound. The purpose of the database is to improve the accuracy and reliability of ReaxFF calculations for LiF. The results and method used were published in the article Enhancing ReaxFF for Lithium-ion battery simulations: An interactive reparameterization protocol.
This database was made using the simulation obtained using the protocol published in Enhancing ReaxFF repository.
Installation
To use the database and interact with it, ensure that you have the following Python requirements installed:
Minimum Requirements:
Python 3.9 or above
Atomic Simulation Environment (ASE) library
Jupyter Lab
Requirements for Re-running or Performing New Simulations:
SCM (Software for Chemistry & Materials) Amsterdam Modeling Suite
PLAMS (Python Library for Automating Molecular Simulation) library
You can install the required Python packages using pip:
pip install -r requirements.txt
Warning: Make sure to have the appropriate licenses and installations of SCM Amsterdam Modeling Suite and any other necessary software for running simulations.
Folder Structure
The project has the following folder structure:
.
├── CONTRIBUTING.md
├── CREDITS.md
├── LICENSE
├── README.md
├── requirements.txt
├── assets
├── data
│ ├── LiF.db
│ ├── LiF.json
│ └── LiF.yaml
├── notebooks
│ ├── browsing_db.ipynb
│ └── running_simulation.ipynb
└── tools
├── db
├── plams_experimental
└── scripts
CONTRIBUTING.md: This file provides guidelines and instructions for contributing to the repository. It outlines the contribution process, coding conventions, and other relevant information for potential contributors.
CREDITS.md: This file acknowledges and credits the individuals or organizations that have contributed to the repository.
LICENSE: This file contains the license information for the repository (CC BY 4.0). It specifies the terms and conditions under which the repository's contents are distributed and used.
README.md: This file.
requirements.txt: This file lists the required Python packages and their versions. (see installation section)
assets: This folder contains any additional assets, such as images or documentation, related to the repository.
data: This folder contains the data files used in the repository.
LiF.db: This file is the SQLite database file that includes the DFT data used for the ReaxFF force field. Specifically, it contains data related to the inorganic compound LiF.
LiF.json: This file provides the database metadata in a human-readable format using JSON.
LiF.yaml: This file also contains the database metadata in a more human-readable format, still using YAML.
notebooks: This folder contains Jupyter notebooks that provide demonstrations and examples of how to use and analyze the database.
browsing_db.ipynb: This notebook demonstrates how to handle, select, read, and understand the data points in the LiF.db database using the ASE database Python interface. It serves as a guide for exploring and navigating the database effectively.
running_simulation.ipynb: In this notebook, you will find an example of how to get a data point from the LiF.db database and use it to perform a new simulation. The notebook showcases how to utilize either the PLAMS library or the AMSCalculator and ASE Python library to conduct simulations based on the retrieved data and then store it as a new data point in the LiF.db database. It provides step-by-step instructions and code snippets for a seamless simulation workflow.
tools: This directory contains a collection of Python modules and scripts that are useful for reading, analyzing, and re-running simulations stored in the database. These tools are indispensable for ensuring that this repository adheres to the principles of Interoperability and Reusability, as outlined by the FAIR principles.
db: This Python module provides functionalities for handling, reading, and storing data into the database.
plasm_experimental: This Python module includes the necessary components for using the AMSCalculator with PLASM and the SCM software package, utilizing the ASE API. It facilitates running simulations, performing calculations.
scripts: This directory contains additional scripts for dvanced usage scenarios of this repository.
Interacting with the Database
There are three ways to interact with the database: using the ASE db command line, the web interface, and the ASE Python interface.
ASE db Command-line
To interact with the database using the ASE db terminal command, follow these steps:
Open a terminal and navigate to the directory containing the LiF.db file.
Run the following command to start the ASE db terminal:
ase db LiF.db
You can now use the available commands in the terminal to query and manipulate the database. More information can be found in the ASE database documentation.
Web Interface
To interact with the database using the web interface, follow these steps:
Open a terminal and navigate to the directory containing the LiF.db file.
Run the following command to start the ASE db terminal:
ase db -w LiF.db
Open your web browser and connect to the local server at http://127.0.0.1:5000.
ASE Python Interface
To interact with the database using the ASE Python interface, you can use the following example code:
from ase.db import connect
# Connect to the database
db = connect("database.db")
# Query the database
results = db.select('formula = "LiF"')
# Iterate over the results
for row in results:
print(f"ID: {row.id}, Energy: {row.energy}")
For a more detailed example, refer to the notebook notebooks/browsing_db.ipynb. To learn how to perform a simulation, check the notebook notebooks/running_simulation.ipynb.
Contributing
If you would like to contribute to the Enhancing ReaxFF DFT Database by performing new simulations and expanding the database, please follow the guidelines outlined in the Contribution Guidelines. You are welcome to submit pull requests or open issues in the repository. Your contributions are greatly appreciated!
License
The contents of this repository are licensed under the Creative Commons Attribution 4.0 International License.
Acknowledgments
This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 957189. The project is part of BATTERY 2030+, the large-scale European research initiative for inventing the sustainable batteries of the future.
The authors also acknowledge that the simulation results of this database have been achieved using the DECI resource ARCHER2 based in UK at EPCC with support from the PRACE aisbl
Going Beyond Counting First Authors in Author Co-citation Analysis
The present study examines one of the fundamental aspects of author co-citation analysis (ACA) - the way co-citation
counts are defined. Co-citation counting provides the data on which all subsequent statistical analyses and mappings
are based, and we compare ACA results based on two different types of co-citation counting - the traditional type that
only counts the first one among a cited work's authors on the one hand and a non-traditional type that takes into
account the first 5 authors of a cited work on the other hand. Results indicate that the picture produced through this non-traditional author co-citation counting contains more coherent author groups and is therefore considerably clearer. However, this picture represents fewer specialties in the research field being studied than that produced through the traditional first-author co-citation counting when the same number of top-ranked authors is selected and analyzed. Reasons for these effects are discussed
Variations on the Author
“Variations on the Author” discusses two of Eduardo Coutinho’s recent films (Um Dia na Vida, from 2010, and Últimas Conversas, posthumously released in 2015) and their contribution to the general question of documentary authorship. The director’s filmography is characterized by a consistent yet self-effacing form of authorial self-inscription: Coutinho often features as an interviewer that rather than express opinions propels discourses; an interviewer that is good at listening. This mode of self-inscription characterizes him as an author who is not expressive but who is nonetheless markedly present on the screen. In Um Dia na Vida, however, Coutinho is completely absent form the image, while Últimas Conversas, on the contrary, includes a confessional prologue that moves the director from the margins to the center of his films. This article examines the ways in which these works stand out in the filmography of a director who offers new insights into the notion of cinematic authorship
- …
