@@ -1429,6 +1429,9 @@ class ModelicaSystemDoE:
14291429 Class to run DoEs based on a (Open)Modelica model using ModelicaSystem
14301430 """
14311431
1432+ DF_COLUMNS_RESULTFILENAME : str = 'resultfilename'
1433+ DF_COLUMNS_RESULTS_AVAILABLE : str = 'results available'
1434+
14321435 def __init__ (
14331436 self ,
14341437 fileName : Optional [str | os .PathLike | pathlib .Path ] = None ,
@@ -1549,7 +1552,7 @@ def prepare(self) -> int:
15491552 {
15501553 'ID structure' : idx_pc_structure ,
15511554 'ID simple' : idx_pc_simple ,
1552- 'resulfilename' : resfilename ,
1555+ self . DF_COLUMNS_RESULTFILENAME : resfilename ,
15531556 'structural parameters ID' : idx_pc_structure ,
15541557 }
15551558 | sim_args_structure
@@ -1558,7 +1561,7 @@ def prepare(self) -> int:
15581561 }
15591562 | sim_args_simple
15601563 | {
1561- 'results available' : False ,
1564+ self . DF_COLUMNS_RESULTS_AVAILABLE : False ,
15621565 }
15631566 )
15641567
@@ -1635,14 +1638,15 @@ def worker(worker_id, task_queue):
16351638 thread .join ()
16361639
16371640 for idx , row in self ._sim_df .to_dict ('index' ).items ():
1638- resultfilename = row ['resultfilename' ]
1641+ resultfilename = row [self . DF_COLUMNS_RESULTFILENAME ]
16391642 resultfile = self ._resultpath / resultfilename
16401643
16411644 if resultfile .exists ():
1642- self ._sim_df .loc [idx , 'results available' ] = True
1645+ mask = self ._sim_df [self .DF_COLUMNS_RESULTFILENAME ] == resultfilename
1646+ self ._sim_df .loc [mask , self .DF_COLUMNS_RESULTS_AVAILABLE ] = True
16431647
1648+ sim_done = self ._sim_df [self .DF_COLUMNS_RESULTS_AVAILABLE ].sum ()
16441649 sim_total = self ._sim_df .shape [0 ]
1645- sim_done = self ._sim_df ['results available' ].sum ()
16461650 logger .info (f"All workers finished ({ sim_done } of { sim_total } simulations with a result file)." )
16471651
16481652 def get_solutions (
@@ -1661,17 +1665,17 @@ def get_solutions(
16611665 if self ._sim_df is None :
16621666 return None
16631667
1664- if self ._sim_df .shape [0 ] == 0 or self ._sim_df ['results available' ].sum () == 0 :
1668+ if self ._sim_df .shape [0 ] == 0 or self ._sim_df [self . DF_COLUMNS_RESULTS_AVAILABLE ].sum () == 0 :
16651669 raise ModelicaSystemError ("No result files available - all simulations did fail?" )
16661670
16671671 if var_list is None :
1668- resultfilename = self ._sim_df ['resultfilename' ].values [0 ]
1672+ resultfilename = self ._sim_df [self . DF_COLUMNS_RESULTFILENAME ].values [0 ]
16691673 resultfile = self ._resultpath / resultfilename
16701674 return self ._mod .getSolutions (resultfile = resultfile )
16711675
16721676 sol_dict : dict [str , pd .DataFrame | str ] = {}
16731677 for row in self ._sim_df .to_dict ('records' ):
1674- resultfilename = row ['resultfilename' ]
1678+ resultfilename = row [self . DF_COLUMNS_RESULTFILENAME ]
16751679 resultfile = self ._resultpath / resultfilename
16761680
16771681 try :
0 commit comments