diff --git a/energyplus_calibrator/calibration_class.py b/energyplus_calibrator/calibration_class.py
index 05810b92c4a8fe725a96bcbd3f7cbddb10811680..167f8be08b115a66746d5e65081b5e75d461a9a1 100644
--- a/energyplus_calibrator/calibration_class.py
+++ b/energyplus_calibrator/calibration_class.py
@@ -187,7 +187,11 @@ class EnergyPlusCalibrator:
         if self.force_same is not None:
             for force_to, force_from in self.force_same.items():
                 check_param(force_to)
-                check_param(force_from[0])
+                if isinstance(force_from[0], (list, tuple)):
+                    for f in force_from[0]:
+                        check_param(f)
+                else:
+                    check_param(force_from[0])
 
     def _get_tuner_paras_dict(self) -> Dict[str, Tuple[float, Tuple[float, float]]]:
         """
diff --git a/energyplus_calibrator/energy_plus_api.py b/energyplus_calibrator/energy_plus_api.py
index 741159346bd6b884d98dd6df09b720ebe627ecff..aab0dadd2461326351193df621dc8f5dee0eee50 100644
--- a/energyplus_calibrator/energy_plus_api.py
+++ b/energyplus_calibrator/energy_plus_api.py
@@ -349,6 +349,7 @@ class EnergyPlusAPI(SimulationAPI):
                 _df = self._single_simulation_solo_mp(kwargs.copy())
             else:
                 _df = self._single_simulation_solo(kwargs.copy())
+                
             if _df is None:
                 if queue is not None:
                     queue.put(None)
@@ -466,8 +467,19 @@ class EnergyPlusAPI(SimulationAPI):
 
         if self.force_same is not None and not dont_force_same:
             for force_to, force_from in self.force_same.items():
-                parameters[force_to] = parameters[force_from[0]] + \
-                    force_from[1]
+                if isinstance(force_from[0], 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')
+                
+                #force_from is a tuple
+                if force_from[1] == 'min':
+                    parameters[force_to] = min([parameters[i] for i in force_from[0]])
+                else:
+                    raise NameError('force_from[1] must be "min"')
+                
 
         for key in self._set_output_timestep:
             self._set_output_timestep[key] = self.sim_setup.dataframe_interval
@@ -509,6 +521,10 @@ class EnergyPlusAPI(SimulationAPI):
                 self.logger.error('---ARGS---\n%s', result.args)
                 self.logger.error('---STDOUT---\n%s', result.stdout.decode())
                 self.logger.error('---STDERR---\n%s', result.stderr.decode())
+                error_file = _temp_output_directory / 'eplusout.err'
+                if error_file.exists():
+                    with open(error_file, 'r') as f:
+                        self.logger.error(f.read())
             shutil.rmtree(_temp_output_directory)
             shutil.rmtree(_temp_generated_inputs)
             if fail_on_error: