architecture-building-systems / CityEnergyAnalyst

The City Energy Analyst (CEA)
https://www.cityenergyanalyst.com/
MIT License
196 stars 62 forks source link

3524 memory error in optimisation script #3552

Closed MatNif closed 5 months ago

MatNif commented 5 months ago

Objective When running large use cases, the new optimisation script tends to encounter a memory error, which is linked to the copy library's deepcopy() method, as described in issue #3524. This PR addresses this issue by introducing new __copy()__ methods for objects of the SupplySystem and DistrictEnergySystem classes that operate more explicitly and thus more efficiently in terms of memory usage.

To Test For an elaborate test, a profiler could be used to compare the scripts' performance before and after this change. A more straightforward test would be to check if the script maintains the same functionality by comparing the structure of results of a run before and after this change. (Since the optimisation script contains inherent randomness, the results will not be exactly the same but they should at least be quite comparable in terms of optimal energy systems, objective functions etc.)