-
Notifications
You must be signed in to change notification settings - Fork 1
/
topo2d.py
52 lines (45 loc) · 1.09 KB
/
topo2d.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import bbdir.cyoda as cyoda
trajectory = "subprojects/seams-core/input/traj/exampleTraj.lammpstrj"
# Get the frame
resCloud = cyoda.readLammpsTrjreduced(
filename=trajectory,
targetFrame=1,
typeI=2, # oxygenAtomType
isSlice=False,
coordLow=[0, 0, 0],
coordHigh=[50, 0, 0],
)
# Calculate the neighborlist by ID
nList = cyoda.neighListO(
rcutoff=3.5,
yCloud=resCloud,
typeI=2, # oxygenAtomType
)
# Get the hydrogen-bonded network for the current frame
hbnList = cyoda.populateHbonds(
filename=trajectory,
yCloud=resCloud,
nList=nList,
targetFrame=1,
Htype=1, # hydrogen atom type
)
# Hydrogen-bonded network using indices not IDs
hbnList = cyoda.neighbourListByIndex(
yCloud=resCloud,
nList=hbnList,
)
# Gets every ring (non-primitives included)
rings = cyoda.ringNetwork(
nList=hbnList,
maxDepth=4,
)
# Does the prism analysis for quasi-one-dimensional ice
ring = cyoda.polygonRingAnalysis(
path="runOne/", # outDir
rings=rings,
nList=hbnList,
yCloud=resCloud,
maxDepth=4,
sheetArea=50 * 50,
firstFrame=1,
)