if not os.path.exists(outPathBase): os.makedirs(outPathBase) defParams = SimParams(nsteps=2) stdRun = ModelRun("Arrhenius-normal", os.path.join('..','..', 'Underworld', 'InputFiles', 'Arrhenius.xml'), simParams=defParams) ppcRun = ModelRun("Arrhenius-ppc", "Arrhenius.xml", basePath=os.path.join("Ppc_Testing","udw_inputfiles"), simParams=defParams) stdSuite = ModelSuite(os.path.join(outPathBase, "arrBasic")) ppcSuite = ModelSuite(os.path.join(os.getcwd(), outPathBase, "arrPIC")) for ii in range(10): stdRun.outputPath = os.path.join(stdSuite.outputPathBase, "%.5d" % ii) ppcRun.outputPath = os.path.join(ppcSuite.outputPathBase, "%.5d" % ii) stdSuite.addRun(copy.deepcopy(stdRun)) ppcSuite.addRun(copy.deepcopy(ppcRun)) stdResults = jobRunner.runSuite(stdSuite) ppcResults = jobRunner.runSuite(ppcSuite) #----------------------------- cpuRegs = [] cpuPPCs = [] for stdRes, ppcRes in zip(stdResults, ppcResults): stdRes.readFrequentOutput() ppcRes.readFrequentOutput() fStep = stdRes.freqOutput.finalStep()
defParams = SimParams(nsteps=2) stdRun = ModelRun("Arrhenius-normal", os.path.join('..', '..', 'Underworld', 'InputFiles', 'Arrhenius.xml'), simParams=defParams) ppcRun = ModelRun("Arrhenius-ppc", "Arrhenius.xml", basePath=os.path.join("Ppc_Testing", "udw_inputfiles"), simParams=defParams) stdSuite = ModelSuite(os.path.join(outPathBase, "arrBasic")) ppcSuite = ModelSuite(os.path.join(os.getcwd(), outPathBase, "arrPIC")) for ii in range(10): stdRun.outputPath = os.path.join(stdSuite.outputPathBase, "%.5d" % ii) ppcRun.outputPath = os.path.join(ppcSuite.outputPathBase, "%.5d" % ii) stdSuite.addRun(copy.deepcopy(stdRun)) ppcSuite.addRun(copy.deepcopy(ppcRun)) stdResults = jobRunner.runSuite(stdSuite) ppcResults = jobRunner.runSuite(ppcSuite) #----------------------------- cpuRegs = [] cpuPPCs = [] for stdRes, ppcRes in zip(stdResults, ppcResults): stdRes.readFrequentOutput() ppcRes.readFrequentOutput() fStep = stdRes.freqOutput.finalStep()
modelName += "-referenceTest" # Do the following live on an options struct? outputPath = 'output'+os.sep+modelName expectedPath = 'expected'+os.sep+modelName nproc=1 mRun = ModelRun(modelName, inputFiles, outputPath, nproc=nproc) # TODO: responsibility of SystemTest class? createReference = False # For a reference test, these are standard fields to be tested. standardFields = ['VelocityField','PressureField'] runSteps=10 if createReference: mRun.outputPath = expectedPath mRun.simParams = SimParams(nsteps=runSteps, cpevery=runSteps, dumpevery=0) mRun.cpFields = standardFields else: mRun.simParams = SimParams(nsteps=runSteps, cpevery=0, dumpevery=0) fTests = mRun.analysis['fieldTests'] fTests.testTimestep = runSteps fTests.useReference = True fTests.referencePath = expectedPath defFieldTol = 1e-2 for fieldName in standardFields: fTests.add(FieldTest(fieldName, tol=defFieldTol)) mRun.writeInfoXML() # This will generate an additional XML to require StGermain/Underworld to do
#For now just copy all args as input files inputFiles = args modelName, ext = os.path.splitext(args[0]) nproc = 1 # For a restart test, these are standard fields to be tested. modelName += "-restartTest" outputPath = 'output' + os.sep + modelName standardFields = ['VelocityField', 'PressureField'] runSteps = 20 assert runSteps % 2 == 0 print "Initial run:" mRun = ModelRun(modelName + "-initial", inputFiles, outputPath, nproc=nproc) initialOutputPath = outputPath + os.sep + "initial" mRun.outputPath = initialOutputPath mRun.simParams = SimParams(nsteps=runSteps, cpevery=runSteps / 2, dumpevery=0) mRun.cpFields = standardFields mRun.writeInfoXML() credo.prepareOutputLogDirs(mRun.outputPath, mRun.logPath) # This will run the model, and also save basic results (e.g. walltime) analysisXML = mRun.analysisXMLGen() results = credo.modelrun.runModel(mRun) credo.modelresult.writeModelResultsXML(results, path=mRun.outputPath) print "Restart run:" mRun.name = modelName + "-restart" mRun.outputPath = outputPath + os.sep + "restart" mRun.cpReadPath = initialOutputPath # Note we could modify existing SimParams rather than create new, but below is
modelName += "-referenceTest" # Do the following live on an options struct? outputPath = 'output' + os.sep + modelName expectedPath = 'expected' + os.sep + modelName nproc = 1 mRun = ModelRun(modelName, inputFiles, outputPath, nproc=nproc) # TODO: responsibility of SystemTest class? createReference = False # For a reference test, these are standard fields to be tested. standardFields = ['VelocityField', 'PressureField'] runSteps = 10 if createReference: mRun.outputPath = expectedPath mRun.simParams = SimParams(nsteps=runSteps, cpevery=runSteps, dumpevery=0) mRun.cpFields = standardFields else: mRun.simParams = SimParams(nsteps=runSteps, cpevery=0, dumpevery=0) fTests = mRun.analysis['fieldTests'] fTests.testTimestep = runSteps fTests.useReference = True fTests.referencePath = expectedPath defFieldTol = 1e-2 for fieldName in standardFields: fTests.add(FieldTest(fieldName, tol=defFieldTol)) mRun.writeInfoXML() # This will generate an additional XML to require StGermain/Underworld to do
# For now just copy all args as input files inputFiles = args modelName, ext = os.path.splitext(args[0]) nproc = 1 # For a restart test, these are standard fields to be tested. modelName += "-restartTest" outputPath = "output" + os.sep + modelName standardFields = ["VelocityField", "PressureField"] runSteps = 20 assert runSteps % 2 == 0 print "Initial run:" mRun = ModelRun(modelName + "-initial", inputFiles, outputPath, nproc=nproc) initialOutputPath = outputPath + os.sep + "initial" mRun.outputPath = initialOutputPath mRun.simParams = SimParams(nsteps=runSteps, cpevery=runSteps / 2, dumpevery=0) mRun.cpFields = standardFields mRun.writeInfoXML() credo.prepareOutputLogDirs(mRun.outputPath, mRun.logPath) # This will run the model, and also save basic results (e.g. walltime) analysisXML = mRun.analysisXMLGen() results = credo.modelrun.runModel(mRun) credo.modelresult.writeModelResultsXML(results, path=mRun.outputPath) print "Restart run:" mRun.name = modelName + "-restart" mRun.outputPath = outputPath + os.sep + "restart" mRun.cpReadPath = initialOutputPath # Note we could modify existing SimParams rather than create new, but below is