计算化学公社
标题:
CP2K的AIMD中输出的各种能量讨论
[打印本页]
作者Author:
bentty_lee
时间:
2025-11-20 23:04
标题:
CP2K的AIMD中输出的各种能量讨论
最近在学习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,但是一般输出中,二者不会完全相等,猜测可能由于数值精度误差,二者会有细微差别?
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3