这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
atk:弹性常数 [2018/05/16 14:50] – [方法论] fermi | atk:弹性常数 [2018/08/22 21:39] (当前版本) – [弹性常数] fermi | ||
---|---|---|---|
行 1: | 行 1: | ||
====== 弹性常数 ====== | ====== 弹性常数 ====== | ||
- | Virtual NanoLab 和 Atomistix ToolKit 可以提供非常简单的方法计算**任意块体的弹性常数**。该方法具有普遍适用性,极易与密度泛函理论(ATK-DFT)、半经验方法(ATK-SE)、经典势(ATK-ForceField)结合使用。在本教程中,您将学习如何借助 | + | QuantumATK |
<WRAP center important 100%> | <WRAP center important 100%> | ||
行 14: | 行 14: | ||
应力和应变张量总是组成对称的 3×3 矩阵,因此它们可以通过 Voigt notation 表示法用 6 个矢量简洁地表达。 | 应力和应变张量总是组成对称的 3×3 矩阵,因此它们可以通过 Voigt notation 表示法用 6 个矢量简洁地表达。 | ||
- | $$\boldsymbol{\sigma} = ( \sigma_{xx}, | + | $$ |
+ | \boldsymbol{\sigma} = ( \sigma_{xx}, | ||
+ | $$ | ||
和 | 和 | ||
- | $$\boldsymbol{\varepsilon} = ( \varepsilon_{xx}, | + | $$ |
+ | \boldsymbol{\varepsilon} = ( \varepsilon_{xx}, | ||
+ | $$ | ||
应力张量和给定应变矢量的线性关系可以表达为: | 应力张量和给定应变矢量的线性关系可以表达为: | ||
- | $$\boldsymbol{\sigma} = \boldsymbol{C} \cdot \boldsymbol{\varepsilon} ,$$ | + | $$ |
+ | \boldsymbol{\sigma} = \boldsymbol{C} \cdot \boldsymbol{\varepsilon} , | ||
+ | $$ | ||
这里的 $\boldsymbol{C}$ 是包含**弹性常数**的 6×6 对称矩阵。 | 这里的 $\boldsymbol{C}$ 是包含**弹性常数**的 6×6 对称矩阵。 | ||
行 28: | 行 34: | ||
随着晶体对称性的增高,矩阵 $\boldsymbol{C}$ 中独立项数目越少。例如,在立方晶体中只有 $C_{11}$、$C_{12}$ 和 $C_{44}$ 这 3 个独立项: | 随着晶体对称性的增高,矩阵 $\boldsymbol{C}$ 中独立项数目越少。例如,在立方晶体中只有 $C_{11}$、$C_{12}$ 和 $C_{44}$ 这 3 个独立项: | ||
- | $$\begin{split}\begin{pmatrix} | + | $$ |
+ | \begin{split}\begin{pmatrix} | ||
\sigma_1 \\ | \sigma_1 \\ | ||
\sigma_2 \\ | \sigma_2 \\ | ||
行 53: | 行 60: | ||
\varepsilon_5 \\ | \varepsilon_5 \\ | ||
\varepsilon_6 \\ | \varepsilon_6 \\ | ||
- | \end{pmatrix}\end{split}$$ | + | \end{pmatrix}\end{split} |
+ | $$ | ||
为了获得弹性常数,需要在模拟的晶胞上沿选定的应变矢量上施加一个小的形变 $\eta$,计算产生的应力张量。通过拟合每个 Vogit 应力和对应的应变矢量组成的 $\sigma_i(\eta)$ 曲线就可得到线性应力分布情况。然后将弹性常数作为计算线性方程组的最小二乘解,同时考虑晶体的对称性。 | 为了获得弹性常数,需要在模拟的晶胞上沿选定的应变矢量上施加一个小的形变 $\eta$,计算产生的应力张量。通过拟合每个 Vogit 应力和对应的应变矢量组成的 $\sigma_i(\eta)$ 曲线就可得到线性应力分布情况。然后将弹性常数作为计算线性方程组的最小二乘解,同时考虑晶体的对称性。 | ||
行 80: | 行 88: | ||
打开 VNL 的 **Builder** {{: | 打开 VNL 的 **Builder** {{: | ||
- | ♥ 添加一个新的计算器 {{: | + | * 添加一个新的计算器 {{: |
- | + | | |
- | ♥ 选择 **ATK-ForceField** 和 “Stillinger_Weber_Si_1985” 势 | + | |
<WRAP center important 100%> | <WRAP center important 100%> | ||
行 88: | 行 95: | ||
在 2017 年之前的 ATK 版本中,**ATK-ForceField** 计算器在 **ATK-Classical** 的下拉菜单中。 | 在 2017 年之前的 ATK 版本中,**ATK-ForceField** 计算器在 **ATK-Classical** 的下拉菜单中。 | ||
</ | </ | ||
- | ♥ 点击 Optimize {{: | + | * 点击 Optimize {{: |
- | + | | |
- | ◊ 给最大力和最大应力设置足够的精确度,例如最大力为 0.001 eV/ | + | |
- | + | | |
- | ◊ 不勾选 “Constrain cell” 以实现晶胞矢量的优化; | + | |
- | + | ||
- | ◊ 选择优化方法为 **LBFGS**; | + | |
{{ : | {{ : | ||
- | ♥ 返回到之前的页面,点击 Analysis {{: | + | * 返回到之前的页面,点击 Analysis {{: |
{{ : | {{ : | ||
行 152: | 行 155: | ||
日志文件底部显示有弹性常数矩阵,且与使用了 Stillinger-Weber 势的文献中的结果高度吻合 <color # | 日志文件底部显示有弹性常数矩阵,且与使用了 Stillinger-Weber 势的文献中的结果高度吻合 <color # | ||
+ | $$ | ||
| | ||
| | ||
行 158: | 行 161: | ||
| | ||
\end{align}\end{split} | \end{align}\end{split} | ||
+ | $$ | ||
行 214: | 行 217: | ||
为了获得应变构形间受到应力数值上的精确差异,我们通常不得不使用比默认值更严谨的计算器设置。 | 为了获得应变构形间受到应力数值上的精确差异,我们通常不得不使用比默认值更严谨的计算器设置。 | ||
- | ♥ 选择计算器 ATK-DFT,设置如下图所示的 Basic 参数 | + | * 选择计算器 ATK-DFT,设置如下图所示的 Basic 参数 |
- | + | | |
- | | + | |
- | + | ||
- | | + | |
{{ : | {{ : | ||
- | ♥ 在 Iteration control parameters 参数选项卡里 | + | * 在 Iteration control parameters 参数选项卡里 |
- | + | | |
- | ◊ 设置 Tolerance 参数为 1.0e-08; | + | |
- | + | ||
- | ◊ 设置 Damping factor(阻尼系数)为 0.5,历史步数为 10。 | + | |
{{ : | {{ : | ||
- | ♥ 在 **Basis set/ | + | * 在 **Basis set/ |
- | + | | |
- | ◊ 交换关联函数类型选 **GGA**; | + | |
- | + | ||
- | ◊ 在 Predefined functionals 列表中选择 **PBES**。 | + | |
{{ : | {{ : |