From 1454fb053e5bc5ef339a05f05e8b25b4520f4538 Mon Sep 17 00:00:00 2001
From: andy <a.heather@opencfd.co.uk>
Date: Wed, 27 May 2009 14:51:59 +0100
Subject: [PATCH] added nParcels argument to functions

---
 .../Kinematic/InjectionModel/ConeInjection/ConeInjection.C | 2 ++
 .../Kinematic/InjectionModel/ConeInjection/ConeInjection.H | 2 ++
 .../FieldActivatedInjection/FieldActivatedInjection.C      | 6 ++++--
 .../FieldActivatedInjection/FieldActivatedInjection.H      | 2 ++
 .../InjectionModel/InjectionModel/InjectionModel.C         | 7 ++++---
 .../InjectionModel/InjectionModel/InjectionModel.H         | 2 ++
 .../InjectionModel/ManualInjection/ManualInjection.C       | 2 ++
 .../InjectionModel/ManualInjection/ManualInjection.H       | 6 ++++--
 .../Kinematic/InjectionModel/NoInjection/NoInjection.C     | 4 +++-
 .../Kinematic/InjectionModel/NoInjection/NoInjection.H     | 6 ++++--
 10 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C
index 9eb74d585f8..3ff17ef6006 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C
@@ -174,6 +174,7 @@ Foam::scalar Foam::ConeInjection<CloudType>::timeEnd() const
 template<class CloudType>
 void Foam::ConeInjection<CloudType>::setPositionAndCell
 (
+    const label,
     const label,
     const scalar,
     vector& position,
@@ -189,6 +190,7 @@ template<class CloudType>
 void Foam::ConeInjection<CloudType>::setProperties
 (
     const label parcelI,
+    const label,
     const scalar time,
     typename CloudType::parcelType* pPtr
 )
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H
index b60c1377aee..e3cd2fccbbc 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H
@@ -158,6 +158,7 @@ public:
             virtual void setPositionAndCell
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 vector& position,
                 label& cellOwner
@@ -166,6 +167,7 @@ public:
             virtual void setProperties
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 typename CloudType::parcelType* pPtr
             );
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C
index b3340351438..cf9d78bab6c 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.C
@@ -170,6 +170,7 @@ template<class CloudType>
 void Foam::FieldActivatedInjection<CloudType>::setPositionAndCell
 (
     const label parcelI,
+    const label,
     const scalar,
     vector& position,
     label& cellOwner
@@ -184,6 +185,7 @@ template<class CloudType>
 void Foam::FieldActivatedInjection<CloudType>::setProperties
 (
     const label parcelI,
+    const label,
     const scalar,
     typename CloudType::parcelType* pPtr
 )
@@ -206,8 +208,8 @@ bool Foam::FieldActivatedInjection<CloudType>::validInjection
 
     if
     (
-         nParcelsInjected_[parcelI] < nParcelsPerInjector_
-      && factor_*referenceField_[cellI] > thresholdField_[cellI]
+        nParcelsInjected_[parcelI] < nParcelsPerInjector_
+     && factor_*referenceField_[cellI] > thresholdField_[cellI]
     )
     {
         nParcelsInjected_[parcelI]++;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H
index 88d9c8302f6..697eb68f339 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/FieldActivatedInjection/FieldActivatedInjection.H
@@ -163,6 +163,7 @@ public:
             virtual void setPositionAndCell
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 vector& position,
                 label& cellOwner
@@ -171,6 +172,7 @@ public:
             virtual void setProperties
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 typename CloudType::parcelType* pPtr
             );
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
index d73859de150..5ae815f4905 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
@@ -375,7 +375,8 @@ void Foam::InjectionModel<CloudType>::inject(TrackData& td)
     const scalar volFraction = volumeFraction(newVolume);
 
     // Duration of injection period during this timestep
-    const scalar deltaT = min(carrierDt, min(time - SOI_, timeEnd() - time0_));
+    const scalar deltaT =
+        max(0.0, min(carrierDt, min(time - SOI_, timeEnd() - time0_)));
 
     // Pad injection time if injection starts during this timestep
     const scalar padTime = max(0.0, SOI_ - time0_);
@@ -392,7 +393,7 @@ void Foam::InjectionModel<CloudType>::inject(TrackData& td)
             // Determine the injection position and owner cell
             label cellI = -1;
             vector pos = vector::zero;
-            setPositionAndCell(parcelI, timeInj, pos, cellI);
+            setPositionAndCell(parcelI, newParcels, timeInj, pos, cellI);
 
             if (cellI > -1)
             {
@@ -406,7 +407,7 @@ void Foam::InjectionModel<CloudType>::inject(TrackData& td)
                 parcelType* pPtr = new parcelType(td.cloud(), pos, cellI);
 
                 // Assign new parcel properties in injection model
-                setProperties(parcelI, timeInj, pPtr);
+                setProperties(parcelI, newParcels, timeInj, pPtr);
 
                 // Check new parcel properties
                 td.cloud().checkParcelProperties(pPtr, dt, fullyDescribed());
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
index 6e612194e3a..4b4c07a9f72 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
@@ -288,6 +288,7 @@ public:
             virtual void setPositionAndCell
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 vector& position,
                 label& cellOwner
@@ -296,6 +297,7 @@ public:
             virtual void setProperties
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 typename CloudType::parcelType* pPtr
             ) = 0;
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C
index f7da4915a24..7e7cdcbc122 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.C
@@ -138,6 +138,7 @@ template<class CloudType>
 void Foam::ManualInjection<CloudType>::setPositionAndCell
 (
     const label parcelI,
+    const label,
     const scalar time,
     vector& position,
     label& cellOwner
@@ -152,6 +153,7 @@ template<class CloudType>
 void Foam::ManualInjection<CloudType>::setProperties
 (
     const label parcelI,
+    const label,
     const scalar,
     typename CloudType::parcelType* pPtr
 )
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H
index 327ec83ce23..ef92f03289c 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ManualInjection/ManualInjection.H
@@ -40,8 +40,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef manualInjection_H
-#define manualInjection_H
+#ifndef ManualInjection_H
+#define ManualInjection_H
 
 #include "InjectionModel.H"
 #include "pdf.H"
@@ -135,6 +135,7 @@ public:
             virtual void setPositionAndCell
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 vector& position,
                 label& cellOwner
@@ -143,6 +144,7 @@ public:
             virtual void setProperties
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 typename CloudType::parcelType* pPtr
             );
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.C
index d2936b3cbec..6ad0c039ce0 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.C
@@ -90,6 +90,7 @@ Foam::scalar Foam::NoInjection<CloudType>::timeEnd() const
 template<class CloudType>
 void Foam::NoInjection<CloudType>::setPositionAndCell
 (
+    const label,
     const label,
     const scalar,
     vector&,
@@ -101,7 +102,8 @@ void Foam::NoInjection<CloudType>::setPositionAndCell
 template<class CloudType>
 void Foam::NoInjection<CloudType>::setProperties
 (
-    const label parcelI,
+    const label,
+    const label,
     const scalar,
     typename CloudType::parcelType* pPtr
 )
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.H
index fef47e00b33..abb04ef5383 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.H
@@ -33,8 +33,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef noInjection_H
-#define noInjection_H
+#ifndef NoInjection_H
+#define NoInjection_H
 
 #include "InjectionModel.H"
 
@@ -106,6 +106,7 @@ public:
             virtual void setPositionAndCell
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 vector& position,
                 label& cellOwner
@@ -114,6 +115,7 @@ public:
             virtual void setProperties
             (
                 const label parcelI,
+                const label nParcels,
                 const scalar time,
                 typename CloudType::parcelType* pPtr
             );
-- 
GitLab