From cefb78fc6df178fb11acc5c562bb57818757b1d5 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 1 Mar 2011 16:16:56 +0000 Subject: [PATCH 1/2] ENH: moved maxCo out of loop --- .../parcels/Templates/KinematicParcel/KinematicParcel.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C index d2aa164294..099fc0fd01 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C @@ -295,6 +295,7 @@ bool Foam::KinematicParcel::move const polyMesh& mesh = td.cloud().pMesh(); const polyBoundaryMesh& pbMesh = mesh.boundaryMesh(); const scalarField& V = mesh.cellVolumes(); + const scalar maxCo = td.cloud().solution().maxCo(); scalar tEnd = (1.0 - p.stepFraction())*trackTime; const scalar dtMax = tEnd; @@ -315,7 +316,6 @@ bool Foam::KinematicParcel::move if (p.active() && magU > ROOTVSMALL) { const scalar d = dt*magU; - const scalar maxCo = td.cloud().solution().maxCo(); const scalar dCorr = min(d, maxCo*cbrt(V[cellI])); dt *= dCorr/d From e694ee9ca5e59b291c2d0026df88fac412e54c71 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 1 Mar 2011 16:17:14 +0000 Subject: [PATCH 2/2] BUG: corrected colliding cloud sub-cycling --- .../Templates/CollidingCloud/CollidingCloud.C | 16 ++++++++++------ .../Templates/CollidingCloud/CollidingCloud.H | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C index eac5aac69a..925468ad61 100644 --- a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C @@ -44,13 +44,17 @@ void Foam::CollidingCloud::setModels() template template -void Foam::CollidingCloud::moveCollide(TrackData& td) +void Foam::CollidingCloud::moveCollide +( + TrackData& td, + const scalar deltaT +) { td.part() = TrackData::tpVelocityHalfStep; - CloudType::move(td, this->solution().deltaT()); + CloudType::move(td, deltaT); td.part() = TrackData::tpLinearTrack; - CloudType::move(td, this->solution().deltaT()); + CloudType::move(td, deltaT); // td.part() = TrackData::tpRotationalTrack; // CloudType::move(td); @@ -60,7 +64,7 @@ void Foam::CollidingCloud::moveCollide(TrackData& td) this->collision().collide(); td.part() = TrackData::tpVelocityHalfStep; - CloudType::move(td, this->solution().deltaT()); + CloudType::move(td, deltaT); } @@ -211,14 +215,14 @@ void Foam::CollidingCloud::motion(TrackData& td) while(!(++moveCollideSubCycle).end()) { - moveCollide(td); + moveCollide(td, this->db().time().deltaTValue()); } moveCollideSubCycle.endSubCycle(); } else { - moveCollide(td); + moveCollide(td, this->db().time().deltaTValue()); } } diff --git a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H index 9ca29cfd56..68fbc0000e 100644 --- a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H @@ -108,7 +108,7 @@ protected: //- Move-collide particles template - void moveCollide(TrackData& td); + void moveCollide(TrackData& td, const scalar deltaT); //- Reset state of cloud void cloudReset(CollidingCloud& c);