+int thermal_init(t_atom *atom,int count,double t) {
+
+ /*
+ * - gaussian distribution of velocities
+ * - velocity scaling (E = 3/2 N k T), E: kinetic energy
+ */
+
+ int i;
+ double e,c,v;
+
+ e=.0;
+
+ for(i=0;i<count;i++) {
+ /* x direction */
+ v=gauss_rand();
+ atom[count].v.x=v;
+ e+=0.5*atom[count].mass*v*v;
+ /* y direction */
+ v=gauss_rand();
+ atom[count].v.y=v;
+ e+=0.5*atom[count].mass*v*v;
+ /* z direction */
+ v=gauss_rand();
+ atom[count].v.z=v;
+ e+=0.5*atom[count].mass*v*v;
+ }
+
+ c=sqrt((2.0*e)/(3.0*count*K_BOLTZMANN));
+
+ for(i=0;i<count;i++)
+ v3_scale(&(atom[count].v),&(atom[count].v),(1.0/c));
+
+ return 0;
+}
+