vasp+phonopy-QHA计算材料热膨胀系数与格林奈森常数等脚本

本文主要是介绍vasp+phonopy-QHA计算材料热膨胀系数与格林奈森常数等脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​脚本分享

通过使用QHA方法可以计算得到材料的热膨胀系数,热容和格林奈森参数等数据,这里使用的软件为vasp和phonopy。通过脚本一次计算得到相关数据。

相关参考为:

https://mp.weixin.qq.com/s/dC7btVnmTxwwhqCJpL8YvQ

http://phonopy.github.io/phonopy/examples.html

计算主要流程为:以声子计算无虚频的结构文件为基础,更改其缩放系数,在不同体积下计算其原子间受力、声子结构和热性质。以提取出的e-V的数据为基础,使用phonopy-qha计算包括热膨胀系数、热容和格林艾森参数等在内的热学性质。

首先将可计算得到无虚频的vasp输入文件放置在文件夹中,包括POSCAR、INCAR、KPOINTS和POTCAR,以及phonopy处理需要的设置文件,我这里使用vaspkit  305功能产生的KPATH.phonopy文件当作设置文件(请根据你的使用习惯更改脚本)。

KPATH.phonopy文件内容如下:

NPOINTS = 501DIM =  1 1 1     #扩胞倍数随具体情况而定BAND = 0.000000 0.000000 0.000000 0.500000 0.000000 0.500000 0.625000 0.250000 0.625000, 0.375000 0.375000 0.750000 0.000000 0.000000 0.000000 0.500000 0.500000 0.500000 0.500000 0.250000 0.750000 0.500000 0.000000 0.500000BAND_LABELS = $\Gamma$ X U K $\Gamma$ L W X#声子色散路径自行修改MP = 11 11 11TETRAHEDRON = .TRUE.#PDOS = 1, 2BAND_CONNECTION = .TRUE.FORCE_CONSTANTS = READATOM_NAME = WDIM = 1 1 1TPROP=.TRUE.TMAX=2000TSTEP=5FORCE_CONSTANTS = READ# FORCE_SETS = READ# IRREPS = 0  0  0# SHOW_IRREPS = .TRUE.# LITTLE_COGROUP = .TRUE.

计算脚本以及脚本注释如下:

#!/bin/bashmkdir QHA#建立QHA计算文件夹for i in $(seq 0.95 0.005 1.05)#对i赋值0.95到1.05之间,每隔0.005取值。domkdir $icp POSCAR  INCAR KPOINTS POTCAR KPATH.phonopy ./$icd ./$ised '2c '$i'' POSCAR > POSmv POS POSCAR#修改POSCAR中的缩放系数,并覆盖POSCARpwdmpirun -np 48 vasp_std |tee runlog#执行vasp计算pwdphonopy --fc  vasprun.xml #获得力常数phonopy -c POSCAR  -s  -p KPATH.phonopy#获得声子色散和声子态密度phonopy -t KPATH.phonopy |tee  thermo.dat#获得热学性质cp thermal_properties.yaml ../QHA/thermal_properties-$i.yaml#转移文件以便后续计算d=$(awk 'NR==3{print $1}' CONTCAR)V=$(echo `awk -v x=$i -v a=$d -v b=$d -v c=$d 'BEGIN{printf "%.14f\n",x*x*x*a*b*c}'`) #获得当前缩放系数下体积E=$(grep "TOTEN" OUTCAR | tail -1| awk '{printf "%12.6f \n", $5}')#获得当前缩放系数下能量echo $V $E >> ../QHA/v-e.datcd ..donecd ./QHA/phonopy-qha v-e.dat thermal_properties*.yaml |tee thermo.dat#执行QHA计算

注意:在笔者进行测试时发现在部分情况下会出现体积计算值为0的结果,需要根据实际情况调整相关的计算方式。

计算结果展示在终端窗口中

phonopy案例图图如下

计算得到的其它热学性质存储在以下文件中

可根据文件名查找。

另外,如果修改缩放系数声子计算结果出现虚频,phonopy-qha计算时会提醒

# Warning: thermal_properties-1.040.yaml has imaginary modes.

# Warning: thermal_properties-1.045.yaml has imaginary modes.

# Warning: thermal_properties-1.050.yaml has imaginary modes.

可根据实际情况修改缩放系数的区间。

愿有所成

IEchoQ

引喻失义   妄自菲薄

这篇关于vasp+phonopy-QHA计算材料热膨胀系数与格林奈森常数等脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/224824

相关文章

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

Python中经纬度距离计算的实现方式

《Python中经纬度距离计算的实现方式》文章介绍Python中计算经纬度距离的方法及中国加密坐标系转换工具,主要方法包括geopy(Vincenty/Karney)、Haversine、pyproj... 目录一、基本方法1. 使用geopy库(推荐)2. 手动实现 Haversine 公式3. 使用py

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序