X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGENERICSOLVER%2FDEVIATION.py;h=1899cb55c971e39b371f9d18828f2590b1140356;hb=aa79441714a71e926717c36e7ee03202f1798dca;hp=f2ddb8de4d6939ade02ff7d2fba107746413e119;hpb=aa01437f249012ee464a23346fed533f223e6124;p=samples%2Fgenericsolver.git diff --git a/src/GENERICSOLVER/DEVIATION.py b/src/GENERICSOLVER/DEVIATION.py index f2ddb8d..1899cb5 100644 --- a/src/GENERICSOLVER/DEVIATION.py +++ b/src/GENERICSOLVER/DEVIATION.py @@ -32,13 +32,15 @@ import GENERICSOLVER_ORB__POA import SALOME_ComponentPy import SALOME_DriverPy import SALOME -import SALOME_TYPES from salome.kernel.logger import Logger from salome.kernel import termcolor logger = Logger("DEVIATION", color = termcolor.RED_FG) logger.setLevel(logging.INFO) +from salome.kernel.parametric.compo_utils import \ + create_input_dict, create_normal_parametric_output, create_error_parametric_output + VARIABLE_ID = 1030 ### @@ -161,34 +163,20 @@ class DEVIATION(GENERICSOLVER_ORB__POA.DEVIATION_Gen, logger.debug("inputVarList: %s" % paramInput.inputVarList) logger.debug("outputVarList: %s" % paramInput.outputVarList) logger.debug("inputValues: %s" % paramInput.inputValues) - inputPoint = paramInput.inputValues[0][0] # No time series, single observation - if len(inputPoint) != len(paramInput.inputVarList): - raise Exception("Size mismatch between inputVarList and point to evaluate") - - evalPoint = self.deterministicValues - for i in range(len(inputPoint)): - evalPoint[paramInput.inputVarList[i]] = inputPoint[i][0] - logger.debug("evalPoint = %s" % evalPoint) + + inputDict = create_input_dict(self.deterministicValues, paramInput) + logger.debug("inputDict = %s" % inputDict) # Test for an invalid parameter and return an error in this case - if evalPoint["L"] <= 0: - return SALOME_TYPES.ParametricOutput( - outputValues = [], - specificOutputInfos = [], - returnCode = 1, - errorMessage = "Invalid value: L must be positive") - - resDict = {} - resDict["dev"] = self.BeamModel(**evalPoint) - - outputValues = [[[]]] - for outputVar in paramInput.outputVarList: - outputValues[0][0].append([resDict[outputVar]]) - logger.debug("paramOutput: %s" % outputValues) - return SALOME_TYPES.ParametricOutput(outputValues, - specificOutputInfos = [], - returnCode = 0, - errorMessage = "") + if inputDict["L"] <= 0: + return create_error_parametric_output("Invalid value: L must be positive") + + outputDict = {} + outputDict["dev"] = self.BeamModel(**inputDict) + + paramOutput = create_normal_parametric_output(outputDict, paramInput) + logger.debug("outputValues: %s" % paramOutput.outputValues) + return paramOutput except: self._raiseSalomeError() @@ -201,7 +189,21 @@ class DEVIATION(GENERICSOLVER_ORB__POA.DEVIATION_Gen, logger.info("Finalize: " + self._getIdMessage()) except: self._raiseSalomeError() - + + def GetFilesToTransfer(self, studyId, detCaseEntry): + """ + This method can be used to specify files to transfer to the + computation resource. It is not useful for DEVIATION since it only + uses values from Salome study. + """ + try: + logger.info("GetFilesToTransfer: " + self._getIdMessage()) + inputFiles = [] + outputFiles = [] + return (inputFiles, outputFiles) + except: + self._raiseSalomeError() + ###################################################################### # This is the computation part of the GENERICSOLVER module, ie # the following method realizes what the solver is intended to do.