@@ -1871,17 +1871,20 @@ def run_doe():
18711871
18721872 def __init__ (
18731873 self ,
1874+ # data to be used for ModelicaSystem
18741875 fileName : Optional [str | os .PathLike ] = None ,
18751876 modelName : Optional [str ] = None ,
18761877 lmodel : Optional [list [str | tuple [str , str ]]] = None ,
18771878 commandLineOptions : Optional [list [str ]] = None ,
18781879 variableFilter : Optional [str ] = None ,
18791880 customBuildDirectory : Optional [str | os .PathLike ] = None ,
18801881 omhome : Optional [str ] = None ,
1881-
1882+ omc_process : Optional [OMCProcess ] = None , # TODO: use omc session
1883+ # simulation specific input
1884+ # TODO: add more settings (simulation options, input options, ...)
18821885 simargs : Optional [dict [str , Optional [str | dict [str , str ] | numbers .Number ]]] = None ,
18831886 timeout : Optional [int ] = None ,
1884-
1887+ # DoE specific inputs
18851888 resultpath : Optional [str | os .PathLike ] = None ,
18861889 parameters : Optional [dict [str , list [str ] | list [int ] | list [float ]]] = None ,
18871890 ) -> None :
@@ -1890,36 +1893,30 @@ def __init__(
18901893 ModelicaSystem.simulate(). Additionally, the path to store the result files is needed (= resultpath) as well as
18911894 a list of parameters to vary for the Doe (= parameters). All possible combinations are considered.
18921895 """
1893- self ._lmodel = lmodel
1894- self ._modelName = modelName
1895- self ._fileName = fileName
1896-
1897- self ._CommandLineOptions = commandLineOptions
1898- self ._variableFilter = variableFilter
1899- self ._customBuildDirectory = customBuildDirectory
1900- self ._omhome = omhome
19011896
1902- # reference for the model; not used for any simulations but to evaluate parameters, etc.
19031897 self ._mod = ModelicaSystem (
1904- fileName = self ._fileName ,
1905- modelName = self ._modelName ,
1906- lmodel = self ._lmodel ,
1907- commandLineOptions = self ._CommandLineOptions ,
1908- variableFilter = self ._variableFilter ,
1909- customBuildDirectory = self ._customBuildDirectory ,
1910- omhome = self ._omhome ,
1898+ fileName = fileName ,
1899+ modelName = modelName ,
1900+ lmodel = lmodel ,
1901+ commandLineOptions = commandLineOptions ,
1902+ variableFilter = variableFilter ,
1903+ customBuildDirectory = customBuildDirectory ,
1904+ omhome = omhome ,
1905+ omc_process = omc_process ,
19111906 )
19121907
1908+ self ._model_name = modelName
1909+
19131910 self ._simargs = simargs
19141911 self ._timeout = timeout
19151912
1916- if resultpath is not None :
1917- self ._resultpath = self .session ().omcpath (resultpath )
1918- else :
1913+ if resultpath is None :
19191914 self ._resultpath = self .session ().omcpath_tempdir ()
1920-
1915+ else :
1916+ self ._resultpath = self .session ().omcpath (resultpath )
19211917 if not self ._resultpath .is_dir ():
1922- raise ModelicaSystemError (f"Resultpath { self ._resultpath .as_posix ()} does not exists!" )
1918+ raise ModelicaSystemError ("Argument resultpath must be set to a valid path within the environment used "
1919+ f"for the OpenModelica session: { resultpath } !" )
19231920
19241921 if isinstance (parameters , dict ):
19251922 self ._parameters = parameters
@@ -1973,15 +1970,15 @@ def prepare(self) -> int:
19731970 pk_value = pc_structure [idx_structure ]
19741971 if isinstance (pk_value , str ):
19751972 pk_value_str = pk_value .replace ('"' , '\\ "' )
1976- expression = f"setParameterValue({ self ._modelName } , { pk_structure } , \" { pk_value_str } \" )"
1973+ expression = f"setParameterValue({ self ._model_name } , { pk_structure } , \" { pk_value_str } \" )"
19771974 elif isinstance (pk_value , bool ):
19781975 pk_value_bool_str = "true" if pk_value else "false"
1979- expression = f"setParameterValue({ self ._modelName } , { pk_structure } , { pk_value_bool_str } );"
1976+ expression = f"setParameterValue({ self ._model_name } , { pk_structure } , { pk_value_bool_str } );"
19801977 else :
1981- expression = f"setParameterValue({ self ._modelName } , { pk_structure } , { pk_value } )"
1978+ expression = f"setParameterValue({ self ._model_name } , { pk_structure } , { pk_value } )"
19821979 res = self ._mod .sendExpression (expression )
19831980 if not res :
1984- raise ModelicaSystemError (f"Cannot set structural parameter { self ._modelName } .{ pk_structure } "
1981+ raise ModelicaSystemError (f"Cannot set structural parameter { self ._model_name } .{ pk_structure } "
19851982 f"to { pk_value } using { repr (expression )} " )
19861983
19871984 self ._mod .buildModel ()
0 commit comments