From 620ba72765eda244ca3f3806b8ad709929e74b3c Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Thu, 21 Jun 2018 10:50:23 +0000 Subject: [PATCH] Isak's proposal for stretching energy calculation, take 1 --- src/bondflip.c | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/bondflip.c b/src/bondflip.c index 66c40f7..d48413f 100644 --- a/src/bondflip.c +++ b/src/bondflip.c @@ -40,6 +40,7 @@ ts_double delta_energy_cv; ts_vertex *constvol_vtx_moved, *constvol_vtx_backup; ts_bool retval; + ts_double temp_area=0.0; if(it->neigh_no< 3) return TS_FAIL; if(k->neigh_no< 3) return TS_FAIL; @@ -176,7 +177,9 @@ /* vesicle_volume(vesicle); fprintf(stderr,"Volume in the beginning=%1.16e\n", vesicle->volume); */ - + if(vesicle->tape->stretchswitch==1){ + temp_area=vesicle->area-lm->area-lp->area; + } /* fix data structure for flipped bond */ ts_flip_bond(k,it,km,kp, bond,lm, lp, lm2, lp1, vesicle->tape->w); @@ -189,6 +192,15 @@ delta_energy+=it->xk* it->energy; delta_energy+=bond->energy; /* attraction with neighboring vertices, that have spontaneous curvature */ //Neigbours of k, it, km, kp don't change its energy. + if(vesicle->tape->stretchswitch==1){ +/* oldenergy+=lm->energy+lp->energy; + stretchenergy(vesicle,lm); + stretchenergy(vesicle,lp); + delta_energy+=lm->energy+lp->energy; + */ + temp_area=temp_area+lm->area+lp->area; + delta_energy+=stretchenergy2(temp_area,vesicle->tlist->a0*vesicle->tlist->n)-stretchenergy2(vesicle->area,vesicle->tlist->a0*vesicle->tlist->n); + } delta_energy-=oldenergy; if(vesicle->pswitch == 1 || vesicle->tape->constvolswitch>0){ @@ -334,7 +346,11 @@ // fprintf(stderr,"Restoration complete!!!\n"); // vesicle_volume(vesicle); // fprintf(stderr,"Volume after fail=%1.16e\n", vesicle->volume); - +/* if(vesicle->tape->stretchswitch==1){ + stretchenergy(vesicle,lm); + stretchenergy(vesicle,lp); + } +*/ return TS_FAIL; } } @@ -349,6 +365,10 @@ if(vesicle->tape->constareaswitch==2){ vesicle->area+=darea; } + if(vesicle->tape->stretchswitch==1){ + vesicle->area=temp_area; + } + // delete all backups for(i=0;i<4;i++){ free(bck_vtx[i]->neigh); -- Gitblit v1.9.3