Trisurf Monte Carlo simulator
Samo Penic
2016-07-09 eb706bf094cb94104536cd1bb827828db672df5d
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: