HeatSystemTest
Heat system with a fixed temperature source This is a test component for HeatCapacitor
, FixedTemperature
and ThermalConductor
Usage
HeatSystemTest(T=10.0, T0=-10.0, C=10.0, G=10.0)
Parameters:
Name | Description | Units | Default value |
---|---|---|---|
T | – | 10 | |
T0 | – | -10 | |
C | – | 10 | |
G | – | 10 |
Behavior
Source
dyad
# Heat system with a fixed temperature source
# This is a test component for `HeatCapacitor`, `FixedTemperature` and
# `ThermalConductor`
component HeatSystemTest
mass = HeatCapacitor(C=C, T0=T0)
source = FixedTemperature(T=T)
conductor = ThermalConductor(G=G)
parameter T::Real = 10.0
parameter T0::Real = -10.0
parameter C::Real = 10.0
parameter G::Real = 10.0
relations
connect(source.node, conductor.node_a)
connect(conductor.node_b, mass.node)
metadata {
"Dyad": {
"tests": {
"case1": {
"stop": 10,
"atol": {"mass.T": 0.001, "mass.dT": 0.001},
"expect": {"final": {"mass.T": 9.999, "mass.dT": 0}}
}
}
}
}
end
Flattened Source
dyad
# Heat system with a fixed temperature source
# This is a test component for `HeatCapacitor`, `FixedTemperature` and
# `ThermalConductor`
component HeatSystemTest
mass = HeatCapacitor(C=C, T0=T0)
source = FixedTemperature(T=T)
conductor = ThermalConductor(G=G)
parameter T::Real = 10.0
parameter T0::Real = -10.0
parameter C::Real = 10.0
parameter G::Real = 10.0
relations
connect(source.node, conductor.node_a)
connect(conductor.node_b, mass.node)
metadata {
"Dyad": {
"tests": {
"case1": {
"stop": 10,
"atol": {"mass.T": 0.001, "mass.dT": 0.001},
"expect": {"final": {"mass.T": 9.999, "mass.dT": 0}}
}
}
}
}
end
Test Cases
This is setup code, that must be run before each test case.
julia
using ThermalComponents
using ModelingToolkit, OrdinaryDiffEqDefault
using Plots
using CSV, DataFrames
snapshotsdir = joinpath(dirname(dirname(pathof(ThermalComponents))), "test", "snapshots")
"/home/actions-runner-10/.julia/packages/ThermalComponents/uOuoD/test/snapshots"
Test Case case1
julia
@mtkbuild model_case1 = HeatSystemTest()
u0_case1 = []
prob_case1 = ODEProblem(model_case1, u0_case1, (0, 10))
sol_case1 = solve(prob_case1)
retcode: Success
Interpolation: 3rd order Hermite
t: 16-element Vector{Float64}:
0.0
0.08705679736109888
0.297886693169545
0.5674494586937815
0.8774038729659345
1.2052067705929734
1.6480371325405543
2.1469023748018836
2.74943765198039
3.439598098323707
4.24861247747897
5.185507444995094
6.287534410317887
7.592798099416299
9.170961905635295
10.0
u: 16-element Vector{Vector{Float64}}:
[-10.0]
[-8.332500645959664]
[-4.847709182285916]
[-1.339394159225796]
[1.6827756996458427]
[4.007397056074139]
[6.151447937140967]
[7.663076755291136]
[8.720699513080175]
[9.358413030278646]
[9.714269421051263]
[9.887998090632538]
[9.962746114538984]
[9.989851526718754]
[9.997858159017106]
[9.999065019298108]
Related
Examples
Experiments
Analyses