From ded11ede7e9eb11c216d35d61ab9331e697f47bc Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Sat, 07 Dec 2013 09:09:37 +0000 Subject: [PATCH] commiting before checking out onother branch --- src/timestep.c | 6 +++--- src/vertex.c | 10 +++------- src/bondflip.c | 19 ++++++++++++++++--- 3 files changed, 22 insertions(+), 13 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); } diff --git a/src/timestep.c b/src/timestep.c index 693575a..9e5e61c 100644 --- a/src/timestep.c +++ b/src/timestep.c @@ -30,7 +30,7 @@ ts_bool single_timestep(ts_vesicle *vesicle){ ts_bool retval; ts_double rnvec[3]; - ts_uint i; //b; + ts_uint i, b; for(i=0;i<vesicle->vlist->n;i++){ rnvec[0]=drand48(); rnvec[1]=drand48(); @@ -45,10 +45,10 @@ rnvec[1]=drand48(); rnvec[2]=drand48(); */ -// b=rand() % vesicle->blist->n; + b=rand() % vesicle->blist->n; //find a bond and return a pointer to a bond... //call single_bondflip_timestep... - // retval=single_bondflip_timestep(vesicle,vesicle->blist->bond[b],rnvec); + retval=single_bondflip_timestep(vesicle,vesicle->blist->bond[b],rnvec); // if(retval==TS_SUCCESS) cnt++; } // printf("Bondflip success rate in one sweep: %d/%d=%e\n", cnt,vesicle->blist->n,(double)cnt/(double)vesicle->blist->n); diff --git a/src/vertex.c b/src/vertex.c index ffd5f7d..023e6fc 100644 --- a/src/vertex.c +++ b/src/vertex.c @@ -26,18 +26,14 @@ /* initialize Ylm for spherical hamonics DONE in sh.c */ } vlist->n=N; - vlist->list_size=TS_VLIST_CHUNK; //TODO: can be buggy in some cases, when N>0 and we want to delete some vertices. - return vlist; + vlist->list_size=TS_VLIST_CHUNK; //TODO: can be buggy in some cases, when N>0 and we want to delete some vertices. + return vlist; } ts_bool vertex_list_add_vtx(ts_vertex_list *vlist, ts_vertex *vtx){ #ifdef DEBUG - if(vtx==NULL) - err("VTX is null"); - if(vlist==NULL) err("VLIST is null"); - if(vtx==NULL || vlist==NULL) return TS_FAIL; #endif @@ -48,7 +44,6 @@ } vlist->list_size+=TS_VLIST_CHUNK; } -// printf("Test %u (max %u)!\n", vlist->n, vlist->list_size); vlist->vtx[vlist->n]=vtx; vlist->n++; return TS_SUCCESS; @@ -112,6 +107,7 @@ return TS_SUCCESS; } + ts_bool vtx_add_cneighbour(ts_bond_list *blist, ts_vertex *vtx1, ts_vertex *vtx2){ ts_bool retval; retval=vtx_add_neighbour(vtx1, vtx2); -- Gitblit v1.9.3