Trisurf Monte Carlo simulator
Samo Penic
2016-05-16 56ba2f3107066b9a449b83eba64cab8e43cae9f0
python/trisurf/trisurf.py
@@ -287,7 +287,7 @@
      version=root.find('trisurfversion')
      self.tape=Tape()
      self.tape.setTape(tapetxt.text)
   def getPID(self):
      self.Dir=Directory(maindir=self.maindir,simdir=self.subdir)
      #self.Dir.makeifnotexist()
@@ -324,8 +324,9 @@
         return TS_NOLOCK
      if(psutil.pid_exists(int(pid))):
         proc= psutil.Process(int(pid))
         if proc.name=="trisurf":
            if proc.status=="stopped":
         #psutil.__version__ == '3.4.2' requires name() and status(), some older versions reguire name, status
         if proc.name()=="trisurf":
            if proc.status()=="stopped":
               return TS_STOPPED
            else:
               return TS_RUNNING
@@ -352,7 +353,7 @@
            else:
               try:
                  with open (os.path.join(self.Dir.fullpath(),"tape"), "w") as myfile:
                     myfile.write("#This is automatically generated tape file from snapshot\n")
                     myfile.write("#This is automatically generated tape file from snapshot")
                     myfile.write(str(self.tape))
               except:
                  print("Error -- cannot make tapefile  "+ os.path.join(self.Dir.fullpath(),"tape")+" from the snapshot in the running directory")
@@ -364,12 +365,12 @@
      
         #check if the simulation has been completed. in this case notify user and stop executing.
         if(self.isCompleted() and ("--force-from-tape" not in self.runArgs) and ("--reset-iteration-count" not in self.runArgs)):
            print("The simulation was completed. Not starting executable at localhost in "+self.Dir.fullpath()+"\n")
            print("The simulation was completed. Not starting executable in "+self.Dir.fullpath())
            return
         cwd=Directory(maindir=os.getcwd())
         self.Dir.goto()
         print("Starting trisurf-ng executable at localhost in "+self.Dir.fullpath()+"\n")
         print("Starting trisurf-ng executable in "+self.Dir.fullpath())
         if(self.fromSnapshot==True):
            params=["trisurf", "--restore-from-vtk",self.snapshotFile]+self.runArgs
         else:
@@ -380,7 +381,7 @@
         subprocess.Popen (params, stdout=subprocess.DEVNULL)
         cwd.goto()
      else:
         print("Process already running. Not starting\n")
         print("Process in "+self.Dir.fullpath()+" already running. Not starting.")
      return
   def stop(self):
@@ -407,7 +408,8 @@
      self.Comment=FileContent(os.path.join(self.Dir.fullpath(),".comment"))
      pid=self.getPID()
      status=self.getStatus()
      ETA=str(datetime.timedelta(microseconds=(int(self.tape.config['iterations'])-int(self.statistics.last))*self.statistics.dT)*1000000)
      if(self.statistics.fileOK):
         ETA=str(datetime.timedelta(microseconds=(int(self.tape.config['iterations'])-int(self.statistics.last))*self.statistics.dT)*1000000)
      if(status==TS_NONEXISTANT or status==TS_NOLOCK):
         statustxt="Not running"
         pid=""
@@ -425,7 +427,7 @@
      if(self.statistics.fileOK):
         report=[time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(self.statistics.startDate))),ETA, statustxt, pid, str(self.Dir.fullpath()), self.Comment.getText()]
      else:
         report=["N/A","N/A\t",statustxt, pid, str(self.Dir.fullpath()), self.Comment.getText()]
         report=["N/A","N/A",statustxt, pid, str(self.Dir.fullpath()), self.Comment.getText()]
      return report
   def writeComment(self, data, mode='w'):