Commit 4d277115 authored by Stelios Karozis's avatar Stelios Karozis

Print data function

parent cec97309
...@@ -4,3 +4,8 @@ __pycache__/ ...@@ -4,3 +4,8 @@ __pycache__/
.vscode/ .vscode/
*.png *.png
*test* *test*
*.json
*.pkl
*.trr
*.gro
*.code-workspace
\ No newline at end of file
...@@ -6,6 +6,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ...@@ -6,6 +6,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.0.4] - 2020-05-19
### Added
- code for print data in json and pickle format
### Changed
- debug decomposition code
### Removed
- None
## [0.0.3] - 2020-05-14 ## [0.0.3] - 2020-05-14
### Added ### Added
- code for assign coordinates to subdomain - code for assign coordinates to subdomain
......
...@@ -10,15 +10,17 @@ NUM_FR=1 ...@@ -10,15 +10,17 @@ NUM_FR=1
GRO='initial.gro' GRO='initial.gro'
HEAD=True HEAD=True
HD_GROUP={'MMA':['C1', 'C2']} HD_GROUP={'MMA':['C1', 'C2']}
TAIL=True TAIL=False
TL_GROUP={'MMA':['C3', 'C4', 'C5']} TL_GROUP={'MMA':['C3', 'C4', 'C5']}
DISCET=[1, 1, 1]
RES_NAME='time_domain_c-normal-cg'
################################################### ###################################################
#Read .trr file #Read .trr file
data_all=tbf.fr_export(trajfile=TRAJ,num_frames=NUM_FR) data_all=tbf.fr_export(trajfile=TRAJ,num_frames=NUM_FR)
#Read .gro file #Read .gro file
_,data_num,_,res_num,res_type,atom_type,atom_num,_ = tbf.read_gro(GRO) _,data_num,_,res_num,res_type,atom_type,atom_num,_ = tbf.read_gro(GRO)
#Create subdomains coordinates #Create subdomains coordinates
box_p=tbf.domain_decomposition(data=data_all,dx=2,dy=2,dz=2) box_p=tbf.domain_decomposition(data=data_all,dx=DISCET[0],dy=DISCET[1],dz=DISCET[2])
################################################### ###################################################
if HEAD==True: if HEAD==True:
...@@ -32,6 +34,9 @@ if HEAD==True: ...@@ -32,6 +34,9 @@ if HEAD==True:
coord_norm,_=tbf.sub_coord(box=box_res, data=data_all, res_num=res_num) coord_norm,_=tbf.sub_coord(box=box_res, data=data_all, res_num=res_num)
#Creates dictionary with c, normal per subdomain for each frame #Creates dictionary with c, normal per subdomain for each frame
surf=tbf.coord2norm(coord_norm,img=True) surf=tbf.coord2norm(coord_norm,img=True)
tbf.topickle(fl=surf, sv_name=RES_NAME)
tbf.tojson(fl=surf, sv_name=RES_NAME)
################################################### ###################################################
if TAIL==True: if TAIL==True:
#Find atom type index in lists created above #Find atom type index in lists created above
...@@ -44,4 +49,5 @@ if TAIL==True: ...@@ -44,4 +49,5 @@ if TAIL==True:
_,coord_vector=tbf.sub_coord(box=box_res, data=data_all, res_num=res_num) _,coord_vector=tbf.sub_coord(box=box_res, data=data_all, res_num=res_num)
vector=tbf.coord2vector(coord_vector) vector=tbf.coord2vector(coord_vector)
################################################### ###################################################
tbf.SurfVector_angle(surf,vector) if HEAD==True and TAIL==True:
\ No newline at end of file tbf.SurfVector_angle(surf,vector)
\ No newline at end of file
import numpy as np import numpy as np
import scipy.optimize import scipy.optimize
import pickle as pkl
import json
#from mpl_toolkits.mplot3d import Axes3D #from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
...@@ -43,6 +44,19 @@ def angle_between3D(v1, v2): ...@@ -43,6 +44,19 @@ def angle_between3D(v1, v2):
else: else:
return 360 - angle return 360 - angle
def center_gravity(a):
m=len(a)
cg = np.sum(a)/m
return cg
def topickle(fl, sv_name):
with open(sv_name+'.pkl', 'wb') as handle:
pkl.dump(fl, handle, protocol=pkl.HIGHEST_PROTOCOL)
def tojson(fl, sv_name):
with open(sv_name+'.json', 'w') as file:
file.write(json.dumps(str(fl)))
def plot_surf(data, normal, c, save_name): def plot_surf(data, normal, c, save_name):
#Plot surface #Plot surface
fig = plt.figure() fig = plt.figure()
...@@ -72,6 +86,9 @@ def plot_surf(data, normal, c, save_name): ...@@ -72,6 +86,9 @@ def plot_surf(data, normal, c, save_name):
ax.set_zlabel('z') ax.set_zlabel('z')
plt.savefig(save_name+'.png') plt.savefig(save_name+'.png')
#plt.show() #plt.show()
plt.clf()
plt.cla()
plt.close()
def points2vector(data): def points2vector(data):
""" """
...@@ -202,26 +219,33 @@ def domain_decomposition(data,dx,dy,dz): ...@@ -202,26 +219,33 @@ def domain_decomposition(data,dx,dy,dz):
box_y=int(ys/dy) box_y=int(ys/dy)
box_z=int(zs/dz) box_z=int(zs/dz)
xx=[] xx=[]
for i in range(0,xs+1,box_x): # for i in range(0,xs+1,dx):
for i in range(0,box_x):
xx.append(i) xx.append(i)
box_p[step]['x']=xx box_p[step]['x']=xx
yy=[] yy=[]
for i in range(0,ys+1,box_y): # for i in range(0,ys+1,dy):
for i in range(0,box_y):
yy.append(i) yy.append(i)
box_p[step]['y']=yy box_p[step]['y']=yy
zz=[] zz=[]
for i in range(0,zs+1,box_z): # for i in range(0,zs+1,dz):
for i in range(0,box_z):
zz.append(i) zz.append(i)
box_p[step]['z']=zz box_p[step]['z']=zz
xyz=[] xyz=[]
for ix in range(0,xs+1,box_x): # for ix in range(0,xs+1,dx):
for iy in range(0,ys+1,box_y): for ix in range(0,box_x):
for iz in range(0,zs+1,box_z): # for iy in range(0,ys+1,dy):
for iy in range(0,box_y):
# for iz in range(0,zs+1,dz):
for iz in range(0,box_z):
xyz.append([ix,iy,iz]) xyz.append([ix,iy,iz])
box_p[step]['xyz']=xyz box_p[step]['xyz']=xyz
...@@ -388,7 +412,10 @@ def coord2norm(coord,img=True): ...@@ -388,7 +412,10 @@ def coord2norm(coord,img=True):
surf[step]={} surf[step]={}
for subdomain in coord[step].keys(): for subdomain in coord[step].keys():
c,normal = fitPlaneLTSQ(np.array(coord[step][subdomain])) c,normal = fitPlaneLTSQ(np.array(coord[step][subdomain]))
surf[step][subdomain]={'c':c, 'normal':normal} cgx = center_gravity(coord[step][subdomain])
cgy = center_gravity(coord[step][subdomain])
cgz = center_gravity(coord[step][subdomain])
surf[step][subdomain]={'c':c, 'normal':normal, 'cg':[cgx,cgy,cgz]}
#Change save variable if you want to save .png elsewere #Change save variable if you want to save .png elsewere
save='png/'+str(subdomain) save='png/'+str(subdomain)
if img==True: if img==True:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment