From 4e2d5a907159b588dc6575aa1a857d8f09fa087b Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 7 Jul 2009 15:47:05 +0100 Subject: [PATCH] Particle backwards compatibility --- .../trackedParticle/trackedParticle.C | 2 +- src/lagrangian/basic/Cloud/Cloud.C | 41 ++-- src/lagrangian/basic/Cloud/Cloud.H | 25 ++- src/lagrangian/basic/Cloud/CloudIO.C | 14 +- src/lagrangian/basic/IOPosition/IOPosition.C | 21 +- src/lagrangian/basic/IOPosition/IOPosition.H | 10 +- src/lagrangian/basic/Particle/Particle.C | 16 +- src/lagrangian/basic/Particle/Particle.H | 18 +- src/lagrangian/basic/Particle/ParticleIO.C | 183 ++++++++++++++---- .../basic/indexedParticle/indexedParticle.H | 2 +- .../indexedParticle/indexedParticleCloud.C | 24 ++- .../indexedParticle/indexedParticleCloud.H | 91 +++++++++ .../basic/passiveParticle/passiveParticle.H | 5 +- .../passiveParticle/passiveParticleCloud.C | 33 +++- .../passiveParticle/passiveParticleCloud.H | 94 +++++++++ .../coalCombustion/CoalCloud/CoalCloud.H | 2 +- src/lagrangian/coalCombustion/Make/files | 0 src/lagrangian/coalCombustion/Make/options | 0 src/lagrangian/dieselSpray/parcel/parcelIO.C | 2 +- src/lagrangian/dieselSpray/spray/spray.H | 2 +- .../dsmc/clouds/derived/dsmcCloud/dsmcCloud.H | 2 +- src/lagrangian/intermediate/Make/files | 1 + .../BasicReactingCloud/BasicReactingCloud.H | 2 +- .../BasicReactingMultiphaseCloud.H | 2 +- .../basicKinematicCloud/basicKinematicCloud.H | 2 +- .../basicThermoCloud/basicThermoCloud.H | 2 +- .../InjectionModel/InjectionModel.C | 3 +- .../molecularDynamics/molecule/Make/files | 0 .../molecularDynamics/molecule/Make/options | 0 .../solidParticle/solidParticleCloud.H | 4 +- 30 files changed, 477 insertions(+), 126 deletions(-) create mode 100644 src/lagrangian/basic/indexedParticle/indexedParticleCloud.H create mode 100644 src/lagrangian/basic/passiveParticle/passiveParticleCloud.H mode change 100755 => 100644 src/lagrangian/coalCombustion/Make/files mode change 100755 => 100644 src/lagrangian/coalCombustion/Make/options mode change 100755 => 100644 src/lagrangian/molecularDynamics/molecule/Make/files mode change 100755 => 100644 src/lagrangian/molecularDynamics/molecule/Make/options diff --git a/src/autoMesh/autoHexMesh/trackedParticle/trackedParticle.C b/src/autoMesh/autoHexMesh/trackedParticle/trackedParticle.C index 761ca5b447..7cd8fb9dd2 100644 --- a/src/autoMesh/autoHexMesh/trackedParticle/trackedParticle.C +++ b/src/autoMesh/autoHexMesh/trackedParticle/trackedParticle.C @@ -56,7 +56,7 @@ Foam::trackedParticle::trackedParticle bool readFields ) : - ExactParticle(c, is) + ExactParticle(c, is, readFields) { if (readFields) { diff --git a/src/lagrangian/basic/Cloud/Cloud.C b/src/lagrangian/basic/Cloud/Cloud.C index 72e1b1f818..e3e0b4f63f 100644 --- a/src/lagrangian/basic/Cloud/Cloud.C +++ b/src/lagrangian/basic/Cloud/Cloud.C @@ -42,15 +42,12 @@ Foam::Cloud::Cloud ) : cloud(pMesh), - IDLList(particles), + IDLList(), polyMesh_(pMesh), - allFaces_(pMesh.faces()), - points_(pMesh.points()), - cellFaces_(pMesh.cells()), - allFaceCentres_(pMesh.faceCentres()), - owner_(pMesh.faceOwner()), - neighbour_(pMesh.faceNeighbour()) -{} + particleCount_(0) +{ + IDLList::operator=(particles); +} template @@ -62,19 +59,31 @@ Foam::Cloud::Cloud ) : cloud(pMesh, cloudName), - IDLList(particles), + IDLList(), polyMesh_(pMesh), - allFaces_(pMesh.faces()), - points_(pMesh.points()), - cellFaces_(pMesh.cells()), - allFaceCentres_(pMesh.faceCentres()), - owner_(pMesh.faceOwner()), - neighbour_(pMesh.faceNeighbour()) -{} + particleCount_(0) +{ + IDLList::operator=(particles); +} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +template +Foam::label Foam::Cloud::getNewParticleID() const +{ + label id = particleCount_++; + + if (id == labelMax) + { + WarningIn("Cloud::getNewParticleID() const") + << "Particle counter has overflowed. This might cause problems" + << " when reconstructing particle tracks." << endl; + } + return id; +} + + template void Foam::Cloud::addParticle(ParticleType* pPtr) { diff --git a/src/lagrangian/basic/Cloud/Cloud.H b/src/lagrangian/basic/Cloud/Cloud.H index e298affe7d..626042e68a 100644 --- a/src/lagrangian/basic/Cloud/Cloud.H +++ b/src/lagrangian/basic/Cloud/Cloud.H @@ -50,6 +50,9 @@ namespace Foam template class Cloud; +template +class IOPosition; + template Ostream& operator<< ( @@ -71,12 +74,9 @@ class Cloud // Private data const polyMesh& polyMesh_; - const faceList& allFaces_; - const vectorField& points_; - const cellList& cellFaces_; - const vectorField& allFaceCentres_; - const unallocLabelList& owner_; - const unallocLabelList& neighbour_; + + //- Overall count of particles ever created. Never decreases. + mutable label particleCount_; //- Temporary storage for addressing. Used in findFaces. mutable DynamicList