Loading src/geoloop/utils/RunManager.py +8 −3 Original line number Diff line number Diff line Loading @@ -81,10 +81,15 @@ def sample_parameter_space(config: SingleRunConfig) -> tuple[dict, list[str]]: sample_space[param_name] = np.full(n_samples, float(fixed_value)) # broadcast locked (non-varying) parameters # Use list() to ensure each sample gets an independent copy of list parameters, # preventing shared-reference issues when optimization modifies values in-place # (e.g. r_out[-1] for COAXIAL pipes) for param_name in locked_param_names: sample_space[param_name] = [ getattr(config, param_name) for _ in range(n_samples) ] val = getattr(config, param_name) if isinstance(val, list): sample_space[param_name] = [list(val) for _ in range(n_samples)] else: sample_space[param_name] = [val for _ in range(n_samples)] return sample_space, varying_parameters Loading Loading
src/geoloop/utils/RunManager.py +8 −3 Original line number Diff line number Diff line Loading @@ -81,10 +81,15 @@ def sample_parameter_space(config: SingleRunConfig) -> tuple[dict, list[str]]: sample_space[param_name] = np.full(n_samples, float(fixed_value)) # broadcast locked (non-varying) parameters # Use list() to ensure each sample gets an independent copy of list parameters, # preventing shared-reference issues when optimization modifies values in-place # (e.g. r_out[-1] for COAXIAL pipes) for param_name in locked_param_names: sample_space[param_name] = [ getattr(config, param_name) for _ in range(n_samples) ] val = getattr(config, param_name) if isinstance(val, list): sample_space[param_name] = [list(val) for _ in range(n_samples)] else: sample_space[param_name] = [val for _ in range(n_samples)] return sample_space, varying_parameters Loading