====== How to calculate volume between points ======
===== Task =====
We had to calculate volume of obtained voids in the structure of copper GB highlighted by pink, blue and green
{{:python:pasted:20230327-153040.png?0x400}}
The shapes of voids are irregular.
===== Solution =====
ConvexHull() method from scipy.spatial
# Read the structure file
from siman.calc_manage import smart_structure_read
st = smart_structure_read('path_to_POSCAR')
#create lists with atomic coordinates of corner atoms of our voids
pink = [73,83,87,104,107,113]
green = [97,104,105,106,107,108,113,206,207,208]
blue = [83,85,87,112,113,114]
for void, name in zip([pink,blue,green],['pink','blue','green']):
pts_list=[]
for at in void:
pts_list.append(list(st.xcart[at]))
#find the volume of space between points
import scipy.spatial as ss
import numpy as np
hull = ss.ConvexHull(pts_list)
print(f'Volume of {name} void: {hull.volume:.2f} A^3')
===== Output =====
Volume of pink void: 8.73 A^3
Volume of blue void: 8.47 A^3
Volume of green void: 25.02 A^3