From 02ba3a2d442d0cbfe3ab1a1d9311266032bceaa3 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Thu, 22 Dec 2016 10:30:15 +0000
Subject: [PATCH] ENH: InjectedParticleDistributionInjection  model - added
 protection for the case of zero particles; updated tutorial scripts.  See
 #363

---
 .../InjectedParticleDistributionInjection.C                  | 5 +++++
 .../vofToLagrangian/lagrangianDistributionInjection/Allrun   | 3 ++-
 .../vofToLagrangian/lagrangianParticleInjection/Allrun       | 3 ++-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C
index 8254aec7ae1..3bef483fc3f 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C
@@ -384,6 +384,11 @@ Foam::InjectedParticleDistributionInjection<CloudType>::parcelsToInject
     nParcelsInjected_ += returnReduce(nParcelsInjected0_, sumOp<label>());
     nParcelsInjected0_ = 0;
 
+    if (startTime_.empty() || this->volumeTotal_ < ROOTVSMALL)
+    {
+        return 0;
+    }
+
     scalar targetVolume = 0;
     forAll(startTime_, injectori)
     {
diff --git a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianDistributionInjection/Allrun b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianDistributionInjection/Allrun
index 038bd8f2af6..8c4e782f632 100755
--- a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianDistributionInjection/Allrun
+++ b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianDistributionInjection/Allrun
@@ -25,7 +25,7 @@ copyLagrangianData()
 
     if [ -z $latestTime ]
     then
-        echo "Error: unable to find Lagrangian data in case $eulerianCase"
+        echo "Error: unable to find Lagrangian data in case $dir"
         exit 1
     fi
 
@@ -37,6 +37,7 @@ copyLagrangianData()
         \cp -r $dir 0
     else
         echo "Error: unable to find Lagrangian data in case $dir"
+        exit 1
     fi
 }
 
diff --git a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianParticleInjection/Allrun b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianParticleInjection/Allrun
index 038bd8f2af6..8c4e782f632 100755
--- a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianParticleInjection/Allrun
+++ b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianParticleInjection/Allrun
@@ -25,7 +25,7 @@ copyLagrangianData()
 
     if [ -z $latestTime ]
     then
-        echo "Error: unable to find Lagrangian data in case $eulerianCase"
+        echo "Error: unable to find Lagrangian data in case $dir"
         exit 1
     fi
 
@@ -37,6 +37,7 @@ copyLagrangianData()
         \cp -r $dir 0
     else
         echo "Error: unable to find Lagrangian data in case $dir"
+        exit 1
     fi
 }
 
-- 
GitLab