diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C index cb98b44adc55ccdd14bd12dbd9cd9a25c8179fef..08b09cf34f299b6aaf1493db85bf984b9054fa1b 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C @@ -231,6 +231,7 @@ Foam::KinematicParcel<ParcelType>::KinematicParcel angularMomentum_(p.angularMomentum_), torque_(p.torque_), rho_(p.rho_), + age_(p.age_), tTurb_(p.tTurb_), UTurb_(p.UTurb_), collisionRecords_(p.collisionRecords_), @@ -257,6 +258,7 @@ Foam::KinematicParcel<ParcelType>::KinematicParcel angularMomentum_(p.angularMomentum_), torque_(p.torque_), rho_(p.rho_), + age_(p.age_), tTurb_(p.tTurb_), UTurb_(p.UTurb_), collisionRecords_(p.collisionRecords_), @@ -344,6 +346,8 @@ bool Foam::KinematicParcel<ParcelType>::move td.switchProcessor = true; } } + + p.age() += dt; } break; diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H index 011fb421c7547ce2f5ee2f9093b1d1ca68d08bca..3855b707a2b51970296269d4797e7b1a5bd12c5b 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H @@ -267,6 +267,9 @@ protected: //- Density [kg/m3] scalar rho_; + //- Age [s] + scalar age_; + //- Time spent in turbulent eddy [s] scalar tTurb_; @@ -430,6 +433,9 @@ public: //- Return const access to density inline scalar rho() const; + //- Return const access to the age + inline scalar age() const; + //- Return const access to time spent in turbulent eddy inline scalar tTurb() const; @@ -472,6 +478,9 @@ public: //- Return access to density inline scalar& rho(); + //- Return access to the age + inline scalar& age(); + //- Return access to time spent in turbulent eddy inline scalar& tTurb(); diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H index 44c354beb23a6c3ff134ec53986ba538e61aeee0..447f91381f2767bb76d82d21063cc3445a781484 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H @@ -104,6 +104,7 @@ inline Foam::KinematicParcel<ParcelType>::KinematicParcel angularMomentum_(vector::zero), torque_(vector::zero), rho_(0.0), + age_(0.0), tTurb_(0.0), UTurb_(vector::zero), collisionRecords_(), @@ -143,6 +144,7 @@ inline Foam::KinematicParcel<ParcelType>::KinematicParcel angularMomentum_(angularMomentum0), torque_(torque0), rho_(constProps.rho0()), + age_(0.0), tTurb_(0.0), UTurb_(vector::zero), collisionRecords_(), @@ -345,6 +347,13 @@ inline Foam::scalar Foam::KinematicParcel<ParcelType>::rho() const } +template<class ParcelType> +inline Foam::scalar Foam::KinematicParcel<ParcelType>::age() const +{ + return age_; +} + + template<class ParcelType> inline Foam::scalar Foam::KinematicParcel<ParcelType>::tTurb() const { @@ -437,6 +446,13 @@ inline Foam::scalar& Foam::KinematicParcel<ParcelType>::rho() } +template<class ParcelType> +inline Foam::scalar& Foam::KinematicParcel<ParcelType>::age() +{ + return age_; +} + + template<class ParcelType> inline Foam::scalar& Foam::KinematicParcel<ParcelType>::tTurb() { diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C index 8aec46288b3a77d7763a493e6bc54ecd8f011054..c8562613d913bf9c7ae1f7d226096b2a9d0a7f2a 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C @@ -43,6 +43,7 @@ Foam::string Foam::KinematicParcel<ParcelType>::propHeader = + " (angularMomentumx angularMomentumy angularMomentumz)" + " (torquex torquey torquez)" + " rho" + + " age" + " tTurb" + " (UTurbx UTurby UTurbz)" + " collisionRecordsPairAccessed" @@ -75,6 +76,7 @@ Foam::KinematicParcel<ParcelType>::KinematicParcel angularMomentum_(vector::zero), torque_(vector::zero), rho_(0.0), + age_(0.0), tTurb_(0.0), UTurb_(vector::zero), collisionRecords_(), @@ -96,6 +98,7 @@ Foam::KinematicParcel<ParcelType>::KinematicParcel is >> angularMomentum_; is >> torque_; rho_ = readScalar(is); + age_ = readScalar(is); tTurb_ = readScalar(is); is >> UTurb_; is >> collisionRecords_; @@ -115,6 +118,7 @@ Foam::KinematicParcel<ParcelType>::KinematicParcel + sizeof(angularMomentum_) + sizeof(torque_) + sizeof(rho_) + + sizeof(age_) + sizeof(tTurb_) + sizeof(UTurb_) ); @@ -175,6 +179,9 @@ void Foam::KinematicParcel<ParcelType>::readFields(Cloud<ParcelType>& c) IOField<scalar> rho(c.fieldIOobject("rho", IOobject::MUST_READ)); c.checkFieldIOobject(c, rho); + IOField<scalar> age(c.fieldIOobject("age", IOobject::MUST_READ)); + c.checkFieldIOobject(c, age); + IOField<scalar> tTurb(c.fieldIOobject("tTurb", IOobject::MUST_READ)); c.checkFieldIOobject(c, tTurb); @@ -246,6 +253,7 @@ void Foam::KinematicParcel<ParcelType>::readFields(Cloud<ParcelType>& c) p.f_ = f[i]; p.angularMomentum_ = angularMomentum[i]; p.rho_ = rho[i]; + p.age_ = age[i]; p.tTurb_ = tTurb[i]; p.UTurb_ = UTurb[i]; p.collisionRecords_ = collisionRecordList @@ -289,6 +297,7 @@ void Foam::KinematicParcel<ParcelType>::writeFields(const Cloud<ParcelType>& c) ); IOField<vector> torque(c.fieldIOobject("torque", IOobject::NO_READ), np); IOField<scalar> rho(c.fieldIOobject("rho", IOobject::NO_READ), np); + IOField<scalar> age(c.fieldIOobject("age", IOobject::NO_READ), np); IOField<scalar> tTurb(c.fieldIOobject("tTurb", IOobject::NO_READ), np); IOField<vector> UTurb(c.fieldIOobject("UTurb", IOobject::NO_READ), np); @@ -348,6 +357,7 @@ void Foam::KinematicParcel<ParcelType>::writeFields(const Cloud<ParcelType>& c) angularMomentum[i] = p.angularMomentum(); torque[i] = p.torque(); rho[i] = p.rho(); + age[i] = p.age(); tTurb[i] = p.tTurb(); UTurb[i] = p.UTurb(); collisionRecordsPairAccessed[i] = p.collisionRecords().pairAccessed(); @@ -373,6 +383,7 @@ void Foam::KinematicParcel<ParcelType>::writeFields(const Cloud<ParcelType>& c) angularMomentum.write(); torque.write(); rho.write(); + age.write(); tTurb.write(); UTurb.write(); collisionRecordsPairAccessed.write(); @@ -407,6 +418,7 @@ Foam::Ostream& Foam::operator<< << token::SPACE << p.angularMomentum() << token::SPACE << p.torque() << token::SPACE << p.rho() + << token::SPACE << p.age() << token::SPACE << p.tTurb() << token::SPACE << p.UTurb() << token::SPACE << p.collisionRecords(); @@ -427,6 +439,7 @@ Foam::Ostream& Foam::operator<< + sizeof(p.angularMomentum()) + sizeof(p.torque()) + sizeof(p.rho()) + + sizeof(p.age()) + sizeof(p.tTurb()) + sizeof(p.UTurb()) );