From 459ff94855b2659de14ac2ac902b9658d28e19d5 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo@CAE-linux.(none)> Date: Mon, 21 Apr 2014 11:11:37 +0000 Subject: [PATCH] Added complex spherical harmonics. --- src/vertexmove.c | 25 +++++++++++++++++++------ 1 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/vertexmove.c b/src/vertexmove.c index da8e70f..6bc730e 100644 --- a/src/vertexmove.c +++ b/src/vertexmove.c @@ -67,11 +67,18 @@ } } - //self avoidance check with distant vertices - cellidx=vertex_self_avoidance(vesicle, vtx); - //check occupation number - retval=cell_occupation_number_and_internal_proximity(vesicle->clist,cellidx,vtx); - +// TODO: Maybe faster if checks only nucleus-neighboring cells +// Nucleus penetration check: + if (vtx->x*vtx->x + vtx->y*vtx->y + vtx->z*vtx->z < vesicle->R_nucleus){ + vtx=memcpy((void *)vtx,(void *)&backupvtx[0],sizeof(ts_vertex)); + return TS_FAIL; + } + +//self avoidance check with distant vertices + cellidx=vertex_self_avoidance(vesicle, vtx); + //check occupation number + retval=cell_occupation_number_and_internal_proximity(vesicle->clist,cellidx,vtx); + if(retval==TS_FAIL){ vtx=memcpy((void *)vtx,(void *)&backupvtx[0],sizeof(ts_vertex)); return TS_FAIL; @@ -291,12 +298,18 @@ } } +// TODO: Maybe faster if checks only nucleus-neighboring cells +// Nucleus penetration check: + if (vtx->x*vtx->x + vtx->y*vtx->y + vtx->z*vtx->z < vesicle->R_nucleus){ + vtx=memcpy((void *)vtx,(void *)&backupvtx,sizeof(ts_vertex)); + return TS_FAIL; + } + //self avoidance check with distant vertices cellidx=vertex_self_avoidance(vesicle, vtx); //check occupation number retval=cell_occupation_number_and_internal_proximity(vesicle->clist,cellidx,vtx); - if(retval==TS_FAIL){ vtx=memcpy((void *)vtx,(void *)&backupvtx,sizeof(ts_vertex)); return TS_FAIL; -- Gitblit v1.9.3