def corrHist(positions):
g = np.zeros(config.histSteps);
for p1 in range(1,config.nParticles):
for p2 in range(p1):
X = positions[p2,0] - positions[p1,0];
Y = positions[p2,1] - positions[p1,1];
Z = positions[p2,2] - positions[p1,2];
X -= np.rint(X/config.lCalc) * config.lCalc;
Y -= np.rint(Y/config.lCalc) * config.lCalc;
Z -= np.rint(Z/config.lCalc) * config.lCalc;
distance = np.sqrt(X*X + Y*Y + Z*Z);
for i in range(config.histSteps):
if( (config.histRange/config.histSteps) * i <
distance < (config.histRange/config.histSteps) * (i+1) ):
g[i] += 1 / ( 4 * np.pi * ((config.histRange/config.histSteps*i)**2) * (config.histRange/config.histSteps) );
break;
g = g * 2 * (config.lCalc**3) / (config.nParticles*(config.nParticles-1));
return g
评论列表
文章目录