From 5c3143e7b7d0979d6eed07b6dfbe9f214159bdbb Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Tue, 31 May 2016 19:42:00 +0000 Subject: [PATCH] Use nucleus displaced centre in vertex move --- python/trisurf/trisurf.py | 35 ++++++++++++++++++++++++++++------- 1 files changed, 28 insertions(+), 7 deletions(-) diff --git a/python/trisurf/trisurf.py b/python/trisurf/trisurf.py index 310b4d3..46a3624 100644 --- a/python/trisurf/trisurf.py +++ b/python/trisurf/trisurf.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - import configobj import xml.etree.ElementTree as ET import base64 @@ -84,6 +82,9 @@ ''' try: self.config=configobj.ConfigObj(tape) + with open (tape, "r") as myfile: + self.rawText=myfile.read() #read the file + except: print("Error reading or parsing tape file!\n") exit(1) @@ -91,6 +92,7 @@ def setTape(self, string): '''Method setTape(string) parses the string in memory that hold the tape contents.''' self.config=configobj.ConfigObj(io.StringIO(string)) + self.rawText=string return def getValue(self,key): @@ -364,8 +366,8 @@ else: try: with open (os.path.join(self.Dir.fullpath(),"tape"), "w") as myfile: - myfile.write("#This is automatically generated tape file from snapshot") - myfile.write(str(self.tape)) + #myfile.write("#This is automatically generated tape file from snapshot") + myfile.write(str(self.tape.rawText)) except: print("Error -- cannot make tapefile "+ os.path.join(self.Dir.fullpath(),"tape")+" from the snapshot in the running directory") exit(1) @@ -380,10 +382,18 @@ return cwd=Directory(maindir=os.getcwd()) + lastVTU=self.getLastVTU() #we get last VTU file in case we need to continue the simulation from last snapshot. Need to be done before the Dir.goto() call. self.Dir.goto() print("Starting trisurf-ng executable in "+self.Dir.fullpath()) if(self.fromSnapshot==True): - params=["trisurf", "--restore-from-vtk","initial_snapshot.vtu"]+self.runArgs + #here we try to determine whether we should continue the simulation or start from last known VTU snapshot. + if(lastVTU==None): + initSnap="initial_snapshot.vtu" + 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 + 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): @@ -395,8 +405,6 @@ print("Process in "+self.Dir.fullpath()+" already running. Not starting.") return - def stop(self): - pass def setMaindir(self,prefix,variables): maindir="" @@ -441,11 +449,24 @@ report=["N/A","N/A",statustxt, pid, str(self.Dir.fullpath()), self.Comment.getText()] return report + + def stop(self): + p=psutil.Process(self.getPID()) + p.kill() + def writeComment(self, data, mode='w'): self.Dir=Directory(maindir=self.maindir,simdir=self.subdir) self.Comment=FileContent(os.path.join(self.Dir.fullpath(),".comment")) self.Comment.writefile(data,mode=mode) + + def getLastVTU(self): + vtuidx=self.getLastIteration() + if vtuidx<0: + return None + else: + return 'timestep_{:06d}.vtu'.format(vtuidx) + def __str__(self): if(self.getStatus()==0): str=" not running." -- Gitblit v1.9.3