def generateTSsearchFromGuessPCM(slurmFile): jobGraph = nx.DiGraph() currentDir = getcwd() gaussianFile = getGaussianInpFromSlurmFile(slurmFile) newNode = GaussianNode(gaussianFile, currentDir) newNode.verification = "Opt" newNode.slurmFile = slurmFile jobGraph.add_node(currentDir, data=newNode) return buildTSsearchGraphPCM(jobGraph, currentDir)
def generateTSsearchFromGuess(slurmFile, functional="B3LYP"): jobGraph = nx.DiGraph() currentDir = getcwd() gaussianFile = getGaussianInpFromSlurmFile(slurmFile) modredundantSection = getModredundantSection( join(dirname(slurmFile), gaussianFile)) frozenDists = frozenDistancesFromModredundantSection(modredundantSection) newNode = GaussianNode(gaussianFile, currentDir) newNode.verification = "Opt" newNode.slurmFile = slurmFile newNode.autorestart = True jobGraph.add_node(currentDir, data=newNode) return buildTSsearchGraph(jobGraph, currentDir, functional, frozenDists)
def generateGraph(slurmFile, template): jobGraph = nx.DiGraph() currentDir = getcwd() gaussianFile = getGaussianInpFromSlurmFile(slurmFile) newNode = GaussianNode(gaussianFile, currentDir) newNode.verification = "Opt" newNode.slurmFile = slurmFile newNode.autorestart = True jobGraph.add_node(currentDir, data=newNode) newDir = join(currentDir, "gesp") newNode = GaussianNode("auto_gesp.inp", newDir) newNode.verification = "SP" newNode.routeSection = """%Chk=checkp.chk %Mem=100GB #P B3LYP/6-31G(d,p) # Gfinput Pop=full Density Test iop(6/50=1) # Units(Ang,Deg) Pop=MK iop(6/33=2) iop(6/42=6) """ newNode.additionalSection = "keto.gesp\n\nketo.gesp\n\n" newNode.gesp = "keto.gesp" newNode.time = "1:00:00" newNode.partition = "plgrid-short" jobGraph.add_node(newDir, data=newNode) jobGraph.add_edge(currentDir, newDir) anteDir = join(newDir, "antechamber") newNode = AntechamberNode("keto.gesp", anteDir) newNode.partition = "plgrid-short" jobGraph.add_node(anteDir, data=newNode) jobGraph.add_edge(newDir, anteDir) if template != None: fitDir = join(anteDir, "fit") newNode = FitNode("keto.mol2", fitDir, template) newNode.partition = "plgrid-short" jobGraph.add_node(fitDir, data=newNode) jobGraph.add_edge(anteDir, fitDir) return jobGraph
""" newNode.verification = "SP" newNode.readResults = True newNode.processors = 6 newNode.time = "72:00:00" graph.add_node(newDir, data=newNode) graph.add_edge(node, newDir) if __name__ == "__main__": if len(sys.argv) == 1: print("Usage: graphDFT-SP slurmFile/nodeKey") elif len(sys.argv) == 2: slurmFile = sys.argv[1] currentDir = getcwd() gaussianFile = getGaussianInpFromSlurmFile(slurmFile) gaussianLog = gaussianFile.replace("inp", "log") sm = GraphManager() graph = sm.isGraphHere(currentDir) if not graph: jobGraph = nx.DiGraph() newNode = GaussianNode(gaussianFile, currentDir) newNode.slurmFile = slurmFile newNode.status = "finished" jobGraph.add_node(currentDir, data=newNode) addManySPcorrections(jobGraph, currentDir) result = sm.addGraph(jobGraph, currentDir) if result:
""" from graphManager import GraphManager import sys from os.path import basename, dirname, abspath from parsers import getGaussianInpFromSlurmFile if __name__ == "__main__": if len(sys.argv) == 1: print( "Usage: graphReplace node slurmFile status [default: waitingForParent]" ) print("Possible status: waitingForParent, running, finished, examined") elif len(sys.argv) == 3: slurmFile = sys.argv[2] inputFile = getGaussianInpFromSlurmFile(slurmFile) newNode = dirname(abspath(slurmFile)) slurmFile = basename(slurmFile) oldNode = sys.argv[1] sm = GraphManager() sm.insertPath2node(oldNode, newNode, slurmFile, inputFile) sm.saveGraphs() elif len(sys.argv) == 4: slurmFile = sys.argv[2] inputFile = getGaussianInpFromSlurmFile(slurmFile) newNode = dirname(abspath(slurmFile)) slurmFile = basename(slurmFile) oldNode = sys.argv[1]