From efb615c065452b58799e32735647b0559698163f Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Mon, 19 Apr 2021 13:42:52 +0000 Subject: [PATCH] Changes in code after some debuggin --- src/vertexmove.c | 28 +++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 1 deletions(-) diff --git a/src/vertexmove.c b/src/vertexmove.c index 45a4b33..c4ccb15 100644 --- a/src/vertexmove.c +++ b/src/vertexmove.c @@ -88,6 +88,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 +126,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,9 +221,26 @@ 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); +//delta_energy=1e15; if(delta_energy>=0){ #ifdef TS_DOUBLE_DOUBLE if(exp(-delta_energy)< drand48()) -- Gitblit v1.9.3