首页 >> 仿真软件说明 >>ABACUS >>朱雪刚版 >> 2.3.1.2 运行DPGEN进行相关计算 ABACUS3.5.4
详细内容

2.3.1.2 运行DPGEN进行相关计算 ABACUS3.5.4

DPGEN调用ABACUS或其他软件进行相关性质计算主要包括三部分,

准备文件、运行计算、进行后处理。对应的命令为


dpgen autotest make relax.json

dpgen autotest run relax.json machine.json

dpgen autotest post relax.json

dpgen autotest make property.json

dpgen autotest run property.json machine.json

dpgen autotest post property.json


  1. 结构优化

准备好ABACUS的文件和DPGEN的输入文件之后,首先进行结构文件STRU的优化,以确保结构是稳定的,同时为后续的计算准备相关的文件。


首先需要通过make来创建优化需要的文件夹

dpgen autotest make relax.json

运行之后会在"structures":    ["./"],对应的额文件夹下生成relaxation文件,其中有ABACUS计算所需的相关文件,可通过以下命令来查看

tree relaxation


然后需要通过run来进行结构优化。

dpgen autotest run relax.json machine.json

运行之后通过top等命令可看到ABACUS进行计算,且在相关文件夹下生成ABACUS的输出文件。


之后需要通过post来处理相关计算,为后续的性质计算做准备

dpgen autotest post relax.json

运行之后会生成result.json文件,里边保存了后续计算需要的晶格等信息。


  1. 性质计算

结构优化完成之后需要进行性质计算,

首先通过make来进行相关性质计算的准备:

dpgen autotest make property.json

运行过后会在"structures":    ["./"],对应的文件夹下生成elastic_00和eos_00等文件夹,其中包含ABACUS计算需要的输入文件。


然后通过run进行相关性质的计算

dpgen autotest run property.json machine.json

计算之后会在对应的额文件夹下执行ABACUS的计算,并输出相关结果


之后需要post进行后处理获得相关材料的性质

dpgen autotest post property.json

  1. 结果与画图分析

可通过python代码或origin等软件进行画图分析,通过询问chatgpt做了一个python脚本,但结果貌似没有做出拟合,目前并未过度探索。python脚本执行命令是通过python scirptname来实施。

import numpy as np
import matplotlib.pyplot as plt

# 读取数据
data = np.loadtxt('/home/zxg/BeCu/dpgen/auto_test/Be27Cu27/eos_00/result.out', skiprows=2)
# 提取x和y数据
x = data[:, 0]
y = data[:, 1]

# 进行二次方的线性拟合
coefficients = np.polyfit(x, y, 3)
fit_func = np.poly1d(coefficients)
fit_y = fit_func(x)
# 绘制原始数据和拟合曲线
plt.plot(x, y, 'o', label='no fit data', markersize=10, linewidth=2)
plt.plot(x, fit_y, label='fit with function order of tree', markersize=10, linewidth=2)
# 添加标题和标签
plt.title('Data Plot with Quadratic Fit')
plt.xlabel('VpA(A^3)')
plt.ylabel('EpA(eV)')

# 添加图例
plt.legend()

# 保存图像
plt.savefig('eos_Be27Cu27.png')

conf_dir: /home/zxg/BeCu/dpgen/auto_test/Be27Cu27/eos_00

VpA(A^3)  EpA(eV)

8.840  -2665.4585

9.037  -2665.4788

9.233  -2665.4938

9.429  -2665.5039

9.626  -2665.5096

9.822  -2665.5115

10.019  -2665.5098

10.215  -2665.5049

10.412  -2665.4971

10.608  -2665.4867


同样通过chatgpt或文心一言或智普清言可作出以下python脚本作图,没有拟合的图

import matplotlib.pyplot as plt

# 读取数据
data = []
with open('/home/zxg/BeCu/dpgen/auto_test/Be27Cu27/eos_00/result.out', 'r') as file:
    lines = file.readlines()
    for line in lines[2:]:
        line = line.strip().split()
        data.append([float(line[0]), float(line[1])])

# 提取x和y轴数据
x = [entry[0] for entry in data]
y = [entry[1] for entry in data]

# 绘制图形
plt.plot(x, y)
plt.xlabel('VpA(A^3)')
plt.ylabel('EpA(eV)')
plt.title('Plot of VpA(A^3) vs EpA(eV)')
plt.grid(True)

# 保存图像
plt.savefig('plot.png')

对于弹性常数的计算,在elastic_00文件夹下有result.out文件其内容为,弹性常数应该是也能做成的可视化形式(VASP有相关的功能):

 152.49  141.66  141.66   -0.00    0.00   -0.00 
 141.66  152.49  141.66   -0.00    0.00    0.00 
 141.66  141.66  152.49   -0.00    0.00    0.00 
  -0.00   -0.00   -0.00  123.96    0.00    0.00 
  -0.00   -0.00   -0.00    0.00  123.96   -0.00 
   0.00    0.00    0.00    0.00   -0.00  123.96 
# Bulk   Modulus BV = 145.27 GPa
# Shear  Modulus GV = 76.54 GPa
# Youngs Modulus EV = 195.32 GPa
# Poission Ratio uV = 0.28

做出结果之后需要跟实验或其他计算文献做对比,有时候我们跟文献不对应并不代表我们计算有问题,也有可能是文献计算出问题,这时候就需要我们仔细分析结果,多做几次对比来讨论计算结果的可信度。同样,有时候一次计算的结果可能跟我们设定的值相关,因此在DPGEN的property.json中可以修改拉伸长度多做几次计算,进而获取准确结果。

  1. DPGEN的autotest其他功能

DPGEN还给出其他计算性质,例如表面能,缺陷能,间隙原子能量等。使用方法可做参考,但由于我并未做计算,所以这里只是提及一下,需要使用的可自行探索,并希望大家写成教程文档为ABACUS的发展做出贡献。


作者:朱雪刚 邮箱:xuegangzhu@qq.com; 工作单位:石家庄学院 理学院/北京科学智能研究院(AISI)访问学者2023.07-2024.09,访问导师北京大学陈默涵; 徐张满仓 邮箱: xuzhangmancang@dp.tech

截止2024.07.21录制视频教程已上传至Bohrium的课程《DeePMD应用案例讲解:铜原子掺杂铍晶体的机器学习势函数拟合过程演示》网址: https://bohrium.dp.tech/courses/1075495070?tab=courses 后续会在Bohrium平台更新

注意:后续的更新,大部分会在Bohrium课程平台进行,请看教程入门的同学加入课程进行学习;且录制的视频课程会把一些个人观点给加入,从个人观点来看比文字教程的内容更多

写教程内容讨论QQ群:143276924 DPGEN+ABACUS教程准备;

ABACUS软件的QQ群:759914681,群内有专职开发人员,目前ABACUS提问问题以github的issue为主,群内可作为辅助提问。

欢迎大家推广本教程,让更多的dp入门学习者有个参考,目前2024.09.16我联系的微信公众号推广是 lammps加油站的小马老师(我也报名了小马老师的一对一辅导)。当然也看到lammps爱好者在转发推广。感谢大家公众号的推广。


技术支持: CLOUD | 管理登录
seo seo