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 = [ my.cross(angular_vel, [symb[k].cart.x, symb[k].cart.y, symb[k].cart.z]) for k in range(numat) ] for i in xrange(numat): symb[i].vel.x = symb[i].vel.x - MC_vel_X - rot_comp[i][0] symb[i].vel.y = symb[i].vel.y - MC_vel_Y - rot_comp[i][1] symb[i].vel.z = symb[i].vel.z - MC_vel_Z - rot_comp[i][2] my.nose_hoover_1(symb, dt, thermo, T, numat) # Transformation to internal coordinates mol.cart = [var.cart for var in symb] mol.internas_bonds(bond, nbond) mol.internas_ang(ang, nang) mol.internas_dihe(dih, ndih) # Calculation of the transpose Wilson Matrix wilson, transp = my.matrix_transf(symb, bond, ang, dih) # force field calculation grad, pot = mol.potential(transp, Grad_st1, Hess_st1) vect_ext = calc_grad_ext(mod_Fext, symb[anchor1].cart, symb[anchor2].cart) grad_ext = flat_points(check_anchor(vect_ext, anchor1, anchor2, numat)) new_grad = grad + grad_ext