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