From 06afc729f9061c1cfa14c78728d61d518324c2f0 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Wed, 04 May 2022 05:46:43 +0000 Subject: [PATCH] Moved all global variables to separate file and defined extern keyword where appropriate --- src/vertexmove.c | 28 +++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 1 deletions(-) diff --git a/src/vertexmove.c b/src/vertexmove.c index 45a4b33..406ec9e 100644 --- a/src/vertexmove.c +++ b/src/vertexmove.c @@ -15,6 +15,7 @@ #include "vertexmove.h" #include <string.h> #include "constvol.h" +#include "globals.h" ts_bool single_verticle_timestep(ts_vesicle *vesicle,ts_vertex *vtx,ts_double *rn){ ts_uint i; @@ -88,6 +89,14 @@ } } + + // plane confinement check whether the new position of vertex will be out of bounds + if(vesicle->tape->plane_confinement_switch){ + if(vtx->z>vesicle->confinement_plane.z_max || vtx->z<vesicle->confinement_plane.z_min){ + vtx=memcpy((void *)vtx,(void *)&backupvtx[0],sizeof(ts_vertex)); + return TS_FAIL; + } + } //#undef SQ //self avoidance check with distant vertices cellidx=vertex_self_avoidance(vesicle, vtx); @@ -118,7 +127,8 @@ for(i=0;i<vtx->tristar_no;i++) dstretchenergy-=vtx->tristar[i]->energy; } delta_energy=0; - + + // vesicle_volume(vesicle); // fprintf(stderr,"Volume in the beginning=%1.16e\n", vesicle->volume); @@ -212,6 +222,22 @@ pow(sqrt(vtx_distance_sq(&backupvtx[0], vtx->grafted_poly->vlist->vtx[0])-1),2)) *vtx->grafted_poly->k; } */ + +// plane confinement energy due to compressing force + if(vesicle->tape->plane_confinement_switch){ + if(vesicle->confinement_plane.force_switch){ + //substract old energy + if(abs(vesicle->tape->plane_d/2.0-vesicle->confinement_plane.z_max)>1e-10) { + delta_energy-=vesicle->tape->plane_F / pow(vesicle->confinement_plane.z_max-backupvtx[0].z,2); + delta_energy+=vesicle->tape->plane_F / pow(vesicle->confinement_plane.z_max-vtx->z,2); + } + if(abs(-vesicle->tape->plane_d/2.0-vesicle->confinement_plane.z_min)>1e-10) { + delta_energy-=vesicle->tape->plane_F / pow(vesicle->confinement_plane.z_min-backupvtx[0].z,2); + delta_energy+=vesicle->tape->plane_F / pow(vesicle->confinement_plane.z_min-vtx->z,2); + } + } + } + // fprintf(stderr, "DE=%f\n",delta_energy); //MONTE CARLOOOOOOOO // if(vtx->c!=0.0) printf("DE=%f\n",delta_energy); -- Gitblit v1.9.3