From 7ec6fb63c690080d0624c7bf138d0fd84fe7664e Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Tue, 15 May 2018 16:11:14 +0000 Subject: [PATCH] First working version, not debugged and energy assigned to vesicles on timesteps --- src/vertexmove.c | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/vertexmove.c b/src/vertexmove.c index 2517f69..401dddf 100644 --- a/src/vertexmove.c +++ b/src/vertexmove.c @@ -21,7 +21,7 @@ ts_double dist; ts_bool retval; ts_uint cellidx; - ts_double delta_energy, delta_energy_cv,oenergy,dvol=0.0, darea=0.0; + ts_double delta_energy, delta_energy_cv,oenergy,dvol=0.0, darea=0.0, dstretchenergy=0.0; ts_double costheta,sintheta,phi,r; //This will hold all the information of vtx and its neighbours ts_vertex backupvtx[20], *constvol_vtx_moved=NULL, *constvol_vtx_backup=NULL; @@ -113,7 +113,10 @@ for(i=0;i<vtx->tristar_no;i++) darea-=vtx->tristar[i]->area; } - + //stretching energy 1 of 3 + if(vesicle->tape->stretchswitch==1){ + for(i=0;i<vtx->tristar_no;i++) dstretchenergy-=vtx->tristar[i]->energy/3.0; + } delta_energy=0; // vesicle_volume(vesicle); @@ -191,6 +194,17 @@ } /* Vertices with spontaneous curvature may have spontaneous force perpendicular to the surface of the vesicle. additional delta energy is calculated in this function */ delta_energy+=direct_force_energy(vesicle,vtx,backupvtx); + + //stretching energy 2 of 3 + if(vesicle->tape->stretchswitch==1){ + for(i=0;i<vtx->tristar_no;i++){ + stretchenergy(vesicle, vtx->tristar[i]); + dstretchenergy+=vtx->tristar[i]->energy/3.0; + } + } + + delta_energy+=dstretchenergy; + /* No poly-bond energy for now! if(vtx->grafted_poly!=NULL){ delta_energy+= @@ -221,6 +235,12 @@ //update the normals of triangles that share bead i. for(i=0;i<vtx->tristar_no;i++) triangle_normal_vector(vtx->tristar[i]); + //stretching energy 3 of 3 + if(vesicle->tape->stretchswitch==1){ + for(i=0;i<vtx->tristar_no;i++){ + stretchenergy(vesicle,vtx->tristar[i]); + } + } // fprintf(stderr, "before vtx(x,y,z)=%e,%e,%e\n",constvol_vtx_moved->x, constvol_vtx_moved->y, constvol_vtx_moved->z); if(vesicle->tape->constvolswitch == 1){ -- Gitblit v1.9.3