示例#1
0
Temper = T
ncounter2 = 1
t_heat = 0.

######### Properties of the Thermostat#########################
# The relaxation factor range between 0.5 and 2 Ps generally  #
thermo = Thermostat()  #
freq = 1. / (2.2e1 / my.au_time)
thermo.Q1 = 3 * numat * Temper * my.kb / (freq**2)  #
thermo.Q2 = Temper * (freq**2) / my.kb  #
###############################################################

# Initial random velocities

for n in range(numat):
    symb[n].vel.x = my.random_maxwell(symb[n], 2 * T)
    symb[n].vel.y = my.random_maxwell(symb[n], 2 * T)
    symb[n].vel.z = my.random_maxwell(symb[n], 2 * T)

while t_heat <= time / my.au_time:

    Mass_total = sum(symb[k].mass for k in range(numat))
    MC_vel_X = sum(symb[k].mass * symb[k].vel.x
                   for k in xrange(numat)) / Mass_total
    MC_vel_Y = sum(symb[k].mass * symb[k].vel.y
                   for k in xrange(numat)) / Mass_total
    MC_vel_Z = sum(symb[k].mass * symb[k].vel.z
                   for k in xrange(numat)) / Mass_total

    angular_vel = my.Inertia_matrix(symb)
    rot_comp = [