diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C index 9eb74d585f8ed24e156453528ae850e06d3a49b3..3ff17ef6006c259e730d082c06d2670948bbb671 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 b60c1377aeefc96214b9bb55a3ae25214205de61..e3cd2fccbbcd17517b4cc5ffe92f5f4eb9da5952 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 b33403514384aeff6eba3e894007598a77e68e60..cf9d78bab6c72bff58712d9bba492070526c946c 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 88d9c8302f6fc6e5a3ffe39654e4d10dbde58f36..697eb68f339f7545ec1762b7e9905b3ed69d8271 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 d73859de1505f7c2175e8e8835e3d413e5a79554..5ae815f49051480bb7b9c025c4d67703d2fafbde 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 6e612194e3ad4d6edad281c6b6d5d5110e8ccbf5..4b4c07a9f72340716c50fecbea386796f515eed5 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 f7da4915a2491f2d98c4a0106201bcbeb10762c8..7e7cdcbc1226c21daadad6dddd68e90879b5291d 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 327ec83ce2380c93b8c9100426ec9590dcfb43ea..ef92f03289c8b2f1b937906ccb6c69618695d632 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 d2936b3cbec49d0f5d0a2199bc240c29dc9255e5..6ad0c039ce05c36886dcb570b6a9d305ed3cfec4 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 fef47e00b336ce9fbf38895636f1a923d53fcd71..abb04ef5383e2c1538a9a7eaddf3503170899230 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 );