From a6c2e6e7b05f6effe8241e79f40d8d8ba3330203 Mon Sep 17 00:00:00 2001
From: PASCAL BOREL <d54380@dsp0961716.postes.calibre.edf.fr>
Date: Sat, 27 Aug 2022 19:47:06 +0200
Subject: [PATCH] handle zero flow for controlled Flow pump

---
 FluidDynamics/Components/Machines/ControlledVolumeFlowPump.mo | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/FluidDynamics/Components/Machines/ControlledVolumeFlowPump.mo b/FluidDynamics/Components/Machines/ControlledVolumeFlowPump.mo
index e8befc9..0986508 100644
--- a/FluidDynamics/Components/Machines/ControlledVolumeFlowPump.mo
+++ b/FluidDynamics/Components/Machines/ControlledVolumeFlowPump.mo
@@ -50,7 +50,7 @@ equation
   V_flow = m_flow / d ;
   d = Medium.density(state) ;
   head = -dp/(d*Modelica.Constants.g_n) ; 
-  P = -dp*V_flow/eta ;
+  P = -dp*V_flow/eta;
 
 // Ports handover
   // port_a
@@ -60,7 +60,7 @@ equation
   port_a.C_outflow = if checkValve then inStream(port_a.C_outflow) else inStream(port_b.C_outflow) ;
   // port_b
   port_a.m_flow + port_b.m_flow = 0.0 ;
-  P = m_flow * (port_b.h_outflow - inStream(port_a.h_outflow)) ;
+  port_b.h_outflow = noEvent(if abs(m_flow)>10*Modelica.Constants.eps then P/m_flow+inStream(port_a.h_outflow) else inStream(port_a.h_outflow));
   port_b.Xi_outflow = inStream(port_a.Xi_outflow) ;
   port_b.C_outflow = inStream(port_a.C_outflow) ;  
      
-- 
GitLab