Trisurf Monte Carlo simulator
Samo Penic
2016-07-07 c89a71dbf5ce77d7accc60d8637f0eea64ecc1e6
python/tsmgr
@@ -1,10 +1,105 @@
#!/usr/bin/python3
import sys, getopt
from trisurf import trisurf
import tabulate
# -- configuration of the multiple/single run --
run1=trisurf.Runner(snapshot='snapshot.vtu')
print(run1)
#print(run1.tape.config)
print(run1.tape.getValue('nshell'))
run1.setMaindir(("N","k","V","Np","Nm"),("nshell","xk0","constvolswitch","npoly","nmono"))
run1.setSubdir("run0")
run2=trisurf.Runner(tape='tape', runArgs=['--force-from-tape'])
run2.setMaindir(("N","k","V","Np","Nm"),("nshell","xk0","constvolswitch","npoly","nmono"))
run2.setSubdir("run1")
#obligatory: combine all runs
Runs=[run1,run2]
#------------------ NO NEED TO TOUCH THE CODE BELOW ------------------------------
# -- reading command line switches and acting accordingly --
argv=sys.argv[1:]
processno=0
try:
   opts, args = getopt.getopt(argv,"a:n:hrsc:")
except getopt.GetoptError:
   print('tsmgr [-n process number] [-h] [-r] [-s] [-c comment text] [-a comment text]')
   sys.exit(2)
for opt, arg in opts:
   if opt == '-h':
      print ('tsmgr [-n process number] [-h] [-r] [-s] [-c comment text] [-a comment text]')
      sys.exit()
   elif opt == '-r':
      if processno:
         localRuns=[Runs[processno-1]]
      else:
         localRuns=Runs
      for run in localRuns:
         run.start()
   elif opt == '-s':
      report=[]
      i=1
      if processno:
         localRuns=[Runs[processno-1]]
      else:
         localRuns=Runs
      for run in localRuns:
         line=run.getStatistics()
         line.insert(0,i)
         report.append(line)
         i=i+1
         #print(reportstr)
      print ("\n\nTrisurf running processes report\n")
      print (tabulate.tabulate(report,headers=["Run no.", "Run start time", "ETA", "Status", "PID", "Path", "Comment"], tablefmt='fancy_grid'))
   elif opt == '-n':
      processno=int(arg)
      if processno<1 or processno>len(Runs) :
         processno=0
   elif opt == '-c':
      comment = arg
      if processno:
         Runs[processno-1].writeComment(arg)
   elif opt == '-a':
      comment = arg
      if processno:
         Runs[processno-1].writeComment("\n"+arg, 'a')
   else:
      print('tsmgr [-n process number] [-h] [-r] [-s] [-c comment text] [-a comment text]')
      sys.exit(2)
# -- OBSOLETE and TESTING --
#   elif opt in ("-i", "--ifile"):
#      inputfile = arg
#   elif opt in ("-o", "--ofile"):
#      outputfile = arg
#   print ('Input file is "', inputfile)
#   print ('Output file is "', outputfile)
#run1.start()
#run
#print(run1)
#run1.getStatistics()
#print(run1.statistics)
#print(run1.tape)
#print(run1.tape.getValue('nshell'))