Skip to content

Commit eef015a

Browse files
introduced AbstractThermalStorageInputFactory and make factories of cylindrical and domestic storage extending it
1 parent d8515fc commit eef015a

File tree

3 files changed

+68
-64
lines changed

3 files changed

+68
-64
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* © 2024. TU Dortmund University,
3+
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
4+
* Research group Distribution grid planning and operation
5+
*/
6+
package edu.ie3.datamodel.io.factory.input;
7+
8+
import edu.ie3.datamodel.models.StandardUnits;
9+
import edu.ie3.datamodel.models.input.AssetInput;
10+
import edu.ie3.util.quantities.interfaces.SpecificHeatCapacity;
11+
import javax.measure.quantity.Power;
12+
import javax.measure.quantity.Temperature;
13+
import javax.measure.quantity.Volume;
14+
import tech.units.indriya.ComparableQuantity;
15+
16+
public abstract class AbstractThermalStorageInputFactory<T extends AssetInput>
17+
extends AssetInputEntityFactory<T, ThermalUnitInputEntityData> {
18+
19+
private static final String STORAGE_VOLUME_LVL = "storageVolumeLvl";
20+
private static final String INLET_TEMP = "inletTemp";
21+
private static final String RETURN_TEMP = "returnTemp";
22+
private static final String C = "c";
23+
private static final String P_THERMAL_MAX = "pThermalMax";
24+
25+
public AbstractThermalStorageInputFactory(Class<T> clazz) {
26+
super(clazz);
27+
}
28+
29+
@Override
30+
protected String[] getAdditionalFields() {
31+
return new String[] {STORAGE_VOLUME_LVL, INLET_TEMP, RETURN_TEMP, C, P_THERMAL_MAX};
32+
}
33+
34+
protected ComparableQuantity<Volume> getStorageVolumeLvl(ThermalUnitInputEntityData data) {
35+
return data.getQuantity(STORAGE_VOLUME_LVL, StandardUnits.VOLUME);
36+
}
37+
38+
protected ComparableQuantity<Temperature> getInletTemp(ThermalUnitInputEntityData data) {
39+
return data.getQuantity(INLET_TEMP, StandardUnits.TEMPERATURE);
40+
}
41+
42+
protected ComparableQuantity<Temperature> getReturnTemp(ThermalUnitInputEntityData data) {
43+
return data.getQuantity(RETURN_TEMP, StandardUnits.TEMPERATURE);
44+
}
45+
46+
protected ComparableQuantity<SpecificHeatCapacity> getSpecificHeatCapacity(
47+
ThermalUnitInputEntityData data) {
48+
return data.getQuantity(C, StandardUnits.SPECIFIC_HEAT_CAPACITY);
49+
}
50+
51+
protected ComparableQuantity<Power> getMaxThermalPower(ThermalUnitInputEntityData data) {
52+
return data.getQuantity(P_THERMAL_MAX, StandardUnits.ACTIVE_POWER_IN);
53+
}
54+
}

src/main/java/edu/ie3/datamodel/io/factory/input/CylindricalStorageInputFactory.java

+7-32
Original file line numberDiff line numberDiff line change
@@ -6,62 +6,37 @@
66
package edu.ie3.datamodel.io.factory.input;
77

88
import edu.ie3.datamodel.models.OperationTime;
9-
import edu.ie3.datamodel.models.StandardUnits;
109
import edu.ie3.datamodel.models.input.OperatorInput;
1110
import edu.ie3.datamodel.models.input.thermal.CylindricalStorageInput;
1211
import edu.ie3.datamodel.models.input.thermal.ThermalBusInput;
13-
import edu.ie3.util.quantities.interfaces.SpecificHeatCapacity;
1412
import java.util.UUID;
15-
import javax.measure.quantity.Power;
16-
import javax.measure.quantity.Temperature;
17-
import javax.measure.quantity.Volume;
18-
import tech.units.indriya.ComparableQuantity;
1913

2014
public class CylindricalStorageInputFactory
21-
extends AssetInputEntityFactory<CylindricalStorageInput, ThermalUnitInputEntityData> {
22-
private static final String STORAGE_VOLUME_LVL = "storageVolumeLvl";
23-
private static final String INLET_TEMP = "inletTemp";
24-
private static final String RETURN_TEMP = "returnTemp";
25-
private static final String C = "c";
26-
private static final String P_THERMAL_MAX = "pThermalMax";
15+
extends AbstractThermalStorageInputFactory<CylindricalStorageInput> {
2716

2817
public CylindricalStorageInputFactory() {
2918
super(CylindricalStorageInput.class);
3019
}
3120

32-
@Override
33-
protected String[] getAdditionalFields() {
34-
return new String[] {STORAGE_VOLUME_LVL, INLET_TEMP, RETURN_TEMP, C, P_THERMAL_MAX};
35-
}
36-
3721
@Override
3822
protected CylindricalStorageInput buildModel(
3923
ThermalUnitInputEntityData data,
4024
UUID uuid,
4125
String id,
4226
OperatorInput operator,
4327
OperationTime operationTime) {
28+
4429
final ThermalBusInput bus = data.getBusInput();
45-
final ComparableQuantity<Volume> storageVolumeLvl =
46-
data.getQuantity(STORAGE_VOLUME_LVL, StandardUnits.VOLUME);
47-
final ComparableQuantity<Temperature> inletTemp =
48-
data.getQuantity(INLET_TEMP, StandardUnits.TEMPERATURE);
49-
final ComparableQuantity<Temperature> returnTemp =
50-
data.getQuantity(RETURN_TEMP, StandardUnits.TEMPERATURE);
51-
final ComparableQuantity<SpecificHeatCapacity> c =
52-
data.getQuantity(C, StandardUnits.SPECIFIC_HEAT_CAPACITY);
53-
final ComparableQuantity<Power> pThermalMax =
54-
data.getQuantity(P_THERMAL_MAX, StandardUnits.ACTIVE_POWER_IN);
5530
return new CylindricalStorageInput(
5631
uuid,
5732
id,
5833
operator,
5934
operationTime,
6035
bus,
61-
storageVolumeLvl,
62-
inletTemp,
63-
returnTemp,
64-
c,
65-
pThermalMax);
36+
getStorageVolumeLvl(data),
37+
getInletTemp(data),
38+
getReturnTemp(data),
39+
getSpecificHeatCapacity(data),
40+
getMaxThermalPower(data));
6641
}
6742
}

src/main/java/edu/ie3/datamodel/io/factory/input/DomesticHotWaterStorageInputFactory.java

+7-32
Original file line numberDiff line numberDiff line change
@@ -6,62 +6,37 @@
66
package edu.ie3.datamodel.io.factory.input;
77

88
import edu.ie3.datamodel.models.OperationTime;
9-
import edu.ie3.datamodel.models.StandardUnits;
109
import edu.ie3.datamodel.models.input.OperatorInput;
1110
import edu.ie3.datamodel.models.input.thermal.DomesticHotWaterStorageInput;
1211
import edu.ie3.datamodel.models.input.thermal.ThermalBusInput;
13-
import edu.ie3.util.quantities.interfaces.SpecificHeatCapacity;
1412
import java.util.UUID;
15-
import javax.measure.quantity.Power;
16-
import javax.measure.quantity.Temperature;
17-
import javax.measure.quantity.Volume;
18-
import tech.units.indriya.ComparableQuantity;
1913

2014
public class DomesticHotWaterStorageInputFactory
21-
extends AssetInputEntityFactory<DomesticHotWaterStorageInput, ThermalUnitInputEntityData> {
22-
private static final String STORAGE_VOLUME_LVL = "storageVolumeLvl";
23-
private static final String INLET_TEMP = "inletTemp";
24-
private static final String RETURN_TEMP = "returnTemp";
25-
private static final String C = "c";
26-
private static final String P_THERMAL_MAX = "pThermalMax";
15+
extends AbstractThermalStorageInputFactory<DomesticHotWaterStorageInput> {
2716

2817
public DomesticHotWaterStorageInputFactory() {
2918
super(DomesticHotWaterStorageInput.class);
3019
}
3120

32-
@Override
33-
protected String[] getAdditionalFields() {
34-
return new String[] {STORAGE_VOLUME_LVL, INLET_TEMP, RETURN_TEMP, C, P_THERMAL_MAX};
35-
}
36-
3721
@Override
3822
protected DomesticHotWaterStorageInput buildModel(
3923
ThermalUnitInputEntityData data,
4024
UUID uuid,
4125
String id,
4226
OperatorInput operator,
4327
OperationTime operationTime) {
28+
4429
final ThermalBusInput bus = data.getBusInput();
45-
final ComparableQuantity<Volume> storageVolumeLvl =
46-
data.getQuantity(STORAGE_VOLUME_LVL, StandardUnits.VOLUME);
47-
final ComparableQuantity<Temperature> inletTemp =
48-
data.getQuantity(INLET_TEMP, StandardUnits.TEMPERATURE);
49-
final ComparableQuantity<Temperature> returnTemp =
50-
data.getQuantity(RETURN_TEMP, StandardUnits.TEMPERATURE);
51-
final ComparableQuantity<SpecificHeatCapacity> c =
52-
data.getQuantity(C, StandardUnits.SPECIFIC_HEAT_CAPACITY);
53-
final ComparableQuantity<Power> pThermalMax =
54-
data.getQuantity(P_THERMAL_MAX, StandardUnits.ACTIVE_POWER_IN);
5530
return new DomesticHotWaterStorageInput(
5631
uuid,
5732
id,
5833
operator,
5934
operationTime,
6035
bus,
61-
storageVolumeLvl,
62-
inletTemp,
63-
returnTemp,
64-
c,
65-
pThermalMax);
36+
getStorageVolumeLvl(data),
37+
getInletTemp(data),
38+
getReturnTemp(data),
39+
getSpecificHeatCapacity(data),
40+
getMaxThermalPower(data));
6641
}
6742
}

0 commit comments

Comments
 (0)