POSCAR 파일 불러들여서 bond length 계산하기

Опубликовано: 01 Ноябрь 2024
на канале: Ji-Sang Park
203
4

사용한 코드는 다음과 같습니다.

a = open('POSCAR')
b = a.readlines()
b1 = list(map(float,b[2].split()))
b2 = list(map(float,b[3].split()))
b3 = list(map(float,b[4].split()))
mat = [b1,b2,b3]
import numpy as np
matT = np.transpose(mat)
NIONS = int(b[6].split()[0])
d = []
for i in range(8,8+NIONS):
temp = np.asarray(list(map(float,b[i].split())))
d.append(temp)

delta16 = d[5]-d[0]
c16 = matT @ delta16
np.linalg.norm(c16)

delta18 = d[7]-d[0]
c18 = matT @ delta18
np.linalg.norm(c18)

delta18 = (d[7] - np.asarray([1,1,0]))-d[0]
c18 = matT @ delta18
np.linalg.norm(c18)