|
@@ -78,13 +78,19 @@ def getStrides(setup):
|
|
|
i+=1
|
|
|
return strides
|
|
|
|
|
|
-def getLastStepFiles(setup):
|
|
|
+def getFiles(setup, getAll=False):
|
|
|
strides=getStrides(setup)
|
|
|
readable=['t','sol','se','qt','sOut']
|
|
|
#get last stride
|
|
|
- step=strides[-1]
|
|
|
- l=step['label']
|
|
|
- return {x:'{}{}.txt'.format(x,l) for x in readable}
|
|
|
+ steps=[strides[-1]]
|
|
|
+ if getAll:
|
|
|
+ steps=strides
|
|
|
+ inFiles=[]
|
|
|
+ for s in steps:
|
|
|
+ l=s['label']
|
|
|
+ inFiles.append({x:'{}{}.txt'.format(x,l) for x in readable})
|
|
|
+ return inFiles
|
|
|
+
|
|
|
|
|
|
def main(parFiles,jobDir,startDir='NONE'):
|
|
|
model=cModel.model()
|
|
@@ -232,7 +238,7 @@ def read3D(fName):
|
|
|
return new_data.reshape(shape),lut,lutSE
|
|
|
|
|
|
|
|
|
-def loadSolutionFromRef(setup):
|
|
|
+def loadSolutionFromRef(setup, loadAll=False):
|
|
|
|
|
|
if setup['startFromRef']=='None':
|
|
|
return 0,numpy.array([]),numpy.array([]),numpy.array([]),numpy.array([])
|
|
@@ -273,38 +279,57 @@ def loadSolutionFromRef(setup):
|
|
|
fb.readFileToFile(remotePath,localPath)
|
|
|
setupFile=os.path.join(localDir,f)
|
|
|
|
|
|
- setup=parseSetup(setupFile)
|
|
|
- inFiles=getLastStepFiles(setup)
|
|
|
+ setupOld=parseSetup(setupFile)
|
|
|
+ inFiles=getFiles(setupOld,loadAll)
|
|
|
|
|
|
#inFiles.extend(parFiles)
|
|
|
- for x in inFiles:
|
|
|
- f=inFiles[x]
|
|
|
- localPath=os.path.join(localDir,f)
|
|
|
- remotePath='/'.join([remoteDir,f])
|
|
|
- fb.readFileToFile(remotePath,localPath)
|
|
|
-
|
|
|
- return loadSolutionFromDir(localDir)
|
|
|
-
|
|
|
-def loadSolutionFromDir(jobDir):
|
|
|
+ for fSet in inFiles:
|
|
|
+ for x in fSet:
|
|
|
+ f=fSet[x]
|
|
|
+ localPath=os.path.join(localDir,f)
|
|
|
+ remotePath='/'.join([remoteDir,f])
|
|
|
+ fb.readFileToFile(remotePath,localPath)
|
|
|
+
|
|
|
+ return loadSolutionFromDir(localDir,loadAll)
|
|
|
+
|
|
|
+def merge(a1,a2):
|
|
|
+ try:
|
|
|
+ return numpy.concatenate(a1,a2)
|
|
|
+ except ValueError:
|
|
|
+ return a2
|
|
|
+
|
|
|
+def loadSolutionFromDir(jobDir,loadAll=False):
|
|
|
setupFile=os.path.join(jobDir,'setup.json')
|
|
|
setup=parseSetup(setupFile)
|
|
|
- inFiles=getLastStepFiles(setup)
|
|
|
-
|
|
|
- t=numpy.loadtxt(os.path.join(jobDir,inFiles['t']))
|
|
|
- sol=numpy.loadtxt(os.path.join(jobDir,inFiles['sol']))
|
|
|
- se=numpy.loadtxt(os.path.join(jobDir,inFiles['se']))
|
|
|
- sOut,lut,lutSE=read3D(os.path.join(jobDir,inFiles['sOut']))
|
|
|
- qt=numpy.loadtxt(os.path.join(jobDir,inFiles['qt']))
|
|
|
- return t,sol,se,sOut,qt,lut,lutSE
|
|
|
+ inFiles=getFiles(setup,loadAll)
|
|
|
+ isFirst=True
|
|
|
+ operators={x:numpy.loadtxt for x in inFiles[0]}
|
|
|
+ operators['sOut']=read3D
|
|
|
+ data={}
|
|
|
+ for fSet in inFiles:
|
|
|
+ idata={}
|
|
|
+ for f in fSet:
|
|
|
+ path=os.path.join(jobDir,fSet[f])
|
|
|
+ print('Loading [{}] {}'.format(os.path.isfile(path),path))
|
|
|
+ idata=operators[f](os.path.join(jobDir,fSet[f]))
|
|
|
+ if f=='sOut':
|
|
|
+ lut=idata[1]
|
|
|
+ lutSE=idata[2]
|
|
|
+ idata=idata[0]
|
|
|
+ try:
|
|
|
+ data[f]=numpy.concatenate((data[f],idata))
|
|
|
+ except KeyError:
|
|
|
+ data[f]=idata
|
|
|
+ return data['t'],data['sol'],data['se'],data['sOut'],data['qt'],lut,lutSE,setup
|
|
|
|
|
|
def getStartPointFromDir(jobDir):
|
|
|
- t,sol,se,sOut,qt,lut,lutSE=loadSolutionFromDir(jobDir)
|
|
|
+ t,sol,se,sOut,qt,lut,lutSE,setup=loadSolutionFromDir(jobDir)
|
|
|
return t[-1],sol[-1],sOut[-1],lut,lutSE
|
|
|
|
|
|
def getStartPoint(setup):
|
|
|
if setup['startFromRef']=='None':
|
|
|
return 0,numpy.array([]),numpy.array([]),[],[]
|
|
|
- t,sol,se,sOut,qt,lut,lutSE=loadSolutionFromRef(setup)
|
|
|
+ t,sol,se,sOut,qt,lut,lutSE,oldSetup=loadSolutionFromRef(setup)
|
|
|
return t[-1],sol[-1],sOut[-1],lut,lutSE
|
|
|
|
|
|
if __name__=="__main__":
|