From 8c0679d25f9a0ed3a003bd7050910d10d8b138ed Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Wed, 9 Nov 2022 15:31:20 +0000
Subject: [PATCH] BUG: Lagrangian: sync IO call. Fixes #2627

---
 .../HeatTransferCoeff/HeatTransferCoeff.C                 | 7 ++++---
 .../KinematicReynoldsNumber/KinematicReynoldsNumber.C     | 8 ++++----
 .../CloudFunctionObjects/NusseltNumber/NusseltNumber.C    | 8 ++++----
 .../CloudFunctionObjects/ParticleDose/ParticleDose.C      | 5 +++--
 .../ThermoReynoldsNumber/ThermoReynoldsNumber.C           | 8 ++++----
 .../WeberNumber/WeberNumberReacting.C                     | 8 ++++----
 6 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C
index ff1aa1fe905..423b21dc979 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -104,9 +104,10 @@ void Foam::HeatTransferCoeff<CloudType>::postEvolve
     }
 
 
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        htc.write();
+        htc.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C
index f73fb0f6610..ac2ca5a27a4 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -89,10 +89,10 @@ void Foam::KinematicReynoldsNumber<CloudType>::postEvolve
         Re[parceli++] = p.Re(td);
     }
 
-
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        Re.write();
+        Re.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C
index 142a1f15167..ee8a3eba0e5 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -103,10 +103,10 @@ void Foam::NusseltNumber<CloudType>::postEvolve
         Nu[parceli++] = heatTransfer.Nu(Re, Pr);
     }
 
-
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        Nu.write();
+        Nu.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C
index 28688040939..31f60743dd1 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C
@@ -98,9 +98,10 @@ void Foam::ParticleDose<CloudType>::postEvolve
         parceli++;
     }
 
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        D.write();
+        D.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C
index 528b367c92d..45457d77065 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -99,10 +99,10 @@ void Foam::ThermoReynoldsNumber<CloudType>::postEvolve
         Re[parceli++] = p.Re(rhos, p.U(), td.Uc(), p.d(), mus);
     }
 
-
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        Re.write();
+        Re.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C
index f5a72900e8e..f596c0c3308 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020,2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -113,10 +113,10 @@ void Foam::WeberNumberReacting<CloudType>::postEvolve
         We[parceli++] = rhoc*magSqr(p.U() - Uc)*p.d()/sigma;
     }
 
-
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        We.write();
+        We.write(haveParticles);
     }
 }
 
-- 
GitLab