コード例 #1
0
ファイル: ProblemManager.py プロジェクト: bluetyson/bluecap
 def ParseXMLNode(self, rootNode):
   """
   Generate Problem Manager data from xml tree node. 
   """
   
   # remove "Problem" branch if present
   if(HasChild(rootNode,"Problem")):
     root = GetChild(rootNode,"Problem")
     
   # load parameters not set from command line
   # done here to prevent recursion
   theParameterManager = ParameterManager()  
   if(HasChild(rootNode,"Parameters")):
     parameterNode = GetChild(rootNode,"Parameters")
     
     for child in GetChildren(parameterNode):
     
       name = GetAttributeString(child,"name")
       
       if(not theParameterManager.HasParameter(name) ):
         paramString = GetAttributeString(child,"value")
         theParameterManager.SetParameter(name,paramString)
         print "param: ", name, " value:",paramString
     
   # create functions before other classes (after UnitManager & Parameter Manager)
   theFunctionManager = FunctionManager()  
   if(HasChild(rootNode,"Functions")):
     functionNode = GetChild(rootNode,"Functions")
     theFunctionManager.ParseXMLNode(functionNode,self) 
   
   # Mine data
   if(HasChild(rootNode,"MineData")):
     mineDataNode = GetChild(rootNode,"MineData")
     self.theMineDataManager.ParseXMLNode(mineDataNode) 
     
    
   # Output - eventually will make into a manager
   if(HasChild(rootNode,"Output")):
     outputNode = GetChild(rootNode,"Output")
     self.outputPrefix = GetAttributeFileString(outputNode,"prefix")
     self.outputType = GetAttributeStringOrDefault(outputNode,"type","")
     
     self.recordRange = GetAttributeValueOrDefault(outputNode,"recordRange",False)
     
   # Regional calculation - optional
   if(HasChild(rootNode,"RegionalCalculation")):
     regionalCalculationNode = GetChild(rootNode,"RegionalCalculation")
     self.theRegionalCalculationManager.ParseXMLNode(regionalCalculationNode) 
コード例 #2
0
 def ParseXMLNode(self, rootNode):
   """
   Generate Problem Manager data from xml tree node. 
   """
   
   # remove "Problem" branch if present
   if(HasChild(rootNode,"Problem")):
     root = GetChild(rootNode,"Problem")
     
   # load parameters not set from command line
   # done here to prevent recursion
   theParameterManager = ParameterManager()  
   if(HasChild(rootNode,"Parameters")):
     parameterNode = GetChild(rootNode,"Parameters")
     
     for child in GetChildren(parameterNode):
     
       name = GetAttributeString(child,"name")
       
       if(not theParameterManager.HasParameter(name) ):
         paramString = GetAttributeString(child,"value")
         theParameterManager.SetParameter(name,paramString)
         print("param: ", name, " value:",paramString)
     
   # create functions before other classes (after UnitManager & Parameter Manager)
   theFunctionManager = FunctionManager()  
   if(HasChild(rootNode,"Functions")):
     functionNode = GetChild(rootNode,"Functions")
     theFunctionManager.ParseXMLNode(functionNode,self) 
   
   # Mine data
   if(HasChild(rootNode,"MineData")):
     mineDataNode = GetChild(rootNode,"MineData")
     self.theMineDataManager.ParseXMLNode(mineDataNode) 
   
   # Processing data
   if(HasChild(rootNode,"Processing")):
     processingNode = GetChild(rootNode,"Processing")
     self.theMineDataManager.theProcessingSystem.ParseXMLNode(processingNode)
    
   # Hydrogen data
   if(HasChild(rootNode,"HydrogenData")):
     hydrogenDataNode = GetChild(rootNode,"HydrogenData")
     self.theHydrogenDataManager.ParseXMLNode(hydrogenDataNode) 
     
   # Output - eventually will make into a manager
   if(HasChild(rootNode,"Output")):
     outputNode = GetChild(rootNode,"Output")
     self.outputPrefix = GetAttributeFileString(outputNode,"prefix")
     self.outputType = GetAttributeStringOrDefault(outputNode,"type","")
     
     self.recordRange = GetAttributeValueOrDefault(outputNode,"recordRange",False)
     
   # Regional calculation - optional - eventually will make into a solver
   if(HasChild(rootNode,"RegionalCalculation")):
     regionalCalculationNode = GetChild(rootNode,"RegionalCalculation")
     self.theRegionalCalculationManager.ParseXMLNode(regionalCalculationNode) 
 
   # Solver manager (after UnitManager & Parameter Manager & Function Manager)
   if(HasChild(rootNode,"Solvers")):
     solversNode = GetChild(rootNode,"Solvers")
     theSolverManager = SolverManager()
     theSolverManager.ParseXMLNode(self,solversNode) 
 
   # Create actions after other classes (after UnitManager & Parameter & Solver Manager)
   self.theActionManager = ActionManager()  
   if(HasChild(rootNode,"Actions")):
     actionNode = GetChild(rootNode,"Actions")
     self.theActionManager.ParseXMLNode(actionNode,self)   
   else:
   
     # Add actions for backwards compatibility
     # A) If regional manager present - run regional calculation
     # B) Otherwise add single site calculation
     
     # This will be depreciated (need to issue warning)
     if(self.theRegionalCalculationManager.type):
         self.theActionManager.actions.append( RegionalCalculationAction() )
     else:
         self.theActionManager.actions.append( SingleSiteEvaluationAction() )