From aad5008716b9f53c40233a8d891bea82d1b3e5f3 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@fe.uni-lj.si>
Date: Wed, 18 May 2016 13:58:50 +0000
Subject: [PATCH] Improved tsmeasure. Found a nasty bug in trisurf regarding snapshot accuracy. Fixed it.

---
 src/io.c        |    6 +++---
 src/tsmeasure.c |   34 ++++++++++++++++------------------
 2 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/src/io.c b/src/io.c
index a280b14..c35d42b 100644
--- a/src/io.c
+++ b/src/io.c
@@ -862,13 +862,13 @@
 
     fprintf(fh,"</DataArray>\n</PointData>\n<CellData>\n</CellData>\n<Points>\n<DataArray type=\"Float64\" Name=\"Koordinate tock\" NumberOfComponents=\"3\" format=\"ascii\">\n");
 	for(i=0;i<vlist->n;i++){
-		fprintf(fh,"%e %e %e\n",vtx[i]->x,vtx[i]->y, vtx[i]->z);
+		fprintf(fh,"%.17e %.17e %.17e\n",vtx[i]->x,vtx[i]->y, vtx[i]->z);
 	}
 	//polymeres
 	if(poly){
 		for(i=0;i<vesicle->poly_list->n;i++){
 			for(j=0;j<vesicle->poly_list->poly[i]->vlist->n;j++){
-				fprintf(fh,"%e %e %e\n", vesicle->poly_list->poly[i]->vlist->vtx[j]->x,vesicle->poly_list->poly[i]->vlist->vtx[j]->y, vesicle->poly_list->poly[i]->vlist->vtx[j]->z );
+				fprintf(fh,"%.17e %.17e %.17e\n", vesicle->poly_list->poly[i]->vlist->vtx[j]->x,vesicle->poly_list->poly[i]->vlist->vtx[j]->y, vesicle->poly_list->poly[i]->vlist->vtx[j]->z );
 			}
 		}
 	}
@@ -876,7 +876,7 @@
 	if(fil){
 		for(i=0;i<vesicle->filament_list->n;i++){
 			for(j=0;j<vesicle->filament_list->poly[i]->vlist->n;j++){
-				fprintf(fh,"%e %e %e\n", vesicle->filament_list->poly[i]->vlist->vtx[j]->x,vesicle->filament_list->poly[i]->vlist->vtx[j]->y, vesicle->filament_list->poly[i]->vlist->vtx[j]->z );
+				fprintf(fh,"%.17e %.17e %.17e\n", vesicle->filament_list->poly[i]->vlist->vtx[j]->x,vesicle->filament_list->poly[i]->vlist->vtx[j]->y, vesicle->filament_list->poly[i]->vlist->vtx[j]->z );
 			}
 		}
 	}
diff --git a/src/tsmeasure.c b/src/tsmeasure.c
index aa03aa1..394f42a 100644
--- a/src/tsmeasure.c
+++ b/src/tsmeasure.c
@@ -40,7 +40,7 @@
 	calculateUlmComplex(vesicle);
 	ts_int i,j;
 	for(i=0;i<vesicle->sphHarmonics->l;i++){
-    		for(j=0;j<2*i+1;j++){
+    		for(j=i;j<2*i+1;j++){
 			printf("%e ", gsl_complex_abs2(vesicle->sphHarmonics->ulmComplex[i][j]));
     		}
 	}
@@ -51,18 +51,19 @@
 int main(){
 	ts_vesicle *vesicle;
 	ts_char *i,*j;
-	ts_uint tstep;
+	ts_uint tstep,n;
     	ts_char *number;
+	struct dirent **list;
+	int count;
 	ts_fprintf(stdout,"TRISURF-NG v. %s, compiled on: %s %s.\n", TS_VERSION, __DATE__, __TIME__);
-	ts_fprintf(stdout,"Programming done by: Samo Penic and Miha Fosnaric\n");
-	ts_fprintf(stdout,"Released under terms of GPLv3\n");
-	ts_fprintf(stdout,"Starting program...\n\n");
-	DIR *dir = opendir(".");
-	if(dir){
+	count=scandir(".",&list,0,alphasort);
+	if(count<0){
+		fatal("Error, cannot open directory.",1);
+	}
+        tstep=0;
+	for(n=0;n<count;n++){
 		struct dirent *ent;
-        	tstep=0;
-		while((ent = readdir(dir)) != NULL)
-		{
+		ent=list[n];	
             	i=rindex(ent->d_name,'.');
             	if(i==NULL) continue;
             	if(strcmp(i+1,"vtu")==0){
@@ -71,19 +72,16 @@
                     number=strndup(j+1,j-i); 
 			quiet=1;
                     ts_fprintf(stdout,"timestep: %u filename: %s\n",atoi(number),ent->d_name);
+			printf("%u ",atoi(number));
 			vesicle=restoreVesicle(ent->d_name);
 			vesicle_calculate_ulm2(vesicle);
                     	tstep++;
 			//vesicle_free(vesicle);
                     free(number);
-            	}  
+            	}
+		free(ent);  
 		}
-	}
-	free(dir);
-
-
-
-
-return 0;
+	free(list);
+	return 0;
 }
 

--
Gitblit v1.9.3