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

Source Code for Module PyFoam.LogAnalysis.SteadyConvergedLineAnalyzer

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