diff --git a/src/ensemble/ensemble.py b/src/ensemble/ensemble.py index 356cd66..f021336 100644 --- a/src/ensemble/ensemble.py +++ b/src/ensemble/ensemble.py @@ -405,10 +405,15 @@ def run_on_HPC(self, enX, batch_size=None, **kwargs): # Extract the results. Need a local counter to check the results in the correct order for c_member, member_i in enumerate([list_member_index[curr_n] for curr_n in n_e]): if sim_status[c_member]: - self.sim.extract_data(member_i) - en_pred.append(deepcopy(self.sim.pred_data)) - if self.sim.saveinfo is not None: # Try to save information - at.store_ensemble_sim_information(self.sim.saveinfo, member_i) + try: + self.sim.extract_data(member_i) + en_pred.append(deepcopy(self.sim.pred_data)) + if self.sim.saveinfo is not None: # Try to save information + at.store_ensemble_sim_information(self.sim.saveinfo, member_i) + except Exception as e: + print(f"Error extracting data for ensemble member {member_i}: {e}") + self.logger.error(f"Error extracting data for ensemble member {member_i}: {e}") + en_pred.append(False) else: en_pred.append(False) self.sim.remove_folder(member_i) diff --git a/src/popt/loop/ensemble_gaussian.py b/src/popt/loop/ensemble_gaussian.py index 57595a8..0a7e68e 100644 --- a/src/popt/loop/ensemble_gaussian.py +++ b/src/popt/loop/ensemble_gaussian.py @@ -91,7 +91,10 @@ def gradient(self, x, *args, **kwargs): # Truncate to bounds if (self.lb is not None) and (self.ub is not None): - enX = np.clip(enX, self.lb[:, None], self.ub[:, None]) + if self.transform: + enX = np.clip(enX, 0.0, 1.0) + else: + enX = np.clip(enX, self.lb[:, None], self.ub[:, None]) # Evaluate objective function for ensemble enF = self.function(enX, *args, **kwargs)