提交 50f83997 编写于 作者: rictjo's avatar rictjo

rm red

上级 c7b1be2d
......@@ -628,58 +628,15 @@ else :
R2[i][j] = np.sum((P[i]-Q[j])**2)
return ( R2 )
def select_from_distance_matrix(boolean_list,distance_matrix):
return ( np.array( [ d[boolean_list] for d in distance_matrix[boolean_list]] ) )
def calculate_rdf ( particles_i=None , particles_o=None , nbins=100 ,
distance_matrix = None , bInGroup = None , bNotInGroup = None ,
n_dimensions = 3 , xformat="%.3f" , bLiquidState=True, constant=4.0/3.0) :
import operator
crit1 = particles_i is None and particles_o is None
crit2 = bInGroup is None and distance_matrix is None and bNotInGroup is None
if not crit2 :
particles_i = distance_matrix_to_absolute_coordinates ( \
select_from_distance_matrix ( bInGroup , distance_matrix ) ,
n_dimensions = n_dimensions )
particles_o = distance_matrix_to_absolute_coordinates ( \
select_from_distance_matrix ( bNotInGroup , distance_matrix ) ,
n_dimensions = n_dimensions )
else :
particles_i = particles_i.T
particles_o = particles_o.T
if operator.xor( not crit1, not crit2 ) :
rdf_p = pd.DataFrame ( exclusive_pdist ( particles_i.T , particles_o.T ) ).apply( np.sqrt ).values.reshape(-1)
rmax = np.max ( rdf_p )
Y_ , X = np.histogram ( rdf_p , bins=nbins )
X_ = 0.5*(X[1:]+X[:1])
bUse = [ x<rmax/2.0 for x in X_ ]
rd = X_
norm = len(rdf_p)
if bLiquidState :
norm = constant * np.pi * ( ( X_ + np.diff(X) )**n_dimensions - X_**n_dimensions )*len(rdf_p)
dd = Y_ / norm
rd = [ r for r,b in zip(rd,bUse) if b ]
dd = [ y for y,b in zip(dd,bUse) if b ]
bar_source = {'density_values': dd, 'density_ids':[ xformat % (d) for d in rd ] }
return ( bar_source , rdf_p )
else :
print ( """calculate_rdf ( particles_i=None , particles_o=None , Nbins=100 ,
distance_martix = None, bInGroup = None, bNotInGroup = None ,
n_dimensions = 3 , xformat="%.3f" , bLiquidState=True, constant=4.0/3.0 )""")
exit ( 1 )
def diar ( n ):
if n>1:
return ( np.sqrt(n)*diar(n-1) )
else:
return ( 1. )
def calculate_rdf ( particles_i = None , particles_o = None , nbins=100 ,
distance_matrix = None , bInGroup = None , bNotInGroup = None ,
n_dimensions = 3 , xformat="%.3f" ,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册