From e5be8c774dddfd8f5fb0951f0c9cec3b68eb85f7 Mon Sep 17 00:00:00 2001 From: Luc-Sol Date: Thu, 20 Mar 2025 15:20:21 +0100 Subject: [PATCH 1/3] bugfix total installed PV/Wind/Batteries - The totals installed for PV / Wind and Batteries were not reset before being recalculated. - Also added a toString function for the AssetsMetaData class --- _alp/Classes/Class.J_AssetsMetaData.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/_alp/Classes/Class.J_AssetsMetaData.java b/_alp/Classes/Class.J_AssetsMetaData.java index 5411771e..227614af 100644 --- a/_alp/Classes/Class.J_AssetsMetaData.java +++ b/_alp/Classes/Class.J_AssetsMetaData.java @@ -34,6 +34,9 @@ public J_AssetsMetaData(Agent parentAgent) { } public void updateActiveAssetData(ArrayList gcList) { + this.totalInstalledPVPower_kW = 0.0; + this.totalInstalledWindPower_kW = 0.0; + this.totalInstalledBatteryStorageCapacity_MWh = 0.0; this.hasElectricHeating = false; this.hasElectricTransport = false; this.hasPV = false; @@ -153,7 +156,17 @@ public J_AssetsMetaData getClone() { @Override public String toString() { - return super.toString(); + return "totalInstalledPVPower_kW: " + totalInstalledPVPower_kW + + ", totalInstalledWindPower_kW: " + totalInstalledWindPower_kW + + ", totalInstalledBatteryStorageCapacity_MWh: " + totalInstalledBatteryStorageCapacity_MWh + + ", hasElectricHeating: " + hasElectricHeating + + ", hasElectricTransport: " + hasElectricTransport + + ", hasWindturbine: " + hasWindturbine + + ", hasBattery: " + hasBattery + + ", hasHeatGridConnection: " + hasHeatGridConnection + + ", hasElectrolyser: " + hasElectrolyser + + ", hasCHP: " + hasCHP + + ", hasV2G: " + hasV2G + + ", hasElectricCooking: " + hasElectricCooking; } - } \ No newline at end of file From d6843f4d75c0ed552ae5958744ee5e6f440c65c2 Mon Sep 17 00:00:00 2001 From: Luc-Sol Date: Thu, 20 Mar 2025 18:02:54 +0100 Subject: [PATCH 2/3] totalInstalled PV / Wind / Batteries for EnergyCoops - Added a collection c_parentCoops to the GC canvas. Filled with any coops that the GC is a member of. (not customers) - Removed the updates to totalInstalled PV / Wind / Batteries from the AssetsMetaData update method. They should always already be correctly set. - Now sets the totalInstalled PV / Wind / Batteries in the AssetsMetaData class of the EnergyCoop. --- _alp/Agents/EnergyCoop/Code/Functions.java | 7 ++-- _alp/Agents/EnergyCoop/Code/Functions.xml | 2 - _alp/Agents/EnergyModel/Code/Functions.java | 8 ++++ .../Agents/GridConnection/Code/Functions.java | 39 ++++++++++++------- _alp/Agents/GridConnection/Variables.xml | 18 +++++++++ _alp/Classes/Class.J_AssetsMetaData.java | 34 +++++----------- _alp/Classes/Class.J_EAProduction.java | 2 + 7 files changed, 66 insertions(+), 44 deletions(-) diff --git a/_alp/Agents/EnergyCoop/Code/Functions.java b/_alp/Agents/EnergyCoop/Code/Functions.java index 69d3e13f..2e6c6aa7 100644 --- a/_alp/Agents/EnergyCoop/Code/Functions.java +++ b/_alp/Agents/EnergyCoop/Code/Functions.java @@ -21,11 +21,11 @@ if (ConnectingChildActor.p_actorGroup.contains("production") || ConnectingChildActor.p_actorGroup.contains("Production") || ConnectingChildActor.p_actorGroup.contains("member")) { // Count owned production-sites as 'behind the meter' c_coopMembers.add( ConnectingChildActor); c_memberGridConnections.addAll(((ConnectionOwner)ConnectingChildActor).c_ownedGridConnections); + (((ConnectionOwner)ConnectingChildActor).c_ownedGridConnections).forEach( gc -> gc.c_parentCoops.add(this)); //traceln("Adding: %s", ((ConnectionOwner)ConnectingChildActor).c_ownedGridConnections); } else { c_coopCustomers.add( ConnectingChildActor ); c_customerGridConnections.addAll(((ConnectionOwner)ConnectingChildActor).c_ownedGridConnections); - } } else { c_coopCustomers.add( ConnectingChildActor ); @@ -1166,7 +1166,6 @@ {/*ALCODESTART::1739974426481*/ c_memberGridConnections = gcList; - //Basic initialization f_initialize(); @@ -1293,10 +1292,12 @@ ArrayList f_getAllChildMemberGridConnections() HashSet f_getAllChildMemberGridConnections_recursion(HashSet allMemberGridConnections) {/*ALCODESTART::1740492770320*/ //Add to collection +traceln(" c_memberGridConnections : " + c_memberGridConnections); allMemberGridConnections.addAll(this.c_memberGridConnections); - +traceln("allMemberGridConnections: " + allMemberGridConnections); //Recursive loop (repeat this function till bottom) List childCoops = findAll(c_coopMembers, coopMember -> coopMember instanceof EnergyCoop); +traceln("childCoops: " + childCoops); if(childCoops.size() == 0){ return allMemberGridConnections; } diff --git a/_alp/Agents/EnergyCoop/Code/Functions.xml b/_alp/Agents/EnergyCoop/Code/Functions.xml index 52bb42da..3006028d 100644 --- a/_alp/Agents/EnergyCoop/Code/Functions.xml +++ b/_alp/Agents/EnergyCoop/Code/Functions.xml @@ -486,7 +486,6 @@ ArrayList<GridConnection> 1740493169961 - 60 420