任务:
- 我运行了一个分子振动的模拟,每0.1飞秒拍摄一次我的原子位置。
- 现在我需要浏览输出,并收集所有这些不同的笛卡尔坐标集合(共50个)。
- 几何结构以良好的格式呈现,但在几何段之间有相同格式的额外内容(请参见示例)。
示例(这是我要解析的文件中的50个相同段之一,只有16个原子而不是4个。)
Time in trajectory (femtosec) 3.300000D+00
Total energy (au) -2.716055737D+02
Total angular momentum (h-bar) 5.485831060D-14
Coordinates (Bohr)
I= 1 X= -1.573316541788D+00 Y= -3.143098097327D-01 Z= -9.488852008364D-01
I= 2 X= -1.549056004901D+00 Y= -3.758762443395D-01 Z= 1.621875214114D+00
I= 3 X= 7.633881398143D-01 Y= -3.853052819189D-01 Z= 3.487630749614D-01
I= 4 X= 2.390273062744D+00 Y= 1.832192143047D+00 Z= 6.235281069720D-01
Momentum (sqrt(amu)*Bohr/sec)
I= 1 X= -3.536362458214D+13 Y= 2.431139678255D+13 Z= 1.413087646815D+13
I= 2 X= -2.526353110947D+13 Y= -2.551987667221D+12 Z= 7.250485757030D+12
I= 3 X= -1.190415840625D+13 Y= -1.311816871612D+13 Z= -4.638293368564D+12
I= 4 X= 6.566472312459D+12 Y= -2.248922363477D+13 Z= -4.123675084717D+11
我希望有一种方法可以循环遍历文件并读取坐标,然后跳过动量信息并剥离所有额外的信息,例如I =,X =等。
我想将其转换为一个3D numpy数组,其中我的坐标将按以下方式索引:(迭代次数,原子编号和x y或z坐标)。 我不知道正则表达式在这里是否有用,因为动量部分的行具有相同的格式。 您们是否能给我提供指导方向?
如果有相关资源附带答案,将非常感激,因为我没有时间限制,所以我希望从中学习一些东西。