From 8c3c293aeaf5e585db13de5644d813253fac7f06 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Sat, 07 Jan 2017 13:30:29 +0000
Subject: [PATCH] Changed analysis; written example in nir_log

---
 nir_log          |  115 ++++++++++++++++++++++++++++++++++++++
 trisurf/tsmgr.py |   11 ++-
 2 files changed, 123 insertions(+), 3 deletions(-)

diff --git a/nir_log b/nir_log
new file mode 100644
index 0000000..69b7c71
--- /dev/null
+++ b/nir_log
@@ -0,0 +1,115 @@
+#!/usr/bin/python3
+from trisurf import tsmgr
+from trisurf import trisurf
+from trisurf import statistics
+
+print("Running trisurf version "+ tsmgr.getTrisurfVersion())
+Runs=[]
+Nshell=25
+
+#--------- F = 0 ------------
+#kapa_list=[10,20,30,40,50]
+#p=[5,10,15,20,25]
+
+#N=5*Nshell**2+2
+#Nc_list=[int(N*pp/100)  for pp in p]
+
+#for kapa in kapa_list:
+#	for Nc in Nc_list:
+#		run=trisurf.Runner(tape='tape_Nc'+str(Nc)+'_k'+str(kapa))
+#		run.setMaindir(("N", "k", "V", "_Nc", "_c","_w"),  ("nshell","xk0","constvolswitch","number_of_vertices_with_c0","c0", "w"))
+#		run.setSubdir("run0")
+#		Runs.append(run)
+
+#----------------------------
+#--------- F = 0 ------------
+kapa_list=[15,16,17,18,19,20,21,22]
+#p=[5,7.5,10,12.5]
+p=[8,8.5,9,9.5,10.5,11,11.5,12]
+
+N=5*Nshell**2+2
+Nc_list=[int(N*pp/100)  for pp in p]
+#print(Nc_list)
+
+#spremenil sem, ker nimam vseh podatkov!!!
+kapa_list=[15,16,18,19,20,21,21,22]
+Nc_list=[156,234,312,390]
+
+for kapa in kapa_list:
+	for Nc in Nc_list:
+		#print('tape_Nc'+str(Nc)+'_k'+str(kapa))
+		run=trisurf.Runner(tape='tape_Nc'+str(Nc)+'_k'+str(kapa))
+		run.setMaindir(("N", "k", "V", "_Nc", "_c","_w"),  ("nshell","xk0","constvolswitch","number_of_vertices_with_c0","c0", "w"))
+		run.setSubdir("run0")
+		Runs.append(run)
+
+#----------------------------
+
+#kapa_list=[20,30]
+#p=[10]
+#
+#N=5*Nshell**2+2
+#Nc_list=[int(N*pp/100)  for pp in p]
+#
+#for kapa in kapa_list:
+#	for Nc in Nc_list:
+#		run=trisurf.Runner(snapshot='is_from_N25k'+str(kapa)+'V0_Nc312_c1.0.vtu')
+#		run.setMaindir(("N", "k", "V", "_Nc", "_c","_w","_F"),  ("nshell","xk0","constvolswitch","number_of_vertices_with_c0","c0", "w","F"))
+#		run.setSubdir("run0")
+#
+#		Runs.append(run)
+
+#----------------------------
+
+
+
+#Nov format:
+#hosts=({'name':'Hestia','address':'127.0.0.1', 'runs':Runs,  'username':'samo'},)
+
+def analyze(run, **kwargs):
+	host=kwargs.get('host', None)
+	print("Demo analysis")
+	print("Analysis on host "+host['name']+" for run "+run.Dir.fullpath()+" completed")
+
+def plothbar(run, **kwargs):
+	import matplotlib.pyplot as plt
+
+	def smooth(y, box_pts):
+		import numpy as np
+		box = np.ones(box_pts)/box_pts
+		y_smooth = np.convolve(y, box, mode='same')
+		return y_smooth
+	table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable()
+	plt.plot(table['hbar'], '.')
+	plt.title(run.Dir.fullpath())
+	plt.xlabel('Iteration')
+	plt.ylabel('hbar')
+	smooth_window=10
+	smoothed=smooth(table['hbar'],smooth_window)
+	plt.plot(tuple(range(int(smooth_window/2),len(smoothed)-int(smooth_window/2))),smoothed[int(smooth_window/2):-int(smooth_window/2)])
+	plt.show()
+	print
+	#if return False or no return statement, the analysis will continue with next running instance in the list. if return True, the analysis will stop after this run.
+	return False
+
+def plotrunningavg(run, **kwargs):
+	import matplotlib.pyplot as plt
+	table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable()
+	def running_avg(col):
+		import numpy as np
+		avg=[]	
+		for i in range(0,len(col)):
+			avg.append(np.average(col[:-i]))
+		return avg
+	ra=running_avg(table['hbar'])
+	plt.plot(ra)
+	plt.title('Running average')
+	plt.ylabel('1/n sum_i=niter^n(hbar_i)')
+	plt.xlabel('n')
+	plt.show()
+
+#start manager with configured runs
+tsmgr.start(Runs, analyses={'analyze1':analyze, 'plotrunningavg':plotrunningavg, 'plothbar':plothbar})
+
+#statistics.combine(Runs)
+#statistics.combine([Runs[1],Runs[2]])
diff --git a/trisurf/tsmgr.py b/trisurf/tsmgr.py
index ffe9278..2c83881 100644
--- a/trisurf/tsmgr.py
+++ b/trisurf/tsmgr.py
@@ -201,7 +201,12 @@
 				print("Analysis '"+anal+"' is not known. Available analyses: "+", ".join(a_dict.keys())+".")
 				exit(0)
 		for anal in analysis:
-			a_dict[anal](host['runs'][i-1],host=host)
+			retval=a_dict[anal](host['runs'][i-1],host=host)
+			#try:
+			if(retval):
+				exit(0)
+			#except:
+			#	pass
 
 
 def perform_action(args,host,**kwargs):
@@ -277,9 +282,9 @@
 	for host in hosts:
 		if host['name'] == socket.gethostname():
 			if(args['html']):
-				print("Host <font color='orange'>"+host['name']+"</font> reports the following:")
+				print("Host <font color='orange'>"+host['name']+"</font> reports:")
 			else:
-				print("Host "+bcolors.WARNING+host['name']+bcolors.ENDC+" reports the following:")
+				print("Host "+bcolors.WARNING+host['name']+bcolors.ENDC+" reports:")
 			perform_action(args,host, analyses=analyses)
 		elif not args['local_only']:
 			output=host['_conn'].execute('python3 ./remote_control.py -x '+" ".join(argv))

--
Gitblit v1.9.3