From 919555150e5676cae7f7c471e4bdf30d563bcb12 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@fe.uni-lj.si> Date: Mon, 09 Jul 2012 09:36:07 +0000 Subject: [PATCH] Fixed centermass functon to move the vertices so cm is always 0 --- src/spherical_trisurf.c | 19 ++++++++++--------- src/frame.c | 7 +++++++ src/sh.c | 1 + 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/frame.c b/src/frame.c index 63a4f7b..b01c2d2 100644 --- a/src/frame.c +++ b/src/frame.c @@ -16,6 +16,13 @@ vesicle->cm[0]/=(ts_float)n; vesicle->cm[1]/=(ts_float)n; vesicle->cm[2]/=(ts_float)n; + + for(i=0;i<n;i++){ + vtx[i]->x-=vesicle->cm[0]; + vtx[i]->y-=vesicle->cm[1]; + vtx[i]->z-=vesicle->cm[2]; + } + return TS_SUCCESS; } diff --git a/src/sh.c b/src/sh.c index 5952d39..baeb8f9 100644 --- a/src/sh.c +++ b/src/sh.c @@ -238,6 +238,7 @@ ts_bool preparationSh(ts_vesicle *vesicle, ts_double r0){ //TODO: before calling or during the call calculate area of each triangle! Can //be also done after vertexmove and bondflip // +//DONE: in energy calculation! // ts_uint i,j; ts_vertex **vtx=vesicle->vlist->vtx; ts_vertex *cvtx; diff --git a/src/spherical_trisurf.c b/src/spherical_trisurf.c index f266c11..8ede5f4 100644 --- a/src/spherical_trisurf.c +++ b/src/spherical_trisurf.c @@ -32,6 +32,7 @@ vesicle->bending_rigidity=25.0; //fprintf(stderr,"xk=%f",vesicle->bending_rigidity); + centermass(vesicle); vesicle->sphHarmonics=sph_init(vesicle->vlist, 21); vesicle_volume(vesicle); @@ -43,21 +44,21 @@ -for(i=0;i<10000;i++){ - centermass(vesicle); +for(i=0;i<5;i++){ cell_occupation(vesicle); for(j=0;j<1000;j++){ single_timestep(vesicle); } -vesicle_volume(vesicle); -r0=getR0(vesicle); + centermass(vesicle); + vesicle_volume(vesicle); + r0=getR0(vesicle); -preparationSh(vesicle,r0); -calculateYlmi(vesicle); -calculateUlm(vesicle); + preparationSh(vesicle,r0); + calculateYlmi(vesicle); + calculateUlm(vesicle); -storeUlm2(vesicle); -saveAvgUlm2(vesicle); + storeUlm2(vesicle); + saveAvgUlm2(vesicle); write_vertex_xml_file(vesicle,i); fprintf(stderr, "Loop %d completed.\n",i+1); -- Gitblit v1.9.3