def printFocalPointTable(self, type='default'): for title in self.reactions: print title diff = self.reactions[title] focal = diff.getFocalPoint() #now we want to subtract the mp2 from the scf incrementalData = [] preceeding = None finalData = None eTypes = [] for etype in FocalPoint.ENERGY_LIST: nextData = focal.getData(wavefunction=etype) if nextData and preceeding: #subtract! nextData.setMatchCriteria('basis') preceeding.setMatchCriteria('basis') newData = nextData - preceeding newData.setAttributes(wavefunction=etype) preceeding = nextData finalData = nextData #keep update incrementalData.extend(newData) eTypes.append(etype) elif nextData: newData = nextData preceeding = nextData finalData = nextData #keep update incrementalData.extend(newData) eTypes.append(etype) eTypes.append('Final E') basisTemplate = self.extrapolation.getBasisTemplate() basisSets = map( lambda x: basisTemplate % x, range(2, MAX_BASIS) ) + ['cbs'] #add the final energies as a column finalData = finalData.copy() #make a copy so we don't overwrite things finalData.setAttributes(wavefunction='Final E') incrementalData.extend(finalData) incrementalData = DataSet(incrementalData) incrementalData.convertUnits('kcal') incrementedFP = incrementalData.getDataTable(row=('basis', basisSets), column=('wavefunction',eTypes), sort=False) import filemaker print filemaker.makeTable(incrementedFP, type=type)
def makeTable(self, type='default'): import filemaker return filemaker.makeTable(self, type)
def __str__(self): import filemaker return filemaker.makeTable(self)