import numpy as np
from numpy import *
import glob
import copy
from bokeh.plotting import figure, output_notebook, show, output_file
output_notebook()
def sort2ar(a,b):
a1=copy.copy(a)
return [x for (a,x) in sorted(zip(a,b))]
inputdir="/home/azarnykh/Documents/PRL_article/article/postproc/visc_fit/velocity/sec3_alpha_0.0/"
etas=glob.glob(inputdir+"average_acf_*/ETAS.dat")
etasexp=glob.glob(inputdir+"average_acf_*/ETAS_EXP.dat")
etasint=glob.glob(inputdir+"average_acf_*/ETAS_INT.dat")
templist=[]
for ii,etai in enumerate(etas):
m=1.0
rc=1.0
nden=4.0
sigi=3.0
aij=float(etai.split("/")[-3].split("_")[-1])
temp_om=float(etai.split("/")[-2].split("_")[-1])
temp = pow((pi*m*nden*rc**4*sigi**2*sqrt(m)/(45.0*temp_om)),2.0/3.0)
templist.append(temp)
etas=sort2ar(templist,etas)
etasexp=sort2ar(templist,etasexp)
etasint=sort2ar(templist,etasint)
p = figure(width=500, height=500, tools="pan,wheel_zoom,box_zoom,reset,previewsave", x_axis_type="log",y_axis_type="log", title="Zero conservative force DPD effective shear viscosity")
#p = figure(width=500, height=500)
trace=[]
coll=["purple","red","brown","orange","gray","blue","black","green"]
for ii,etai in enumerate(etas):
m=1.0
rc=1.0
nden=4.0
sigi=3.0
aij=float(etai.split("/")[-3].split("_")[-1])
temp=float(etai.split("/")[-2].split("_")[-1])
SCALE_zz=45.0*temp/pi/nden/sigi**2/m/rc**3
OMEGA_0=pi*m*nden*rc**4*sigi**2*sqrt(m/temp)/(45.0*temp)
l0=45.0*temp**1.5/(pi*m**1.5*nden*rc**3*sigi**2)
et0=np.loadtxt(etai)
et1=np.loadtxt(etasexp[ii])
et2=np.loadtxt(etasint[ii])
xscale=l0
yscale=SCALE_zz/l0**2/4.0
a2=1.0/35.0
est=OMEGA_0**2*a2+0.5
qrc=2.0*pi
ql0=2.0*pi/l0
if OMEGA_0>1:
lname=str(int(round(OMEGA_0,1)))
else:
lname=str(round(OMEGA_0,2))
x = array(et0[:,0])*xscale
y = et0[:,1]*yscale
xmax1=et0[0,0]*xscale
p.line((ql0*xscale,ql0*xscale),(1e-3,100),line_color="gray",line_width = 1)
p.line((1e-3, xmax1), (est,est), line_dash=[4, 4],color=coll[ii])
p.line(x, y,line_color=coll[ii],line_width=2,legend=r'DPD, '+lname)
p.circle(x, y,line_color=coll[ii],fill_color=None, size=7, alpha=0.5)