diff --git a/dynamics/Dynamic.py b/dynamics/Dynamic.py index af6662d5840abc90e7e06d86fd9d368ba3d56c06..19f12f8f30bfc2295c8721493d9ee1eccbdeaa62 100644 --- a/dynamics/Dynamic.py +++ b/dynamics/Dynamic.py @@ -845,13 +845,14 @@ def resample_variable(variable, dynamic, target_dynamic, target_set): if target_i_start < source_i_start or source_i_end < target_i_end: raise ValueError("The dynamic of the source variable has to cover the dynamic of the target variable!") assignment = dynamic.global_dynamic.get_assignment(dynamic, target_dynamic) - def rule(m, t): + target_variable = dict() + for t in target_set: data = assignment.data[t] if isinstance(data, list): - return pyo.quicksum(variable[variable_index] * factor for variable_index, factor in assignment.data[t]) + target_variable[t] = pyo.quicksum(variable[variable_index] * factor for variable_index, factor in assignment.data[t]) else: - return variable[data[0]] * data[1] - return pyo.Expression(target_set, rule=rule) + target_variable[t] = variable[data[0]] * data[1] + return target_variable def test_single_resampling(dynamic_1, dynamic_2, f): import numpy as np