|
我在CHARMM里使用浮动电荷模型,它是在extended lagrange下,把电荷当做一个自由度来处理,双nose hoover热浴分别更新电荷和原子位置,跑了2ns,取最后一帧计算蛋白质的温度发现温度为85多K,而水和整个体系的温度为300多K,我想请问一下各位大佬这是出现热溶剂冷溶质现象了吗?还是说在这种模型下是正常的?或者是我计算温度的方法有问题?
这是我计算温度的python代码(最后一帧的原子速度和质量在附件中)):
- vel_x = []
- vel_y = []
- vel_z = []
- mass = []
- Ek_prot = 0
- Ek_wat = 0
- Ek_tot = 0
- kB = 0.00198716
- freedom_prot = 1277
- freedom_wat = 36984
- with open("1fsv_vel_frame19999.crd") as fp:
- for line in fp:
- words = line.strip().split()
- if (len(words) == 10):
- vel_x.append(float(words[4]))
- vel_y.append(float(words[5]))
- vel_z.append(float(words[6]))
-
- with open("1fsv_npt.psf") as fp:
- for line in fp:
- value = line.strip().split()
- if (len(value) == 11):
- mass.append(float(value[7]))
- for j in range(513):
- Ek_prot += mass[j]*(vel_x[j] ** 2 + vel_y[j] ** 2 + vel_z[j] ** 2)
-
- for j in range(513,25169):
- Ek_wat += mass[j]*(vel_x[j] ** 2 + vel_y[j] ** 2 + vel_z[j] ** 2)
-
- for j in range(25169):
- Ek_tot += mass[j]*(vel_x[j] ** 2 + vel_y[j] ** 2 + vel_z[j] ** 2)
-
- temp_prot = Ek_prot / kB / freedom_prot
- temp_wat = Ek_wat / kB / freedom_wat
- temp_tot = Ek_tot / kB / (freedom_wat + freedom_prot)
复制代码
|
|