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