From bd826de2f539f2e48c8c01d2d7f9f34c7e97104a Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Fri, 13 May 2016 07:43:27 +0000
Subject: [PATCH] Fix in trisurf output, inhibiting print of successful reconstruction. Multiple fixes and improvements in python module. Added symlinking of tapes into the running directories and dumping tapes from snapshots into tape files.

---
 src/spherical_trisurf.c |   68 +++++++++++++++++++--------------
 1 files changed, 39 insertions(+), 29 deletions(-)

diff --git a/src/spherical_trisurf.c b/src/spherical_trisurf.c
index e3e1986..06a84f4 100644
--- a/src/spherical_trisurf.c
+++ b/src/spherical_trisurf.c
@@ -1,3 +1,4 @@
+/* vim: set ts=4 sts=4 sw=4 noet : */
 #include<stdio.h>
 #include<math.h>
 #include "general.h"
@@ -19,11 +20,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;
@@ -33,6 +37,21 @@
 //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);
@@ -42,14 +61,26 @@
 calculateYlmi(vesicle);
 calculateUlm(vesicle);
 
-
-
-for(i=0;i<1;i++){
+//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);
 	}	
 	centermass(vesicle);
+	fprintf(stderr, "Preloop %d completed.\n",i+1);
+}
+
+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);
 
@@ -61,8 +92,10 @@
     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);
@@ -72,26 +105,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