increased relaxation steps + introduced average reset + added critical
[physik/posic.git] / moldyn.c
index edda007..ec96712 100644 (file)
--- a/moldyn.c
+++ b/moldyn.c
@@ -954,6 +954,33 @@ double pressure_calc(t_moldyn *moldyn) {
        return moldyn->p;
 }
 
+int average_reset(t_moldyn *moldyn) {
+
+       /* update skip value */
+       moldyn->avg_skip=moldyn->total_steps;
+
+       /* kinetic energy */
+       moldyn->k_sum=0.0;
+       moldyn->k2_sum=0.0;
+       
+       /* potential energy */
+       moldyn->v_sum=0.0;
+       moldyn->v2_sum=0.0;
+
+       /* temperature */
+       moldyn->t_sum=0.0;
+
+       /* virial */
+       moldyn->virial_sum=0.0;
+       moldyn->gv_sum=0.0;
+
+       /* pressure */
+       moldyn->p_sum=0.0;
+       moldyn->gp_sum=0.0;
+
+       return 0;
+}
+
 int average_and_fluctuation_calc(t_moldyn *moldyn) {
 
        int denom;
@@ -1715,6 +1742,9 @@ int velocity_verlet(t_moldyn *moldyn) {
                v3_add(&(atom[i].v),&(atom[i].v),&delta);
        }
 
+       /* criticial check */
+       moldyn_bc_check(moldyn);
+
        /* neighbour list update */
        link_cell_update(moldyn);
 
@@ -2358,7 +2388,11 @@ int calculate_pair_correlation(t_moldyn *moldyn,double dr,void *ptr) {
 
                                /* should never happen but it does 8) -
                                 * related to -ffloat-store problem! */
-                               if(s>=slots) s=slots-1;
+                               if(s>=slots) {
+                                       printf("[moldyn] WARNING pcc (%d/%d)\n",
+                                              s,slots);
+                                       s=slots-1;
+                               }
 
                                if(ibrand!=jtom->brand) {
                                        /* mixed */