From d33abe246221255be91bacda79f5852b8c4ed8fd Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Sun, 08 Dec 2013 17:47:21 +0000
Subject: [PATCH] Triangles are ordered in the bond now. Also kp and km are found as adjvtx. They are also ordered.

---
 src/bondflip.c |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/bondflip.c b/src/bondflip.c
index 17a1977..06479e2 100644
--- a/src/bondflip.c
+++ b/src/bondflip.c
@@ -31,15 +31,16 @@
     ts_uint i; //j;
     ts_double oldenergy, delta_energy;
  //   ts_triangle *lm=NULL,*lp=NULL, *lp1=NULL, *lp2=NULL, *lm1=NULL, *lm2=NULL;
-
-    ts_vertex *kp,*km;
+    ts_vertex *kp=NULL,*km=NULL;
+	ts_triangle *lm=NULL, *lp=NULL;
 
     if(it->neigh->n< 3) return TS_FAIL;
     if(k->neigh->n< 3) return TS_FAIL;
+
     if(k==NULL || it==NULL){
         fatal("In bondflip, number of neighbours of k or it is less than 3!",999);
     }
-
+	
     nei=0;
     for(i=0;i<it->neigh->n;i++){ // Finds the nn of it, that is k 
         if(it->neigh->vtx[i]==k){
@@ -56,6 +57,18 @@
     km=it->neigh->vtx[neim];  // We located km and kp
     kp=it->neigh->vtx[neip];
 
+	//find lm and lp (triangles that is common with k and it)
+	for(i=0;i<it->tristar_no;i++){
+		if(it->tristar[i]->vertex[0]==k || it->tristar[i]->vertex[1]==k || it->tristar[i]->vertex[2]==k){
+			if(lm==NULL) lm=it->tristar[i];
+			else lp=it->tristar[i];
+		}
+	}
+
+	if(lm==NULL || lp==NULL) {
+		fatal("In bondflip, cannot determine lp and lm",999);
+	}
+
     if(km==NULL || kp==NULL){
         fatal("In bondflip, cannot determine km and kp!",999);
     }

--
Gitblit v1.9.3