diff --git a/_alp/Agents/EnergyModel/Code/Functions.java b/_alp/Agents/EnergyModel/Code/Functions.java
index 8b4701d..12d879b 100644
--- a/_alp/Agents/EnergyModel/Code/Functions.java
+++ b/_alp/Agents/EnergyModel/Code/Functions.java
@@ -237,11 +237,6 @@
p_timeVariables.updateTimeVariables(v_timeStepsElapsed, p_timeParameters);
//// Store and reset model states
-for (J_EA EA : c_energyAssets) {
- EA.storeStatesAndReset();
-}
-
-
for (GridConnection GC : c_gridConnections) {
if (GC.v_rapidRunData != null) {
@@ -255,21 +250,12 @@
GC.v_rapidRunData.connectionMetaData = GC.v_liveConnectionMetaData.getClone();
GC.v_rapidRunData.initializeAccumulators(GC.v_liveData.activeEnergyCarriers, GC.v_liveData.activeConsumptionEnergyCarriers, GC.v_liveData.activeProductionEnergyCarriers, GC.v_liveAssetsMetaData.activeAssetFlows); //f_initializeAccumulators();
- GC.f_resetStates();
+ // f_resetStates resets the accumulators in rapidrundata, so must be after copying the previous run data
+ GC.f_resetStates(p_timeVariables);
- GC.c_tripTrackers.forEach(tt->{
- tt.storeStatesAndReset();
- tt.setStartIndex(p_timeVariables, GC.f_getChargePoint());
- //tt.prepareNextActivity(p_runStartTime_h*60, GC.f_getChargePoint());
- });
- if (GC instanceof GCHouse) {
- if (((GCHouse)GC).p_cookingTracker != null) {
- ((GCHouse)GC).p_cookingTracker.storeStatesAndReset();
- }
- }
}
for (GridConnection GC : c_subGridConnections) {
- GC.f_resetStates();
+ GC.f_resetStates(p_timeVariables);
}
for (GridNode GN : pop_gridNodes) {
@@ -285,19 +271,11 @@
if (b_storePreviousRapidRunData) {
EC.v_previousRunData = EC.v_rapidRunData;
}
- /*EC.v_rapidRunData.assetsMetaData = EC.v_liveAssetsMetaData.getClone();
- EC.v_rapidRunData.connectionMetaData = EC.v_liveConnectionMetaData.getClone();
- if(EC.v_rapidRunData.getStoreTotalAssetFlows() == false){
- EC.v_rapidRunData.setStoreTotalAssetFlows(true);
- EC.v_rapidRunData.initializeAccumulators(p_runEndTime_h - p_runStartTime_h, p_timeStep_h, EC.v_liveData.activeEnergyCarriers, EC.v_liveData.activeConsumptionEnergyCarriers, EC.v_liveData.activeProductionEnergyCarriers, EC.v_liveAssetsMetaData.activeAssetFlows);
- }*/
}
EC.v_rapidRunData = new J_RapidRunData(p_timeParameters, true);
EC.v_rapidRunData.assetsMetaData = EC.v_liveAssetsMetaData.getClone();
EC.v_rapidRunData.connectionMetaData = EC.v_liveConnectionMetaData.getClone();
- //if(EC.v_rapidRunData.getStoreTotalAssetFlows() == false){
EC.v_rapidRunData.setStoreTotalAssetFlows(true);
- //}
EC.v_rapidRunData.initializeAccumulators(EC.v_liveData.activeEnergyCarriers, EC.v_liveData.activeConsumptionEnergyCarriers, EC.v_liveData.activeProductionEnergyCarriers, EC.v_liveAssetsMetaData.activeAssetFlows);
EC.f_resetStates();
@@ -379,27 +357,8 @@
v_timeStepsElapsed = v_timeStepsElapsed_live;
p_timeVariables.updateTimeVariables(v_timeStepsElapsed, p_timeParameters);
-
-for (J_EA EA : c_energyAssets) {
- EA.restoreStates();
-}
-
-/*for (GridNode GN : pop_gridNodes) {
- //Has no reset states
-}*/
-
for (GridConnection GC : c_gridConnections) {
GC.f_resetStatesAfterRapidRun();
- GC.c_tripTrackers.forEach(tt->{
- tt.restoreStates();
- //tt.prepareNextActivity((t_h-p_runStartTime_h)*60, GC.f_getChargePoint());
- });
- //GC.c_tripTrackers.forEach(tt->tt.prepareNextActivity((t_h-p_runStartTime_h)*60));
- if (GC instanceof GCHouse) {
- if (((GCHouse)GC).p_cookingTracker != null) {
- ((GCHouse)GC).p_cookingTracker.restoreStates();
- }
- }
}
v_isRapidRun = false;
diff --git a/_alp/Agents/GridConnection/Code/Functions.java b/_alp/Agents/GridConnection/Code/Functions.java
index 20dfc03..bd39480 100644
--- a/_alp/Agents/GridConnection/Code/Functions.java
+++ b/_alp/Agents/GridConnection/Code/Functions.java
@@ -123,34 +123,43 @@
/*ALCODEEND*/}
-double f_resetStates()
+double f_resetStates(J_TimeVariables timeVariables)
{/*ALCODESTART::1668983912731*/
fm_currentProductionFlows_kW.clear();
fm_currentConsumptionFlows_kW.clear();
fm_currentBalanceFlows_kW.clear();
fm_heatFromEnergyCarrier_kW.clear();
fm_consumptionForHeating_kW.clear();
-//fm_currentAssetFlows_kW.clear(); // Why not this one??
+//fm_currentAssetFlows_kW.clear(); // Why not this one?? (I'd have to check, but all these fm's are reset at calculateEnergyBalance, so they possibly could all be removed, ~Luc 20/03/26)
v_previousPowerElectricity_kW = 0;
v_previousPowerHeat_kW = 0;
-//v_electricityPriceLowPassed_eurpkWh = 0;
-//v_currentElectricityPriceConsumption_eurpkWh = 0;
v_rapidRunData.resetAccumulators(v_liveData.activeEnergyCarriers, v_liveData.activeConsumptionEnergyCarriers, v_liveData.activeProductionEnergyCarriers); //f_initializeAccumulators();
//Reset specific variables/collections in specific GC types (GCProduction, GConversion, etc.)
f_resetSpecificGCStates();
-//Store states and reset EMS
+// Reset other classes
if(p_energyManagement != null){
p_energyManagement.storeStatesAndReset();
}
-//Store states and reset charge point
if(p_chargePoint != null){
p_chargePoint.storeStatesAndReset();
}
+
+c_energyAssets.forEach(ea -> ea.storeStatesAndReset());
+
+c_tripTrackers.forEach(tt -> {
+ tt.storeStatesAndReset();
+ tt.setStartIndex(timeVariables, f_getChargePoint());
+ }
+);
+
+if (p_cookingTracker != null) {
+ p_cookingTracker.storeStatesAndReset();
+}
/*ALCODEEND*/}
double f_setOperatingSwitches()
@@ -321,7 +330,7 @@ else if(j_ea instanceof J_EAFlex j_eaFlex){
double f_resetSpecificGCStates()
{/*ALCODESTART::1717060111619*/
-
+// to be overwritten by child GCs!
/*ALCODEEND*/}
double f_resetStatesAfterRapidRun()
@@ -329,17 +338,22 @@ else if(j_ea instanceof J_EAFlex j_eaFlex){
//Reset specificGC states after rapid run
f_resetSpecificGCStatesAfterRapidRun();
-//Restore states in EMS
+//Restore other classes
if(p_energyManagement != null){
p_energyManagement.restoreStates();
}
-//Restore states in charge point
if(p_chargePoint != null){
p_chargePoint.restoreStates();
}
+c_energyAssets.forEach(ea -> ea.restoreStates());
+c_tripTrackers.forEach(tt-> tt.restoreStates());
+
+if (p_cookingTracker != null) {
+ p_cookingTracker.restoreStates();
+}
/*ALCODEEND*/}
double f_resetSpecificGCStatesAfterRapidRun()
diff --git a/_alp/Agents/GridConnection/Code/Functions.xml b/_alp/Agents/GridConnection/Code/Functions.xml
index 4c6b2d3..d0c4b7f 100644
--- a/_alp/Agents/GridConnection/Code/Functions.xml
+++ b/_alp/Agents/GridConnection/Code/Functions.xml
@@ -118,6 +118,10 @@
false
true
true
+
+
+
+