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