From 142a67fe82b830e5c7816914afa62445959c87ca Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@fe.uni-lj.si>
Date: Tue, 05 Nov 2013 14:04:21 +0000
Subject: [PATCH] changes in bondflip call. No need to bondflip all the bonds, but only as many bonds as there are vertices. Also, rnvec seems to be not needed for bondflip, so it is commented out

---
 src/frame.c |   70 +++++++++++++++++------------------
 1 files changed, 34 insertions(+), 36 deletions(-)

diff --git a/src/frame.c b/src/frame.c
index f89f6bc..5cfede9 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1,56 +1,54 @@
 #include<stdlib.h>
 #include "general.h"
 #include "cell.h"
-
+#include "frame.h"
 ts_bool centermass(ts_vesicle *vesicle){
-    ts_uint i;
+    ts_uint i, n=vesicle->vlist->n;
+    ts_vertex **vtx=vesicle->vlist->vtx;
     vesicle->cm[0]=0;
     vesicle->cm[1]=0;
     vesicle->cm[2]=0;
-    for(i=0;i<vesicle->vlist.n;i++){
-        vesicle->cm[0]+=vesicle->vlist.vertex[i].x;
-        vesicle->cm[1]+=vesicle->vlist.vertex[i].y;
-        vesicle->cm[2]+=vesicle->vlist.vertex[i].z; 
+    for(i=0;i<n;i++){
+        vesicle->cm[0]+=vtx[i]->x;
+        vesicle->cm[1]+=vtx[i]->y;
+        vesicle->cm[2]+=vtx[i]->z; 
     } 
-    vesicle->cm[0]/=(float)vesicle->vlist.n;
-    vesicle->cm[1]/=(float)vesicle->vlist.n;
-    vesicle->cm[2]/=(float)vesicle->vlist.n;
+    vesicle->cm[0]/=(ts_float)n;
+    vesicle->cm[1]/=(ts_float)n;
+    vesicle->cm[2]/=(ts_float)n;
+
+    for(i=0;i<n;i++){
+        vtx[i]->x-=vesicle->cm[0];
+        vtx[i]->y-=vesicle->cm[1];
+        vtx[i]->z-=vesicle->cm[2]; 
+    } 
+
+    vesicle->cm[0]=0;
+    vesicle->cm[1]=0;
+    vesicle->cm[2]=0;
+
     return TS_SUCCESS;
 }
 
-ts_bool cell_ocupation(ts_vesicle *vesicle){
-    ts_uint i,j,cellidx;
+ts_bool cell_occupation(ts_vesicle *vesicle){
+    ts_uint i,cellidx, n=vesicle->vlist->n;
     ts_double shift;
     ts_double dcell;
-    shift=(ts_double) vesicle->clist.ncmax[0]/2;
+    shift=(ts_double) vesicle->clist->ncmax[0]/2;
     dcell=1.0/(1.0 + vesicle->stepsize);
-    ts_uint ncx, ncy,ncz;
+    //`fprintf(stderr, "Bil sem tu\n"); 
 
-    cell_list_cell_ocupation_clear(&vesicle->clist);
-    for(i=0;i<vesicle->vlist.n;i++){
-  
-    cellidx=vertex_self_avoidance(vesicle, &vesicle->vlist.vertex[i]);
-    vesicle->vlist.vertex[i].cell=&(vesicle->clist.cell[cellidx]);
+    cell_list_cell_occupation_clear(vesicle->clist);
+    for(i=0;i<n;i++){
+    cellidx=vertex_self_avoidance(vesicle, vesicle->vlist->vtx[i]);
+//	already done in cell_add_vertex
+//    vesicle->vlist->vtx[i]->cell=vesicle->clist->cell[cellidx];
 
-    cell_add_vertex(&vesicle->clist.cell[cellidx],&vesicle->vlist.vertex[i]);
+    cell_add_vertex(vesicle->clist->cell[cellidx],vesicle->vlist->vtx[i]);
 
-  //  if(ncx > vesicle->clist.ncmax[0]) vesicle->clist.ncmax[0]=ncx;
-  //  if(ncy > vesicle->clist.ncmax[1]) vesicle->clist.ncmax[1]=ncy;
-  //  if(ncz > vesicle->clist.ncmax[2]) vesicle->clist.ncmax[2]=ncz;
     }
-
-
-/* This was already done in previous for loop.... Have I gained some time? 
-
-
-    for(i=0;i<vesicle->clist.ncmax[0]*vesicle->clist.ncmax[1]*vesicle->clist.ncmax[2];i++){
-        vesicle->clist.cell[i].nvertex=0;
-        for(j=0;j<vesicle->vlist.n;j++){
-            //add_vertextocell;
-            //add_vertextomonomer;
-        }
-    }
-
-*/
+    //fprintf(stderr, "Bil sem tu\n"); 
+	if(dcell);
+	if(shift);
     return TS_SUCCESS;
 }

--
Gitblit v1.9.3