From 8c1bb171977954d573a50d03308c9221d4c0ee8e Mon Sep 17 00:00:00 2001
From: Samo Penic <samo@altea>
Date: Tue, 16 Feb 2016 19:46:14 +0000
Subject: [PATCH] Starting with restore. Not working yet. Changes in main for debugging only

---
 src/spherical_trisurf.c |   84 +++++++++++++++++++++++------------------
 1 files changed, 47 insertions(+), 37 deletions(-)

diff --git a/src/spherical_trisurf.c b/src/spherical_trisurf.c
index f266c11..0669981 100644
--- a/src/spherical_trisurf.c
+++ b/src/spherical_trisurf.c
@@ -19,11 +19,14 @@
 */
 ts_bool saveAvgUlm2(ts_vesicle *vesicle);
 int main(int argv, char *argc[]){
-ts_uint i,j;
+ts_uint i,j,k;
 ts_vesicle *vesicle;
 ts_double r0;
 vesicle=initial_distribution_dipyramid(17,60,60,60,0.15);
 //parsetape(vesicle,&i);
+
+//similar to nmax in fortran code
+ts_uint nmax;
 
 //these four must come from parsetype!
 vesicle->dmax=1.67*1.67;
@@ -32,6 +35,22 @@
 vesicle->bending_rigidity=25.0;
 //fprintf(stderr,"xk=%f",vesicle->bending_rigidity);
 
+	centermass(vesicle);
+cell_occupation(vesicle);
+
+//test if the structure is internally organized into cells correctly 
+ts_uint cind;
+for(i=0;i<vesicle->vlist->n;i++){
+	cind=vertex_self_avoidance(vesicle, vesicle->vlist->vtx[i]);
+
+	if(vesicle->clist->cell[cind]==vesicle->vlist->vtx[i]->cell){
+		//fprintf(stdout,"(T) Idx match!\n");
+	} else {
+		fprintf(stderr,"(T) ***** Idx don't match!\n");
+
+	}
+}
+//end test
 vesicle->sphHarmonics=sph_init(vesicle->vlist, 21);
 
 vesicle_volume(vesicle);
@@ -41,27 +60,41 @@
 calculateYlmi(vesicle);
 calculateUlm(vesicle);
 
-
-
-for(i=0;i<10000;i++){
-	centermass(vesicle);
+//preloop:
+ts_double vmsr, bfsr;
+for(i=0;i<1000;i++){
 	cell_occupation(vesicle);
 	for(j=0;j<1000;j++){
-		single_timestep(vesicle);
+		single_timestep(vesicle, &vmsr, &bfsr);
 	}	
-vesicle_volume(vesicle);
-r0=getR0(vesicle);
+	centermass(vesicle);
+	fprintf(stderr, "Preloop %d completed.\n",i+1);
+}
 
-preparationSh(vesicle,r0);
-calculateYlmi(vesicle);
-calculateUlm(vesicle);
+nmax=1000;
+for(i=0;i<nmax;i++){
+	for(j=0;j<200;j++){
+		cell_occupation(vesicle);
+		for(k=0;k<5;k++){
+		single_timestep(vesicle, &vmsr, &bfsr);
+		}
+		centermass(vesicle);
+	}	
+    vesicle_volume(vesicle);
+    r0=getR0(vesicle);
 
-storeUlm2(vesicle);
-saveAvgUlm2(vesicle);
+    preparationSh(vesicle,r0);
+    calculateYlmi(vesicle);
+    calculateUlm(vesicle);
+
+    storeUlm2(vesicle);
+    saveAvgUlm2(vesicle);
 
 	write_vertex_xml_file(vesicle,i);
-	fprintf(stderr, "Loop %d completed.\n",i+1);
+	fprintf(stderr, "Loop %d out of %d completed.\n",i+1,nmax);
+
 }
+
 write_master_xml_file("test.pvd");
 write_dout_fcompat_file(vesicle,"dout");
 vesicle_free(vesicle);
@@ -71,26 +104,3 @@
 
 
 
-ts_bool saveAvgUlm2(ts_vesicle *vesicle){
-
-	FILE *fh;
-	
-	fh=fopen("sph2out.dat", "w");
-	if(fh==NULL){
-		err("Cannot open file %s for writing");
-		return TS_FAIL;
-	}
-
-	ts_spharm *sph=vesicle->sphHarmonics;
-	ts_int i,j;
-	fprintf(fh,"l,\tm,\tulm^2avg\n");
-	for(i=0;i<sph->l;i++){
-    		for(j=0;j<2*i+1;j++){
-		fprintf(fh,"%d,\t%d,\t%e\n", i, j-i, sph->sumUlm2[i][j]/(ts_double)sph->N);
-
-    		}
-    fprintf(fh,"\n");
-	}
-	fclose(fh);
-	return TS_SUCCESS;
-}

--
Gitblit v1.9.3