Next Article in Journal
Selective Synthesis of N-[1,3,5]Triazinyl-α-Ketoamides and N-[1,3,5]Triazinyl-Amides from the Reactions of 2-Amine-[1,3,5]Triazines with Ketones
Next Article in Special Issue
Incorporating Domain Knowledge and Structure-Based Descriptors for Machine Learning: A Case Study of Pd-Catalyzed Sonogashira Reactions
Previous Article in Journal
Aqueous Binary Mixtures of Stearic Acid and Its Hydroxylated Counterpart 12-Hydroxystearic Acid: Cascade of Morphological Transitions at Room Temperature
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

mech2d: An Efficient Tool for High-Throughput Calculation of Mechanical Properties for Two-Dimensional Materials

1
School of Physics, Hefei University of Technology, Hefei 230009, China
2
Department of Chemical Physics, and Hefei National Research Center for Physical Sciences at the Microscale, University of Science and Technology of China, Hefei 230026, China
*
Authors to whom correspondence should be addressed.
Molecules 2023, 28(11), 4337; https://doi.org/10.3390/molecules28114337
Submission received: 20 April 2023 / Revised: 22 May 2023 / Accepted: 24 May 2023 / Published: 25 May 2023
(This article belongs to the Special Issue Deep Learning in Molecular Science and Technology)

Abstract

:
Two-dimensional (2D) materials have been a research hot topic in the passed decades due to their unique and fascinating properties. Among them, mechanical properties play an important role in their application. However, there lacks an effective tool for high-throughput calculating, analyzing and visualizing the mechanical properties of 2D materials. In this work, we present the mech2d package, a highly automated toolkit for calculating and analyzing the second-order elastic constants (SOECs) tensor and relevant properties of 2D materials by considering their symmetry. In the mech2d, the SOECs can be fitted by both the strain–energy and stress–strain approaches, where the energy or strain can be calculated by a first-principles engine, such as VASP. As a key feature, the mech2d package can automatically submit and collect the tasks from a local or remote machine with robust fault-tolerant ability, making it suitable for high-throughput calculation. The present code has been validated by several common 2D materials, including graphene, black phosphorene, G e S e 2 and so on.

1. Introduction

The mechanical properties of 2D materials, such as graphene  [1], hexagonal boron nitride [2], transition metal dichalcogenide [3] and phosphorene [4], are crucial for determining their potential applications and performance. These materials have unique mechanical properties, such as proper strength and stiffness  [5,6], which make them suitable for a wide range of applications, including electronics [7], energy storage [8], catalyst [9], sensors [10] and magnetic devices [11]. The mechanical behavior of 2D materials can be influenced by various factors, including their structure [12], defects [13] and interfaces with other materials [14]. Accurately characterizing the mechanical properties of 2D materials is therefore essential for understanding and optimizing their performance in different applications. In particular, the second-order elastic constants (SOECs) tensor [15], which describes the material’s response to an applied strain, is a key factor in determining the mechanical properties of 2D materials.
The calculation of SOECs and the relevant mechanical properties of 2D materials via first-principles simulation is a tedious and time-consuming task which requires considering different symmetries of materials and configuring efficient computational resources [16]. Previous research has proposed algorithms and tools, such as ELASTool [17], MECHELASTIC [18], ElATools [19] and vaspkit [20], to reduce computational complexity and analyze mechanical properties. However, research gaps still exist in the field of calculating and analyzing the mechanical properties of two-dimensional materials. A clear mathematical principle for SOEC calculation of 2D materials is missing, and the presented tools lack the basic functions for task submission, monitoring, and data collection, which are crucial for high-throughput calculations [21,22]. Therefore, it is important to present mathematical principles of 2D SOECs calculation and develop an automated tool that can quickly and efficiently calculate and analyze SOECs tensor and other relevant mechanical properties of 2D materials.
In this work, we design mech2d, a highly automated toolkit for the calculation, analysis and visualization of mechanical properties of 2D materials. To be specific, mech2d allows for the calculation of SOECs using both the strain–energy approach and the stress–strain approach, utilizing first-principles engines such as the Vienna ab initio simulation package (VASP) [23,24]. The strain-energy approach (SE) concerns calculating the total energy of the system as a quadratic function of strain, while the stress–strain approach (SS) involves calculating the stress as a linear function of strain. Both approaches can be used to evaluate the mechanical properties of 2D materials. Particularly, mech2d supports automatically submitting and collecting tasks from local or remote machines, making it suitable for high-throughput calculations [21,22]. This is particularly useful for evaluating the mechanical properties of a large number of 2D materials, as it allows for efficient and robust calculations without the need for manual intervention [13]. The effectiveness of mech2d has been demonstrated based on the validation on several common 2D materials, including graphene [1], black phosphorene [4] and G e S e 2  [25] et al.

2. Methods

According to the Lagrangian theory of elasticity, solids can be viewed as a homogeneous and isotropic elastic medium [15]. The fundamental relationship between the physical stress tensor σ (in this work, all of the bold font letters present the matrix or vector) and physical strain tensor ϵ of the solid crystalline body within the linear regime is connected by generalized Hook’s law [15]:
σ μ ν = λ , ξ { x , y , z } C μ ν λ ξ ϵ λ ξ
According to the generalized Hook law, it can be found that the physical stress tensor σ is a linear function of the physical strain tensor ϵ , where the proportionality coefficient is the forth-rank elastic tensor C . Generally, it is more convenient to use the Lagrangian stress tensor τ and Lagrangian strain tensor η ; the corresponding generalized Hook law also has a similar formula:
τ μ ν = λ , ξ { x , y , z } C μ ν λ ξ η λ ξ
The relationship between Lagrangian stress tensor τ and physical stress σ tensor is defined as
τ = d e t ( I + ϵ ) ( I + ϵ ) 1 σ ( I + ϵ ) 1
where, d e t is the determinant of matrix, I is the 3 × 3 identity matrix and the physical stress tensor σ can be calculated by second-order differentiation of the total energy E:
σ = 1 V 2 E 2 ϵ
where V is the volume of the crystal. The Lagrangian strain tensor η expression is
η = ϵ + ϵ 2 2
As a center physical quantity, the elastic tensor C can be approached in many different ways. From an experimental aspect, an elastic tensor can be obtained based on sound velocity with very high precision. From a theoretical aspect, an elastic constant can be calculated by either the energy–strain or stress–strain approach [26], since most popular DFT engines can calculate energy and stress precisely. According to the Taylor’s series, the total energy E of a crystal can be expressed as the summation of a power series of the Lagrangian strain  η :
E ( η ) = E 0 + 1 2 V 0 μ , ν , λ , ξ { x , y , z } C μ ν λ ξ η μ ν η λ ξ +
where E 0 and V 0 are the energy and volume of the equilibrium structure. By using the Voigt notation ( x x 1 , y y 2 , z z 3 , y z 4 , x z 5 and x y 6 ), the Equation (6) can be simplified as
E ( η ) = E 0 + 1 2 V 0 + α , β = 1 6 C α β η α η β +
In a similar way, the Equation (3) can be read as
τ α = β = 1 6 C α β η β
Therefore, under the strain–energy approach, the elastic constant C α β can be expressed as
C α β = 1 V 0 2 E η α η β | η = 0
and for the stress–strain approach, the expression is
C α β = τ α η β | η = 0
As for 2D materials, we assume that the crystal lies in the x y plane; therefore, all of the elements with a subscript including z will be zero. To simplify the formula, we may rewrite total energy E and generalize Hook’s law in matrix format:
E ( η 1 η 2 η 6 ) = E 0 + 1 2 V 0 η 1 η 2 η 6 C 11 C 12 C 16 C 21 C 22 C 26 C 61 C 62 C 66 η 1 η 2 η 6 +
and
τ 1 τ 2 τ 6 = C 11 C 12 C 16 C 21 C 22 C 26 C 61 C 62 C 66 η 1 η 2 η 6
As can be seen, the maximum number of independent elastic constants of 2D materials has been reduced to 6, compared with their bulk counterpart of m a x . 21. Considering that symmetry plays an important role in elastic properties, the number of independent elastic constants of different 2D crystal structure can be further reduced according to their lattice type. Specifically, the independent elastic constants and Born stability conditions for five 2D plan Bravais (see Figure 1) lattices are listed as follow [27]:
(1)
Hexagonal lattice
C α β = C 11 C 12 0 C 12 C 11 0 0 0 C 11 C 12 2
C 11 > 0 and C 11 > | C 12 |
(2)
Square lattice
C α β = C 11 C 12 0 C 12 C 11 0 0 0 C 66
C 11 > 0 and C 66 > 0 and C 11 > | C 12 |
(3)
Rectangular and centered rectangular lattice
C α β = C 11 C 12 0 C 12 C 22 0 0 0 C 66
C 11 > 0 and C 66 > 0 and C 11 C 22 > C 12 2
(4)
Oblique lattice
C α β = C 11 C 12 C 16 C 21 C 22 C 26 C 61 C 62 C 66
C 11 > 0 and d e t ( C α β ) > 0 and C 11 C 22 > C 12 2
After the theoretical introduction, we turn our attention to how to calculate elastic constant C via state-of-the-art DFT calculation. Here, we take the square lattice as an example to show how to calculate the independent elastic constant based on the energy–strain approach. It should be noted that the nature of this problem is to solve the linear equation. For the squared lattice, there are 3 independent elastic constants ( C 11 , C 12 and C 66 ), which means that we need at least 3 equations to solve this problem.
(1) Energy–strain approach: By substituting Equation (14) to Equation (11), the elastic energy can be written as below:
E ( η 1 η 2 η 6 ) = E 0 + V 0 C 11 η 1 2 2 + V 0 C 11 η 2 2 2 + V 0 C 12 η 1 η 2 + V 0 C 66 η 6 2 2
To simplify the above equation, a set of deformations needs to be applied. The full set of deformation types that are used in mech2d are listed in Table 1.
As for the square lattice, the required deformation set is η 1 , η 2 and η 4 . When the biaxial strain η 1 = ( η , η , 0 ) is applied, the above Equation can be simplified as
E ( η ) E 0 V 0 = ( C 11 + C 12 ) η 2
Similarly, C 11 is obtained by using uniaxial strain η 2 = ( η , 0 , 0 ) :
E ( η ) E 0 V 0 = C 11 2 η 2
Moreover, C 66 is calculated by using the shear strain η 4 = ( 0 , 0 , 2 η ) :
E ( η ) E 0 V 0 = 2 C 66 η 2
To calculate the elastic constant according to the above equation, a series of deformed structures with different Lagrangian strain (e.g., [ η m a x , , η m a x ] ) will be generated and evaluated by DFT engines to calculate the corresponding strain energy [ Δ E η m a x , , Δ E η m a x ] . Then, the quadratic coefficients are determined by polynomial fitting of strain energy and Lagrangian strain. Generally speaking, a 4–6-order polynomial fitting with η m a x = 0.02–0.05 and 9–11 deformed structures is a reasonable setting [15]. Finally, the second-order elastic constants C α β can be obtained by solving the system of linear equations which consist Equations (18)–(20).
One thing that deserves to be noted is that the Lagrangian strain η for 2D materials is defined as
η = η 1 1 2 η 6 0 1 2 η 6 η 2 0 0 0 0
and the corresponding physical strain ϵ is
ϵ = ϵ 1 1 2 ϵ 6 0 1 2 ϵ 6 ϵ 2 0 0 0 0
Once the Lagrangian strain η is defined, the physical strain ϵ can be solved iteratively. Furthermore, the lattice vector of deformed structure R can be calculated according to the physical strain ϵ and equilibrium lattice vector R by the following equation:
R = R ( I + ϵ )
So far, we have presented the energy–strain approach that is used for calculating square lattice 2D materials. For other lattice types, the corresponding deformation type can be found in Table 2.
(2) Stress–strain approach: In this part, we take the rectangular lattice as an example to demonstrate how to calculate the independent elastic constant based on the stress–strain approach. For the rectangular lattice, there are 4 independent elastic constants ( C 11 , C 12 , C 22 and C 66 ), which means that we need at least 4 equations to solve this problem. Similar to the energy–stress approach, by substituting Equation (14) for Equation (12), the generalized Hook law can be written as below:
τ 1 τ 2 τ 6 = C 11 C 12 0 C 12 C 22 0 0 0 C 66 η 1 η 2 η 6
It is obviously that for the given τ and η , 3 linear equations can be obtained according to the above matrix equation, which is not enough to calculate the 4 elastic constants. To solve this problem, at least 2 sets of deformations are needed. For the rectangular lattice, the required deformation set is η 2 and η 5 . Therefore, the corresponding equation can be written as
τ 2 ( 1 ) τ 2 ( 2 ) τ 2 ( 6 ) τ 5 ( 1 ) τ 5 ( 2 ) τ 5 ( 6 ) = C 11 C 12 0 0 0 0 C 12 C 22 0 0 0 0 0 0 C 66 0 0 0 0 0 0 C 11 C 12 0 0 0 0 C 12 C 22 0 0 0 0 0 0 C 66 η η 0 η 0 2 η
Furthermore, we may rewrite the above equation as
τ = HC
where
τ = τ 2 ( 1 ) τ 2 ( 2 ) τ 2 ( 6 ) τ 5 ( 1 ) τ 5 ( 2 ) τ 5 ( 6 ) , H = η η 0 0 0 η η 0 0 0 0 0 η 0 0 0 0 η 0 0 0 0 0 2 η and C = C 11 C 12 C 22 C 66
The above overdetermined equation can be solved by least square method, namely:
C = ( H T H ) 1 ( H T τ ) = τ 2 ( 1 ) + 2 τ 5 ( 1 ) τ 5 ( 2 ) 3 η τ 2 ( 1 ) τ 5 ( 1 ) + 2 τ 5 ( 2 ) 3 η τ 2 ( 1 ) τ 5 ( 1 ) + 3 τ 2 ( 2 ) 2 τ 5 ( 2 ) 3 η τ 5 ( 6 ) 3 η
Likewise, a series of deformed structures (by using Equation (23)) with different Lagrangian strain (e.g., [ η m a x , , η m a x ] ) will be generated and evaluated by DFT engines to give the corresponding physical stress σ and calculate the Lagrangian stress τ by using Equation (3). Then, the linear coefficients are determined by polynomial fitting of Lagrangian stress and Lagrangian strain. Finally, the second-order elastic constants C α β can be obtained according to Equation (28). Similarly, the second-order elastic constants C α β of other lattice type can be calculated by using the corresponding deformation type, which is listed in Table 3.

3. Results

3.1. mech2d Design

The workflow of the mech2d code is shown in Figure 2. Implemented with Python, mech2d is designed in a loosely coupled mode, which is considered easy to extend and maintain. Specifically, the workflow of mechanical properties calculation is divided into three stages, including: init, run and post. For the init stage, the initialization works are carried out. Firstly, the equilibrium crystal structure is read from the configuration file, such as POSCAR, cif, XSF format and so on. Then, the symmetry of the 2D Bravais lattice will be determined. Finally, the deformed structures will be generated according to the required parameters, including number of deformation, maximum strain amplitude, lattice type and calculation approach. In the run stage, all of the DFT tasks will be submitted to local or remote machine without manually writing the submitting script. As is known, fault tolerance is a key problem for high-throughput calculation. In the mech2d package, the basic errors of VASP during the mechanical properties calculation will be automatically fixed and resubmitted to the server. Once all of the DFT tasks are finished, the calculation results will be collected to working direction from a local or remote machine. In addition, the time-consuming run stage supports the task to restart. Specifically, tasks that are interrupted for external reasons will be submitted automatically, while the tasks that are already finished or still running will not be submitted. For the post stage, an internal DFT validator will be used to check the validity of results. Once passed the results checking, the elastic constant or stress–strain curve will be calculated, and the corresponding results will be output to texts and figures. Based on an object-oriented design rule, the mech2d mainly includes four classes, as detailed below.
Elastic class: As the core class of mech2d, the Elastic class is written in mechanics.py file. The Elastic class is used to initialize the mechanical properties calculation, including symmetry detection, Lagrangian strain set selection, Lagrangian strain and physical strain conversion, deformed structure generation and so on. In addition, the postprocessing of mechanical properties calculation is also employed by Elastic class, such as stress–strain fitting and energy–strain fitting.
Calculation class: This class focuses on DFT task initialization, running and result parsing. Three files are included in the calculation subfolder, including calculator.py, vasp.py and runtask.py. The Calculator class in the calculator.py file is the base class that defines the basic method that should be implemented in the subclass. The VASP class in the vasp.py file is a subclass of Calculator, which is used to prepare the VASP calculation tasks and to parse the energy and stress from the vasprun.xml file. As for the runtask.py file, it contains the RunTasks class. The RunTasks class is a wrapper of the open-source code dpdispatcher, which is part of our previous work [28] and is used to operate large-scale task management in machine learning potential development. As a key component, the job management framework is employed by custodian, an open-source code that performs error checking, job management and error recovery.
Analysis class: This class is used to calculate the main mechanical properties of 2D materials, such as E x , E y , G x y , ν x y , ν y x , orientation-dependent Young’s modulus and Poisson’s ratio. In addition, the Born stability condition will be calculated according to the lattice type.
Plot class: This class is responsible for data visualization, including energy–stress fitting curve, stress–strain fitting curve, stress–strain curve under tensile strength and the polar plot of orientation-dependent Young’s modulus and Poisson’s ratio.
This main features of mech2d are listed below:
(1)
Easy to install (see below).
(2)
Loosely coupled mode, which is considered easy to extend and maintain.
(3)
Support for any symmetry of 2D materials.
(4)
Support for the popular DFT engine VASP. It can be easily extended to other DFT calculators by implementing the corresponding input writer and output parser.
(5)
Automatical task submission, error correction and collection on both local or remote machines.

3.2. Installation

Developed by python, the simplest way to install the mech2d is using pip. The mech2d code can be installed by downloading and decompressing the code and then running the following command “pip install.” in the source code directory. One thing that deserves to be noted is that three necessary libraries should first be installed, which include the following:
  • pymatgen.
  • dpdispatcher.
  • custodian.

3.3. Running the Code

mech2d provides a user-friendly interface, which can be started via a single line of command. For example, the help information can be obtained by the following command (more details see in the Appendix A and Appendix B).
  • m2d -h
  •  
  • usage: m2d [-h] [-v] {init,run,post} …
  •  
  • Desctiption:
  • ------------
  • mech2d is a convenient script that use to calculate the mechanical
  • properties of 2D materials, including Stress-Strain Curve, elastic
  • constants and relevant properties. The script works based on
  • several subcommands with their own options. To see the options
  • for the subcommands, type ‘‘m2d subcommand -h’’.
  •  
  • positional arguments:
  •  {init,run,post}
  •   init       Generating initial data for elastic systems.
  •   run        Run the DFT calculation for deformed
  •            structures.
  •   post       Postprocessing for elastic calculation.
  •  
  • optional arguments:
  •  -h, --help     show this help message and exit
  •  -v, --version   Display version
The initialization of the calculation of elastic constant calculation by using the stress–strain approach can be specified by the following command:
  • m2d init -c POSCAR -m 0.05 -n 9 -a stress -p elc
After running the above command, the corresponding deformed structures will be generated in the elc_stress folder.
To run the DFT calculations, the following command can be used:
  • m2d run -a stress input.yaml
Here, the input.yaml parameter specifies the input file name. In this file, the machine used to conduct the calculation, the queue system of the machine, the resources of hardware information and DFT code input information are supplied. An example of input.yaml is supplied in the Appendix A and Appendix B.
To postprocess the mechanical properties calculation, the following command can be used:
  • m2d post -a stress --plot
Then the elastic constant will be calculated and orientation-dependent Young’s modulus and Poisson’s ratio will be plotted. As an example, we show the direction-dependent Young’s modulus and Poisson’s ratio of G e S e 2 in Figure 3, which is consistent with previous work [25].

3.4. Examples

In this section, we present some results of mechanical properties of some typical 2D materials calculated by our mech2d code. There are six test cases in this work, including graphene, M o S 2 , penta-graphene, F e S e , black phosphorene and G e S e 2 . The energies and stresses are calculated by the VASP software package [23,24]. The generalized gradient approximation (GGA) of Perdew, Burke and Ernzerhof (PBE) exchange correlation functional [29] and plane wave basis set are used to describe the valence electrons, with the cutoff set to 520 eV [30]. The energy convergence criteria for static calculation is set to be 1.0 × 10 5 eV. The geometry optimization is converged when the force on each atom is smaller than 1 × 10 2 eV · 1 . Table 4 shows the calculation details for these cases in the present work.
Table 5 presents the in-plane elastic constants of various 2D materials, including graphene, M o S 2 , penta-graphene, F e S e , alpha-phosphorene and G e S e 2 . The calculation results suggest that the values for the elastic constants reported in this work are consistent with previous studies. For example, in graphene, the values for C 11 and C 12 reported in this work are in good agreement with those reported in refs. [20,25,31,32,33,34,35]. One thing that deserves to be noted is that there are slight differences in value between our work and references, which may be due to differences in simulation accuracy and methods. Overall, the values for the elastic constants reported in this work are in agreement with previous studies, validating this work.

4. Conclusions

In this work, we designed a python-based open-source software, mech2d, for calculating the SOECs and relevant mechanical properties of 2D materials. The package allows the calculation of SOECs with the assistant of the strain–energy approach and the stress–strain approach via first-principles engines. One essential feature of mech2d is its ability to automatically submit and collect tasks from local or remote machines, making it suitable for high-throughput calculations. This is particularly useful for evaluating the mechanical properties of a large number of 2D materials, as it allows for efficient and robust calculations without the need for manual intervention. The effectiveness of mech2d has been demonstrated through its validation on several common 2D materials, including graphene, black phosphorene, G e S e 2 et al.
The mech2d package represents a valuable resource for researchers in terms of studying the mechanical properties of 2D materials. It provides a method for calculating SOECs and other relevant mechanical properties with high efficiency, and its automation capabilities make it suitable for high-throughput calculations. This can greatly facilitate the understanding and optimization of 2D materials for a wide range of applications, such as electronics, energy storage and structural materials. Further research and development of the mech2d package may result in even greater capabilities and applications in the field of 2D material mechanics.

Author Contributions

Conceptualization, H.W., Z.L. and J.Y.; methodology, H.W.; software, H.W.; validation, H.W., T.L., X.L., W.Z. and Z.C.; investigation, H.W., T.L., X.L., W.Z. and Z.C.; writing—original draft preparation, H.W., T.L., X.L., W.Z. and Z.C.; writing—review and editing, H.W., T.L., X.L., W.Z. and Z.C.; supervision, J.Y.; project administration, H.W.; funding acquisition, H.W., Z.L. and J.Y. All authors have read and agreed to the published version of the manuscript.

Funding

This work is partly supported by the National Natural Science Foundation of China (22203026, 22203025, 22288201 and 12174080), the National Key R&D Program of China (2022YFA1602601), the Fundamental Research Funds for the Central Universities (JZ2022HGTA0313 and JZ2022HGQA0198), and the Anhui Provincial Natural Science Foundation (2208085QB44). This work also supported by the Strategic Priority Research Program of the Chinese Academy of Sciences (XDB0450101), by the Anhui Initiative in Quantum Information Technologies (AHY090400), by the Innovation Program for Quantum Science and Technology (2021ZD0303306).

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The code can be found at https://gitee.com/haidi-hfut/mech2d (accessed on 20 May 2023).

Acknowledgments

The authors thanks the Hefei University of Technology and the University of Science and Technology of China for providing the computational resources. We also thank the chatGPT model for refining our manuscript.

Conflicts of Interest

The authors declare no conflict of interest.

Sample Availability

Not applicable.

Abbreviations

    The following abbreviations are used in this manuscript:
2DTwo-dimensional
SSstress-strain
ESenergy-strain
DFTDensity functional theory
SOECsecond-order elastic constants

Appendix A. Help Information

Appendix A.1. Init Help Information

  • usage: m2d init  [-h] [-c CONFIG] [-a {stress,energy}] [-m MAXS] [-n NUMBER]
  •           [-d {xx,yy,bi,xy} [{xx,yy,bi,xy} …]]
  •           [-r RANGES [RANGES …]] [-p {elc,ssc}] [-v] [-b]
  •  
  • optional arguments:
  •   -h, --help       show this help message and exit
  •   -c CONFIG, --config CONFIG
  •                The structure filename. Supported format:
  •                [‘.vasp’,‘POSCAR’,‘.cif’,‘.xsf’]
  •   -a {stress,energy}, --approach {stress,energy}
  •                Support ‘Energy’ or `Stress’ approach.
  •   -m MAXS, --maxs MAXS For elastic constant calculation, it stands for the
  •                maximum Lagrangian strain, suggested value is [0.030,
  •                0.150] for Energy approach, [0.0010, 0.0050] for
  •                Stress approach; for stress strain cuver calcuation,
  •                this value has no above limitation.
  •   -n NUMBER, --number NUMBER
  •                The number of the deformed structures [odd number >
  •                4].
  •   -d {xx,yy,bi,xy} [{xx,yy,bi,xy} …], --direction {xx,yy,bi,xy} [{xx,yy,bi,xy} …]
  •                The direction used for stress strain curve, default
  •                value: ‘xx’. ‘xx’ for ‘x’ direction; ‘yy’ for ‘y’
  •                direction; ‘bi’ for bi-Axis strain and ‘xy’ for shear
  •                strain.
  •   -r RANGES [RANGES …], --ranges RANGES [RANGES …]
  •                The Lagrangian strain range used for stress-strain
  •                curve calculation. e.g., 0.0 0.2
  •   -p {elc,ssc}, --properties {elc,ssc}
  •                What do you want to calcuation? elastic constant or
  •                stress strain curve? default value: ‘elc’.
  •   -v, --verbose      print verbose information or not.
  •   -b, --back        Whether backup the old folder? default value: False.

Appendix A.2. Run Help Information

  • usage: m2d run [-h] [-a {stress,energy}] [-p {elc,ssc}] [--manual] [-v] input
  •  
  • positional arguments:
  •  input           input file for supplying information about DFT calculation,
  •                json/yaml format. The ‘machine’, ‘tasks’, ‘code’, and
  •                ‘resources’ should be supplied.
  •  
  • optional arguments:
  •  -h, --help        show this help message and exit
  •  -a {stress,energy},   --approach {stress,energy}
  •                Support ‘Energy’ or ‘Stress’ approach.
  •  -p {elc,ssc},   --properties {elc,ssc}
  •                What do you want to calcuation? elastic constant or
  •                stress strain curve? default value: ‘elc’.
  •  --manual          Manual model, only for generating the input files without runing
  •  -v, --verbose      Print verbose information or not.

Appendix A.3. Post Help Information

  • usage: m2d post [-h] [-a {stress,energy}] [-i INPUTFILE] [-p {elc,ssc}] [--skip] [-o ORDER]
  •           [-f FMT] [-d DPI] [--plot] [-v]
  •  
  • optional arguments:
  •  -h, --help       show this help message and exit
  •  -a {stress,energy},  --approach {stress,energy}
  •               Support ‘Energy’ or ‘Stress’ approach.
  •  -i INPUTFILE, --inputfile INPUTFILE
  •               Parsing elastic constant tensor from input file
  •  -p {elc,ssc}, --properties {elc,ssc}
  •               What do you want to calcuation? elastic constant or stress strain
  •               curve? default value: ‘elc’.
  •  --skip          Whether to skip the data parsing ? if true, it means the
  •               Def_*_Energy.dat should be exists in corresponding folder. default
  •               value: False.
  •  -o ORDER, --order ORDER
  •               The order of polynomial for fitting. Default value: 4 for strain-
  •               stress approach and 3 for stress-strain method
  •  -f FMT, --fmt FMT   The format of output figure. Default value: .jpg
  •  -d DPI, --dpi DPI   The resolution of output figure. Default value: 100
  •  --plot          plot the figures
  •  -v, --verbose      print verbose information or not.

Appendix B. Input.Yaml for mech2d

The input file is supplied by YAML format, which is easy to read and write.
  • ---
  • machine:
  •  batch_type: Slurm
  •  context_type: LocalContext
  •  local_root: ‘‘./work’’
  •  remote_root: ‘‘./work’’
  •  remote_profile:
  •   hostname: localhost
  •   username: wang
  •   port: 22
  •   timeout: 10
  • resources:
  •  number_node: 1
  •  cpu_per_node: 48
  •  gpu_per_node: 0
  •  queue_name: batch
  •  task_max: 10
  •  group_size: 1
  •  custom_flags:
  •   - ‘‘ulimit -s unlimited’’
  •  module_list:
  •   - ‘‘vasp/5.4.1’’
  •  
  •  #source_list:
  •  # - ‘‘/opt/intel/parallel_studio_xe_2020.2.108/psxevars.sh intel64’’
  •  #envs:
  •  #  PATH: ‘‘/opt/soft/vasp541:$PATH’’
  • tasks:
  •  command: ‘‘mpirun -np 48 vasp_std’’
  •  task_work_path:
  •  forward_files:
  •  - INCAR
  •  - KPOINTS
  •  - POTCAR
  •  - POSCAR
  •  backward_files:
  •  - runlog
  •  - errlog
  •  - OUTCAR
  •  - OSZICAR
  •  - vasprun.xml
  •  - CONTCAR
  •  outlog: runlog
  •  errlog: errlog
  • code:
  •  name: vasp
  •  input:
  •   INCAR: ‘‘./INCAR’’
  •   #KPOINTS: ‘‘./KPOINTS’’
  •   KPOINTS:
  •    kspacing: 5000
  •    kgamma: false
  •   POTCAR: ‘‘./POTCAR’’
  •   #vdw_kernel: vdw_kernel.bindat

References

  1. Novoselov, K.S.; Geim, A.K.; Morozov, S.V.; Jiang, D.E.; Zhang, Y.; Dubonos, S.V.; Grigorieva, I.V.; Firsov, A.A. Electric field effect in atomically thin carbon films. Science 2004, 306, 666–669. [Google Scholar] [CrossRef] [PubMed]
  2. Wang, Q.H.; Kalantar-Zadeh, K.; Kis, A.; Coleman, J.N.; Strano, M.S. Electronics and optoelectronics of two-dimensional transition metal dichalcogenides. Nat. Nanotechnol. 2012, 7, 699–712. [Google Scholar] [CrossRef]
  3. Manzeli, S.; Ovchinnikov, D.; Pasquier, D.; Yazyev, O.V.; Kis, A. 2D transition metal dichalcogenides. Nat. Rev. Mater. 2017, 2, 17033. [Google Scholar] [CrossRef]
  4. Liu, H.; Neal, A.T.; Zhu, Z.; Luo, Z.; Xu, X.; Tománek, D.; Ye, P.D. Phosphorene: An Unexplored 2D Semiconductor with a High Hole Mobility. ACS Nano 2014, 8, 4033–4041. [Google Scholar] [CrossRef] [PubMed]
  5. Wei, Q.; Peng, X. Superior mechanical flexibility of phosphorene and few-layer black phosphorus. Appl. Phys. Lett. 2014, 104, 251915. [Google Scholar] [CrossRef]
  6. Lee, C.; Wei, X.; Kysar, J.W.; Hone, J. Measurement of the elastic properties and intrinsic strength of monolayer graphene. Science 2008, 321, 385–388. [Google Scholar] [CrossRef]
  7. Geim, A.K.; Grigorieva, I.V. Van der Waals heterostructures. Nature 2013, 499, 419–425. [Google Scholar] [CrossRef]
  8. Pomerantseva, E.; Gogotsi, Y. Two-dimensional heterostructures for energy storage. Nat. Energy 2017, 2, 17089. [Google Scholar] [CrossRef]
  9. Deng, D.; Novoselov, K.S.; Fu, Q.; Zheng, N.; Tian, Z.; Bao, X. Catalysis with two-dimensional materials and their heterostructures. Nat. Nanotechnol. 2016, 11, 218–230. [Google Scholar] [CrossRef]
  10. Wang, H.; Li, X.; Liu, Z.; Yang, J. ψ-Phosphorene: A new allotrope of phosphorene. Phys. Chem. Chem. Phys. 2017, 19, 2402–2408. [Google Scholar] [CrossRef]
  11. Ahn, E.C. 2D materials for spintronic devices. npj 2D Mater. Appl. 2020, 4, 17. [Google Scholar] [CrossRef]
  12. Akinwande, D.; Brennan, C.J.; Bunch, J.S.; Egberts, P.; Felts, J.R.; Gao, H.; Huang, R.; Kim, J.S.; Li, T.; Li, Y.; et al. A review on mechanics and mechanical properties of 2D materials—Graphene and beyond. Extrem. Mech. Lett. 2017, 13, 42–77. [Google Scholar] [CrossRef]
  13. Li, X.; Cai, W.; An, J.; Kim, S.; Nah, J.; Yang, D.; Piner, R.; Velamakanni, A.; Jung, I.; Tutuc, E.; et al. Large-area synthesis of high-quality and uniform graphene films on copper foils. Science 2009, 324, 1312–1314. [Google Scholar] [CrossRef] [PubMed]
  14. Chen, J.H.; Jang, C.; Xiao, S.; Ishigami, M.; Fuhrer, M.S. Intrinsic and extrinsic performance limits of graphene devices on SiO2. Nat. Nanotechnol. 2008, 3, 206–209. [Google Scholar] [CrossRef] [PubMed]
  15. Golesorkhtabar, R.; Pavone, P.; Spitaler, J.; Puschnig, P.; Draxl, C. ElaStic: A tool for calculating second-order elastic constants from first principles. Comput. Phys. Commun. 2013, 184, 1861–1873. [Google Scholar] [CrossRef]
  16. de Jong, M.; Chen, W.; Angsten, T.; Jain, A.; Notestine, R.; Gamst, A.; Sluiter, M.; Krishna Ande, C.; van der Zwaag, S.; Plata, J.J.; et al. Charting the complete elastic properties of inorganic crystalline compounds. Sci. Data 2015, 2, 150009. [Google Scholar] [CrossRef]
  17. Liu, Z.L.; Ekuma, C.; Li, W.Q.; Yang, J.Q.; Li, X.J. ElasTool: An automated toolkit for elastic constants calculation. Comput. Phys. Commun. 2022, 270, 108180. [Google Scholar] [CrossRef]
  18. Singh, S.; Lang, L.; Dovale-Farelo, V.; Herath, U.; Tavadze, P.; Coudert, F.X.; Romero, A.H. MechElastic: A Python library for analysis of mechanical and elastic properties of bulk and 2D materials. Comput. Phys. Commun. 2021, 267, 108068. [Google Scholar] [CrossRef]
  19. Yalameha, S.; Nourbakhsh, Z.; Vashaee, D. ElATools: A tool for analyzing anisotropic elastic properties of the 2D and 3D materials. Comput. Phys. Commun. 2022, 271, 108195. [Google Scholar] [CrossRef]
  20. Wang, V.; Xu, N.; Liu, J.C.; Tang, G.; Geng, W.T. VASPKIT: A user-friendly interface facilitating high-throughput computing and analysis using VASP code. Comput. Phys. Commun. 2021, 267, 108033. [Google Scholar] [CrossRef]
  21. Jain, A.; Hautier, G.; Moore, C.J.; Ping Ong, S.; Fischer, C.C.; Mueller, T.; Persson, K.A.; Ceder, G. A high-throughput infrastructure for density functional theory calculations. Comput. Mater. Sci. 2011, 50, 2295–2310. [Google Scholar] [CrossRef]
  22. Pizzi, G.; Cepellotti, A.; Sabatini, R.; Marzari, N.; Kozinsky, B. AiiDA: Automated interactive infrastructure and database for computational science. Comput. Mater. Sci. 2016, 111, 218–230. [Google Scholar] [CrossRef]
  23. Kresse, G.; Furthmüller, J. Efficiency of ab-initio total energy calculations for metals and semiconductors using a plane-wave basis set. Comput. Mater. Sci. 1996, 6, 15–50. [Google Scholar] [CrossRef]
  24. Kresse, G.; Furthmüller, J. Efficient iterative schemes for ab initio total-energy calculations using a plane-wave basis set. Phys. Rev. B 1996, 54, 11169. [Google Scholar] [CrossRef]
  25. Chen, Z.; Li, Z.; Wang, H. Two-dimensional auxetic GeSe2 material with ferroelasticity and flexoelectricity. J. Phys. Chem. C 2021, 125, 19666–19672. [Google Scholar] [CrossRef]
  26. Jochym, P.T. Elastic. Available online: http://wolf.ifj.edu.pl/elastic/ (accessed on 20 May 2023).
  27. Maździarz, M. Comment on ‘The Computational 2D Materials Database: High-throughput modeling and discovery of atomically thin crystals’. 2D Mater. 2019, 6, 48001. [Google Scholar] [CrossRef]
  28. Zhang, Y.; Wang, H.; Chen, W.; Zeng, J.; Zhang, L.; Wang, H.; Weinan, E. DP-GEN: A concurrent learning platform for the generation of reliable deep learning based potential energy models. Comput. Phys. Commun. 2020, 253, 107206. [Google Scholar] [CrossRef]
  29. Perdew, J.P.; Burke, K.; Ernzerhof, M. Generalized gradient approximation made simple. Phys. Rev. Lett. 1996, 77, 3865. [Google Scholar] [CrossRef]
  30. Blöchl, P.E. Projector augmented-wave method. Phys. Rev. B 1994, 50, 17953. [Google Scholar] [CrossRef]
  31. Wei, X.; Fragneaud, B.; Marianetti, C.A.; Kysar, J.W. Nonlinear elastic behavior of graphene: Ab initio calculations to continuum description. Phys. Rev. B 2009, 80, 205407. [Google Scholar] [CrossRef]
  32. Liu, Z.L. High-efficiency calculation of elastic constants enhanced by the optimized strain-matrix sets. arXiv 2020, arXiv:2002.00005. [Google Scholar]
  33. Haastrup, S.; Strange, M.; Pandey, M.; Deilmann, T.; Schmidt, P.S.; Hinsche, N.F.; Gjerding, M.N.; Torelli, D.; Larsen, P.M.; Riis-Jensen, A.C.; et al. The Computational 2D Materials Database: High-throughput modeling and discovery of atomically thin crystals. 2D Mater. 2018, 5, 042002. [Google Scholar] [CrossRef]
  34. Wang, L.; Kutana, A.; Zou, X.; Yakobson, B.I. Electro-mechanical anisotropy of phosphorene. Nanoscale 2015, 7, 9746–9751. [Google Scholar] [CrossRef] [PubMed]
  35. Zhang, S.; Zhou, J.; Wang, Q.; Chen, X.; Kawazoe, Y.; Jena, P. Penta-graphene: A new carbon allotrope. Proc. Natl. Acad. Sci. USA 2015, 112, 2372–2377. [Google Scholar] [CrossRef]
Figure 1. Five types of 2D Bravais lattices. (ae) are oblique, primitive rectangular, centered rectangular, hexagonal and square, respectively.
Figure 1. Five types of 2D Bravais lattices. (ae) are oblique, primitive rectangular, centered rectangular, hexagonal and square, respectively.
Molecules 28 04337 g001
Figure 2. Workflow of mech2d code.
Figure 2. Workflow of mech2d code.
Molecules 28 04337 g002
Figure 3. The direction-dependent Young’s modulus (a) and Poisson’s ratio (b) of 2D G e S e 2 material. Green circles denote positive values and red circles stand for negative ones for Poisson’s ratio.
Figure 3. The direction-dependent Young’s modulus (a) and Poisson’s ratio (b) of 2D G e S e 2 material. Green circles denote positive values and red circles stand for negative ones for Poisson’s ratio.
Molecules 28 04337 g003
Table 1. Deformation types that are used in mech2d with Voigt notation. The generic (i-th) Lagrangian strain tensor is represented as a vector: η i = ( η 1 , η 2 , 0 , 0 , 0 , η 6 ) . In the table, we only list η 1 , η 2 and η 6 .
Table 1. Deformation types that are used in mech2d with Voigt notation. The generic (i-th) Lagrangian strain tensor is represented as a vector: η i = ( η 1 , η 2 , 0 , 0 , 0 , η 6 ) . In the table, we only list η 1 , η 2 and η 6 .
η i η 1 η 2 η 6
η 1 η 00
η 2 η η 0
η 3 0 η 0
η 4 00 2 η
η 5 η 0 2 η
η 6 0 η 2 η
Table 2. Lagrangian strain sets used for different 2D Bravais lattices in the energy–strain approach. The deformation list is shown in Table 1.
Table 2. Lagrangian strain sets used for different 2D Bravais lattices in the energy–strain approach. The deformation list is shown in Table 1.
Lattice TypeNumber of DeformationDeformation Lists
Hexagonal2 η 1 , η 2
Square3 η 1 , η 2 , η 4
Rectangular4 η 1 , η 2 , η 3 , η 4
Oblique6 η 1 , η 2 , η 3 , η 4 , η 5 , η 6
Table 3. Lagrangian strain sets used for different 2D Bravais in the stress–strain approach. The deformation list is shown in Table 1.
Table 3. Lagrangian strain sets used for different 2D Bravais in the stress–strain approach. The deformation list is shown in Table 1.
Lattice TypeNumber of DeformationDeformation Lists
Hexagonal1 η 5
Square1 η 5
Rectangular2 η 2 , η 5
Oblique3 η 1 , η 2 , η 5
Table 4. The lattice type, lattice parameters and k-points for 2D test cases.
Table 4. The lattice type, lattice parameters and k-points for 2D test cases.
SystemLattice Typea (Å)b (Å) γ ( ° ) K-Points
grapheneHexagonal2.4682.46812024 × 24 × 1
M o S 2 Hexagonal3.1803.18012021 × 21 × 1
penta-grapheneSquare3.6313.6319017 × 17 × 1
F e S e Square3.6713.6719018 × 18 × 1
P h o s p h o r e n e Rectangular3.2973.2979025 × 15 × 1
G e S e 2 Centered-Rectangular4.9065.5719015 × 12 × 1
Table 5. The 2D in-plane elastic constants (N/m) of 2D systems in comparison with references. SS stands for stress–strain approach and ES stands for energy–strain approach.
Table 5. The 2D in-plane elastic constants (N/m) of 2D systems in comparison with references. SS stands for stress–strain approach and ES stands for energy–strain approach.
SystemSourcesApproach C 11 C 12 C 22 C 66
grapheneour workES354.167.5
our workSS353.263.1
Ref. [20]ES349.160.3
Ref. [31]ES358.160.4
Ref. [32]SS353.263.7
M o S 2 our workES132.632.8
our workSS134.434.6
Ref. [32]SS136.933.1
Ref. [33]SS131.432.6
Ref. [20]ES128.932.6
penta-grapheneour workES269.5−20.1 151.4
our workSS270.1−18.6 151.4
Ref. [35]ES265.0−18.0 /
F e S e our workES58.420.5 38.3
our workSS62.425.7 36.9
Ref. [32]SS58.222.7 38.1
α -phosphoreneour workES103.817.124.422.7
our workSS103.417.823.922.6
Ref. [34]ES105.218.426.222.4
Ref. [20]ES104.421.634.027.4
Ref. [32]SS103.418.024.621.8
G e S e 2 our workES23.228.139.431.6
our workSS23.728.339.431.5
Ref. [25]ES23.027.437.831.1
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Wang, H.; Li, T.; Liu, X.; Zhu, W.; Chen, Z.; Li, Z.; Yang, J. mech2d: An Efficient Tool for High-Throughput Calculation of Mechanical Properties for Two-Dimensional Materials. Molecules 2023, 28, 4337. https://doi.org/10.3390/molecules28114337

AMA Style

Wang H, Li T, Liu X, Zhu W, Chen Z, Li Z, Yang J. mech2d: An Efficient Tool for High-Throughput Calculation of Mechanical Properties for Two-Dimensional Materials. Molecules. 2023; 28(11):4337. https://doi.org/10.3390/molecules28114337

Chicago/Turabian Style

Wang, Haidi, Tao Li, Xiaofeng Liu, Weiduo Zhu, Zhao Chen, Zhongjun Li, and Jinlong Yang. 2023. "mech2d: An Efficient Tool for High-Throughput Calculation of Mechanical Properties for Two-Dimensional Materials" Molecules 28, no. 11: 4337. https://doi.org/10.3390/molecules28114337

Article Metrics

Back to TopTop