计算化学公社

 找回密码 Forget password
 注册 Register
Views: 296|回复 Reply: 0
打印 Print 上一主题 Last thread 下一主题 Next thread

[CP2K] CP2K的AIMD中输出的各种能量讨论

[复制链接 Copy URL]

7

帖子

0

威望

127

eV
积分
134

Level 2 能力者

跳转到指定楼层 Go to specific reply
楼主
最近在学习CP2K的AIMD,大概翻了一下CP2K的原代码,大概捋了捋输出的各种能量,不知道对不对。
CP2K AIMD的out文件中常用的能量有四个,①out文件中的MD | potential energy②以QS方法为例,out文件中的ENERGY| Total FORCE_EVAL ( QS ) energy③out文件中的Total energy: 那一项④
out文件中的MD_INI| Kinetic energy。


在CP2K原代码的src/motion目录下面,md_energies.F文件里写明了MD输出的时候各种能量的parameter
md_energies.F:            WRITE (iw, '(/,T2,A)') 'MD_INI| MD initialization'
md_energies.F:               'MD_INI| Potential energy [hartree]', md_ener%epot
md_energies.F:                     'MD_INI| Kinetic energy [hartree]', md_ener%ekin
md_energies.F:                     'MD_INI| Temperature [K]', md_ener%temp_part
md_energies.F:                     'MD_INI| Total kinetic energy [hartree]', md_ener%ekin, &
md_energies.F:                     'MD_INI| QM kinetic energy [hartree]', md_ener%ekin_qm
md_energies.F:                     'MD_INI| Total temperature [K]', md_ener%temp_part, &
md_energies.F:                     'MD_INI| QM temperature [K]', md_ener%temp_qm
md_energies.F:                  'MD_INI| Barostat temperature [K]', md_ener%temp_baro
md_energies.F:                  'MD_INI| Pressure [bar]', pv_scalar
md_energies.F:                  'MD_INI| Hugoniot constraint [K]', hugoniot
md_energies.F:                  'MD_INI| Total energy [hartree]', simpar%e0

1. 可以看到out文件中,我们常说的势能项,MD | potential energy,是用md_ener%epot表示的,这个能量同时写在了*-1.ener文件中,而md_ener%epot又通过这个命令
CALL force_env_get(force_env, potential_energy=md_ener%epot)调用了potential_energy的能量,
通过CALL force_env_get(force_env, potential_energy=e_pot)可以看到,potential_energy跟e_pot是等价的
IF (PRESENT(potential_energy)) potential_energy = qs_energy%total这句话可以看到potential_energy就是qs_energy%total


2. 而如果你用到了QS方法,还有一个常见的能量是ENERGY| Total FORCE_EVAL ( QS ) energy [hartree],这个可以在force_env_methods.F 找到定义,指的是e_pot这个参量,这个跟MD|potential energy是完全等价的,均通过e_pot来传递


3. 常说的动能项,Kinetic energy,是用md_ener%ekin表示的,这个跟原子数有关系,用
E_kin = (3/2) * N * k_B * T大概也能算出来


4. 至于每一次MD的SCF结束后常输出的能量
Total energy: 这个可以在src/目录下的qs_scf_output.F: 找到,其指的是energy%total这个参量,这个也同样写在了每一次迭代循环的最后一步能量二者完全等价

5. 还有一些别的常见的能量,譬如守恒量啊什么的,就跟系综相关了,NVE系综下,势能+动能=守恒量

总的来说,无论是total energy还是potential energy指的均是势能,其代表的参数qs_energy%total和energy%total,但是一般输出中,二者不会完全相等,猜测可能由于数值精度误差,二者会有细微差别?


手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-1-24 06:35 , Processed in 0.180994 second(s), 21 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list