• R/O
  • SSH

Tags
Aucun tag

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

File Info

Révision 8880adc2f05d8e03cbcee07be81f106a11dfaa8a
Taille 7,458 octets
l'heure 2008-08-03 07:55:30
Auteur iselllo
Message de Log

I can now choose freely a second time span along which I can calculate
the kernel element.

Content

#! /usr/bin/env python

import scipy as s
import numpy as n
import pylab as p

time_red=p.load("time_red.dat")  #time I used when comparing the snapshots


delta_t=time_red[1]-time_red[0]


time_coll=time_red[1:len(time_red)]

print "the snapshot time series is, ", time_red


N_mon=5000. #initial number of monomers

rho=0.01

box_vol=N_mon/rho


by=2

#NB: it all starts from the second configuration!!!! I need two snapshots to take a view of what is
#going on.

my_selection=s.arange(1,len(time_red))*by

k_ij=s.zeros(len(my_selection))

number_coll=s.zeros(len(my_selection))

n_i=s.zeros(len(my_selection))

n_j=s.zeros(len(my_selection))



sel_ker=s.arange(2)
sel_ker[0]=2
sel_ker[1]=3


sel_ker=sel_ker*1.  #to get a floating point array

#I will use sel_ker defined above to select the [1,1] collisions

print "sel_ker is, ", sel_ker

print "my_selection is, ", my_selection


delta_sel=my_selection[1]-my_selection[0]

for i in xrange(len(my_selection)):

    cluster_name="cluster_dist%05d"%(my_selection[i]-delta_sel)

    #print "cluster_name is, ", cluster_name
    
    size_dist=p.load(cluster_name)




    cluster_name="recorded_collisions%05d"%my_selection[i]
    extension=".dat"
    cluster_name=cluster_name+extension
    recorded_collisions=p.load(cluster_name)




    cluster_name="colliding_sizes%05d"%my_selection[i]
    extension=".dat"
    cluster_name=cluster_name+extension
    colliding_sizes=p.load(cluster_name)

    cluster_name="kernel_elements%05d"%my_selection[i]
    extension=".dat"
    cluster_name=cluster_name+extension

    kernel_elements=p.load(cluster_name)

    if (set(sel_ker)<=set(size_dist)):

        n_i[i]=len(s.where(size_dist==sel_ker[0])[0])
        n_j[i]=len(s.where(size_dist==sel_ker[1])[0])


        for j in xrange(len(kernel_elements)):
            if (colliding_sizes[j,:]==sel_ker).all():
                k_ij[i]=kernel_elements[j]
                number_coll[i]=recorded_collisions[j]

    else:

        k_ij[i]=-2.


print "the number of collisions are, ", number_coll



print "k_ij is, ", k_ij   


#Now I get rid of the negative k_ij elements (which corresponds to times where either n_i or n_j where 0)
sel_pos=s.where(k_ij>=0.)

print "len(sel_pos[0]) is, ", len(sel_pos[0])


k_ij=k_ij[sel_pos]

#and then I get rid of the corresponding times


time_coll=time_coll[sel_pos]

#and then do the same for n_i and n_j

n_i=n_i[sel_pos]
n_j=n_j[sel_pos]

#and finally for the number of collisions

number_coll=number_coll[sel_pos]



print "len(n_i) is, ", len(n_i)



k_ij_mean=k_ij.mean()

print "the mean value of k_ij is, ", k_ij_mean
    


print "s.shape(k_ij) is, ", s.shape(k_ij)


print "s.shape(time_red) is, ", s.shape(time_red)


print "n_i is, ", n_i

print "n_j is, ", n_j


fig = p.figure()
axes = fig.gca()


axes.plot(time_coll,k_ij, "bo", label="k_ij")
p.xlabel('Time')
p.ylabel('Istantaneous Value k_ij')
#p.title("Evolution Mean-free path")
p.grid(True)
cluster_name="kernel_element_vs_time.pdf"
axes.legend()
p.savefig(cluster_name)
 
p.clf()




print "len(time_coll) is, ", len(time_coll)
print "len(number_coll) is, ", len(number_coll)





fig = p.figure()
axes = fig.gca()


axes.plot(time_coll,number_coll, "bo", label="i-j collisions")
p.xlabel('Time')
p.ylabel('Number of collisions')
#p.title("Evolution Mean-free path")
p.grid(True)
cluster_name="i-j_collisions_vs_time.pdf"
axes.legend()
p.savefig(cluster_name)
 
p.clf()





fig = p.figure()
axes = fig.gca()


axes.plot(time_coll,n_i, "bo", label="n_i")

axes.plot(time_coll,n_j, "k^", label="n_j")


p.xlabel('Time')
p.ylabel('Number of i-mers and j-mers')
#p.title("Evolution Mean-free path")
p.grid(True)
cluster_name="number_i-mers_and_j-mers_vs_time.pdf"
axes.legend()
p.savefig(cluster_name)
 
p.clf()





fig = p.figure()
axes = fig.gca()


axes.plot(time_coll,n_i/box_vol, "bo", label="n_i [concentration]")

axes.plot(time_coll,n_j/box_vol, "k^", label="n_j [concentration]")


p.xlabel('Time')
p.ylabel('Concentration of i-mers and j-mers')
#p.title("Evolution Mean-free path")
p.grid(True)
cluster_name="concentration_i-mers_and_j-mers_vs_time.pdf"
axes.legend()
p.savefig(cluster_name)
 
p.clf()


p.save("n_i_concentration.dat", n_i/box_vol)


p.save("n_j_concentration.dat", n_j/box_vol)


#now a new mean of k11:

#time_11=time_red[1:len(time_red)]


time_late=time_coll[s.where(time_coll>120.)]

k_ij_late=k_ij[s.where(time_coll>120.)]


print "the mean value of the kernel element at late times is, ", k_ij_late.mean()

time_early=time_coll[s.where(time_coll<=120.)]

k_ij_early=k_ij[s.where(time_coll<=120.)]


print "the mean value of the kernel element at early times is, ", k_ij_early.mean()



def residuals_eval(fun1, fun2, par_inf, par_sup, n_steps):
    par_seq=s.linspace(par_inf, par_sup, n_steps) #interval where I am varying my parameter

    residual_vec=s.zeros(n_steps)

    #fun1 is taken to be n_{ij}=N_{ij}/box_vol and fun2 is n_in_j, the proportionality constant
    #(to be determined) is the kernel

    for i in xrange(n_steps):

        residual_vec[i]=s.sum((fun1-par_seq[i]*fun2)**2.)

    par_opt=par_seq[s.where(residual_vec==min(residual_vec))]

    return par_opt, residual_vec




k_ij_inf=0.2

k_ij_sup=12.

n_steps=120

#delta_t=4.

coll_dens=number_coll/(box_vol*delta_t)

print "coll_dens is, ", coll_dens

n_in_j=n_i/box_vol*n_j/box_vol

print "n_in_j is, ", n_in_j

fitted_kernel=residuals_eval(coll_dens, n_in_j, k_ij_inf, k_ij_sup, n_steps)

print "fitted_kernel is, ", fitted_kernel[0]





fig = p.figure()
axes = fig.gca()


axes.plot(time_coll,coll_dens, "bo", label="n_ij")

axes.plot(time_coll,fitted_kernel[0]*n_in_j, "k^", label="k_{ij}n_in_j")


p.xlabel('Time')
p.ylabel('i-mers and j-mers collisions per unit volume and time')
#p.title("Evolution Mean-free path")
p.grid(True)
cluster_name="i-mers_and_j-mers_collisions_and_fit_vs_time.pdf"
axes.legend()
p.savefig(cluster_name)
 
p.clf()

p.save("residuals.dat",fitted_kernel[1])


fig = p.figure()
axes = fig.gca()


axes.plot(s.linspace(k_ij_inf,k_ij_sup, n_steps),fitted_kernel[1], "bo", label="residuals")

p.xlabel('Value of k_{ij}')
p.ylabel('Squared sum of the residuals')
#p.title("Evolution Mean-free path")
p.grid(True)
cluster_name="residuals_vs_k_ij.pdf"
axes.legend()
p.savefig(cluster_name)
 
p.clf()

#Now I do as above but I specify a time-span

time_inf=0.
time_sup=100.

time_span=s.where((time_coll>time_inf) & (time_coll<time_sup))


fitted_kernel=residuals_eval(coll_dens[time_span], n_in_j[time_span], k_ij_inf, k_ij_sup, n_steps)

print "fitted_kernel is, ", fitted_kernel[0]




fig = p.figure()
axes = fig.gca()


axes.plot(time_coll[time_span],coll_dens[time_span], "bo", label="n_ij")

axes.plot(time_coll[time_span],fitted_kernel[0]*n_in_j[time_span], "k^", label="k_{ij}n_in_j")


p.xlabel('Time')
p.ylabel('i-mers and j-mers collisions per unit volume and time')
#p.title("Evolution Mean-free path")
p.grid(True)
cluster_name="i-mers_and_j-mers_collisions_and_fit_vs_time_time_span.pdf"
axes.legend()
p.savefig(cluster_name)
 
p.clf()



fig = p.figure()
axes = fig.gca()


axes.plot(s.linspace(k_ij_inf,k_ij_sup, n_steps),fitted_kernel[1], "bo", label="residuals")

p.xlabel('Value of k_{ij}')
p.ylabel('Squared sum of the residuals')
#p.title("Evolution Mean-free path")
p.grid(True)
cluster_name="residuals_vs_k_ij_time_span.pdf"
axes.legend()
p.savefig(cluster_name)
 
p.clf()

p.save("residuals_span.dat", fitted_kernel[1])

print "So far so good"