Elastic3rd: A tool for calculating third-order elastic constants from first-principles calculations
The third-order elastic constants (TOECs) are fundamental to describe crystal’s nonlinear response to stress, and can be applied to explore anharmonic properties of crystals such as Grüneisen parameters, thermal expansion coefficient, and the effect of pressure on second-order elastic constants (SOECs). Here, we report an open-source python package, Elastic3rd, which is able to calculate the SOECs and TOECs using the strain–energy method for crystals with any symmetry from first-principles calculations. An algorithm to generate necessary strain modes and the corresponding coefficients for a given symmetry is proposed. These strain modes are then applied to the fully relaxed structure to generate the deformed structures. The total energies of the strained structures are calculated by a chosen first-principles code, and the SOECs and TOECs are determined by fitting the resulted strain–energy data. The present code has been validated by several case studies of C, Si and Mg, and the case of MnP4 shows the ability for low-symmetry crystals.