diff --git a/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.C index 8465e8222b1e0e4c8c7d6da20301fff67dad4e7b..9f3394c28d9e2ed93f11d33317aa237afeda88c6 100644 --- a/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.C @@ -205,6 +205,8 @@ Foam::InteractingKinematicParcel<ParcelType>::InteractingKinematicParcel d_(p.d_), U_(p.U_), f_(p.f_), + pi_(p.pi_), + tau_(p.tau_), rho_(p.rho_), tTurb_(p.tTurb_), UTurb_(p.UTurb_), diff --git a/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.H index ad927ed7787149dc8629d4e992d8f32e2b2a9ceb..475c2db163bef835631e93f84975c2bc4fe5c1f9 100644 --- a/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.H @@ -233,6 +233,14 @@ protected: //- Force on particle due to collisions [N] vector f_; + //- Angular momentum of Parcel in global reference frame + // [kg m^2 s-1] + vector pi_; + + //- Torque on particle due to collisions in global + // reference frame [Nm] + vector tau_; + //- Density [kg/m3] scalar rho_; @@ -310,6 +318,9 @@ public: const scalar nParticle0, const scalar d0, const vector& U0, + const vector& f0, + const vector& pi0, + const vector& tau0, const constantProperties& constProps ); @@ -353,6 +364,12 @@ public: //- Return const access to force inline const vector& f() const; + //- Return const access to angular momentum + inline const vector& pi() const; + + //- Return const access to torque + inline const vector& tau() const; + //- Return const access to density inline scalar rho() const; @@ -380,6 +397,12 @@ public: //- Return access to force inline vector& f(); + //- Return access to angular momentum + inline vector& pi(); + + //- Return access to torque + inline vector& tau(); + //- Return access to density inline scalar& rho(); @@ -406,6 +429,9 @@ public: //- Particle mass inline scalar mass() const; + //- Particle moment of inertia around diameter axis + inline scalar momentOfInertia() const; + //- Particle volume inline scalar volume() const; diff --git a/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcelI.H b/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcelI.H index 96276c09a777c717d5a713a27f52a612be9970d3..0f95bceb2515294d0d0d043c64816df3ecdfc9b6 100644 --- a/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcelI.H @@ -84,6 +84,8 @@ inline Foam::InteractingKinematicParcel<ParcelType>::InteractingKinematicParcel d_(0.0), U_(vector::zero), f_(vector::zero), + pi_(vector::zero), + tau_(vector::zero), rho_(0.0), tTurb_(0.0), UTurb_(vector::zero), @@ -103,6 +105,9 @@ inline Foam::InteractingKinematicParcel<ParcelType>::InteractingKinematicParcel const scalar nParticle0, const scalar d0, const vector& U0, + const vector& f0, + const vector& pi0, + const vector& tau0, const constantProperties& constProps ) : @@ -111,7 +116,9 @@ inline Foam::InteractingKinematicParcel<ParcelType>::InteractingKinematicParcel nParticle_(nParticle0), d_(d0), U_(U0), - f_(vector::zero), + f_(f0), + pi_(pi0), + tau_(tau0), rho_(constProps.rho0()), tTurb_(0.0), UTurb_(vector::zero), @@ -265,6 +272,22 @@ Foam::InteractingKinematicParcel<ParcelType>::f() const } +template <class ParcelType> +inline const Foam::vector& +Foam::InteractingKinematicParcel<ParcelType>::pi() const +{ + return pi_; +} + + +template <class ParcelType> +inline const Foam::vector& +Foam::InteractingKinematicParcel<ParcelType>::tau() const +{ + return tau_; +} + + template <class ParcelType> inline Foam::scalar Foam::InteractingKinematicParcel<ParcelType>::rho() const { @@ -322,6 +345,20 @@ inline Foam::vector& Foam::InteractingKinematicParcel<ParcelType>::f() } +template <class ParcelType> +inline Foam::vector& Foam::InteractingKinematicParcel<ParcelType>::pi() +{ + return pi_; +} + + +template <class ParcelType> +inline Foam::vector& Foam::InteractingKinematicParcel<ParcelType>::tau() +{ + return tau_; +} + + template <class ParcelType> inline Foam::scalar& Foam::InteractingKinematicParcel<ParcelType>::rho() { @@ -392,6 +429,14 @@ inline Foam::scalar Foam::InteractingKinematicParcel<ParcelType>::mass() const } +template <class ParcelType> +inline Foam::scalar +Foam::InteractingKinematicParcel<ParcelType>::momentOfInertia() const +{ + return 0.1*mass()*sqr(d_); +} + + template <class ParcelType> inline Foam::scalar Foam::InteractingKinematicParcel<ParcelType>::volume() const { diff --git a/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcelIO.C index 66170b5a6a26cfb73a2d11b1e00b2ce0285f4a2c..1d57bea39b2edb2ba6a10fa8b02b10ecf04dbe14 100644 --- a/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcelIO.C +++ b/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcelIO.C @@ -39,6 +39,8 @@ Foam::string Foam::InteractingKinematicParcel<ParcelType>::propHeader = + " d" + " (Ux Uy Uz)" + " (fx fy fz)" + + " (pix piy piz)" + + " (taux tauy tauz)" + " rho" + " tTurb" + " UTurb"; @@ -60,6 +62,8 @@ Foam::InteractingKinematicParcel<ParcelType>::InteractingKinematicParcel d_(0.0), U_(vector::zero), f_(vector::zero), + pi_(vector::zero), + tau_(vector::zero), rho_(0.0), tTurb_(0.0), UTurb_(vector::zero), @@ -76,6 +80,8 @@ Foam::InteractingKinematicParcel<ParcelType>::InteractingKinematicParcel d_ = readScalar(is); is >> U_; is >> f_; + is >> pi_; + is >> tau_; rho_ = readScalar(is); tTurb_ = readScalar(is); is >> UTurb_; @@ -90,6 +96,8 @@ Foam::InteractingKinematicParcel<ParcelType>::InteractingKinematicParcel + sizeof(d_) + sizeof(U_) + sizeof(f_) + + sizeof(pi_) + + sizeof(tau_) + sizeof(rho_) + sizeof(tTurb_) + sizeof(UTurb_) @@ -133,6 +141,12 @@ void Foam::InteractingKinematicParcel<ParcelType>::readFields IOField<vector> f(c.fieldIOobject("f", IOobject::MUST_READ)); c.checkFieldIOobject(c, f); + IOField<vector> pi(c.fieldIOobject("pi", IOobject::MUST_READ)); + c.checkFieldIOobject(c, pi); + + IOField<vector> tau(c.fieldIOobject("tau", IOobject::MUST_READ)); + c.checkFieldIOobject(c, tau); + IOField<scalar> rho(c.fieldIOobject("rho", IOobject::MUST_READ)); c.checkFieldIOobject(c, rho); @@ -152,6 +166,7 @@ void Foam::InteractingKinematicParcel<ParcelType>::readFields p.d_ = d[i]; p.U_ = U[i]; p.f_ = f[i]; + p.pi_ = pi[i]; p.rho_ = rho[i]; p.tTurb_ = tTurb[i]; p.UTurb_ = UTurb[i]; @@ -179,6 +194,8 @@ void Foam::InteractingKinematicParcel<ParcelType>::writeFields IOField<scalar> d(c.fieldIOobject("d", IOobject::NO_READ), np); IOField<vector> U(c.fieldIOobject("U", IOobject::NO_READ), np); IOField<vector> f(c.fieldIOobject("f", IOobject::NO_READ), np); + IOField<vector> pi(c.fieldIOobject("pi", IOobject::NO_READ), np); + IOField<vector> tau(c.fieldIOobject("tau", IOobject::NO_READ), np); IOField<scalar> rho(c.fieldIOobject("rho", IOobject::NO_READ), np); IOField<scalar> tTurb(c.fieldIOobject("tTurb", IOobject::NO_READ), np); IOField<vector> UTurb(c.fieldIOobject("UTurb", IOobject::NO_READ), np); @@ -193,6 +210,8 @@ void Foam::InteractingKinematicParcel<ParcelType>::writeFields d[i] = p.d(); U[i] = p.U(); f[i] = p.f(); + pi[i] = p.pi(); + tau[i] = p.tau(); rho[i] = p.rho(); tTurb[i] = p.tTurb(); UTurb[i] = p.UTurb(); @@ -204,6 +223,8 @@ void Foam::InteractingKinematicParcel<ParcelType>::writeFields d.write(); U.write(); f.write(); + pi.write(); + tau.write(); rho.write(); tTurb.write(); UTurb.write(); @@ -227,6 +248,8 @@ Foam::Ostream& Foam::operator<< << token::SPACE << p.d() << token::SPACE << p.U() << token::SPACE << p.f() + << token::SPACE << p.pi() + << token::SPACE << p.tau() << token::SPACE << p.rho() << token::SPACE << p.tTurb() << token::SPACE << p.UTurb(); @@ -242,6 +265,8 @@ Foam::Ostream& Foam::operator<< + sizeof(p.d()) + sizeof(p.U()) + sizeof(p.f()) + + sizeof(p.pi()) + + sizeof(p.tau()) + sizeof(p.rho()) + sizeof(p.tTurb()) + sizeof(p.UTurb()) diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H index 87e1dd5c9c83c534f33883d0feaff58eef105887..778d45090cb4ac879b4997c0a5d17f843a2d480b 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H @@ -271,6 +271,9 @@ public: const scalar nParticle0, const scalar d0, const vector& U0, + const vector& f0, + const vector& pi0, + const vector& tau0, const constantProperties& constProps ); diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H index 1c3e011d44cc445e1fd16f9bbde3c6ec7623adf7..06a439ad367c3e08a197a065fca8b0416d9b4a0a 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelI.H @@ -97,6 +97,9 @@ inline Foam::ThermoParcel<ParcelType>::ThermoParcel const scalar nParticle0, const scalar d0, const vector& U0, + const vector& f0, + const vector& pi0, + const vector& tau0, const constantProperties& constProps ) : @@ -109,6 +112,9 @@ inline Foam::ThermoParcel<ParcelType>::ThermoParcel nParticle0, d0, U0, + f0, + pi0, + tau0, constProps ), T_(constProps.T0()), diff --git a/src/lagrangian/intermediate/parcels/derived/basicInteractingKinematicParcel/basicInteractingKinematicParcel.C b/src/lagrangian/intermediate/parcels/derived/basicInteractingKinematicParcel/basicInteractingKinematicParcel.C index db3c932e78892d4bba0315c96aee6670f7f08cb2..f0fc1183693786066f6f86d86004f4d1f40d1db8 100644 --- a/src/lagrangian/intermediate/parcels/derived/basicInteractingKinematicParcel/basicInteractingKinematicParcel.C +++ b/src/lagrangian/intermediate/parcels/derived/basicInteractingKinematicParcel/basicInteractingKinematicParcel.C @@ -63,6 +63,9 @@ Foam::basicInteractingKinematicParcel::basicInteractingKinematicParcel const scalar nParticle0, const scalar d0, const vector& U0, + const vector& f0, + const vector& pi0, + const vector& tau0, const constantProperties& constProps ) : @@ -75,6 +78,9 @@ Foam::basicInteractingKinematicParcel::basicInteractingKinematicParcel nParticle0, d0, U0, + f0, + pi0, + tau0, constProps ) {} diff --git a/src/lagrangian/intermediate/parcels/derived/basicInteractingKinematicParcel/basicInteractingKinematicParcel.H b/src/lagrangian/intermediate/parcels/derived/basicInteractingKinematicParcel/basicInteractingKinematicParcel.H index 6384932610ce400789ee8443105eb4a3bd610be2..3d39f4f2e16cae71ebd011452e7b46775477d806 100644 --- a/src/lagrangian/intermediate/parcels/derived/basicInteractingKinematicParcel/basicInteractingKinematicParcel.H +++ b/src/lagrangian/intermediate/parcels/derived/basicInteractingKinematicParcel/basicInteractingKinematicParcel.H @@ -79,6 +79,9 @@ public: const scalar nParticle0, const scalar d0, const vector& U0, + const vector& f0, + const vector& pi0, + const vector& tau0, const constantProperties& constProps ); diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C index 7f2524cbd282cfb8d9543c069d22b07db8add93b..02564dcf3cc28f3c276d8dc8894e5175734031f4 100644 --- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C +++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C @@ -58,6 +58,9 @@ Foam::basicThermoParcel::basicThermoParcel const scalar nParticle0, const scalar d0, const vector U0, + const vector& f0, + const vector& pi0, + const vector& tau0, const constantProperties& constProps ) : @@ -70,6 +73,9 @@ Foam::basicThermoParcel::basicThermoParcel nParticle0, d0, U0, + f0, + pi0, + tau0, constProps ) {} diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H index 974c36e23a96f51bb57d3009fea0a1951fbf331e..5a83dbdc7b24255ecee7b3412c2ae335cd14682f 100644 --- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H +++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H @@ -78,6 +78,9 @@ public: const scalar nParticle0, const scalar d0, const vector U0, + const vector& f0, + const vector& pi0, + const vector& tau0, const constantProperties& constProps );