将上述代码更改为使用ASE
时间: 2024-03-19 10:46:18 浏览: 55
在window下安装使用Sybase ASE 12.5
5星 · 资源好评率100%
好的,您可以尝试以下代码:
```python
import os
from ase.io import read
import numpy as np
# 获取当前目录下所有POSCAR文件
file_list = [f for f in os.listdir('.') if f.endswith('.vasp') or f.endswith('.POSCAR')]
for file_name in file_list:
# 读取POSCAR文件
structure = read(file_name)
# 获取晶格常数和C原子坐标
lattice = structure.get_cell()
c_coords = structure.get_positions()[structure.get_chemical_symbols() == 'C']
# 计算C原子的平均位置和平均分布范围
avg_position = np.mean(c_coords, axis=0)
avg_range = np.amax(c_coords, axis=0) - np.amin(c_coords, axis=0)
# 输出结果
print("POSCAR file: ", file_name)
print("Average position of C atoms: ", avg_position)
print("Average range of C atoms: ", avg_range)
print()
```
这段代码会读取当前目录下所有的POSCAR文件,计算每个POSCAR晶胞中C原子的平均位置和平均分布范围,并输出结果。在这个代码中,我们使用了ASE库的`read`函数来读取POSCAR文件,并用`get_cell`和`get_positions`函数获取晶格常数和原子坐标。
阅读全文