1
- abstract type
2
- RenewableGen <: Generator
1
+ abstract type RenewableGen <: Generator end
2
+
3
+ # TODO DT temporary workaround
4
+ function get_uuid (obj:: T ):: Base.UUID where T <: RenewableGen
5
+ return uuid (obj)
3
6
end
4
7
5
- struct RenewableFix <: RenewableGen
8
+ struct RenewableGenBase
6
9
name:: String
7
10
available:: Bool
8
11
bus:: Bus
9
12
tech:: TechRenewable
10
13
internal:: PowerSystemInternal
11
14
end
12
15
16
+ function RenewableGenBase (name, available, bus, tech)
17
+ return RenewableGenBase (name, available, bus, tech, PowerSystemInternal ())
18
+ end
19
+
20
+ RenewableGenBase (; name= " init" ,
21
+ status= false ,
22
+ bus= Bus (),
23
+ installedcapacity= 0.0 ) = RenewableGenBase (name, status, bus,
24
+ installedcapacity)
25
+
26
+ @forward ((RenewableGenBase, :internal ), PowerSystemInternal)
27
+
28
+ name (value:: RenewableGenBase ) = value. name
29
+ available (value:: RenewableGenBase ) = value. available
30
+ bus (value:: RenewableGenBase ) = value. bus
31
+ tech (value:: RenewableGenBase ) = value. tech
32
+
33
+ struct RenewableFix <: RenewableGen
34
+ base:: RenewableGenBase
35
+ end
36
+
13
37
function RenewableFix (name, available, bus, tech)
14
- return RenewableFix (name, available, bus, tech, PowerSystemInternal ( ))
38
+ return RenewableFix (RenewableGenBase ( name, available, bus, tech))
15
39
end
16
40
17
41
""" Accepts installedcapacity as a Float64 and then creates a TechRenewable."""
18
42
function RenewableFix (name, status, bus, installedcapacity:: Float64 )
19
43
tech = TechRenewable (installedcapacity, nothing , 1.0 )
20
- RenewableFix (name, status, bus, tech)
44
+ RenewableFix (RenewableGenBase ( name, status, bus, tech) )
21
45
end
22
46
23
47
RenewableFix (; name= " init" ,
24
48
status = false ,
25
49
bus = Bus (),
26
50
installedcapacity = 0.0 ) = RenewableFix (name, status, bus, installedcapacity)
27
51
52
+ @forward ((RenewableFix, :base ), RenewableGenBase)
53
+
28
54
struct RenewableCurtailment <: RenewableGen
29
- name:: String
30
- available:: Bool
31
- bus:: Bus
32
- tech:: TechRenewable
55
+ base:: RenewableGenBase
33
56
econ:: Union{EconRenewable,Nothing}
34
- internal:: PowerSystemInternal
35
57
end
36
58
37
59
function RenewableCurtailment (name, available, bus, tech, econ)
38
- return RenewableCurtailment (name, available, bus, tech, econ, PowerSystemInternal () )
60
+ return RenewableCurtailment (RenewableGenBase ( name, available, bus, tech) , econ)
39
61
end
40
62
41
63
""" Accepts installedcapacity as a Float64 and then creates a TechRenewable."""
@@ -50,21 +72,32 @@ RenewableCurtailment(; name = "init",
50
72
installedcapacity = 0.0 ,
51
73
econ = EconRenewable ()) = RenewableCurtailment (name, status, bus, installedcapacity, econ)
52
74
75
+ econ (value:: RenewableCurtailment ) = value. econ
76
+
77
+ @forward ((RenewableCurtailment, :base ), RenewableGenBase)
78
+
53
79
struct RenewableFullDispatch <: RenewableGen
54
- name:: String
55
- available:: Bool
56
- bus:: Bus
57
- tech:: TechRenewable
80
+ base:: RenewableGenBase
58
81
econ:: Union{EconRenewable,Nothing}
59
- internal:: PowerSystemInternal
60
82
end
61
83
62
84
function RenewableFullDispatch (name, available, bus, tech, econ)
63
- return RenewableFullDispatch (name, available, bus, tech, econ, PowerSystemInternal () )
85
+ return RenewableFullDispatch (RenewableGenBase ( name, available, bus, tech) , econ)
64
86
end
65
87
66
- RenewableFullDispatch (; name = " init" ,
67
- status = false ,
68
- bus= Bus (),
69
- installedcapacity = 0.0 ,
70
- econ = EconRenewable ()) = RenewableCurtailment (name, status, bus, installedcapacity, econ)
88
+ function RenewableFullDispatch (; name = " init" ,
89
+ status = false ,
90
+ bus= Bus (),
91
+ installedcapacity = 0.0 ,
92
+ econ = EconRenewable ())
93
+ rc = RenewableCurtailment (name, status, bus, installedcapacity, econ)
94
+ return RenewableFullDispatch (PowerSystems. name (rc),
95
+ PowerSystems. available (rc),
96
+ PowerSystems. bus (rc),
97
+ PowerSystems. tech (rc),
98
+ PowerSystems. econ (rc))
99
+ end
100
+
101
+ econ (value:: RenewableFullDispatch ) = value. econ
102
+
103
+ @forward ((RenewableFullDispatch, :base ), RenewableGenBase)
0 commit comments