We present the ElasTool package, an automated toolkit for calculating the second-order elastic constants (SOECs) of any two- (2D) and three-dimensional (3D) crystal systems. ElasTool uses three kinds of strain-matrix sets, i.e., the high-efficiency strain-matrix sets (OHESS), the universal linear-independent coupling strains (ULICS), and the all-single-element strain-matrix sets (ASESS), to calculate the SOECs automatically. ElasTool can efficiently compute both zero- and high-temperature elastic constants. We describe in detail the theoretical background and computational method of elastic constants, the package structure, the installation, and run, the input/output files, the controlling parameters, and two representative examples of how to use the ElasTool package. ElasTool is useful for either the exploration of materials' elastic properties or high-throughput new materials screening and design. ElasTool is freely available on GitHub: https://github.com/elastool Program summaryProgram Title: ElasToolCPC Library link to program files:https://doi.org/10.17632/ktvmxrdhpz.1Code Ocean capsule:https://codeocean.com/capsule/1893813Licensing provisions: GNU General Public License, version 3Programming language: Python 3External routines: NumPy [1], Spglib [2], ASE [3], Pandas [4]Nature of problem: The stress-strain method of elastic constants calculation depends on accurate stresses calculated with first-principles methods, such as the density functional theory (DFT). Compared to the energy-strain method, the stress-strain approach needs a smaller number of strain sets to solve the equation sets needed to deduce the elastic constants; it is also more straightforward to implement. However, accurate stresses take a lot of time to compute within DFT. Thus, a smaller number of strain sets and more efficient strain sets are urgently needed to improve the computational efficiency of elastic constants. An automated solution coupled with DFT is necessary for the exploration of materials' elastic properties and high-throughput new materials screening and design.Solution method: The solution to improve the computational efficiency of the stress-strain method is to decrease the number of strain-matrix sets and optimize the strain-matrix sets. We coupled our previously proposed high-efficiency strain-matrix sets (OHESS) with DFT and automated the processes of calculating the elastic tensor using the stress-strain method in the ElasTool package. ElasTool can also adopt the all-single-element strain-matrix sets (ASESS) and the universal linear-independent coupling strains (ULICS) approaches. It can deal with both zero- and high-temperature elastic constants of any crystal systems belonging to 2D or 3D. Having obtained the elastic moduli, ElasTool also gives other essential mechanical and elastic properties of materials such as Young's modulus, bulk modulus, elastic anisotropy, Debye temperature, and the sound velocities.Additional comments including restrictions and unusual features: Currently, this package interfaces with Vienna Ab initio Simulation Package (VASP) code as the stress tensors calculator. [5-7] Extension to other electronic structures is straightforward.
Read full abstract