The Tribchem package
Tribchem is a Python based package, containing several workflows, designed to perform the high-throughput screening of fundamental tribological, mechanical and electronic properties of materials and their solid-solid interfaces. Tribchem is designed for non-expert users, it requires a limited number of input parameters and automatically creates input files and geometries, submits and runs simulations, collects data in external databases and analyzes them.
TribChem is based on the FireWorks platform for running high throughput DFT calculations, and general tools for calculating tribological properties and analyzing results. At present Tribchem is connected to VASP. Work is in progress to enable its use in connection with Quantum Espresso and LAMMPS.
The ab initio determination of the properties of solid-solid interfaces is a complex multistep procedure: starting from the determination of optimal computational parameters to describe the selected materials, the bulk structure is characterized, two surfaces are built and optimized, and only then the interface can be created and studied.
Within this simple logical scheme important sub-procedures are nested. Tribchem can automatically carry out these tasks through workflows, which are organized hierarchically and modularly so that users can decide to carry out the whole simulation from bulks to interfaces, or only part of it. Thanks to the modularity, creating new custom workflows to perform the high-throughput screening of specific properties of bulks/surface/interfaces is greatly simplified.
The workflows currently available in TribChem are organized in four main units, as follows:
Query online databases to save data to an internal database
Calculation of the optimal kinetic energy cutoff for the the electronic wavefunction expansion in plane-wave basis set
Calculation of the optimal density of K-points to perform Brillouin zone summations
Calculation of the lattice parameter, bulk modulus and cohesion energy
Calculation of the optimal slab thickness for accurate modeling of the solid surface
Surface energy calculation
Adsorption of atoms on surfaces: most favorable adsorption site and coverage
Matching two surfaces by means of the Zur algorithm and generation of a solid interface
Calculation of the redistribution of the electronic charge that takes place when the two surfaces are put in contact
TRIBOLOGY (ADHESION AND SHEAR STRENGTH)
Calculation of the potenial energy surface (PES) experienced by the sliding interface
Calculation of the adhesion energy as a function of the interfacial separation
Extraction of the minimum energy path (MEP) by means of the Zero temperature sting method
Calculation of the interfacial shear strength
Tribchem is a Python based package containing two main modules, the physics and the highthroughput modules. On top of that, Tribchem relies on the Material Project and on two main internal databases to efficiently retrieve and store data and results.
The physics module relies on the Python Materials Genomics (Pymatgen) and MPInterfaces packages. It implements several functions to perform basic solid-state physics, math, geometry, file manipulation, plotting, post-processing operations and more advanced operations on electronic, mechanical, and tribological properties. Thanks to the modular design, it is possible to use these functions outside TribChem as external modules.
The high throughput module extensively employs Fireworks and Atomate as workflow managers. Thanks to the FireWorks library structure it is possible to create complex workflows by combining FireTasks and FireWorks. To maintain the highest level of modularity, with few exceptions, within Tribchem, each FireWorks employs just one FireTask at a time.
The database used by the FireWorks library is MongoDB, a NoSQL database which uses JSON like-documents to store and manipulate data. The most important and relevant databases that are created when Tribchem is installed are the FireWorks and the tribchem databases. The FireWorks database contains all data for workflow execution, simulation results, and some relevant metadata such as the location of the VASP output files. The tribchem database includes several collections divided into different structures and functionals used for performing the DFT calculations. In our case, we have three main collections classes about bulks, slabs, and interfaces. For connecting to the Materials Project database a high-level interface class named NavigatorMP is available.