From cff739f0c5fd2b2c7942e8fe6d26c15af695ea4b Mon Sep 17 00:00:00 2001
From: jkriwet <jonathan.kriwet@eonerc.rwth-aachen.de>
Date: Wed, 5 Mar 2025 16:49:44 +0100
Subject: [PATCH] change for force_same handling

---
 energyplus_calibrator/calibration_class.py | 15 ++++++++++-----
 energyplus_calibrator/energy_plus_api.py   |  6 +++++-
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/energyplus_calibrator/calibration_class.py b/energyplus_calibrator/calibration_class.py
index e41b648..9d33e73 100644
--- a/energyplus_calibrator/calibration_class.py
+++ b/energyplus_calibrator/calibration_class.py
@@ -186,11 +186,15 @@ class EnergyPlusCalibrator:
         if self.force_same is not None:
             for force_to, force_from in self.force_same.items():
                 check_param(force_to)
-                if isinstance(force_from[0], (list, tuple)):
-                    for f in force_from[0]:
-                        check_param(f)
+                
+                if isinstance(force_from, (list, tuple)):
+                    if isinstance(force_from[0], (list, tuple)):
+                        for f in force_from[0]:
+                            check_param(f)
+                    else:
+                        check_param(force_from[0])
                 else:
-                    check_param(force_from[0])
+                    check_param(force_from)
 
     def _get_tuner_paras_dict(self) -> Dict[str, Tuple[float, Tuple[float, float]]]:
         """
@@ -540,7 +544,8 @@ class EnergyPlusCalibrator:
                 __file__).parents[1] / 'calibration_results' / folder_name
         else:
             results_folder = calibration_results_folder / folder_name
-            
+
+        print(f"Results will be saved in {results_folder}")
         results_folder.mkdir(parents=True)
         to_copy = ['calibrated_model.json',
                    'calibrated_model.idf',
diff --git a/energyplus_calibrator/energy_plus_api.py b/energyplus_calibrator/energy_plus_api.py
index 7933ca8..55ef1f6 100644
--- a/energyplus_calibrator/energy_plus_api.py
+++ b/energyplus_calibrator/energy_plus_api.py
@@ -407,10 +407,14 @@ class EnergyPlusAPI(SimulationAPI):
             return parameters
         
         for force_to, force_from in self.force_same.items():
-            if isinstance(force_from[0], str):
+            if isinstance(force_from, str):
+                parameters[force_to] = parameters[force_from]
+                continue
+            if isinstance(force_from, tuple) and not isinstance(force_from[1], str):
                 parameters[force_to] = parameters[force_from[0]] + \
                     force_from[1]
                 continue
+            
             elif not isinstance(force_from[0], tuple):
                 raise ValueError('force_from must be a tuple or a string')
             
-- 
GitLab