@@ -1835,17 +1835,20 @@ def run_doe():
18351835
18361836 def __init__ (
18371837 self ,
1838+ # data to be used for ModelicaSystem
18381839 fileName : Optional [str | os .PathLike ] = None ,
18391840 modelName : Optional [str ] = None ,
18401841 lmodel : Optional [list [str | tuple [str , str ]]] = None ,
18411842 commandLineOptions : Optional [list [str ]] = None ,
18421843 variableFilter : Optional [str ] = None ,
18431844 customBuildDirectory : Optional [str | os .PathLike ] = None ,
18441845 omhome : Optional [str ] = None ,
1845-
1846+ omc_process : Optional [OMCProcess ] = None , # TODO: use omc session
1847+ # simulation specific input
1848+ # TODO: add more settings (simulation options, input options, ...)
18461849 simargs : Optional [dict [str , Optional [str | dict [str , str ] | numbers .Number ]]] = None ,
18471850 timeout : Optional [int ] = None ,
1848-
1851+ # DoE specific inputs
18491852 resultpath : Optional [str | os .PathLike ] = None ,
18501853 parameters : Optional [dict [str , list [str ] | list [int ] | list [float ]]] = None ,
18511854 ) -> None :
@@ -1854,36 +1857,30 @@ def __init__(
18541857 ModelicaSystem.simulate(). Additionally, the path to store the result files is needed (= resultpath) as well as
18551858 a list of parameters to vary for the Doe (= parameters). All possible combinations are considered.
18561859 """
1857- self ._lmodel = lmodel
1858- self ._modelName = modelName
1859- self ._fileName = fileName
1860-
1861- self ._CommandLineOptions = commandLineOptions
1862- self ._variableFilter = variableFilter
1863- self ._customBuildDirectory = customBuildDirectory
1864- self ._omhome = omhome
18651860
1866- # reference for the model; not used for any simulations but to evaluate parameters, etc.
18671861 self ._mod = ModelicaSystem (
1868- fileName = self ._fileName ,
1869- modelName = self ._modelName ,
1870- lmodel = self ._lmodel ,
1871- commandLineOptions = self ._CommandLineOptions ,
1872- variableFilter = self ._variableFilter ,
1873- customBuildDirectory = self ._customBuildDirectory ,
1874- omhome = self ._omhome ,
1862+ fileName = fileName ,
1863+ modelName = modelName ,
1864+ lmodel = lmodel ,
1865+ commandLineOptions = commandLineOptions ,
1866+ variableFilter = variableFilter ,
1867+ customBuildDirectory = customBuildDirectory ,
1868+ omhome = omhome ,
1869+ omc_process = omc_process ,
18751870 )
18761871
1872+ self ._model_name = modelName
1873+
18771874 self ._simargs = simargs
18781875 self ._timeout = timeout
18791876
1880- if resultpath is not None :
1881- self ._resultpath = self .session ().omcpath (resultpath )
1882- else :
1877+ if resultpath is None :
18831878 self ._resultpath = self .session ().omcpath_tempdir ()
1884-
1879+ else :
1880+ self ._resultpath = self .session ().omcpath (resultpath )
18851881 if not self ._resultpath .is_dir ():
1886- raise ModelicaSystemError (f"Resultpath { self ._resultpath .as_posix ()} does not exists!" )
1882+ raise ModelicaSystemError ("Argument resultpath must be set to a valid path within the environment used "
1883+ f"for the OpenModelica session: { resultpath } !" )
18871884
18881885 if isinstance (parameters , dict ):
18891886 self ._parameters = parameters
@@ -1937,15 +1934,15 @@ def prepare(self) -> int:
19371934 pk_value = pc_structure [idx_structure ]
19381935 if isinstance (pk_value , str ):
19391936 pk_value_str = pk_value .replace ('"' , '\\ "' )
1940- expression = f"setParameterValue({ self ._modelName } , { pk_structure } , \" { pk_value_str } \" )"
1937+ expression = f"setParameterValue({ self ._model_name } , { pk_structure } , \" { pk_value_str } \" )"
19411938 elif isinstance (pk_value , bool ):
19421939 pk_value_bool_str = "true" if pk_value else "false"
1943- expression = f"setParameterValue({ self ._modelName } , { pk_structure } , { pk_value_bool_str } );"
1940+ expression = f"setParameterValue({ self ._model_name } , { pk_structure } , { pk_value_bool_str } );"
19441941 else :
1945- expression = f"setParameterValue({ self ._modelName } , { pk_structure } , { pk_value } )"
1942+ expression = f"setParameterValue({ self ._model_name } , { pk_structure } , { pk_value } )"
19461943 res = self ._mod .sendExpression (expression )
19471944 if not res :
1948- raise ModelicaSystemError (f"Cannot set structural parameter { self ._modelName } .{ pk_structure } "
1945+ raise ModelicaSystemError (f"Cannot set structural parameter { self ._model_name } .{ pk_structure } "
19491946 f"to { pk_value } using { repr (expression )} " )
19501947
19511948 self ._mod .buildModel ()
0 commit comments