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 |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/python/trisurf/trisurf.py b/python/trisurf/trisurf.py
index bed6f7d..46a3624 100644
--- a/python/trisurf/trisurf.py
+++ b/python/trisurf/trisurf.py
@@ -382,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):
@@ -397,8 +405,6 @@
 			print("Process in "+self.Dir.fullpath()+" already running. Not starting.")
 		return
 
-	def stop(self):
-		pass
 
 	def setMaindir(self,prefix,variables):
 		maindir=""
@@ -443,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