-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpent2points.py
64 lines (40 loc) · 1.45 KB
/
pent2points.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
53
54
55
56
57
58
59
60
61
62
63
64
# ESTE ARCHIVO NO FUNCIONA BIEN
import networkx as nx
#import granules.structure.NAMDdata as nd
import granules.structure.LAMMPSdata as ld
from Polygon import Polygon
from hex2point import countCycles,getCycles
import pandas as pd
# para leer cyclos y coordenadas
cnt = ld.LammpsData("cgtube.data")
enlaces = cnt.topologia.bonds
enlaces = zip(enlaces['Atom1'],enlaces['Atom2'])
g = nx.Graph(enlaces)
cycle_length = 5
print("Total cycles of length ",cycle_length," are ",countCycles(g, cycle_length))
c = getCycles()
print('----------')
crudepentagons = []
for verts in c:
#convertir a pentagonos
pentagon_coordinates = cnt.atomproperty.atoms[cnt.atomproperty.atoms['aID'].isin(verts)]
#v = hexagon_coordinates['ID'].values #vertices
coords = pentagon_coordinates[['x','y','z']].values #coordenadas
h = Polygon(verts,coords)
crudepentagons.append(h)
pentagons = []
for p in crudepentagons:
temp = g.subgraph(p.vertices)
if len(temp.edges()) == 5:
pentagons.append(p)
lammps = ld.LammpsData()
newatoms = pd.DataFrame([[i,1,1,0]+list(h.center())+[0]*3 for i,h in enumerate(pentagons,start=1)])
newatoms.columns = lammps.atomproperty.atoms.columns
lammps.atomproperty.atoms = lammps.atomproperty.atoms.append(newatoms)
lammps.writeConf('tubito.data')
#vv HEcho
#granules tabla nueva con distancia entre los atomos
#sort a la tabla
#descartar distancia 0
#enlazar distancias minimas
#pdist en 2 instrucciones