From c1b579efca2160f11c2515bedbfa28b96e5d56d3 Mon Sep 17 00:00:00 2001 From: matthew-kapp Date: Fri, 7 Mar 2025 11:49:47 +0200 Subject: [PATCH 1/5] IfElse.ifelse statement added to thermal FixedHeatFlow --- src/Thermal/HeatTransfer/sources.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Thermal/HeatTransfer/sources.jl b/src/Thermal/HeatTransfer/sources.jl index 1ee8d36f7..d16c3cabe 100644 --- a/src/Thermal/HeatTransfer/sources.jl +++ b/src/Thermal/HeatTransfer/sources.jl @@ -28,7 +28,9 @@ the component FixedHeatFlow is connected, if parameter `Q_flow` is positive. end @equations begin - port.Q_flow ~ -Q_flow * (1 + alpha * (port.T - T_ref)) + port.Q_flow ~ IfElse.ifelse(alpha == 0.0, + -Q_flow, # Simplified equation when alpha is 0 + -Q_flow * (1 + alpha * (port.T - T_ref))) # Temperature-dependent equation end end From d824fd5ce828a108e0ec13e79a2f7753ee084c10 Mon Sep 17 00:00:00 2001 From: matthew-kapp Date: Fri, 7 Mar 2025 15:16:10 +0200 Subject: [PATCH 2/5] IfElse.ifelse replaced with ifelse --- src/Thermal/HeatTransfer/sources.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Thermal/HeatTransfer/sources.jl b/src/Thermal/HeatTransfer/sources.jl index d16c3cabe..1057f34d8 100644 --- a/src/Thermal/HeatTransfer/sources.jl +++ b/src/Thermal/HeatTransfer/sources.jl @@ -28,9 +28,9 @@ the component FixedHeatFlow is connected, if parameter `Q_flow` is positive. end @equations begin - port.Q_flow ~ IfElse.ifelse(alpha == 0.0, + port.Q_flow ~ ifelse(alpha == 0.0, -Q_flow, # Simplified equation when alpha is 0 - -Q_flow * (1 + alpha * (port.T - T_ref))) # Temperature-dependent equation + -Q_flow * (1 + alpha * (port.T - T_ref))) end end From cfdbbeaad992f388dc4c2d1a0c7344846c2c8c5e Mon Sep 17 00:00:00 2001 From: matthew-kapp Date: Tue, 11 Mar 2025 11:28:39 +0200 Subject: [PATCH 3/5] Symbolics pinned to v6.29.2 in Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 3d8a35a1f..fd3079a5d 100644 --- a/Project.toml +++ b/Project.toml @@ -30,7 +30,7 @@ PreallocationTools = "0.4.23" SafeTestsets = "0.1" SciMLStructures = "1.4.2" SymbolicIndexingInterface = "0.3.28" -Symbolics = "6.14" +Symbolics = "=6.29.2" Test = "1" julia = "1.10" From 34280e3133c2cf69175419b32d38197ba7e0e736 Mon Sep 17 00:00:00 2001 From: matthew-kapp Date: Tue, 11 Mar 2025 12:22:29 +0200 Subject: [PATCH 4/5] Test added representing Issue #234 --- test/Thermal/thermal.jl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/test/Thermal/thermal.jl b/test/Thermal/thermal.jl index 49c5d634c..9513aa260 100644 --- a/test/Thermal/thermal.jl +++ b/test/Thermal/thermal.jl @@ -155,3 +155,30 @@ end zeros(length(sol[collector.port_b.Q_flow])) @test sol[collector.port_b.T] == sol[collector.port_a1.T] == sol[collector.port_a2.T] end + +@testset "FixedHeatFlow with alpha=0.0 test" begin + @mtkmodel TestModel begin + + @components begin + temp = FixedTemperature(T=300) + heatflow = FixedHeatFlow(Q_flow=-1.0) + wall = ThermalResistor(R=1) + end + + @equations begin + connect(temp.port, wall.port_a) + connect(wall.port_b, heatflow.port) + end + + end + + @info "Building a FixedHeatFlow with alpha=0.0" + @mtkbuild test_model = TestModel() + prob = ODEProblem(test_model, Pair[], (0, 10.0)) + sol = solve(prob) + + heat_flow = sol[test_model.heatflow.port.Q_flow] + + @test SciMLBase.successful_retcode(sol) # Ensure the simulation is successful + @test all(isapprox.(heat_flow, 1.0, rtol=1e-6)) # Heat flow value should be equal to the fixed value defined +end \ No newline at end of file From cf61717a16f12237043ae5be4888dd5ee6fd9232 Mon Sep 17 00:00:00 2001 From: matthew-kapp Date: Thu, 13 Mar 2025 19:34:36 +0200 Subject: [PATCH 5/5] Project.toml reverted --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index fd3079a5d..3d8a35a1f 100644 --- a/Project.toml +++ b/Project.toml @@ -30,7 +30,7 @@ PreallocationTools = "0.4.23" SafeTestsets = "0.1" SciMLStructures = "1.4.2" SymbolicIndexingInterface = "0.3.28" -Symbolics = "=6.29.2" +Symbolics = "6.14" Test = "1" julia = "1.10"