DOI: 10.5281/zenodo.7959122
title: Enhancing the ReaxFF DFT database

description: 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. <strong>Installation</strong> To use the database and interact with it, ensure that you have the following Python requirements installed: <em>Minimum Requirements:</em> Python 3.9 or above Atomic Simulation Environment (ASE) library Jupyter Lab <em>Requirements for Re-running or Performing New Simulations:</em> 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: <pre><code>pip install -r requirements.txt</code></pre> <strong>Warning:</strong> Make sure to have the appropriate licenses and installations of SCM Amsterdam Modeling Suite and any other necessary software for running simulations. <strong>Folder Structure</strong> The project has the following folder structure: <pre><code class="language-python"> . ├── 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> <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. <code>CREDITS.md</code>: This file acknowledges and credits the individuals or organizations that have contributed to the repository. <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. <code>README.md</code>: This file. <code>requirements.txt</code>: This file lists the required Python packages and their versions. (see installation section) <code>assets</code>: This folder contains any additional assets, such as images or documentation, related to the repository. <code>data</code>: This folder contains the data files used in the repository. <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. <code>LiF.json</code>: This file provides the database metadata in a human-readable format using JSON. <code>LiF.yaml</code>: This file also contains the database metadata in a more human-readable format, still using YAML. <code>notebooks</code>: This folder contains Jupyter notebooks that provide demonstrations and examples of how to use and analyze the database. <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. <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 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 <code>LiF.db</code> database. It provides step-by-step instructions and code snippets for a seamless simulation workflow. <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 FAIR principles. <code>db</code>: This Python module provides functionalities for handling, reading, and storing data into the database. <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, performing calculations. <code>scripts</code>: This directory contains additional scripts for dvanced usage scenarios of this repository. <strong>Interacting with the Database</strong> There are three ways to interact with the database: using the ASE db command line, the web interface, and the ASE Python interface. <em>ASE db Command-line</em> To interact with the database using the ASE db terminal command, follow these steps: Open a terminal and navigate to the directory containing the <code>LiF.db</code> file. Run the following command to start the ASE db terminal: <pre><code>ase db LiF.db</code></pre> 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. <em>Web Interface</em> To interact with the database using the web interface, follow these steps: Open a terminal and navigate to the directory containing the <code>LiF.db</code> file. Run the following command to start the ASE db terminal: <pre><code>ase db -w LiF.db</code></pre> Open your web browser and connect to the local server at http://127.0.0.1:5000. <em>ASE Python Interface</em> To interact with the database using the ASE Python interface, you can use the following example code: <pre><code class="language-python"> 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}") </code> </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>. <strong>Contributing</strong> 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! <strong>License</strong> The contents of this repository are licensed under the Creative Commons Attribution 4.0 International License. <strong>Acknowledgments</strong> 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.