|
2017年03月29日 09:25:09
写过一个简单的awk脚本, 用来统计轨迹中水分子的质心速度大小沿坐标的变化情况, 目的是可以用来拟合计算粘度. 具体的计算方法可参考:
A Comparison Of The Value Of Viscosity For Several Water Models Using Poiseuille Flow In A Nano-channel
A. P. Markesteijn, Remco Hartkamp, S. Luding, J. Westerweel; J. Chem. Phys. 136(13):134104, 2012; 10.1063/1.3697977
脚本只能处理gro格式的轨迹, 效率不是很高, 但基本能用. 放在这里, 存个档, 也供需要的人参考吧.
zvx.bsh | |
---|---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | awk'BEGIN{mo=16;mh=1;M=mo+2*mh#定义原子质量Ntot=10#定义要计算的帧数Zmin=3;Zmax=26;dZ=0.2#定义计算区间,分格间距Nfrm=0;N=int((Zmax-Zmin)/dZ)for(i=0;i<=N;i++){Z[i]=Zmin+i*dZ;Vx[i]=0;Nwat[i]=0}}NF==1{Nfrm++}
NF>6&&$2~/OW/{#根据OW原子统计z=mo*$(NF-3);vx=mo*$(NF-2)#O的z坐标,x方向速度getline;z+=mh*$(NF-3);vx+=mh*$(NF-2)#H1的getline;z+=mh*$(NF-3);vx+=mh*$(NF-2)#H2的z/=M;vx/=M#质心坐标和速度i=int((z-Zmin)/dZ)Nwat[i]++;Vx[i]+=vxif(Nfrm>Ntot)exit}
END{print"#Z:["Zmin":"Zmax":"dZ"]Frames:"Nfrmfor(i=0;i<=N;i++)if(Nwat[i]>0)printf"%f%fn",Z[i],Vx[i]/Nwat[i]}'File.gro>Z-Vx.xvg |
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 18:17
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社