From 61d8d5eda636ad7cc872c252497444ceb184d925 Mon Sep 17 00:00:00 2001 From: graham <g.macpherson@opencfd.co.uk> Date: Fri, 9 Apr 2010 15:05:21 +0100 Subject: [PATCH] ENH: InteractionLists and CollisionModel. Making collisions less verbose. Reading control for populating (hence writing) the referred particle cloud from dictionary. --- .../basic/InteractionLists/InteractionLists.C | 13 +++++++------ .../basic/InteractionLists/InteractionLists.H | 11 ++++++++--- .../Templates/KinematicCloud/KinematicCloud.C | 2 -- .../CollisionModel/PairCollision/PairCollision.C | 11 +++-------- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/lagrangian/basic/InteractionLists/InteractionLists.C b/src/lagrangian/basic/InteractionLists/InteractionLists.C index 9644d7b687e..d02500fe626 100644 --- a/src/lagrangian/basic/InteractionLists/InteractionLists.C +++ b/src/lagrangian/basic/InteractionLists/InteractionLists.C @@ -323,6 +323,7 @@ void Foam::InteractionLists<ParticleType>::prepareParticlesToRefer referredParticles_[i].clear(); } + // Clear all particles that may have been populated into the cloud cloud_.clear(); forAll(cellIndexAndTransformToDistribute_, i) @@ -364,11 +365,9 @@ void Foam::InteractionLists<ParticleType>::prepareParticleToBeReferred template<class ParticleType> -void Foam::InteractionLists<ParticleType>::writeReferredParticleCloud() +void Foam::InteractionLists<ParticleType>::fillReferredParticleCloud() { - bool writeCloud = true; - - if (writeCloud) + if (writeCloud_) { forAll(referredParticles_, refCellI) { @@ -389,11 +388,13 @@ template<class ParticleType> Foam::InteractionLists<ParticleType>::InteractionLists ( const polyMesh& mesh, - scalar maxDistance + scalar maxDistance, + Switch writeCloud ) : mesh_(mesh), cloud_(mesh_, "referredParticleCloud", IDLList<ParticleType>()), + writeCloud_(writeCloud), mapPtr_(), globalTransforms_(mesh_), maxDistance_(maxDistance), @@ -882,7 +883,7 @@ void Foam::InteractionLists<ParticleType>::receiveReferredParticles } } - writeReferredParticleCloud(); + fillReferredParticleCloud(); } diff --git a/src/lagrangian/basic/InteractionLists/InteractionLists.H b/src/lagrangian/basic/InteractionLists/InteractionLists.H index 4a3ec906be4..943d7e161c8 100644 --- a/src/lagrangian/basic/InteractionLists/InteractionLists.H +++ b/src/lagrangian/basic/InteractionLists/InteractionLists.H @@ -86,6 +86,10 @@ class InteractionLists //- Dummy cloud to give to particles Cloud<ParticleType> cloud_; + //- Switch controlling whether or not the cloud gets populated + // with the referred particles, hence gets written out + const Switch writeCloud_; + //- mapDistribute to exchange particles autoPtr<mapDistribute> mapPtr_; @@ -155,8 +159,8 @@ class InteractionLists labelPair giat ); - //- Write the referredParticles out to visualise - void writeReferredParticleCloud(); + //- Fill the referredParticles so that it will be written out + void fillReferredParticleCloud(); //- Disallow default bitwise copy construct InteractionLists(const InteractionLists&); @@ -173,7 +177,8 @@ public: InteractionLists ( const polyMesh& mesh, - scalar maxDistance + scalar maxDistance, + Switch writeCloud = false ); // Destructor diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C index fc023e362ba..b72af41e731 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C @@ -107,8 +107,6 @@ void Foam::KinematicCloud<ParcelType>::evolveCloud() while(!(++moveCollideSubCycle).end()) { - Info<< "subCycle time = " << this->db().time().timeName() << endl; - moveCollide(td); } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C index ad69e7b0f4e..fd884813948 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C @@ -436,8 +436,6 @@ void Foam::PairCollision<CloudType>::postInteraction() { // Delete any collision records where no collision occurred this step - Info<< " Update collision records" << endl; - forAllIter(typename CloudType, this->owner(), iter) { typename CloudType::parcelType& p = iter(); @@ -450,8 +448,6 @@ void Foam::PairCollision<CloudType>::postInteraction() template<class CloudType> void Foam::PairCollision<CloudType>::buildCellOccupancy() { - Info<< " Build cell occupancy" << endl; - forAll(cellOccupancy_, cO) { cellOccupancy_[cO].clear(); @@ -517,7 +513,8 @@ Foam::PairCollision<CloudType>::PairCollision il_ ( owner.mesh(), - readScalar(this->coeffDict().lookup("maxInteractionDistance")) + readScalar(this->coeffDict().lookup("maxInteractionDistance")), + Switch(this->coeffDict().lookup("writeReferredParticleCloud")) ) {} @@ -543,7 +540,7 @@ Foam::label Foam::PairCollision<CloudType>::nSubCycles() const if(nSubCycles > 1) { - Info<< nSubCycles << " move-collide subCycles" << endl; + Info<< " " << nSubCycles << " move-collide subCycles" << endl; } return nSubCycles; @@ -565,8 +562,6 @@ bool Foam::PairCollision<CloudType>::active() const template<class CloudType> void Foam::PairCollision<CloudType>::collide() { - Info<< "Calculating collisions" << endl; - preInteraction(); parcelInteraction(); -- GitLab