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

Source Code for Module PyFoam.LogAnalysis.LinearSolverLineAnalyzer

  1  #  ICE Revision: $Id: LinearSolverLineAnalyzer.py 7581 2007-06-27 15:29:14Z bgschaid $  
  2  """Analyze information from the linear solver""" 
  3   
  4  import re 
  5   
  6  linearRegExp="^(.+):  Solving for (.+), Initial residual = (.+), Final residual = (.+), No Iterations (.+)$" 
  7       
  8  # from FileLineAnalyzer import FileLineAnalyzer 
  9  # from TimeLineLineAnalyzer import TimeLineLineAnalyzer 
 10   
 11  from GeneralLineAnalyzer import GeneralLineAnalyzer 
 12   
13 -class GeneralLinearSolverLineAnalyzer(GeneralLineAnalyzer):
14 """Parses for information about the linear solver 15 16 Files of the form linear_<var> are written, where <var> is the 17 variable for which the solver was used""" 18
19 - def __init__(self,doTimelines=True,doFiles=True):
20 GeneralLineAnalyzer.__init__(self,titles=["Initial","Final","Iterations"],doTimelines=doTimelines,doFiles=doFiles) 21 self.exp=re.compile(linearRegExp) 22 23 if self.doTimelines: 24 self.lines.setDefault(1.) 25 self.lines.setExtend(True)
26
27 - def addToFiles(self,match):
28 solver=match.groups()[0] 29 name=match.groups()[1] 30 rest=match.groups()[2:] 31 self.files.write("linear_"+name,self.getTime(),rest)
32
33 - def addToTimelines(self,match):
34 name=match.groups()[1] 35 resid=match.groups()[2] 36 final=match.groups()[3] 37 iter=match.groups()[4] 38 39 self.lines.setValue(name,resid) 40 self.lines.setValue(name+"_final",final) 41 self.lines.setValue(name+"_iterations",iter)
42
43 -class GeneralLinearSolverIterationsLineAnalyzer(GeneralLinearSolverLineAnalyzer):
44 """Parses information about the linear solver and collects the iterations""" 45
46 - def __init__(self,doTimelines=True,doFiles=True):
47 GeneralLinearSolverLineAnalyzer.__init__(self,doTimelines=doTimelines,doFiles=doFiles)
48
49 - def addToFiles(self,match):
50 pass
51
52 - def addToTimelines(self,match):
53 name=match.groups()[1] 54 resid=match.groups()[4] 55 56 self.lines.setValue(name,resid)
57 58
59 -class LinearSolverLineAnalyzer(GeneralLinearSolverLineAnalyzer):
60 """Parses for information about the linear solver 61 62 Files of the form linear_<var> are written, where <var> is the 63 variable for which the solver was used""" 64
65 - def __init__(self):
66 GeneralLinearSolverLineAnalyzer.__init__(self,doTimelines=False)
67 68 ## self.exp=re.compile(linearRegExp) 69 70 ## def doAnalysis(self,line): 71 ## m=self.exp.match(line) 72 ## if m!=None: 73 ## solver=m.groups()[0] 74 ## name=m.groups()[1] 75 ## rest=m.groups()[2:] 76 ## self.files.write("linear_"+name,self.getTime(),rest) 77
78 -class TimeLineLinearSolverLineAnalyzer(GeneralLinearSolverLineAnalyzer):
79 """Parses for imformation about the linear solver and collects the residuals in timelines""" 80
81 - def __init__(self):
82 GeneralLinearSolverLineAnalyzer.__init__(self,doFiles=False)
83 84 ## self.lines.setDefault(1.) 85 ## self.lines.setExtend(True) 86 ## self.exp=re.compile(linearRegExp) 87 88 ## def doAnalysis(self,line): 89 ## m=self.exp.match(line) 90 ## if m!=None: 91 ## name=m.groups()[1] 92 ## resid=m.groups()[2] 93 94 ## self.lines.setValue(name,resid) 95
96 -class TimeLineLinearIterationsSolverLineAnalyzer(GeneralLinearSolverIterationsLineAnalyzer):
97 """Parses for imformation about the linear solver and collects the iterations in timelines""" 98
99 - def __init__(self):
101 102 ## self.lines.setDefault(1.) 103 ## self.lines.setExtend(True) 104 ## self.exp=re.compile(linearRegExp) 105 106 ## def doAnalysis(self,line): 107 ## m=self.exp.match(line) 108 ## if m!=None: 109 ## name=m.groups()[1] 110 ## iter=m.groups()[4] 111 112 ## self.lines.setValue(name,iter) 113