Package PyFoam :: Package LogAnalysis :: Module SteadyConvergedLineAnalyzer
[hide private]
[frames] | no frames]

Source Code for Module PyFoam.LogAnalysis.SteadyConvergedLineAnalyzer

 1  """Analyze Steady Solver""" 
 2   
 3  import re 
 4   
 5  from LogLineAnalyzer import LogLineAnalyzer 
 6   
7 -class SteadyConvergedLineAnalyzer(LogLineAnalyzer):
8 """ 9 Checks whether a Steady-solver has converged 10 11 Convergence is assumed if all the linear solvers have their 12 initial residual below their threshold 13 """ 14 15 linearRegExp="^(.+): Solving for (.+), Initial residual = (.+), Final residual = (.+), No Iterations (.+)$" 16
17 - def __init__(self):
18 LogLineAnalyzer.__init__(self) 19 self.exp=re.compile(self.linearRegExp) 20 self.firstTime=True 21 self.lastTime="" 22 self.isConverged=False 23 self.counter=0
24
25 - def doAnalysis(self,line):
26 """Counts the number of linear solvers that have not converged""" 27 time=self.parent.getTime() 28 if time!=self.lastTime: 29 if self.firstTime: 30 self.firstTime=False 31 else: 32 if self.counter==0: 33 self.isConverged=True 34 else: 35 self.isConverged=False 36 self.counter=0 37 self.lastTime=time 38 39 m=self.exp.match(line) 40 if m!=None: 41 if int(m.group(5))>0: 42 self.counter+=1
43
44 - def goOn(self):
45 """Converged 46 @return: False if converged""" 47 return not self.isConverged
48