From e2db4a0e170272935ccc8532bc245938aadc36fc Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Wed, 13 Jul 2016 21:29:09 +0000
Subject: [PATCH] Improved the code, still breaks

---
 python/trisurf/trisurf.py |   42 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/python/trisurf/trisurf.py b/python/trisurf/trisurf.py
index 46a3624..c175301 100644
--- a/python/trisurf/trisurf.py
+++ b/python/trisurf/trisurf.py
@@ -2,7 +2,7 @@
 import xml.etree.ElementTree as ET
 import base64
 import zlib
-import io
+import sys,io
 import os
 from itertools import islice
 import mmap
@@ -212,8 +212,40 @@
 			lines=0
 			f.close()
 		return lines
-		
+
+	def tail(self,filename,n=2):
+		with open(filename,'r') as myfile:
+			lines=myfile.readlines()
+		return [lines[len(lines)-2].replace('\n',''),lines[len(lines)-1].replace('\n','')]
+
 	def read(self):
+		try:
+			lines=self.tail(self.fullname)
+		except:
+			return(False)
+		if len(lines)<2:
+			return(False)
+		#print (line)
+		fields=shlex.split(lines[0])
+		epoch1=fields[0]
+		n1=fields[1]
+		
+		fields=shlex.split(lines[1])
+		epoch2=fields[0]
+		n2=fields[1]
+		try:
+			self.dT=int(epoch2)-int(epoch1)
+			self.last=n2
+			#print(epoch1)
+			#print(epoch2)
+			#print(self.dT)
+			#print(self.last)
+			self.startDate=os.path.getmtime(os.path.join(self.path,'.lock'))
+		except:
+			return(False)
+		return(True)
+
+	def read_old(self):
 		'''
 		Method read() reads the statistics if it exists. It sets local variable dT storing the time differential between two intervals of simulation (outer loops). It also stores last simulation loop and the start of the run.
 		'''
@@ -318,7 +350,7 @@
 		return int(status)
 
 	def isCompleted(self):
-		if (int(self.tape.getValue("iterations"))==self.getLastIteration()+1):
+		if int(self.tape.getValue("iterations"))+int(self.tape.getValue("inititer"))==self.getLastIteration()+1:
 			return True
 		else:
 			return False
@@ -411,6 +443,8 @@
 		for p,v in zip(prefix,variables):
 			if(v=="xk0"):
 				tv=str(round(float(self.tape.config[v])))
+				if sys.version_info<(3,0):
+					tv=str(int(float(self.tape.config[v])))
 			else:
 				tv=self.tape.config[v]
 			maindir=maindir+p+tv
@@ -461,7 +495,7 @@
 
 
 	def getLastVTU(self):
-		vtuidx=self.getLastIteration()
+		vtuidx=self.getLastIteration()-int(self.tape.getValue("inititer"))
 		if vtuidx<0:
 			return None
 		else:

--
Gitblit v1.9.3