| | |
| | | fields=shlex.split(lines[1]) |
| | | epoch2=fields[0] |
| | | return (fields[1]) |
| | | |
| | | def getColumn(self,n=0): |
| | | lines=self.readText().splitlines() |
| | | col=[] |
| | | name=lines[0].split()[n] |
| | | for line in lines: |
| | | col.append(line.split()[n]) |
| | | return col[2:],name |
| | | |
| | | def getTable(self): |
| | | lines=self.readText().splitlines() |
| | | keys=lines[0].split() |
| | | table={} |
| | | def num(s): |
| | | try: |
| | | return int(s) |
| | | except ValueError: |
| | | return float(s) |
| | | for key in keys: |
| | | table[key]=[] |
| | | for line in lines: |
| | | fields=line.split() |
| | | for i in range(0,len(keys)): |
| | | try: |
| | | value=num(fields[i]) |
| | | table[keys[i]].append(value) |
| | | except: |
| | | pass |
| | | return table |
| | | |
| | | |
| | | def readText(self): |
| | |
| | | else: |
| | | procname=proc.name |
| | | procstat=proc.status |
| | | if procname=="trisurf": |
| | | if procname=="tssystem": |
| | | if procstat=="stopped": |
| | | return TS_STOPPED |
| | | else: |
| | |
| | | def start(self): |
| | | if(self.getStatus()==0 or self.getStatus()==TS_COMPLETED): |
| | | #check if executable exists |
| | | if(shutil.which('trisurf')==None): |
| | | if(shutil.which('tssystem')==None): |
| | | print("Error. Trisurf executable not found in PATH. Please install trisurf prior to running trisurf manager.") |
| | | exit(1) |
| | | #Symlinks tape file to the directory or create tape file from snapshot in the direcory... |
| | |
| | | else: |
| | | initSnap=lastVTU |
| | | print("WARNING: Not using initial snapshot as starting point, but selecting "+initSnap+" as a starting vesicle") |
| | | params=["trisurf", "--restore-from-vtk",initSnap]+self.runArgs |
| | | params=["tssystem", "--restore-from-vtk",initSnap]+self.runArgs |
| | | print("InitSnap is: "+initSnap) |
| | | else: |
| | | #veify if dump exists. If not it is a first run and shoud be run with --force-from-tape |
| | | if(os.path.isfile("dump.bin")==False): |
| | | self.runArgs.append("--force-from-tape") |
| | | params=["trisurf"]+self.runArgs |
| | | params=["tssystem"]+self.runArgs |
| | | subprocess.Popen (params, stdout=subprocess.DEVNULL) |
| | | cwd.goto() |
| | | else: |
| | |
| | | def setMaindir(self,prefix,variables): |
| | | maindir="" |
| | | 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] |
| | | #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=str(self.Tape.config[v]) |
| | | maindir=maindir+p+tv |
| | | self.maindir=maindir |
| | | return |
| | |
| | | self.Comment.writefile(data,mode=mode) |
| | | |
| | | |
| | | def getLastVTU(self): |
| | | def getLastVTUold(self): |
| | | vtuidx=self.getLastIteration()-int(self.Tape.getValue("inititer")) |
| | | if vtuidx<0: |
| | | return None |
| | | else: |
| | | return 'timestep_{:06d}.vtu'.format(vtuidx) |
| | | |
| | | def getLastVTU(self): |
| | | flist=[] |
| | | for file in os.listdir(self.Dir.fullpath()): |
| | | if file.endswith(".vtu"): |
| | | flist.append(file) |
| | | flist.sort() |
| | | if(len(flist)==0): |
| | | return -1 |
| | | else: |
| | | return(flist[-1]) |
| | | |
| | | def __str__(self): |
| | | if(self.getStatus()==0): |
| | | str=" not running." |