Elastic Constants

Introduction

DL_POLY_5 can utilise its on the fly correlator (see Section Correlation Functions) to calculated elastic constants from the stress-fluctuation method 19 130 86. The method calculates the elasticity tensor \(C_{\alpha\beta\mu\nu}\) from the three contributing factors,

(160)\[\begin{split}C_{\alpha\beta\mu\nu} &= \langle C^{B}_{\alpha\beta\mu\nu}\rangle \\&- \frac{V}{k_{\mathrm{B}}T}[\langle \sigma_{\alpha\beta} \sigma_{\alpha\beta}\rangle-\langle \sigma_{\alpha\beta}\rangle\langle \sigma_{\mu\nu}\rangle] \\&+ \frac{2Nk_{\mathrm{B}}T}{V}(\delta_{\alpha\mu} \delta_{\beta\nu}+\delta_{\alpha\nu}\delta_{\beta\mu}).\end{split}\]

Where the first term is the Born term, which is defined for pair wise additive potentials \(U(r)\) as

(161)\[C^{B}_{\alpha\beta\mu\nu} = \frac{1}{V}\sum_{i, j \neq i}\biggl(\frac{\partial^{2} U(r^{ij})}{\partial {r^{ij}}^{2}}-\frac{1}{r^{ij}}\frac{\partial U(r^{ij})}{\partial r^{ij}}\biggr)\frac{r^{ij}_{\alpha} r^{ij}_{\beta} r^{ij}_{\mu} r^{ij}_{\nu}}{{r^{ij}}^{2}}.\]

The second term is the stress-fluctuation term calculated from DL_POLY_5’s on the fly correlator. And the final term is the Kinetic term. Here \(N\), \(V\) and \(T\) are system atom count, temperature and volume. \(\sigma_{\alpha\beta}\) is the stress tensor, \(r^{ij}_{\alpha}\) is the \(\alpha\) component of inter-atomic separation vector between atoms \(i\) and \(j\). In full generality there may be 21 independent entries in \(C_{\alpha\beta\mu\nu}\) for an arbitrary system. But for example an isotropic solid with cubic symmetry will have 3 which can be related to e.g. the shear and bulk modulus.

User Control

Input

To enable calculation of elastic constants three options are required in the CONTROL (see Section New Control Files). 1. The CONTROL directive elastic_constants On must be present. 2. One or more stress correlation functions must be requested. 3. The CONTROL directive vdw_method direct must be present.

Since the Born term, (161), requires significant additional computations in DL_POLY_5’s Van Der Waals routines, this ensures only absolutely required terms are calculated.

Given these requirements, DL_POLY_5 will automatically calculate the Kinetic and Born terms commensurate with all stress correlations requested, and reports all the possible elastic constants. E.g. the following CONTROL file snippet will compute the stress-fluctuation term, Born and Kinetic terms for only \(C_{xxyy}\) and \(C_{xzxz}\).

correlation_observable [s_xx-s_yy s_xz-xz]
correlation_block_points [5000 5000]

elastic_constants On

vdw_method direct

The computable constants are

(162)\[\begin{split}\begin{matrix}C_{xxxx} & C_{xxyy} & C_{xxzz} & C_{xxyz} & C_{xxzx} & C_{xxxy}\\ . & C_{yyyy} & C_{yyzz} & C_{yyyz} & C_{yyzx} & C_{yyxy}\\ . & . & C_{zzzz} & C_{zzyz} & C_{zzzx} & C_{zzxy}\\ . & . & . & C_{yzyz} & C_{yzzx} & C_{yzxy}\\ . & . & . & . & C_{zxzx} & C_{zxxy}\\ . & . & . & . & . & C_{xyxy} \end{matrix}\end{split}\]

Output

The calculated elastic constants will be written to the COR file. For the example above we may obtain the following COR (see Section Correlation Functions) snippet.

::
elasticity_tensor:

components: [C_xxyy , C_xxzz] values: [ 10.219979 , 11.545088 ] units: Katm

The elastic constants are computed from equation (160), and written in, Voigt order.