From bd826de2f539f2e48c8c01d2d7f9f34c7e97104a Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Fri, 13 May 2016 07:43:27 +0000
Subject: [PATCH] Fix in trisurf output, inhibiting print of successful reconstruction. Multiple fixes and improvements in python module. Added symlinking of tapes into the running directories and dumping tapes from snapshots into tape files.

---
 src/bondflip.c |  440 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 262 insertions(+), 178 deletions(-)

diff --git a/src/bondflip.c b/src/bondflip.c
index 02d3186..858dc74 100644
--- a/src/bondflip.c
+++ b/src/bondflip.c
@@ -1,3 +1,4 @@
+/* vim: set ts=4 sts=4 sw=4 noet : */
 #include<stdlib.h>
 #include<math.h>
 #include "general.h"
@@ -11,6 +12,8 @@
 #include "bondflip.h"
 //#include "io.h"
 #include<stdio.h>
+#include<string.h>
+#include "constvol.h"
 
 ts_bool single_bondflip_timestep(ts_vesicle *vesicle, ts_bond *bond, ts_double *rn){
 /*c  Vertex and triangle (lm and lp) indexing for bond flip:
@@ -28,11 +31,15 @@
     ts_vertex *it=bond->vtx1;
     ts_vertex *k=bond->vtx2;
     ts_uint nei,neip,neim;
-    ts_uint i; //j;
-    ts_double oldenergy, delta_energy;
- //   ts_triangle *lm=NULL,*lp=NULL, *lp1=NULL, *lp2=NULL, *lm1=NULL, *lm2=NULL;
+    ts_uint i,j;
+    ts_double oldenergy, delta_energy, dvol=0.0, darea=0.0;
+    ts_triangle *lm=NULL,*lp=NULL, *lp1=NULL, *lm2=NULL;
 
     ts_vertex *kp,*km;
+
+    ts_double delta_energy_cv;
+    ts_vertex *constvol_vtx_moved, *constvol_vtx_backup;
+    ts_bool retval;
 
     if(it->neigh_no< 3) return TS_FAIL;
     if(k->neigh_no< 3) return TS_FAIL;
@@ -73,112 +80,7 @@
  //   fprintf(stderr,"Bond will not be too long.. Continue.\n");
 
 /* we make a bond flip. this is different than in original fortran */
-// 0. step. Get memory prior the flip
-  oldenergy=0;
-  oldenergy+=k->xk* k->energy;
-  oldenergy+=kp->xk* kp->energy;
-  oldenergy+=km->xk* km->energy;
-  oldenergy+=it->xk* it->energy;
-//  for(i=0;i<k->neigh_no;i++) oldenergy+=k->neigh[i]->xk*k->neigh[i]->energy;
-//  for(i=0;i<kp->neigh_no;i++) oldenergy+=kp->neigh[i]->xk*kp->neigh[i]->energy;
-//  for(i=0;i<km->neigh_no;i++) oldenergy+=km->neigh[i]->xk*km->neigh[i]->energy;
-//  for(i=0;i<it->neigh_no;i++) oldenergy+=it->neigh[i]->xk*it->neigh[i]->energy;
-
-fprintf(stderr,"*** Naslov k=%ld\n",(long)k);
-fprintf(stderr,"*** Naslov it=%ld\n",(long)it);
-fprintf(stderr,"*** Naslov km=%ld\n",(long)km);
-fprintf(stderr,"*** Naslov kp=%ld\n",(long)kp);
-
-for(i=0;i<k->neigh_no;i++)
-    fprintf(stderr,"k sosed=%ld\n",(long)k->neigh[i]);
-for(i=0;i<it->neigh_no;i++)
-    fprintf(stderr,"it sosed=%ld\n",(long)it->neigh[i]);
-
-for(i=0;i<km->neigh_no;i++)
-    fprintf(stderr,"km sosed=%ld\n",(long)km->neigh[i]);
-for(i=0;i<kp->neigh_no;i++)
-    fprintf(stderr,"kp sosed=%ld\n",(long)kp->neigh[i]);
-
-
-
-    fprintf(stderr,"I WAS HERE! Before bondflip!\n");
-    ts_flip_bond(k,it,km,kp, bond);
-    fprintf(stderr,"I WAS HERE! Bondflip successful!\n");
-
-/* Calculating the new energy */
-  delta_energy=0;
-  for(i=0;i<k->neigh_no;i++) energy_vertex(k->neigh[i]);
-  for(i=0;i<kp->neigh_no;i++) energy_vertex(kp->neigh[i]);
-  for(i=0;i<km->neigh_no;i++) energy_vertex(km->neigh[i]);
-  for(i=0;i<it->neigh_no;i++) energy_vertex(it->neigh[i]);
-  delta_energy+=k->xk* k->energy;
-  delta_energy+=kp->xk* kp->energy;
-  delta_energy+=km->xk* km->energy;
-  delta_energy+=it->xk* it->energy;
-//  for(i=0;i<k->neigh_no;i++) delta_energy+=k->neigh[i]->xk*k->neigh[i]->energy;
-//  for(i=0;i<kp->neigh_no;i++) delta_energy+=kp->neigh[i]->xk*kp->neigh[i]->energy;
-//  for(i=0;i<km->neigh_no;i++) delta_energy+=km->neigh[i]->xk*km->neigh[i]->energy;
-//  for(i=0;i<it->neigh_no;i++) delta_energy+=it->neigh[i]->xk*it->neigh[i]->energy;
-  delta_energy-=oldenergy;
- // fprintf(stderr,"I WAS HERE! Got energy!\n");
-/* MONTE CARLO */
-    if(delta_energy>=0){
-#ifdef TS_DOUBLE_DOUBLE
-        if(exp(-delta_energy)< drand48() )
-#endif
-#ifdef TS_DOUBLE_FLOAT
-        if(expf(-delta_energy)< (ts_float)drand48())
-#endif
-#ifdef TS_DOUBLE_LONGDOUBLE
-        if(expl(-delta_energy)< (ts_ldouble)drand48())
-#endif
-        {
-            //not accepted, reverting changes
-       //     fprintf(stderr,"Failed to move, due to MC\n");
-
-//            ts_flip_bond(km,kp,it,k, bond);
-            ts_flip_bond(kp,km,k,it, bond);
-                
-
-/*
-fprintf(stderr,"*** Naslov k=%d\n",k);
-fprintf(stderr,"*** Naslov it=%d\n",it);
-fprintf(stderr,"*** Naslov km=%d\n",km);
-fprintf(stderr,"*** Naslov kp=%d\n",kp);
-for(i=0;i<k->neigh_no;i++)
-    fprintf(stderr,"k sosed=%d\n",k->neigh[i]);
-for(i=0;i<it->neigh_no;i++)
-    fprintf(stderr,"it sosed=%d\n",it->neigh[i]);
-
-
-for(i=0;i<km->neigh_no;i++)
-    fprintf(stderr,"km sosed=%d\n",km->neigh[i]);
-for(i=0;i<kp->neigh_no;i++)
-    fprintf(stderr,"kp sosed=%d\n",kp->neigh[i]);
-*/
-
-
-
-        //    fprintf(stderr,"Reverted condition!\n");
-            return TS_FAIL;
-        }
-    }
-        //    fprintf(stderr,"Success\n");
-
-
-/* IF BONDFLIP ACCEPTED, THEN RETURN SUCCESS! */
-    return TS_SUCCESS;
-}
-
-
-ts_bool ts_flip_bond(ts_vertex *k,ts_vertex *it,ts_vertex *km, ts_vertex *kp,
-ts_bond *bond){
-
-    ts_triangle *lm=NULL,*lp=NULL, *lp1=NULL, *lm2=NULL;
-    ts_uint i,j; //lmidx, lpidx;
-if(k==NULL || it==NULL || km==NULL || kp==NULL){
-    fatal("ts_flip_bond: You called me with invalid pointers to vertices",999);
-}
+// find lm, lp
 // 1. step. We find lm and lp from k->tristar !
     for(i=0;i<it->tristar_no;i++){
         for(j=0;j<k->tristar_no;j++){
@@ -216,79 +118,285 @@
             } 
         }
     }
-/*
-// DEBUG TESTING!
-fprintf(stderr,"*** Naslov k=%d\n",k);
-fprintf(stderr,"*** Naslov it=%d\n",it);
-fprintf(stderr,"*** Naslov km=%d\n",km);
-fprintf(stderr,"*** Naslov kp=%d\n",kp);
 
-for(i=0;i<k->neigh_no;i++)
-    fprintf(stderr,"k sosed=%d\n",k->neigh[i]);
-for(i=0;i<it->neigh_no;i++)
-    fprintf(stderr,"it sosed=%d\n",it->neigh[i]);
-
-
-// END DEBUG TESTING!
-*/
 if(lm2==NULL || lp1==NULL) fatal("ts_flip_bond: Cannot find triangles lm2 and lp1!",999);
 
 
-//DEBUG TESTING
-fprintf(stderr,"1. step: lm, lm2, lp1 and lp found!\n");
-fprintf(stderr,"--- Naslov lm=%ld",(long)lm);
+/* backup old structure */
+/* need to backup:
+ * vertices k, kp, km, it
+ * triangles lm, lp, lm2, lp1
+ * bond
+ */
+ts_vertex *bck_vtx[4];
+ts_triangle *bck_tria[4];
+ts_bond *bck_bond;
+ts_vertex *orig_vtx[]={k,it,kp,km};
+ts_triangle *orig_tria[]={lm,lp,lm2,lp1};
 
+//fprintf(stderr,"Backuping!!!\n");
+	bck_bond=(ts_bond *)malloc(sizeof(ts_bond));
+for(i=0;i<4;i++){
+/*	fprintf(stderr,"vtx neigh[%d]=",i);
+	for(j=0;j<orig_vtx[i]->neigh_no;j++) fprintf(stderr," %d", orig_vtx[i]->neigh[j]->idx);
+	fprintf(stderr,"\n");
+*/
+	bck_vtx[i]=(ts_vertex *)malloc(sizeof(ts_vertex));
+	bck_tria[i]=(ts_triangle *)malloc(sizeof(ts_triangle));
+	memcpy((void *)bck_vtx[i],(void *)orig_vtx[i],sizeof(ts_vertex));
+	memcpy((void *)bck_tria[i],(void *)orig_tria[i],sizeof(ts_triangle));
+	/* level 2 pointers */
 
-fprintf(stderr,"   vtxs(%ld, %ld, %ld)\n",(long)lm->vertex[0],(long)lm->vertex[1], (long)lm->vertex[2]);
-fprintf(stderr,"--- Naslov lp=%ld",(long)lp);
-fprintf(stderr,"   vtxs(%ld, %ld, %ld)\n",(long)lp->vertex[0],(long)lp->vertex[1], (long)lp->vertex[2]);
-fprintf(stderr,"--- Naslov lm2=%ld",(long)lm2);
-fprintf(stderr,"   vtxs(%ld, %ld, %ld)\n",(long)lm2->vertex[0],(long)lm2->vertex[1], (long)lm2->vertex[2]);
-fprintf(stderr,"--- Naslov lp1=%ld",(long)lp1);
-fprintf(stderr,"   vtxs(%ld, %ld, %ld)\n",(long)lp1->vertex[0],(long)lp1->vertex[1], (long)lp1->vertex[2]);
+	bck_vtx[i]->neigh=(ts_vertex **)malloc(orig_vtx[i]->neigh_no*sizeof(ts_vertex *));
+	bck_vtx[i]->tristar=(ts_triangle **)malloc(orig_vtx[i]->tristar_no*sizeof(ts_triangle *));
+	bck_vtx[i]->bond=(ts_bond **)malloc(orig_vtx[i]->bond_no*sizeof(ts_bond *));
+	bck_tria[i]->neigh=(ts_triangle **)malloc(orig_tria[i]->neigh_no*sizeof(ts_triangle *));
 
-for(i=0;i<lm->neigh_no;i++)
-    fprintf(stderr,"lm sosed=%ld\n",(long)lm->neigh[i]);
-for(i=0;i<lp->neigh_no;i++)
-    fprintf(stderr,"lp sosed=%ld\n",(long)lp->neigh[i]);
-// END DEBUG TESTING
-
-/*
-// DEBUG TESTING!
-
-for(i=0;i<3;i++){
-
-    if(lp1->neigh[i]==lp) fprintf(stderr,"Nasel sem par lp1->lp\n");
-    if(lp->neigh[i]==lp1) fprintf(stderr,"Nasel sem par lp->lp1\n");
-    if(lm2->neigh[i]==lm) fprintf(stderr,"Nasel sem par lm2->lm\n");
-    if(lm->neigh[i]==lm2) fprintf(stderr,"Nasel sem par lm->lm2\n");
+	memcpy((void *)bck_vtx[i]->neigh,(void *)orig_vtx[i]->neigh,orig_vtx[i]->neigh_no*sizeof(ts_vertex *));
+	memcpy((void *)bck_vtx[i]->tristar,(void *)orig_vtx[i]->tristar,orig_vtx[i]->tristar_no*sizeof(ts_triangle *));
+	memcpy((void *)bck_vtx[i]->bond,(void *)orig_vtx[i]->bond,orig_vtx[i]->bond_no*sizeof(ts_bond *));
+	
+	memcpy((void *)bck_tria[i]->neigh,(void *)orig_tria[i]->neigh,orig_tria[i]->neigh_no*sizeof(ts_triangle *));	
 }
-// END DEBUG TESTING!
+	memcpy(bck_bond,bond,sizeof(ts_bond));
+//fprintf(stderr,"Backup complete!!!\n");
+/* end backup vertex */
+
+/* Save old energy */
+  oldenergy=0;
+  oldenergy+=k->xk* k->energy;
+  oldenergy+=kp->xk* kp->energy;
+  oldenergy+=km->xk* km->energy;
+  oldenergy+=it->xk* it->energy;
+  //Neigbours of k, it, km, kp don't change its energy.
+
+	if(vesicle->pswitch == 1 || vesicle->tape->constvolswitch>0){dvol = -lm->volume - lp->volume;}
+    if(vesicle->tape->constareaswitch==2){darea=-lm->area-lp->area;} 
+/*    vesicle_volume(vesicle);
+    fprintf(stderr,"Volume in the beginning=%1.16e\n", vesicle->volume);
 */
 
+/* fix data structure for flipped bond */
+    ts_flip_bond(k,it,km,kp, bond,lm, lp, lm2, lp1);
 
+
+/* Calculating the new energy */
+  delta_energy=0;
+  delta_energy+=k->xk* k->energy;
+  delta_energy+=kp->xk* kp->energy;
+  delta_energy+=km->xk* km->energy;
+  delta_energy+=it->xk* it->energy;
+  //Neigbours of k, it, km, kp don't change its energy.
+
+    delta_energy-=oldenergy;
+	if(vesicle->pswitch == 1 || vesicle->tape->constvolswitch>0){
+		dvol = dvol + lm->volume + lp->volume;
+		if(vesicle->pswitch==1) delta_energy-= vesicle->pressure*dvol;
+	}
+    if(vesicle->tape->constareaswitch==2){
+        darea=darea+lm->area+lp->area; 
+/*check whether the dvol is gt than epsvol */
+		if(fabs(vesicle->area+darea-A0)>epsarea){
+			//restore old state.
+			/* restoration procedure copied from few lines below */
+			    for(i=0;i<4;i++){
+			//			fprintf(stderr,"Restoring vtx neigh[%d] with neighbours %d\n",i, orig_vtx[i]->neigh_no );
+				free(orig_vtx[i]->neigh);
+				free(orig_vtx[i]->tristar);
+				free(orig_vtx[i]->bond);
+				free(orig_tria[i]->neigh);
+				memcpy((void *)orig_vtx[i],(void *)bck_vtx[i],sizeof(ts_vertex));
+				memcpy((void *)orig_tria[i],(void *)bck_tria[i],sizeof(ts_triangle));
+			//			fprintf(stderr,"Restored vtx neigh[%d] with neighbours %d\n",i, orig_vtx[i]->neigh_no );
+				/* level 2 pointers are redirected*/
+			    }
+			    memcpy(bond,bck_bond,sizeof(ts_bond));
+			    for(i=0;i<4;i++){
+				free(bck_vtx[i]);
+				free(bck_tria[i]);
+			/*			fprintf(stderr,"Restoring vtx neigh[%d] with neighbours %d =",i, orig_vtx[i]->neigh_no );
+				for(j=0;j<orig_vtx[i]->neigh_no;j++) fprintf(stderr," %d", orig_vtx[i]->neigh[j]->idx);
+				fprintf(stderr,"\n"); */
+			    }
+			    free(bck_bond);
+			    return TS_FAIL;
+
+		}
+    }
+
+
+
+
+	if(vesicle->tape->constvolswitch == 2){
+		/*check whether the dvol is gt than epsvol */
+		if(fabs(vesicle->volume+dvol-V0)>epsvol){
+			//restore old state.
+			/* restoration procedure copied from few lines below */
+			    for(i=0;i<4;i++){
+			//			fprintf(stderr,"Restoring vtx neigh[%d] with neighbours %d\n",i, orig_vtx[i]->neigh_no );
+				free(orig_vtx[i]->neigh);
+				free(orig_vtx[i]->tristar);
+				free(orig_vtx[i]->bond);
+				free(orig_tria[i]->neigh);
+				memcpy((void *)orig_vtx[i],(void *)bck_vtx[i],sizeof(ts_vertex));
+				memcpy((void *)orig_tria[i],(void *)bck_tria[i],sizeof(ts_triangle));
+			//			fprintf(stderr,"Restored vtx neigh[%d] with neighbours %d\n",i, orig_vtx[i]->neigh_no );
+				/* level 2 pointers are redirected*/
+			    }
+			    memcpy(bond,bck_bond,sizeof(ts_bond));
+			    for(i=0;i<4;i++){
+				free(bck_vtx[i]);
+				free(bck_tria[i]);
+			/*			fprintf(stderr,"Restoring vtx neigh[%d] with neighbours %d =",i, orig_vtx[i]->neigh_no );
+				for(j=0;j<orig_vtx[i]->neigh_no;j++) fprintf(stderr," %d", orig_vtx[i]->neigh[j]->idx);
+				fprintf(stderr,"\n"); */
+			    }
+			    free(bck_bond);
+			    return TS_FAIL;
+
+		}
+
+	} else
+    if(vesicle->tape->constvolswitch == 1){
+        retval=constvolume(vesicle, it, -dvol, &delta_energy_cv, &constvol_vtx_moved,&constvol_vtx_backup);
+        if(retval==TS_FAIL){
+/* restoration procedure copied from few lines below */
+            for(i=0;i<4;i++){
+    //			fprintf(stderr,"Restoring vtx neigh[%d] with neighbours %d\n",i, orig_vtx[i]->neigh_no );
+                free(orig_vtx[i]->neigh);
+                free(orig_vtx[i]->tristar);
+                free(orig_vtx[i]->bond);
+                free(orig_tria[i]->neigh);
+                memcpy((void *)orig_vtx[i],(void *)bck_vtx[i],sizeof(ts_vertex));
+                memcpy((void *)orig_tria[i],(void *)bck_tria[i],sizeof(ts_triangle));
+    //			fprintf(stderr,"Restored vtx neigh[%d] with neighbours %d\n",i, orig_vtx[i]->neigh_no );
+                /* level 2 pointers are redirected*/
+            }
+            memcpy(bond,bck_bond,sizeof(ts_bond));
+            for(i=0;i<4;i++){
+                free(bck_vtx[i]);
+                free(bck_tria[i]);
+    /*			fprintf(stderr,"Restoring vtx neigh[%d] with neighbours %d =",i, orig_vtx[i]->neigh_no );
+                for(j=0;j<orig_vtx[i]->neigh_no;j++) fprintf(stderr," %d", orig_vtx[i]->neigh[j]->idx);
+                fprintf(stderr,"\n"); */
+            }
+            free(bck_bond);
+            return TS_FAIL;
+        }
+        delta_energy+=delta_energy_cv;
+    }
+
+
+/* MONTE CARLO */
+    if(delta_energy>=0){
+#ifdef TS_DOUBLE_DOUBLE
+        if(exp(-delta_energy)< drand48())
+#endif
+#ifdef TS_DOUBLE_FLOAT
+        if(expf(-delta_energy)< (ts_float)drand48())
+#endif
+#ifdef TS_DOUBLE_LONGDOUBLE
+        if(expl(-delta_energy)< (ts_ldouble)drand48())
+#endif
+        {
+            //not accepted, reverting changes
+	    //restore all backups
+//		fprintf(stderr,"Restoring!!!\n");
+        if(vesicle->tape->constvolswitch == 1){
+            constvolumerestore(constvol_vtx_moved,constvol_vtx_backup);
+        }
+
+		for(i=0;i<4;i++){
+//			fprintf(stderr,"Restoring vtx neigh[%d] with neighbours %d\n",i, orig_vtx[i]->neigh_no );
+			free(orig_vtx[i]->neigh);
+			free(orig_vtx[i]->tristar);
+			free(orig_vtx[i]->bond);
+			free(orig_tria[i]->neigh);
+			memcpy((void *)orig_vtx[i],(void *)bck_vtx[i],sizeof(ts_vertex));
+			memcpy((void *)orig_tria[i],(void *)bck_tria[i],sizeof(ts_triangle));
+//			fprintf(stderr,"Restored vtx neigh[%d] with neighbours %d\n",i, orig_vtx[i]->neigh_no );
+			/* level 2 pointers are redirected*/
+		}
+		memcpy(bond,bck_bond,sizeof(ts_bond));
+
+		for(i=0;i<4;i++){
+			free(bck_vtx[i]);
+			free(bck_tria[i]);
+/*			fprintf(stderr,"Restoring vtx neigh[%d] with neighbours %d =",i, orig_vtx[i]->neigh_no );
+			for(j=0;j<orig_vtx[i]->neigh_no;j++) fprintf(stderr," %d", orig_vtx[i]->neigh[j]->idx);
+			fprintf(stderr,"\n"); */
+		}
+
+		free(bck_bond);
+
+//		fprintf(stderr,"Restoration complete!!!\n");
+//    vesicle_volume(vesicle);
+//    fprintf(stderr,"Volume after fail=%1.16e\n", vesicle->volume);
+
+		return TS_FAIL;
+        }
+    }
+     /* IF BONDFLIP ACCEPTED, THEN RETURN SUCCESS! */
+//            fprintf(stderr,"SUCCESS!!!\n");
+
+    if(vesicle->tape->constvolswitch == 2){
+	    vesicle->volume+=dvol;
+    } else if(vesicle->tape->constvolswitch == 1){
+        constvolumeaccept(vesicle,constvol_vtx_moved,constvol_vtx_backup);
+    }
+    if(vesicle->tape->constareaswitch==2){
+        vesicle->area+=darea;
+    }
+	// delete all backups
+	for(i=0;i<4;i++){
+	free(bck_vtx[i]->neigh);
+	free(bck_vtx[i]->bond);
+	free(bck_vtx[i]->tristar);
+	free(bck_vtx[i]);
+ 	free(bck_tria[i]->neigh);
+        free(bck_tria[i]);
+/*	fprintf(stderr,"Afret backup deletion vtx neigh[%d]=",i);
+	for(j=0;j<orig_vtx[i]->neigh_no;j++) fprintf(stderr," %d", orig_vtx[i]->neigh[j]->idx);
+	fprintf(stderr,"\n");
+*/	
+	}
+	free(bck_bond);
+
+//    vesicle_volume(vesicle);
+//    fprintf(stderr,"Volume after success=%1.16e\n", vesicle->volume);
+    return TS_SUCCESS;
+}
+
+
+ts_bool ts_flip_bond(ts_vertex *k,ts_vertex *it,ts_vertex *km, ts_vertex *kp,
+ts_bond *bond, ts_triangle *lm, ts_triangle *lp, ts_triangle *lm2, ts_triangle *lp1){
+
+    ts_uint i; //lmidx, lpidx;
+if(k==NULL || it==NULL || km==NULL || kp==NULL){
+    fatal("ts_flip_bond: You called me with invalid pointers to vertices",999);
+}
 // 2. step. We change the triangle vertices... (actual bond flip)
     for(i=0;i<3;i++) if(lm->vertex[i]== it) lm->vertex[i]= kp;
     for(i=0;i<3;i++) if(lp->vertex[i]== k) lp->vertex[i]= km;
-fprintf(stderr,"2. step: actual bondflip made\n");
+//fprintf(stderr,"2. step: actual bondflip made\n");
 // 2a. step. If any changes in triangle calculations must be done, do it here!
 //   * normals are recalculated here
     triangle_normal_vector(lp);
     triangle_normal_vector(lm);
-fprintf(stderr,"2a. step: triangle normals recalculated\n");
+//fprintf(stderr,"2a. step: triangle normals recalculated\n");
 // 3. step. Correct neighbours in vertex_list
 
 
             vtx_remove_neighbour(k,it);
 //            vtx_remove_neighbour(it,k);
-fprintf(stderr,"3. step (PROGRESS): removed k and it neighbours\n");
+//fprintf(stderr,"3. step (PROGRESS): removed k and it neighbours\n");
     
             //Tukaj pa nastopi tezava... Kam dodati soseda?
             vtx_insert_neighbour(km,kp,k);
             vtx_insert_neighbour(kp,km,it);
 //            vertex_add_neighbour(km,kp); //pazi na vrstni red.
 //            vertex_add_neighbour(kp,km);
-fprintf(stderr,"3. step: vertex neighbours corrected\n");
+//fprintf(stderr,"3. step: vertex neighbours corrected\n");
 
 // 3a. step. If any changes to ts_vertex, do it here!
 //   bond_length calculatons not required for it is done in energy.c
@@ -302,7 +410,7 @@
 // 5. step. Correct neighbouring triangles 
    
     triangle_remove_neighbour(lp,lp1);
-   // fprintf(stderr,".\n");
+  //  fprintf(stderr,".\n");
     triangle_remove_neighbour(lp1,lp);
   //  fprintf(stderr,".\n");
     triangle_remove_neighbour(lm,lm2);
@@ -323,34 +431,10 @@
             vtx_remove_tristar(it,lm);
             vtx_remove_tristar(k,lp);
 //fprintf(stderr,"6. step: tristar corrected\n");
-
-/*
-//DEBUG TESTING
-fprintf(stderr,"--- Naslov lm=%d",lm);
-
-
-fprintf(stderr,"   vtxs(%d, %d, %d)\n",lm->vertex[0],lm->vertex[1], lm->vertex[2]);
-fprintf(stderr,"--- Naslov lp=%d",lp);
-fprintf(stderr,"   vtxs(%d, %d, %d)\n",lp->vertex[0],lp->vertex[1], lp->vertex[2]);
-fprintf(stderr,"--- Naslov lm2=%d",lm2);
-fprintf(stderr,"   vtxs(%d, %d, %d)\n",lm2->vertex[0],lm2->vertex[1], lm2->vertex[2]);
-fprintf(stderr,"--- Naslov lp1=%d",lp1);
-fprintf(stderr,"   vtxs(%d, %d, %d)\n",lp1->vertex[0],lp1->vertex[1], lp1->vertex[2]);
-
-for(i=0;i<lm->neigh_no;i++)
-    fprintf(stderr,"lm sosed=%d\n",lm->neigh[i]);
-for(i=0;i<lp->neigh_no;i++)
-    fprintf(stderr,"lp sosed=%d\n",lp->neigh[i]);
-// END DEBUG TESTING
-*/
   energy_vertex(k);
   energy_vertex(kp);
   energy_vertex(km);
   energy_vertex(it);
-
-
 // END modifications to data structure!
-
-
     return TS_SUCCESS;
 }

--
Gitblit v1.9.3