Esempio n. 1
0
    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)
Esempio n. 2
0
 def makeTable(self, type='default'):
     import filemaker
     return filemaker.makeTable(self, type)
Esempio n. 3
0
 def __str__(self):
     import filemaker
     return filemaker.makeTable(self)