Skip to content

Commit

Permalink
saveLineStepData: save line step data right after line minimization i…
Browse files Browse the repository at this point in the history
…s done.
  • Loading branch information
dreamer2368 committed Dec 20, 2022
1 parent b2976dc commit 5f6782d
Showing 1 changed file with 22 additions and 17 deletions.
39 changes: 22 additions & 17 deletions utils/optimization_ver3/optimizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ def schedule(self):
self.lineStep += 1
self.stage, self.result = Stage.BRKT, Result.UNEXECUTED
elif (self.stage is Stage.LNMN):
continueLinmin = self.nextLinmin(self.linminInitial)#, stop=linminStop)
continueLinmin = self.nextLinmin(self.linminInitial)
self.linminInitial = False
if (continueLinmin):
self.lineStep += 1
Expand Down Expand Up @@ -189,8 +189,7 @@ def loadState(self):

if (self.cgStep > 0):
dsetName = "%s/%d/%d" % (self.fl.lineMinLog, self.hyperStep, self.cgStep - 1)
bIdx = f[dsetName].attrs['b']
self.lastStepSize = f[dsetName][bIdx, 0]
self.lastStepSize = f[dsetName].attrs['b']
return

def loadPreviousPenalty(self):
Expand Down Expand Up @@ -223,20 +222,24 @@ def saveCGStepData(self):
fwHist = np.append(fwHist, np.loadtxt("x0/%s" % (self.fl.forwardHistoryFiles[k])), axis=0)
adjHist = np.append(adjHist, np.loadtxt("x0/%s" % self.fl.gradientHistoryFiles[k]), axis=0)

if (self.cgStep > 0):
with h5py.File(self.logFile, 'a') as f:
dsetName = "%s/%d/%d" % (self.fl.forwardHistory, self.hyperStep, self.cgStep)
dset = f.create_dataset(dsetName, data=fwHist)
dsetName = "%s/%d/%d" % (self.fl.gradientHistory, self.hyperStep, self.cgStep)
dset = f.create_dataset(dsetName, data=adjHist)

dsetName = "%s/%d/%d" % (self.fl.lineMinLog, self.hyperStep, self.cgStep)
df = pd.read_csv(self.fl.lineMinLogFile, sep='\t', header=0)
data = np.array(df.iloc[:, :2])
dset = f.create_dataset(dsetName, data=data)
for dir in ['a', 'b', 'c']:
idx = np.array(df['step'][df['directory index']==dir])[0]
dset.attrs[dir] = idx
with h5py.File(self.logFile, 'a') as f:
dsetName = "%s/%d/%d" % (self.fl.forwardHistory, self.hyperStep, self.cgStep)
dset = f.create_dataset(dsetName, data=fwHist)
dsetName = "%s/%d/%d" % (self.fl.gradientHistory, self.hyperStep, self.cgStep)
dset = f.create_dataset(dsetName, data=adjHist)
self.printAndLog("Succeeded.")
return

def saveLineStepData(self):
self.printAndLog("Saving line-step data at cg step %d/%d.." % (self.hyperStep, self.cgStep))
with h5py.File(self.logFile, 'a') as f:
dsetName = "%s/%d/%d" % (self.fl.lineMinLog, self.hyperStep, self.cgStep)
df = pd.read_csv(self.fl.lineMinLogFile, sep='\t', header=0)
data = np.array(df.iloc[:, :2])
dset = f.create_dataset(dsetName, data=data)
for dir in ['a', 'b', 'c']:
idx = np.array(df['step'][df['directory index']==dir])[0]
dset.attrs[dir] = idx
self.printAndLog("Succeeded.")
return

Expand Down Expand Up @@ -596,6 +599,8 @@ def nextLinmin(self, initial=True, stop=False):
self.printAndLog('QoIs: %.16E %.16E %.16E' % (Ja,Jb,Jc))
self.printAndLog('LINMIN: line minimization is finished.')

self.saveLineStepData()

commandString = ''

target = ['a/'+file for file in self.fl.globalControlSpaceFiles]
Expand Down

0 comments on commit 5f6782d

Please sign in to comment.