From 9b69d25021eabb374106ba9da1829058b1d129c4 Mon Sep 17 00:00:00 2001 From: graham <g.macpherson@opencfd.co.uk> Date: Wed, 9 Sep 2009 17:03:20 +0100 Subject: [PATCH] Adding angular momentum (pi) and torque (tau) member data to Parcel and amending by-component constuctors to accept them and f. --- .../InteractingKinematicParcel.C | 2 + .../InteractingKinematicParcel.H | 26 ++++++++++ .../InteractingKinematicParcelI.H | 47 ++++++++++++++++++- .../InteractingKinematicParcelIO.C | 25 ++++++++++ .../Templates/ThermoParcel/ThermoParcel.H | 3 ++ .../Templates/ThermoParcel/ThermoParcelI.H | 6 +++ .../basicInteractingKinematicParcel.C | 6 +++ .../basicInteractingKinematicParcel.H | 3 ++ .../basicThermoParcel/basicThermoParcel.C | 6 +++ .../basicThermoParcel/basicThermoParcel.H | 3 ++ 10 files changed, 126 insertions(+), 1 deletion(-) diff --git a/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/InteractingKinematicParcel/InteractingKinematicParcel.C index 8465e8222b1..9f3394c28d9 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 ad927ed7787..475c2db163b 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 96276c09a77..0f95bceb251 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 66170b5a6a2..1d57bea39b2 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 87e1dd5c9c8..778d45090cb 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 1c3e011d44c..06a439ad367 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 db3c932e788..f0fc1183693 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 6384932610c..3d39f4f2e16 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 7f2524cbd28..02564dcf3cc 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 974c36e23a9..5a83dbdc7b2 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 ); -- GitLab