11""" 
2-     HeatCapacitor(; name, C, T_start= 273.15 + 20) 
2+     HeatCapacitor(; name, C, T =  273.15 + 20) 
33
44Lumped thermal element storing heat 
55
66# States: 
77
8-   - `T`: [`K`] Temperature of element 
8+   - `T`: [`K`] Temperature of element. It accepts an initial value, which defaults to 273.15 + 20.  
99  - `der_T`: [`K/s`] Time derivative of temperature 
1010
1111# Connectors: 
@@ -15,25 +15,28 @@ Lumped thermal element storing heat
1515# Parameters: 
1616
1717  - `C`: [`J/K`] Heat capacity of element (= cp*m) 
18-   - `T_start`: [`K`] Initial temperature of element 
1918""" 
20- @component  function  HeatCapacitor (; name, C, T_start =  273.15  +  20 )
21-     @named  port =  HeatPort ()
22-     @parameters  C =  C
23-     sts =  @variables  begin 
24-         T (t) =  T_start
19+ @mtkmodel  HeatCapacitor begin 
20+     @components  begin 
21+         port =  HeatPort ()
22+     end 
23+     @parameters  begin 
24+         C, [description =  " Heat capacity of element" 
25+     end 
26+     @variables  begin 
27+         T (t) =  273.15  +  20 
2528        der_T (t) =  0.0 
2629    end 
2730
28-     D  =   Differential (t) 
29-     eqs  =  [ T ~  port. T
31+     @equations   begin 
32+          T ~  port. T
3033        der_T ~  port. Q_flow /  C
31-         D (T) ~  der_T] 
32-     ODESystem (eqs, t, sts, [C]; systems  =  [port], name  =  name) 
34+         D (T) ~  der_T
35+     end 
3336end 
3437
3538""" 
36-     ThermalConductor(;name, G) 
39+     ThermalConductor(;  name, G) 
3740
3841Lumped thermal element transporting heat without storing it. 
3942
@@ -50,14 +53,14 @@ see [`Element1D`](@ref)
5053
5154  - `G`: [`W/K`] Constant thermal conductance of material 
5255""" 
53- @component    function   ThermalConductor (; name, G) 
54-     @named   element1d =  Element1D ()
55-     @unpack   Q_flow, dT  =  element1d 
56-     pars  =   @parameters  G  =  G
57-     eqs  =  [ 
58-         Q_flow  ~  G  *  dT, 
59-     ] 
60-     extend ( ODESystem (eqs, t, [], pars; name  =  name), element1d) 
56+ @mtkmodel    ThermalConductor  begin 
57+     @extend   Q_flow, dT  =  element1d =  Element1D ()
58+     @parameters    begin 
59+          G
60+     end 
61+     @equations   begin 
62+         Q_flow  ~  G  *  dT 
63+     end 
6164end 
6265
6366""" 
@@ -79,15 +82,14 @@ Lumped thermal element transporting heat without storing it.
7982
8083  - `R`: [`K/W`] Constant thermal resistance of material 
8184""" 
82- @component  function  ThermalResistor (; name, R)
83-     @named  element1d =  Element1D ()
84-     @unpack  Q_flow, dT =  element1d
85-     pars =  @parameters  R =  R
86-     eqs =  [
87-         dT ~  R *  Q_flow,
88-     ]
89- 
90-     extend (ODESystem (eqs, t, [], pars; name =  name), element1d)
85+ @mtkmodel  ThermalResistor begin 
86+     @extend  Q_flow, dT =  element1d =  Element1D ()
87+     @parameters  begin 
88+         R
89+     end 
90+     @equations  begin 
91+         dT ~  R *  Q_flow
92+     end 
9193end 
9294
9395""" 
@@ -109,14 +111,14 @@ Lumped thermal element for heat convection.
109111
110112  - `G`: [W/K] Convective thermal conductance 
111113""" 
112- @component    function   ConvectiveConductor (; name, G) 
113-     @named   convective_element1d =  ConvectiveElement1D ()
114-     @unpack   Q_flow, dT  =  convective_element1d 
115-     @parameters  G  =  G
116-     eqs  =  [ 
117-         Q_flow  ~  G  *  dT, 
118-     ] 
119-     extend ( ODESystem (eqs, t, [], [G]; name  =  name), convective_element1d) 
114+ @mtkmodel    ConvectiveConductor  begin 
115+     @extend   Q_flow, dT  =  convective_element1d =  ConvectiveElement1D ()
116+     @parameters    begin 
117+          G
118+     end 
119+     @equations   begin 
120+         Q_flow  ~  G  *  dT 
121+     end 
120122end 
121123
122124""" 
@@ -126,7 +128,7 @@ Lumped thermal element for heat convection.
126128
127129# States: 
128130
129-   - `dT`:   [`K`] Temperature difference across the component `solid.T` - `fluid.T` 
131+   - `dT`: [`K`] Temperature difference across the component `solid.T` - `fluid.T` 
130132  - `Q_flow`: [`W`] Heat flow rate from `solid` -> `fluid` 
131133
132134# Connectors: 
@@ -138,14 +140,14 @@ Lumped thermal element for heat convection.
138140
139141  - `R`: [`K/W`] Constant thermal resistance of material 
140142""" 
141- @component    function   ConvectiveResistor (; name, R) 
142-     @named   convective_element1d =  ConvectiveElement1D ()
143-     @unpack   Q_flow, dT  =  convective_element1d 
144-     @parameters  R  =  R
145-     eqs  =  [ 
146-         dT  ~  R  *  Q_flow, 
147-     ] 
148-     extend ( ODESystem (eqs, t, [], [R]; name  =  name), convective_element1d) 
143+ @mtkmodel    ConvectiveResistor  begin 
144+     @extend   Q_flow, dT  =  convective_element1d =  ConvectiveElement1D ()
145+     @parameters    begin 
146+          R
147+     end 
148+     @equations   begin 
149+         dT  ~  R  *  Q_flow 
150+     end 
149151end 
150152
151153""" 
@@ -167,22 +169,22 @@ Lumped thermal element for radiation heat transfer.
167169
168170  - `G`: [m^2] Net radiation conductance between two surfaces # Stefan-Boltzmann constant TODO: extract into physical constants module or use existing one 
169171""" 
170- @component    function   BodyRadiation (; name, G) 
171-     sigma  =   5.6703744191844294e-8   #  Stefan-Boltzmann constant  TODO : extract into physical constants module or use existing one 
172- 
173-     @named  element1d  =   Element1D () 
174-      @unpack  Q_flow, dT  =  element1d 
175-     @unpack    port_a, port_b =  element1d
176-     pars  =   @parameters  G  =  G 
177-     eqs  =  [ 
178-         Q_flow  ~  G  *  sigma  *  (port_a . T ^ 4   -  port_b . T ^ 4 ), 
179-     ] 
180- 
181-     extend ( ODESystem (eqs, t, [], pars; name  =  name), element1d) 
172+ @mtkmodel    BodyRadiation  begin 
173+     begin 
174+         sigma  =   5.6703744191844294e-8   #  Stefan-Boltzmann constant  TODO : extract into physical constants module or use existing one 
175+     end 
176+ 
177+     @extend   Q_flow, dT,  port_a, port_b =  element1d  =   Element1D () 
178+     @parameters  begin 
179+         G 
180+     end 
181+     @equations   begin 
182+         Q_flow  ~  G  *  sigma  *  (port_a . T ^ 4   -  port_b . T ^ 4 ) 
183+     end 
182184end 
183185
184186""" 
185-     ThermalCollector(; name, m= 1) 
187+     ThermalCollector(; name, m =  1) 
186188
187189Collects `m` heat flows 
188190
0 commit comments