Package PyFoam :: Package Execution :: Module ConvergenceRunner
[hide private]
[frames] | no frames]

Source Code for Module PyFoam.Execution.ConvergenceRunner

 1  """Stop solver at convergence""" 
 2   
 3  from os import path 
 4   
 5  from AnalyzedRunner import AnalyzedRunner 
 6  from PyFoam.LogAnalysis.SteadyConvergedLineAnalyzer import SteadyConvergedLineAnalyzer 
 7   
8 -class ConvergenceRunner(AnalyzedRunner):
9 """It is assumed that the provided solver is a steady state 10 solver. After all the linear solvers have initial residuals below 11 their limits the run is assumed to be convergent and the run is 12 stopped by setting 13 14 stopAt nextWrite; 15 writeInterval 1; 16 17 in the controlDict""" 18
19 - def __init__(self,analyzer,argv=None,silent=False,logname="PyFoamSolve",server=False,lam=None):
20 """See AnalyzedRunner""" 21 AnalyzedRunner.__init__(self,analyzer,argv,silent,logname,server=server,lam=lam) 22 23 self.analyzer.addAnalyzer("Convergence",SteadyConvergedLineAnalyzer())
24
25 - def lineHandle(self,line):
26 """Not to be called: Stops the solver""" 27 AnalyzedRunner.lineHandle(self,line) 28 29 if not self.analyzer.goOn(): 30 self.stopGracefully()
31