From 2f74e41cf5706334fcde64ae0e86a33c4fef884f Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Sat, 28 May 2016 21:13:20 +0000
Subject: [PATCH] A small fix. If a continuation of simulation with a starting snapshot is requested, the last known vtk from the directory is used as a snapshot.

---
 python/trisurf/trisurf.py |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/python/trisurf/trisurf.py b/python/trisurf/trisurf.py
index 8b36d27..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):
@@ -451,6 +459,14 @@
 		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