From 22a18c527943300122e3117d5d81877c9ab6fa04 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Sun, 03 Jul 2016 19:06:22 +0000
Subject: [PATCH] Stated to write tspoststat.c

---
 src/Makefile.am  |    5 ++
 src/tspoststat.c |  107 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/tsmeasure.c  |    1 
 3 files changed, 111 insertions(+), 2 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index fb2c46b..573b8b0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,4 +1,4 @@
-bin_PROGRAMS = trisurf tsmeasure
+bin_PROGRAMS = trisurf tsmeasure tspoststat
 trisurf_SOURCES = general.c vertex.c bond.c triangle.c cell.c vesicle.c initial_distribution.c io.c dumpstate.c frame.c energy.c timestep.c vertexmove.c bondflip.c main.c poly.c stats.c sh.c shcomplex.c constvol.c snapshot.c restore.c
 GITVERSION:=$(shell git --no-pager describe --tags --always --dirty)
 AM_CFLAGS = -Wall -Werror -DTS_VERSION=\"$(GITVERSION)\" -fgnu89-inline
@@ -20,5 +20,8 @@
 
 tsmeasure_SOURCES = general.c vertex.c bond.c triangle.c cell.c vesicle.c initial_distribution.c io.c dumpstate.c frame.c energy.c timestep.c vertexmove.c bondflip.c tsmeasure.c poly.c stats.c sh.c shcomplex.c constvol.c snapshot.c restore.c
 tsmeasure_LDADD = ${libcurl_LIBS} ${libxml2_LIBS}
+
+tspoststat_SOURCES = general.c vertex.c bond.c triangle.c cell.c vesicle.c initial_distribution.c io.c dumpstate.c frame.c energy.c timestep.c vertexmove.c bondflip.c tspoststat.c poly.c stats.c sh.c shcomplex.c constvol.c snapshot.c restore.c
+tspoststat_LDADD = ${libcurl_LIBS} ${libxml2_LIBS}
 #gitversion.c: .git/HEAD .git/index
 #    echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@
diff --git a/src/tsmeasure.c b/src/tsmeasure.c
index 4ed39eb..beabc61 100644
--- a/src/tsmeasure.c
+++ b/src/tsmeasure.c
@@ -84,7 +84,6 @@
 			tape_free(vesicle->tape);
 			vesicle_free(vesicle);
             	}
-		free(ent);  
 		}
 	for (n = 0; n < count; n++)
   	{
diff --git a/src/tspoststat.c b/src/tspoststat.c
new file mode 100644
index 0000000..4a318e2
--- /dev/null
+++ b/src/tspoststat.c
@@ -0,0 +1,107 @@
+/* vim: set ts=4 sts=4 sw=4 noet : */
+#include<stdio.h>
+#include<math.h>
+#include<stdlib.h>
+#include "general.h"
+//#include "vertex.h"
+//#include "bond.h"
+//#include "triangle.h"
+//#include "cell.h"
+#include "vesicle.h"
+#include "io.h"
+//#include "initial_distribution.h"
+//#include "frame.h"
+//#include "timestep.h"
+//#include "poly.h"
+#include "stats.h"
+#include "sh.h"
+#include "shcomplex.h"
+#include "dumpstate.h"
+#include "restore.h"
+#include <string.h>
+#include <getopt.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <errno.h>
+#include <snapshot.h>
+#include<gsl/gsl_complex.h>
+#include<gsl/gsl_complex_math.h>
+
+
+ts_vesicle *restoreVesicle(char *filename){
+	ts_vesicle *vesicle = parseDump(filename);
+	return vesicle;
+}
+
+void vesicle_calculate_ulm2(ts_vesicle *vesicle){
+	//complex_sph_free(vesicle->sphHarmonics);
+
+	//vesicle->sphHarmonics=complex_sph_init(vesicle->vlist,21);
+	vesicle_volume(vesicle);
+	preparationSh(vesicle,getR0(vesicle));
+	calculateUlmComplex(vesicle);
+	ts_int i,j;
+	for(i=0;i<vesicle->sphHarmonics->l;i++){
+    		for(j=i;j<2*i+1;j++){
+			printf("%e ", gsl_complex_abs2(vesicle->sphHarmonics->ulmComplex[i][j]));
+    		}
+	}
+		printf("\n");
+
+}
+
+int main(){
+	ts_vesicle *vesicle;
+	ts_char *i,*j;
+	ts_uint tstep,n;
+    	ts_char *number;
+	struct dirent **list;
+	ts_double l1,l2,l3;
+	int count;
+	ts_fprintf(stderr,"TRISURF-NG v. %s, compiled on: %s %s.\n", TS_VERSION, __DATE__, __TIME__);
+
+	fprintf(stdout, "OuterLoop Volume Area lamdba1 lambda2 lambda3 Nb/Ncb\n");
+
+
+	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;
+		ent=list[n];	
+            	i=rindex(ent->d_name,'.');
+            	if(i==NULL) {
+				continue;
+		}
+            	if(strcmp(i+1,"vtu")==0){
+                    j=rindex(ent->d_name,'_');
+                    if(j==NULL) continue;
+                    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);
+			vesicle_volume(vesicle);
+			vesicle_area(vesicle);
+			gyration_eigen(vesicle,&l1,&l2,&l3);
+			fprintf(stdout,"%d %.17e %.17e %.17e %.17e %.17e\n",atoi(number),vesicle->volume, vesicle->area,l1,l2,l3),
+                    	tstep++;
+
+                    free(number);
+			tape_free(vesicle->tape);
+			vesicle_free(vesicle);
+            	}
+		}
+	for (n = 0; n < count; n++)
+  	{
+  		free(list[n]);
+  	}
+	
+	free(list);
+	return 0;
+}
+

--
Gitblit v1.9.3