while True: try: i = regionNames.index("region0") regionNames[i] = None except ValueError: break else: regionNames = [None] regions = None sol = SolutionDirectory(case) if not decomposeParWithRegion: if self.opts.regions or self.opts.region != None: print_("Building Pseudocases") regions = RegionCases(sol, clean=True, processorDirs=False) if self.opts.regions: regionNames = sol.getRegions(defaultRegion=True) for theRegion in regionNames: theCase = path.normpath(case) if theRegion != None and not decomposeParWithRegion: theCase += "." + theRegion if oldApp(): argv = [self.opts.decomposer, ".", theCase] else: argv = [self.opts.decomposer, "-case", theCase] if foamVersion() >= ( 2, 0) and not self.opts.doFunctionObjects:
def run(self): if self.opts.keeppseudo and (not self.opts.regions and self.opts.region == None): warning( "Option --keep-pseudocases only makes sense for multi-region-cases" ) if self.opts.region: regionNames = self.opts.region else: regionNames = [None] regions = None casePath = self.parser.casePath() self.checkCase(casePath) # self.addLocalConfig(casePath) self.addToCaseLog(casePath, "Starting") self.prepareHooks() if self.opts.regions or self.opts.region != None: print_("Building Pseudocases") sol = SolutionDirectory(casePath, archive=None) regions = RegionCases(sol, clean=True) if self.opts.regions: regionNames = sol.getRegions() self.processPlotLineOptions(autoPath=casePath) lam = self.getParallel(SolutionDirectory(casePath, archive=None)) self.clearCase(SolutionDirectory(casePath, archive=None, parallel=lam is not None), runParallel=lam is not None) self.checkAndCommit(SolutionDirectory(casePath, archive=None)) self.initBlink() for theRegion in regionNames: args = self.buildRegionArgv(casePath, theRegion) self.setLogname() run = AnalyzedRunner(BoundingLogAnalyzer( progress=self.opts.progress, doFiles=self.opts.writeFiles, singleFile=self.opts.singleDataFilesOnly, doTimelines=True), silent=self.opts.progress or self.opts.silent, splitThres=self.opts.splitDataPointsThreshold if self.opts.doSplitDataPoints else None, argv=self.replaceAutoInArgs(args), server=self.opts.server, lam=lam, restart=self.opts.restart, logname=self.opts.logname, compressLog=self.opts.compress, logTail=self.opts.logTail, noLog=self.opts.noLog, remark=self.opts.remark, parameters=self.getRunParameters(), echoCommandLine=self.opts.echoCommandPrefix, jobId=self.opts.jobId) run.createPlots(customRegexp=self.lines_, splitThres=self.opts.splitDataPointsThreshold if self.opts.doSplitDataPoints else None, writeFiles=self.opts.writeFiles) if self.cursesWindow: self.cursesWindow.setAnalyzer(run.analyzer) self.cursesWindow.setRunner(run) run.analyzer.addTimeListener(self.cursesWindow) self.addWriteAllTrigger(run, SolutionDirectory(casePath, archive=None)) self.addLibFunctionTrigger( run, SolutionDirectory(casePath, archive=None)) self.runPreHooks() if self.blink1: run.addTicker(lambda: self.blink1.ticToc()) run.start() if len(regionNames) > 1: self.setData({theRegion: run.data}) else: self.setData(run.data) self.runPostHooks() self.reportUsage(run) self.reportRunnerData(run) if theRegion != None: print_("Syncing into master case") regions.resync(theRegion) self.stopBlink() if regions != None: if not self.opts.keeppseudo: print_("Removing pseudo-regions") regions.cleanAll() else: for r in sol.getRegions(): if r not in regionNames: regions.clean(r) self.addToCaseLog(casePath, "Ended")