From aaa4a55d1ecfbf2e1b3bf0a12b7025f9eed21268 Mon Sep 17 00:00:00 2001 From: Sebastian Eibl <sebastian.eibl@fau.de> Date: Wed, 7 Aug 2019 12:12:08 +0200 Subject: [PATCH] [FIX] changed const position --- python/mesa_pd.py | 3 + .../templates/data/ParticleAccessor.templ.h | 8 +- .../templates/data/ParticleStorage.templ.h | 10 +- src/mesa_pd/data/ParticleAccessor.h | 201 ++++++------- src/mesa_pd/data/ParticleStorage.h | 270 ++++++++++-------- 5 files changed, 267 insertions(+), 225 deletions(-) diff --git a/python/mesa_pd.py b/python/mesa_pd.py index 401fc3bc7..c8f000e51 100755 --- a/python/mesa_pd.py +++ b/python/mesa_pd.py @@ -47,6 +47,9 @@ if __name__ == '__main__': ps.addProperty("torque", "walberla::mesa_pd::Vec3", defValue="real_t(0)", syncMode="NEVER") ps.addProperty("oldTorque", "walberla::mesa_pd::Vec3", defValue="real_t(0)", syncMode="MIGRATION") + ps.addInclude("blockforest/BlockForest.h") + ps.addProperty("currentBlock", "blockforest::Block*", defValue="nullptr", syncMode="NEVER") + ps.addProperty("type", "uint_t", defValue="0", syncMode="COPY") ps.addProperty("flags", "walberla::mesa_pd::data::particle_flags::FlagT", defValue="", syncMode="COPY") diff --git a/python/mesa_pd/templates/data/ParticleAccessor.templ.h b/python/mesa_pd/templates/data/ParticleAccessor.templ.h index 387824fbe..7372641f4 100644 --- a/python/mesa_pd/templates/data/ParticleAccessor.templ.h +++ b/python/mesa_pd/templates/data/ParticleAccessor.templ.h @@ -50,9 +50,9 @@ public: virtual ~ParticleAccessor() = default; {%- for prop in properties %} - const {{prop.type}}& get{{prop.name | capFirst}}(const size_t p_idx) const {return ps_->get{{prop.name | capFirst}}(p_idx);} + {{prop.type}} const & get{{prop.name | capFirst}}(const size_t p_idx) const {return ps_->get{{prop.name | capFirst}}(p_idx);} {{prop.type}}& get{{prop.name | capFirst}}Ref(const size_t p_idx) {return ps_->get{{prop.name | capFirst}}Ref(p_idx);} - void set{{prop.name | capFirst}}(const size_t p_idx, const {{prop.type}}& v) { ps_->set{{prop.name | capFirst}}(p_idx, v);} + void set{{prop.name | capFirst}}(const size_t p_idx, {{prop.type}} const & v) { ps_->set{{prop.name | capFirst}}(p_idx, v);} {% endfor %} id_t getInvalidUid() const {return UniqueID<data::Particle>::invalidID();} @@ -101,8 +101,8 @@ public: virtual ~SingleParticleAccessor() = default; {%- for prop in properties %} - const {{prop.type}}& get{{prop.name | capFirst}}(const size_t /*p_idx*/) const {return {{prop.name}}_;} - void set{{prop.name | capFirst}}(const size_t /*p_idx*/, const {{prop.type}}& v) { {{prop.name}}_ = v;} + {{prop.type}} const & get{{prop.name | capFirst}}(const size_t /*p_idx*/) const {return {{prop.name}}_;} + void set{{prop.name | capFirst}}(const size_t /*p_idx*/, {{prop.type}} const & v) { {{prop.name}}_ = v;} {{prop.type}}& get{{prop.name | capFirst}}Ref(const size_t /*p_idx*/) {return {{prop.name}}_;} {% endfor %} diff --git a/python/mesa_pd/templates/data/ParticleStorage.templ.h b/python/mesa_pd/templates/data/ParticleStorage.templ.h index 21ecee6d7..72b309e24 100644 --- a/python/mesa_pd/templates/data/ParticleStorage.templ.h +++ b/python/mesa_pd/templates/data/ParticleStorage.templ.h @@ -76,9 +76,9 @@ public: {%- endfor %} {% for prop in properties %} - const {{prop.name}}_type& get{{prop.name | capFirst}}() const {return storage_.get{{prop.name | capFirst}}(i_);} + {{prop.name}}_type const & get{{prop.name | capFirst}}() const {return storage_.get{{prop.name | capFirst}}(i_);} {{prop.name}}_type& get{{prop.name | capFirst}}Ref() {return storage_.get{{prop.name | capFirst}}Ref(i_);} - void set{{prop.name | capFirst}}(const {{prop.name}}_type& v) { storage_.set{{prop.name | capFirst}}(i_, v);} + void set{{prop.name | capFirst}}({{prop.name}}_type const & v) { storage_.set{{prop.name | capFirst}}(i_, v);} {% endfor %} size_t getIdx() const {return i_;} @@ -144,9 +144,9 @@ public: {%- endfor %} {% for prop in properties %} - const {{prop.name}}_type& get{{prop.name | capFirst}}(const size_t idx) const {return {{prop.name}}_[idx];} + {{prop.name}}_type const & get{{prop.name | capFirst}}(const size_t idx) const {return {{prop.name}}_[idx];} {{prop.name}}_type& get{{prop.name | capFirst}}Ref(const size_t idx) {return {{prop.name}}_[idx];} - void set{{prop.name | capFirst}}(const size_t idx, const {{prop.name}}_type& v) { {{prop.name}}_[idx] = v; } + void set{{prop.name | capFirst}}(const size_t idx, {{prop.name}}_type const & v) { {{prop.name}}_[idx] = v; } {% endfor %} /** @@ -567,7 +567,7 @@ public: using return_type = {{prop.type}}; {{prop.type}}& operator()(data::Particle& p) const {return p.get{{prop.name | capFirst}}Ref();} {{prop.type}}& operator()(data::Particle&& p) const {return p.get{{prop.name | capFirst}}Ref();} - const {{prop.type}}& operator()(const data::Particle& p) const {return p.get{{prop.name | capFirst}}();} + {{prop.type}} const & operator()(const data::Particle& p) const {return p.get{{prop.name | capFirst}}();} }; {%- endfor %} diff --git a/src/mesa_pd/data/ParticleAccessor.h b/src/mesa_pd/data/ParticleAccessor.h index 1f85d7348..e1a9b17c7 100644 --- a/src/mesa_pd/data/ParticleAccessor.h +++ b/src/mesa_pd/data/ParticleAccessor.h @@ -48,101 +48,105 @@ class ParticleAccessor : public IAccessor public: ParticleAccessor(const std::shared_ptr<data::ParticleStorage>& ps) : ps_(ps) {} virtual ~ParticleAccessor() = default; - const walberla::id_t& getUid(const size_t p_idx) const {return ps_->getUid(p_idx);} + walberla::id_t const & getUid(const size_t p_idx) const {return ps_->getUid(p_idx);} walberla::id_t& getUidRef(const size_t p_idx) {return ps_->getUidRef(p_idx);} - void setUid(const size_t p_idx, const walberla::id_t& v) { ps_->setUid(p_idx, v);} + void setUid(const size_t p_idx, walberla::id_t const & v) { ps_->setUid(p_idx, v);} - const walberla::mesa_pd::Vec3& getPosition(const size_t p_idx) const {return ps_->getPosition(p_idx);} + walberla::mesa_pd::Vec3 const & getPosition(const size_t p_idx) const {return ps_->getPosition(p_idx);} walberla::mesa_pd::Vec3& getPositionRef(const size_t p_idx) {return ps_->getPositionRef(p_idx);} - void setPosition(const size_t p_idx, const walberla::mesa_pd::Vec3& v) { ps_->setPosition(p_idx, v);} + void setPosition(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setPosition(p_idx, v);} - const walberla::real_t& getInteractionRadius(const size_t p_idx) const {return ps_->getInteractionRadius(p_idx);} + walberla::real_t const & getInteractionRadius(const size_t p_idx) const {return ps_->getInteractionRadius(p_idx);} walberla::real_t& getInteractionRadiusRef(const size_t p_idx) {return ps_->getInteractionRadiusRef(p_idx);} - void setInteractionRadius(const size_t p_idx, const walberla::real_t& v) { ps_->setInteractionRadius(p_idx, v);} + void setInteractionRadius(const size_t p_idx, walberla::real_t const & v) { ps_->setInteractionRadius(p_idx, v);} - const walberla::mesa_pd::data::particle_flags::FlagT& getFlags(const size_t p_idx) const {return ps_->getFlags(p_idx);} + walberla::mesa_pd::data::particle_flags::FlagT const & getFlags(const size_t p_idx) const {return ps_->getFlags(p_idx);} walberla::mesa_pd::data::particle_flags::FlagT& getFlagsRef(const size_t p_idx) {return ps_->getFlagsRef(p_idx);} - void setFlags(const size_t p_idx, const walberla::mesa_pd::data::particle_flags::FlagT& v) { ps_->setFlags(p_idx, v);} + void setFlags(const size_t p_idx, walberla::mesa_pd::data::particle_flags::FlagT const & v) { ps_->setFlags(p_idx, v);} - const int& getOwner(const size_t p_idx) const {return ps_->getOwner(p_idx);} + int const & getOwner(const size_t p_idx) const {return ps_->getOwner(p_idx);} int& getOwnerRef(const size_t p_idx) {return ps_->getOwnerRef(p_idx);} - void setOwner(const size_t p_idx, const int& v) { ps_->setOwner(p_idx, v);} + void setOwner(const size_t p_idx, int const & v) { ps_->setOwner(p_idx, v);} - const std::unordered_set<walberla::mpi::MPIRank>& getGhostOwners(const size_t p_idx) const {return ps_->getGhostOwners(p_idx);} + std::unordered_set<walberla::mpi::MPIRank> const & getGhostOwners(const size_t p_idx) const {return ps_->getGhostOwners(p_idx);} std::unordered_set<walberla::mpi::MPIRank>& getGhostOwnersRef(const size_t p_idx) {return ps_->getGhostOwnersRef(p_idx);} - void setGhostOwners(const size_t p_idx, const std::unordered_set<walberla::mpi::MPIRank>& v) { ps_->setGhostOwners(p_idx, v);} + void setGhostOwners(const size_t p_idx, std::unordered_set<walberla::mpi::MPIRank> const & v) { ps_->setGhostOwners(p_idx, v);} - const size_t& getShapeID(const size_t p_idx) const {return ps_->getShapeID(p_idx);} + size_t const & getShapeID(const size_t p_idx) const {return ps_->getShapeID(p_idx);} size_t& getShapeIDRef(const size_t p_idx) {return ps_->getShapeIDRef(p_idx);} - void setShapeID(const size_t p_idx, const size_t& v) { ps_->setShapeID(p_idx, v);} + void setShapeID(const size_t p_idx, size_t const & v) { ps_->setShapeID(p_idx, v);} - const walberla::mesa_pd::Rot3& getRotation(const size_t p_idx) const {return ps_->getRotation(p_idx);} + walberla::mesa_pd::Rot3 const & getRotation(const size_t p_idx) const {return ps_->getRotation(p_idx);} walberla::mesa_pd::Rot3& getRotationRef(const size_t p_idx) {return ps_->getRotationRef(p_idx);} - void setRotation(const size_t p_idx, const walberla::mesa_pd::Rot3& v) { ps_->setRotation(p_idx, v);} + void setRotation(const size_t p_idx, walberla::mesa_pd::Rot3 const & v) { ps_->setRotation(p_idx, v);} - const walberla::mesa_pd::Vec3& getAngularVelocity(const size_t p_idx) const {return ps_->getAngularVelocity(p_idx);} + walberla::mesa_pd::Vec3 const & getAngularVelocity(const size_t p_idx) const {return ps_->getAngularVelocity(p_idx);} walberla::mesa_pd::Vec3& getAngularVelocityRef(const size_t p_idx) {return ps_->getAngularVelocityRef(p_idx);} - void setAngularVelocity(const size_t p_idx, const walberla::mesa_pd::Vec3& v) { ps_->setAngularVelocity(p_idx, v);} + void setAngularVelocity(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setAngularVelocity(p_idx, v);} - const walberla::mesa_pd::Vec3& getTorque(const size_t p_idx) const {return ps_->getTorque(p_idx);} + walberla::mesa_pd::Vec3 const & getTorque(const size_t p_idx) const {return ps_->getTorque(p_idx);} walberla::mesa_pd::Vec3& getTorqueRef(const size_t p_idx) {return ps_->getTorqueRef(p_idx);} - void setTorque(const size_t p_idx, const walberla::mesa_pd::Vec3& v) { ps_->setTorque(p_idx, v);} + void setTorque(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setTorque(p_idx, v);} - const walberla::mesa_pd::Vec3& getLinearVelocity(const size_t p_idx) const {return ps_->getLinearVelocity(p_idx);} + walberla::mesa_pd::Vec3 const & getLinearVelocity(const size_t p_idx) const {return ps_->getLinearVelocity(p_idx);} walberla::mesa_pd::Vec3& getLinearVelocityRef(const size_t p_idx) {return ps_->getLinearVelocityRef(p_idx);} - void setLinearVelocity(const size_t p_idx, const walberla::mesa_pd::Vec3& v) { ps_->setLinearVelocity(p_idx, v);} + void setLinearVelocity(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setLinearVelocity(p_idx, v);} - const walberla::real_t& getInvMass(const size_t p_idx) const {return ps_->getInvMass(p_idx);} + walberla::real_t const & getInvMass(const size_t p_idx) const {return ps_->getInvMass(p_idx);} walberla::real_t& getInvMassRef(const size_t p_idx) {return ps_->getInvMassRef(p_idx);} - void setInvMass(const size_t p_idx, const walberla::real_t& v) { ps_->setInvMass(p_idx, v);} + void setInvMass(const size_t p_idx, walberla::real_t const & v) { ps_->setInvMass(p_idx, v);} - const walberla::mesa_pd::Vec3& getForce(const size_t p_idx) const {return ps_->getForce(p_idx);} + walberla::mesa_pd::Vec3 const & getForce(const size_t p_idx) const {return ps_->getForce(p_idx);} walberla::mesa_pd::Vec3& getForceRef(const size_t p_idx) {return ps_->getForceRef(p_idx);} - void setForce(const size_t p_idx, const walberla::mesa_pd::Vec3& v) { ps_->setForce(p_idx, v);} + void setForce(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setForce(p_idx, v);} - const walberla::mesa_pd::Vec3& getOldForce(const size_t p_idx) const {return ps_->getOldForce(p_idx);} + walberla::mesa_pd::Vec3 const & getOldForce(const size_t p_idx) const {return ps_->getOldForce(p_idx);} walberla::mesa_pd::Vec3& getOldForceRef(const size_t p_idx) {return ps_->getOldForceRef(p_idx);} - void setOldForce(const size_t p_idx, const walberla::mesa_pd::Vec3& v) { ps_->setOldForce(p_idx, v);} + void setOldForce(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setOldForce(p_idx, v);} - const walberla::mesa_pd::Vec3& getOldTorque(const size_t p_idx) const {return ps_->getOldTorque(p_idx);} + walberla::mesa_pd::Vec3 const & getOldTorque(const size_t p_idx) const {return ps_->getOldTorque(p_idx);} walberla::mesa_pd::Vec3& getOldTorqueRef(const size_t p_idx) {return ps_->getOldTorqueRef(p_idx);} - void setOldTorque(const size_t p_idx, const walberla::mesa_pd::Vec3& v) { ps_->setOldTorque(p_idx, v);} + void setOldTorque(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setOldTorque(p_idx, v);} - const uint_t& getType(const size_t p_idx) const {return ps_->getType(p_idx);} + blockforest::Block* const & getCurrentBlock(const size_t p_idx) const {return ps_->getCurrentBlock(p_idx);} + blockforest::Block*& getCurrentBlockRef(const size_t p_idx) {return ps_->getCurrentBlockRef(p_idx);} + void setCurrentBlock(const size_t p_idx, blockforest::Block* const & v) { ps_->setCurrentBlock(p_idx, v);} + + uint_t const & getType(const size_t p_idx) const {return ps_->getType(p_idx);} uint_t& getTypeRef(const size_t p_idx) {return ps_->getTypeRef(p_idx);} - void setType(const size_t p_idx, const uint_t& v) { ps_->setType(p_idx, v);} + void setType(const size_t p_idx, uint_t const & v) { ps_->setType(p_idx, v);} - const int& getNextParticle(const size_t p_idx) const {return ps_->getNextParticle(p_idx);} + int const & getNextParticle(const size_t p_idx) const {return ps_->getNextParticle(p_idx);} int& getNextParticleRef(const size_t p_idx) {return ps_->getNextParticleRef(p_idx);} - void setNextParticle(const size_t p_idx, const int& v) { ps_->setNextParticle(p_idx, v);} + void setNextParticle(const size_t p_idx, int const & v) { ps_->setNextParticle(p_idx, v);} - const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& getOldContactHistory(const size_t p_idx) const {return ps_->getOldContactHistory(p_idx);} + std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & getOldContactHistory(const size_t p_idx) const {return ps_->getOldContactHistory(p_idx);} std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& getOldContactHistoryRef(const size_t p_idx) {return ps_->getOldContactHistoryRef(p_idx);} - void setOldContactHistory(const size_t p_idx, const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& v) { ps_->setOldContactHistory(p_idx, v);} + void setOldContactHistory(const size_t p_idx, std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & v) { ps_->setOldContactHistory(p_idx, v);} - const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& getNewContactHistory(const size_t p_idx) const {return ps_->getNewContactHistory(p_idx);} + std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & getNewContactHistory(const size_t p_idx) const {return ps_->getNewContactHistory(p_idx);} std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& getNewContactHistoryRef(const size_t p_idx) {return ps_->getNewContactHistoryRef(p_idx);} - void setNewContactHistory(const size_t p_idx, const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& v) { ps_->setNewContactHistory(p_idx, v);} + void setNewContactHistory(const size_t p_idx, std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & v) { ps_->setNewContactHistory(p_idx, v);} - const walberla::real_t& getTemperature(const size_t p_idx) const {return ps_->getTemperature(p_idx);} + walberla::real_t const & getTemperature(const size_t p_idx) const {return ps_->getTemperature(p_idx);} walberla::real_t& getTemperatureRef(const size_t p_idx) {return ps_->getTemperatureRef(p_idx);} - void setTemperature(const size_t p_idx, const walberla::real_t& v) { ps_->setTemperature(p_idx, v);} + void setTemperature(const size_t p_idx, walberla::real_t const & v) { ps_->setTemperature(p_idx, v);} - const walberla::real_t& getHeatFlux(const size_t p_idx) const {return ps_->getHeatFlux(p_idx);} + walberla::real_t const & getHeatFlux(const size_t p_idx) const {return ps_->getHeatFlux(p_idx);} walberla::real_t& getHeatFluxRef(const size_t p_idx) {return ps_->getHeatFluxRef(p_idx);} - void setHeatFlux(const size_t p_idx, const walberla::real_t& v) { ps_->setHeatFlux(p_idx, v);} + void setHeatFlux(const size_t p_idx, walberla::real_t const & v) { ps_->setHeatFlux(p_idx, v);} - const walberla::mesa_pd::Vec3& getDv(const size_t p_idx) const {return ps_->getDv(p_idx);} + walberla::mesa_pd::Vec3 const & getDv(const size_t p_idx) const {return ps_->getDv(p_idx);} walberla::mesa_pd::Vec3& getDvRef(const size_t p_idx) {return ps_->getDvRef(p_idx);} - void setDv(const size_t p_idx, const walberla::mesa_pd::Vec3& v) { ps_->setDv(p_idx, v);} + void setDv(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setDv(p_idx, v);} - const walberla::mesa_pd::Vec3& getDw(const size_t p_idx) const {return ps_->getDw(p_idx);} + walberla::mesa_pd::Vec3 const & getDw(const size_t p_idx) const {return ps_->getDw(p_idx);} walberla::mesa_pd::Vec3& getDwRef(const size_t p_idx) {return ps_->getDwRef(p_idx);} - void setDw(const size_t p_idx, const walberla::mesa_pd::Vec3& v) { ps_->setDw(p_idx, v);} + void setDw(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setDw(p_idx, v);} - const std::unordered_set<walberla::mpi::MPIRank>& getNeighborState(const size_t p_idx) const {return ps_->getNeighborState(p_idx);} + std::unordered_set<walberla::mpi::MPIRank> const & getNeighborState(const size_t p_idx) const {return ps_->getNeighborState(p_idx);} std::unordered_set<walberla::mpi::MPIRank>& getNeighborStateRef(const size_t p_idx) {return ps_->getNeighborStateRef(p_idx);} - void setNeighborState(const size_t p_idx, const std::unordered_set<walberla::mpi::MPIRank>& v) { ps_->setNeighborState(p_idx, v);} + void setNeighborState(const size_t p_idx, std::unordered_set<walberla::mpi::MPIRank> const & v) { ps_->setNeighborState(p_idx, v);} id_t getInvalidUid() const {return UniqueID<data::Particle>::invalidID();} @@ -189,100 +193,104 @@ class SingleParticleAccessor : public IAccessor { public: virtual ~SingleParticleAccessor() = default; - const walberla::id_t& getUid(const size_t /*p_idx*/) const {return uid_;} - void setUid(const size_t /*p_idx*/, const walberla::id_t& v) { uid_ = v;} + walberla::id_t const & getUid(const size_t /*p_idx*/) const {return uid_;} + void setUid(const size_t /*p_idx*/, walberla::id_t const & v) { uid_ = v;} walberla::id_t& getUidRef(const size_t /*p_idx*/) {return uid_;} - const walberla::mesa_pd::Vec3& getPosition(const size_t /*p_idx*/) const {return position_;} - void setPosition(const size_t /*p_idx*/, const walberla::mesa_pd::Vec3& v) { position_ = v;} + walberla::mesa_pd::Vec3 const & getPosition(const size_t /*p_idx*/) const {return position_;} + void setPosition(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { position_ = v;} walberla::mesa_pd::Vec3& getPositionRef(const size_t /*p_idx*/) {return position_;} - const walberla::real_t& getInteractionRadius(const size_t /*p_idx*/) const {return interactionRadius_;} - void setInteractionRadius(const size_t /*p_idx*/, const walberla::real_t& v) { interactionRadius_ = v;} + walberla::real_t const & getInteractionRadius(const size_t /*p_idx*/) const {return interactionRadius_;} + void setInteractionRadius(const size_t /*p_idx*/, walberla::real_t const & v) { interactionRadius_ = v;} walberla::real_t& getInteractionRadiusRef(const size_t /*p_idx*/) {return interactionRadius_;} - const walberla::mesa_pd::data::particle_flags::FlagT& getFlags(const size_t /*p_idx*/) const {return flags_;} - void setFlags(const size_t /*p_idx*/, const walberla::mesa_pd::data::particle_flags::FlagT& v) { flags_ = v;} + walberla::mesa_pd::data::particle_flags::FlagT const & getFlags(const size_t /*p_idx*/) const {return flags_;} + void setFlags(const size_t /*p_idx*/, walberla::mesa_pd::data::particle_flags::FlagT const & v) { flags_ = v;} walberla::mesa_pd::data::particle_flags::FlagT& getFlagsRef(const size_t /*p_idx*/) {return flags_;} - const int& getOwner(const size_t /*p_idx*/) const {return owner_;} - void setOwner(const size_t /*p_idx*/, const int& v) { owner_ = v;} + int const & getOwner(const size_t /*p_idx*/) const {return owner_;} + void setOwner(const size_t /*p_idx*/, int const & v) { owner_ = v;} int& getOwnerRef(const size_t /*p_idx*/) {return owner_;} - const std::unordered_set<walberla::mpi::MPIRank>& getGhostOwners(const size_t /*p_idx*/) const {return ghostOwners_;} - void setGhostOwners(const size_t /*p_idx*/, const std::unordered_set<walberla::mpi::MPIRank>& v) { ghostOwners_ = v;} + std::unordered_set<walberla::mpi::MPIRank> const & getGhostOwners(const size_t /*p_idx*/) const {return ghostOwners_;} + void setGhostOwners(const size_t /*p_idx*/, std::unordered_set<walberla::mpi::MPIRank> const & v) { ghostOwners_ = v;} std::unordered_set<walberla::mpi::MPIRank>& getGhostOwnersRef(const size_t /*p_idx*/) {return ghostOwners_;} - const size_t& getShapeID(const size_t /*p_idx*/) const {return shapeID_;} - void setShapeID(const size_t /*p_idx*/, const size_t& v) { shapeID_ = v;} + size_t const & getShapeID(const size_t /*p_idx*/) const {return shapeID_;} + void setShapeID(const size_t /*p_idx*/, size_t const & v) { shapeID_ = v;} size_t& getShapeIDRef(const size_t /*p_idx*/) {return shapeID_;} - const walberla::mesa_pd::Rot3& getRotation(const size_t /*p_idx*/) const {return rotation_;} - void setRotation(const size_t /*p_idx*/, const walberla::mesa_pd::Rot3& v) { rotation_ = v;} + walberla::mesa_pd::Rot3 const & getRotation(const size_t /*p_idx*/) const {return rotation_;} + void setRotation(const size_t /*p_idx*/, walberla::mesa_pd::Rot3 const & v) { rotation_ = v;} walberla::mesa_pd::Rot3& getRotationRef(const size_t /*p_idx*/) {return rotation_;} - const walberla::mesa_pd::Vec3& getAngularVelocity(const size_t /*p_idx*/) const {return angularVelocity_;} - void setAngularVelocity(const size_t /*p_idx*/, const walberla::mesa_pd::Vec3& v) { angularVelocity_ = v;} + walberla::mesa_pd::Vec3 const & getAngularVelocity(const size_t /*p_idx*/) const {return angularVelocity_;} + void setAngularVelocity(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { angularVelocity_ = v;} walberla::mesa_pd::Vec3& getAngularVelocityRef(const size_t /*p_idx*/) {return angularVelocity_;} - const walberla::mesa_pd::Vec3& getTorque(const size_t /*p_idx*/) const {return torque_;} - void setTorque(const size_t /*p_idx*/, const walberla::mesa_pd::Vec3& v) { torque_ = v;} + walberla::mesa_pd::Vec3 const & getTorque(const size_t /*p_idx*/) const {return torque_;} + void setTorque(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { torque_ = v;} walberla::mesa_pd::Vec3& getTorqueRef(const size_t /*p_idx*/) {return torque_;} - const walberla::mesa_pd::Vec3& getLinearVelocity(const size_t /*p_idx*/) const {return linearVelocity_;} - void setLinearVelocity(const size_t /*p_idx*/, const walberla::mesa_pd::Vec3& v) { linearVelocity_ = v;} + walberla::mesa_pd::Vec3 const & getLinearVelocity(const size_t /*p_idx*/) const {return linearVelocity_;} + void setLinearVelocity(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { linearVelocity_ = v;} walberla::mesa_pd::Vec3& getLinearVelocityRef(const size_t /*p_idx*/) {return linearVelocity_;} - const walberla::real_t& getInvMass(const size_t /*p_idx*/) const {return invMass_;} - void setInvMass(const size_t /*p_idx*/, const walberla::real_t& v) { invMass_ = v;} + walberla::real_t const & getInvMass(const size_t /*p_idx*/) const {return invMass_;} + void setInvMass(const size_t /*p_idx*/, walberla::real_t const & v) { invMass_ = v;} walberla::real_t& getInvMassRef(const size_t /*p_idx*/) {return invMass_;} - const walberla::mesa_pd::Vec3& getForce(const size_t /*p_idx*/) const {return force_;} - void setForce(const size_t /*p_idx*/, const walberla::mesa_pd::Vec3& v) { force_ = v;} + walberla::mesa_pd::Vec3 const & getForce(const size_t /*p_idx*/) const {return force_;} + void setForce(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { force_ = v;} walberla::mesa_pd::Vec3& getForceRef(const size_t /*p_idx*/) {return force_;} - const walberla::mesa_pd::Vec3& getOldForce(const size_t /*p_idx*/) const {return oldForce_;} - void setOldForce(const size_t /*p_idx*/, const walberla::mesa_pd::Vec3& v) { oldForce_ = v;} + walberla::mesa_pd::Vec3 const & getOldForce(const size_t /*p_idx*/) const {return oldForce_;} + void setOldForce(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { oldForce_ = v;} walberla::mesa_pd::Vec3& getOldForceRef(const size_t /*p_idx*/) {return oldForce_;} - const walberla::mesa_pd::Vec3& getOldTorque(const size_t /*p_idx*/) const {return oldTorque_;} - void setOldTorque(const size_t /*p_idx*/, const walberla::mesa_pd::Vec3& v) { oldTorque_ = v;} + walberla::mesa_pd::Vec3 const & getOldTorque(const size_t /*p_idx*/) const {return oldTorque_;} + void setOldTorque(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { oldTorque_ = v;} walberla::mesa_pd::Vec3& getOldTorqueRef(const size_t /*p_idx*/) {return oldTorque_;} - const uint_t& getType(const size_t /*p_idx*/) const {return type_;} - void setType(const size_t /*p_idx*/, const uint_t& v) { type_ = v;} + blockforest::Block* const & getCurrentBlock(const size_t /*p_idx*/) const {return currentBlock_;} + void setCurrentBlock(const size_t /*p_idx*/, blockforest::Block* const & v) { currentBlock_ = v;} + blockforest::Block*& getCurrentBlockRef(const size_t /*p_idx*/) {return currentBlock_;} + + uint_t const & getType(const size_t /*p_idx*/) const {return type_;} + void setType(const size_t /*p_idx*/, uint_t const & v) { type_ = v;} uint_t& getTypeRef(const size_t /*p_idx*/) {return type_;} - const int& getNextParticle(const size_t /*p_idx*/) const {return nextParticle_;} - void setNextParticle(const size_t /*p_idx*/, const int& v) { nextParticle_ = v;} + int const & getNextParticle(const size_t /*p_idx*/) const {return nextParticle_;} + void setNextParticle(const size_t /*p_idx*/, int const & v) { nextParticle_ = v;} int& getNextParticleRef(const size_t /*p_idx*/) {return nextParticle_;} - const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& getOldContactHistory(const size_t /*p_idx*/) const {return oldContactHistory_;} - void setOldContactHistory(const size_t /*p_idx*/, const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& v) { oldContactHistory_ = v;} + std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & getOldContactHistory(const size_t /*p_idx*/) const {return oldContactHistory_;} + void setOldContactHistory(const size_t /*p_idx*/, std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & v) { oldContactHistory_ = v;} std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& getOldContactHistoryRef(const size_t /*p_idx*/) {return oldContactHistory_;} - const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& getNewContactHistory(const size_t /*p_idx*/) const {return newContactHistory_;} - void setNewContactHistory(const size_t /*p_idx*/, const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& v) { newContactHistory_ = v;} + std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & getNewContactHistory(const size_t /*p_idx*/) const {return newContactHistory_;} + void setNewContactHistory(const size_t /*p_idx*/, std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & v) { newContactHistory_ = v;} std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& getNewContactHistoryRef(const size_t /*p_idx*/) {return newContactHistory_;} - const walberla::real_t& getTemperature(const size_t /*p_idx*/) const {return temperature_;} - void setTemperature(const size_t /*p_idx*/, const walberla::real_t& v) { temperature_ = v;} + walberla::real_t const & getTemperature(const size_t /*p_idx*/) const {return temperature_;} + void setTemperature(const size_t /*p_idx*/, walberla::real_t const & v) { temperature_ = v;} walberla::real_t& getTemperatureRef(const size_t /*p_idx*/) {return temperature_;} - const walberla::real_t& getHeatFlux(const size_t /*p_idx*/) const {return heatFlux_;} - void setHeatFlux(const size_t /*p_idx*/, const walberla::real_t& v) { heatFlux_ = v;} + walberla::real_t const & getHeatFlux(const size_t /*p_idx*/) const {return heatFlux_;} + void setHeatFlux(const size_t /*p_idx*/, walberla::real_t const & v) { heatFlux_ = v;} walberla::real_t& getHeatFluxRef(const size_t /*p_idx*/) {return heatFlux_;} - const walberla::mesa_pd::Vec3& getDv(const size_t /*p_idx*/) const {return dv_;} - void setDv(const size_t /*p_idx*/, const walberla::mesa_pd::Vec3& v) { dv_ = v;} + walberla::mesa_pd::Vec3 const & getDv(const size_t /*p_idx*/) const {return dv_;} + void setDv(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { dv_ = v;} walberla::mesa_pd::Vec3& getDvRef(const size_t /*p_idx*/) {return dv_;} - const walberla::mesa_pd::Vec3& getDw(const size_t /*p_idx*/) const {return dw_;} - void setDw(const size_t /*p_idx*/, const walberla::mesa_pd::Vec3& v) { dw_ = v;} + walberla::mesa_pd::Vec3 const & getDw(const size_t /*p_idx*/) const {return dw_;} + void setDw(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { dw_ = v;} walberla::mesa_pd::Vec3& getDwRef(const size_t /*p_idx*/) {return dw_;} - const std::unordered_set<walberla::mpi::MPIRank>& getNeighborState(const size_t /*p_idx*/) const {return neighborState_;} - void setNeighborState(const size_t /*p_idx*/, const std::unordered_set<walberla::mpi::MPIRank>& v) { neighborState_ = v;} + std::unordered_set<walberla::mpi::MPIRank> const & getNeighborState(const size_t /*p_idx*/) const {return neighborState_;} + void setNeighborState(const size_t /*p_idx*/, std::unordered_set<walberla::mpi::MPIRank> const & v) { neighborState_ = v;} std::unordered_set<walberla::mpi::MPIRank>& getNeighborStateRef(const size_t /*p_idx*/) {return neighborState_;} @@ -311,6 +319,7 @@ private: walberla::mesa_pd::Vec3 force_; walberla::mesa_pd::Vec3 oldForce_; walberla::mesa_pd::Vec3 oldTorque_; + blockforest::Block* currentBlock_; uint_t type_; int nextParticle_; std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> oldContactHistory_; diff --git a/src/mesa_pd/data/ParticleStorage.h b/src/mesa_pd/data/ParticleStorage.h index 1d4c4ba08..0837b3432 100644 --- a/src/mesa_pd/data/ParticleStorage.h +++ b/src/mesa_pd/data/ParticleStorage.h @@ -38,6 +38,7 @@ #include <mesa_pd/data/DataTypes.h> #include <mesa_pd/data/IAccessor.h> #include <mesa_pd/data/Flags.h> +#include <blockforest/BlockForest.h> #include <mesa_pd/data/STLOverloads.h> #include <core/Abort.h> @@ -85,6 +86,7 @@ public: using force_type = walberla::mesa_pd::Vec3; using oldForce_type = walberla::mesa_pd::Vec3; using oldTorque_type = walberla::mesa_pd::Vec3; + using currentBlock_type = blockforest::Block*; using type_type = uint_t; using nextParticle_type = int; using oldContactHistory_type = std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>; @@ -96,101 +98,105 @@ public: using neighborState_type = std::unordered_set<walberla::mpi::MPIRank>; - const uid_type& getUid() const {return storage_.getUid(i_);} + uid_type const & getUid() const {return storage_.getUid(i_);} uid_type& getUidRef() {return storage_.getUidRef(i_);} - void setUid(const uid_type& v) { storage_.setUid(i_, v);} + void setUid(uid_type const & v) { storage_.setUid(i_, v);} - const position_type& getPosition() const {return storage_.getPosition(i_);} + position_type const & getPosition() const {return storage_.getPosition(i_);} position_type& getPositionRef() {return storage_.getPositionRef(i_);} - void setPosition(const position_type& v) { storage_.setPosition(i_, v);} + void setPosition(position_type const & v) { storage_.setPosition(i_, v);} - const interactionRadius_type& getInteractionRadius() const {return storage_.getInteractionRadius(i_);} + interactionRadius_type const & getInteractionRadius() const {return storage_.getInteractionRadius(i_);} interactionRadius_type& getInteractionRadiusRef() {return storage_.getInteractionRadiusRef(i_);} - void setInteractionRadius(const interactionRadius_type& v) { storage_.setInteractionRadius(i_, v);} + void setInteractionRadius(interactionRadius_type const & v) { storage_.setInteractionRadius(i_, v);} - const flags_type& getFlags() const {return storage_.getFlags(i_);} + flags_type const & getFlags() const {return storage_.getFlags(i_);} flags_type& getFlagsRef() {return storage_.getFlagsRef(i_);} - void setFlags(const flags_type& v) { storage_.setFlags(i_, v);} + void setFlags(flags_type const & v) { storage_.setFlags(i_, v);} - const owner_type& getOwner() const {return storage_.getOwner(i_);} + owner_type const & getOwner() const {return storage_.getOwner(i_);} owner_type& getOwnerRef() {return storage_.getOwnerRef(i_);} - void setOwner(const owner_type& v) { storage_.setOwner(i_, v);} + void setOwner(owner_type const & v) { storage_.setOwner(i_, v);} - const ghostOwners_type& getGhostOwners() const {return storage_.getGhostOwners(i_);} + ghostOwners_type const & getGhostOwners() const {return storage_.getGhostOwners(i_);} ghostOwners_type& getGhostOwnersRef() {return storage_.getGhostOwnersRef(i_);} - void setGhostOwners(const ghostOwners_type& v) { storage_.setGhostOwners(i_, v);} + void setGhostOwners(ghostOwners_type const & v) { storage_.setGhostOwners(i_, v);} - const shapeID_type& getShapeID() const {return storage_.getShapeID(i_);} + shapeID_type const & getShapeID() const {return storage_.getShapeID(i_);} shapeID_type& getShapeIDRef() {return storage_.getShapeIDRef(i_);} - void setShapeID(const shapeID_type& v) { storage_.setShapeID(i_, v);} + void setShapeID(shapeID_type const & v) { storage_.setShapeID(i_, v);} - const rotation_type& getRotation() const {return storage_.getRotation(i_);} + rotation_type const & getRotation() const {return storage_.getRotation(i_);} rotation_type& getRotationRef() {return storage_.getRotationRef(i_);} - void setRotation(const rotation_type& v) { storage_.setRotation(i_, v);} + void setRotation(rotation_type const & v) { storage_.setRotation(i_, v);} - const angularVelocity_type& getAngularVelocity() const {return storage_.getAngularVelocity(i_);} + angularVelocity_type const & getAngularVelocity() const {return storage_.getAngularVelocity(i_);} angularVelocity_type& getAngularVelocityRef() {return storage_.getAngularVelocityRef(i_);} - void setAngularVelocity(const angularVelocity_type& v) { storage_.setAngularVelocity(i_, v);} + void setAngularVelocity(angularVelocity_type const & v) { storage_.setAngularVelocity(i_, v);} - const torque_type& getTorque() const {return storage_.getTorque(i_);} + torque_type const & getTorque() const {return storage_.getTorque(i_);} torque_type& getTorqueRef() {return storage_.getTorqueRef(i_);} - void setTorque(const torque_type& v) { storage_.setTorque(i_, v);} + void setTorque(torque_type const & v) { storage_.setTorque(i_, v);} - const linearVelocity_type& getLinearVelocity() const {return storage_.getLinearVelocity(i_);} + linearVelocity_type const & getLinearVelocity() const {return storage_.getLinearVelocity(i_);} linearVelocity_type& getLinearVelocityRef() {return storage_.getLinearVelocityRef(i_);} - void setLinearVelocity(const linearVelocity_type& v) { storage_.setLinearVelocity(i_, v);} + void setLinearVelocity(linearVelocity_type const & v) { storage_.setLinearVelocity(i_, v);} - const invMass_type& getInvMass() const {return storage_.getInvMass(i_);} + invMass_type const & getInvMass() const {return storage_.getInvMass(i_);} invMass_type& getInvMassRef() {return storage_.getInvMassRef(i_);} - void setInvMass(const invMass_type& v) { storage_.setInvMass(i_, v);} + void setInvMass(invMass_type const & v) { storage_.setInvMass(i_, v);} - const force_type& getForce() const {return storage_.getForce(i_);} + force_type const & getForce() const {return storage_.getForce(i_);} force_type& getForceRef() {return storage_.getForceRef(i_);} - void setForce(const force_type& v) { storage_.setForce(i_, v);} + void setForce(force_type const & v) { storage_.setForce(i_, v);} - const oldForce_type& getOldForce() const {return storage_.getOldForce(i_);} + oldForce_type const & getOldForce() const {return storage_.getOldForce(i_);} oldForce_type& getOldForceRef() {return storage_.getOldForceRef(i_);} - void setOldForce(const oldForce_type& v) { storage_.setOldForce(i_, v);} + void setOldForce(oldForce_type const & v) { storage_.setOldForce(i_, v);} - const oldTorque_type& getOldTorque() const {return storage_.getOldTorque(i_);} + oldTorque_type const & getOldTorque() const {return storage_.getOldTorque(i_);} oldTorque_type& getOldTorqueRef() {return storage_.getOldTorqueRef(i_);} - void setOldTorque(const oldTorque_type& v) { storage_.setOldTorque(i_, v);} + void setOldTorque(oldTorque_type const & v) { storage_.setOldTorque(i_, v);} - const type_type& getType() const {return storage_.getType(i_);} + currentBlock_type const & getCurrentBlock() const {return storage_.getCurrentBlock(i_);} + currentBlock_type& getCurrentBlockRef() {return storage_.getCurrentBlockRef(i_);} + void setCurrentBlock(currentBlock_type const & v) { storage_.setCurrentBlock(i_, v);} + + type_type const & getType() const {return storage_.getType(i_);} type_type& getTypeRef() {return storage_.getTypeRef(i_);} - void setType(const type_type& v) { storage_.setType(i_, v);} + void setType(type_type const & v) { storage_.setType(i_, v);} - const nextParticle_type& getNextParticle() const {return storage_.getNextParticle(i_);} + nextParticle_type const & getNextParticle() const {return storage_.getNextParticle(i_);} nextParticle_type& getNextParticleRef() {return storage_.getNextParticleRef(i_);} - void setNextParticle(const nextParticle_type& v) { storage_.setNextParticle(i_, v);} + void setNextParticle(nextParticle_type const & v) { storage_.setNextParticle(i_, v);} - const oldContactHistory_type& getOldContactHistory() const {return storage_.getOldContactHistory(i_);} + oldContactHistory_type const & getOldContactHistory() const {return storage_.getOldContactHistory(i_);} oldContactHistory_type& getOldContactHistoryRef() {return storage_.getOldContactHistoryRef(i_);} - void setOldContactHistory(const oldContactHistory_type& v) { storage_.setOldContactHistory(i_, v);} + void setOldContactHistory(oldContactHistory_type const & v) { storage_.setOldContactHistory(i_, v);} - const newContactHistory_type& getNewContactHistory() const {return storage_.getNewContactHistory(i_);} + newContactHistory_type const & getNewContactHistory() const {return storage_.getNewContactHistory(i_);} newContactHistory_type& getNewContactHistoryRef() {return storage_.getNewContactHistoryRef(i_);} - void setNewContactHistory(const newContactHistory_type& v) { storage_.setNewContactHistory(i_, v);} + void setNewContactHistory(newContactHistory_type const & v) { storage_.setNewContactHistory(i_, v);} - const temperature_type& getTemperature() const {return storage_.getTemperature(i_);} + temperature_type const & getTemperature() const {return storage_.getTemperature(i_);} temperature_type& getTemperatureRef() {return storage_.getTemperatureRef(i_);} - void setTemperature(const temperature_type& v) { storage_.setTemperature(i_, v);} + void setTemperature(temperature_type const & v) { storage_.setTemperature(i_, v);} - const heatFlux_type& getHeatFlux() const {return storage_.getHeatFlux(i_);} + heatFlux_type const & getHeatFlux() const {return storage_.getHeatFlux(i_);} heatFlux_type& getHeatFluxRef() {return storage_.getHeatFluxRef(i_);} - void setHeatFlux(const heatFlux_type& v) { storage_.setHeatFlux(i_, v);} + void setHeatFlux(heatFlux_type const & v) { storage_.setHeatFlux(i_, v);} - const dv_type& getDv() const {return storage_.getDv(i_);} + dv_type const & getDv() const {return storage_.getDv(i_);} dv_type& getDvRef() {return storage_.getDvRef(i_);} - void setDv(const dv_type& v) { storage_.setDv(i_, v);} + void setDv(dv_type const & v) { storage_.setDv(i_, v);} - const dw_type& getDw() const {return storage_.getDw(i_);} + dw_type const & getDw() const {return storage_.getDw(i_);} dw_type& getDwRef() {return storage_.getDwRef(i_);} - void setDw(const dw_type& v) { storage_.setDw(i_, v);} + void setDw(dw_type const & v) { storage_.setDw(i_, v);} - const neighborState_type& getNeighborState() const {return storage_.getNeighborState(i_);} + neighborState_type const & getNeighborState() const {return storage_.getNeighborState(i_);} neighborState_type& getNeighborStateRef() {return storage_.getNeighborStateRef(i_);} - void setNeighborState(const neighborState_type& v) { storage_.setNeighborState(i_, v);} + void setNeighborState(neighborState_type const & v) { storage_.setNeighborState(i_, v);} size_t getIdx() const {return i_;} @@ -267,6 +273,7 @@ public: using force_type = walberla::mesa_pd::Vec3; using oldForce_type = walberla::mesa_pd::Vec3; using oldTorque_type = walberla::mesa_pd::Vec3; + using currentBlock_type = blockforest::Block*; using type_type = uint_t; using nextParticle_type = int; using oldContactHistory_type = std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>; @@ -278,101 +285,105 @@ public: using neighborState_type = std::unordered_set<walberla::mpi::MPIRank>; - const uid_type& getUid(const size_t idx) const {return uid_[idx];} + uid_type const & getUid(const size_t idx) const {return uid_[idx];} uid_type& getUidRef(const size_t idx) {return uid_[idx];} - void setUid(const size_t idx, const uid_type& v) { uid_[idx] = v; } + void setUid(const size_t idx, uid_type const & v) { uid_[idx] = v; } - const position_type& getPosition(const size_t idx) const {return position_[idx];} + position_type const & getPosition(const size_t idx) const {return position_[idx];} position_type& getPositionRef(const size_t idx) {return position_[idx];} - void setPosition(const size_t idx, const position_type& v) { position_[idx] = v; } + void setPosition(const size_t idx, position_type const & v) { position_[idx] = v; } - const interactionRadius_type& getInteractionRadius(const size_t idx) const {return interactionRadius_[idx];} + interactionRadius_type const & getInteractionRadius(const size_t idx) const {return interactionRadius_[idx];} interactionRadius_type& getInteractionRadiusRef(const size_t idx) {return interactionRadius_[idx];} - void setInteractionRadius(const size_t idx, const interactionRadius_type& v) { interactionRadius_[idx] = v; } + void setInteractionRadius(const size_t idx, interactionRadius_type const & v) { interactionRadius_[idx] = v; } - const flags_type& getFlags(const size_t idx) const {return flags_[idx];} + flags_type const & getFlags(const size_t idx) const {return flags_[idx];} flags_type& getFlagsRef(const size_t idx) {return flags_[idx];} - void setFlags(const size_t idx, const flags_type& v) { flags_[idx] = v; } + void setFlags(const size_t idx, flags_type const & v) { flags_[idx] = v; } - const owner_type& getOwner(const size_t idx) const {return owner_[idx];} + owner_type const & getOwner(const size_t idx) const {return owner_[idx];} owner_type& getOwnerRef(const size_t idx) {return owner_[idx];} - void setOwner(const size_t idx, const owner_type& v) { owner_[idx] = v; } + void setOwner(const size_t idx, owner_type const & v) { owner_[idx] = v; } - const ghostOwners_type& getGhostOwners(const size_t idx) const {return ghostOwners_[idx];} + ghostOwners_type const & getGhostOwners(const size_t idx) const {return ghostOwners_[idx];} ghostOwners_type& getGhostOwnersRef(const size_t idx) {return ghostOwners_[idx];} - void setGhostOwners(const size_t idx, const ghostOwners_type& v) { ghostOwners_[idx] = v; } + void setGhostOwners(const size_t idx, ghostOwners_type const & v) { ghostOwners_[idx] = v; } - const shapeID_type& getShapeID(const size_t idx) const {return shapeID_[idx];} + shapeID_type const & getShapeID(const size_t idx) const {return shapeID_[idx];} shapeID_type& getShapeIDRef(const size_t idx) {return shapeID_[idx];} - void setShapeID(const size_t idx, const shapeID_type& v) { shapeID_[idx] = v; } + void setShapeID(const size_t idx, shapeID_type const & v) { shapeID_[idx] = v; } - const rotation_type& getRotation(const size_t idx) const {return rotation_[idx];} + rotation_type const & getRotation(const size_t idx) const {return rotation_[idx];} rotation_type& getRotationRef(const size_t idx) {return rotation_[idx];} - void setRotation(const size_t idx, const rotation_type& v) { rotation_[idx] = v; } + void setRotation(const size_t idx, rotation_type const & v) { rotation_[idx] = v; } - const angularVelocity_type& getAngularVelocity(const size_t idx) const {return angularVelocity_[idx];} + angularVelocity_type const & getAngularVelocity(const size_t idx) const {return angularVelocity_[idx];} angularVelocity_type& getAngularVelocityRef(const size_t idx) {return angularVelocity_[idx];} - void setAngularVelocity(const size_t idx, const angularVelocity_type& v) { angularVelocity_[idx] = v; } + void setAngularVelocity(const size_t idx, angularVelocity_type const & v) { angularVelocity_[idx] = v; } - const torque_type& getTorque(const size_t idx) const {return torque_[idx];} + torque_type const & getTorque(const size_t idx) const {return torque_[idx];} torque_type& getTorqueRef(const size_t idx) {return torque_[idx];} - void setTorque(const size_t idx, const torque_type& v) { torque_[idx] = v; } + void setTorque(const size_t idx, torque_type const & v) { torque_[idx] = v; } - const linearVelocity_type& getLinearVelocity(const size_t idx) const {return linearVelocity_[idx];} + linearVelocity_type const & getLinearVelocity(const size_t idx) const {return linearVelocity_[idx];} linearVelocity_type& getLinearVelocityRef(const size_t idx) {return linearVelocity_[idx];} - void setLinearVelocity(const size_t idx, const linearVelocity_type& v) { linearVelocity_[idx] = v; } + void setLinearVelocity(const size_t idx, linearVelocity_type const & v) { linearVelocity_[idx] = v; } - const invMass_type& getInvMass(const size_t idx) const {return invMass_[idx];} + invMass_type const & getInvMass(const size_t idx) const {return invMass_[idx];} invMass_type& getInvMassRef(const size_t idx) {return invMass_[idx];} - void setInvMass(const size_t idx, const invMass_type& v) { invMass_[idx] = v; } + void setInvMass(const size_t idx, invMass_type const & v) { invMass_[idx] = v; } - const force_type& getForce(const size_t idx) const {return force_[idx];} + force_type const & getForce(const size_t idx) const {return force_[idx];} force_type& getForceRef(const size_t idx) {return force_[idx];} - void setForce(const size_t idx, const force_type& v) { force_[idx] = v; } + void setForce(const size_t idx, force_type const & v) { force_[idx] = v; } - const oldForce_type& getOldForce(const size_t idx) const {return oldForce_[idx];} + oldForce_type const & getOldForce(const size_t idx) const {return oldForce_[idx];} oldForce_type& getOldForceRef(const size_t idx) {return oldForce_[idx];} - void setOldForce(const size_t idx, const oldForce_type& v) { oldForce_[idx] = v; } + void setOldForce(const size_t idx, oldForce_type const & v) { oldForce_[idx] = v; } - const oldTorque_type& getOldTorque(const size_t idx) const {return oldTorque_[idx];} + oldTorque_type const & getOldTorque(const size_t idx) const {return oldTorque_[idx];} oldTorque_type& getOldTorqueRef(const size_t idx) {return oldTorque_[idx];} - void setOldTorque(const size_t idx, const oldTorque_type& v) { oldTorque_[idx] = v; } + void setOldTorque(const size_t idx, oldTorque_type const & v) { oldTorque_[idx] = v; } + + currentBlock_type const & getCurrentBlock(const size_t idx) const {return currentBlock_[idx];} + currentBlock_type& getCurrentBlockRef(const size_t idx) {return currentBlock_[idx];} + void setCurrentBlock(const size_t idx, currentBlock_type const & v) { currentBlock_[idx] = v; } - const type_type& getType(const size_t idx) const {return type_[idx];} + type_type const & getType(const size_t idx) const {return type_[idx];} type_type& getTypeRef(const size_t idx) {return type_[idx];} - void setType(const size_t idx, const type_type& v) { type_[idx] = v; } + void setType(const size_t idx, type_type const & v) { type_[idx] = v; } - const nextParticle_type& getNextParticle(const size_t idx) const {return nextParticle_[idx];} + nextParticle_type const & getNextParticle(const size_t idx) const {return nextParticle_[idx];} nextParticle_type& getNextParticleRef(const size_t idx) {return nextParticle_[idx];} - void setNextParticle(const size_t idx, const nextParticle_type& v) { nextParticle_[idx] = v; } + void setNextParticle(const size_t idx, nextParticle_type const & v) { nextParticle_[idx] = v; } - const oldContactHistory_type& getOldContactHistory(const size_t idx) const {return oldContactHistory_[idx];} + oldContactHistory_type const & getOldContactHistory(const size_t idx) const {return oldContactHistory_[idx];} oldContactHistory_type& getOldContactHistoryRef(const size_t idx) {return oldContactHistory_[idx];} - void setOldContactHistory(const size_t idx, const oldContactHistory_type& v) { oldContactHistory_[idx] = v; } + void setOldContactHistory(const size_t idx, oldContactHistory_type const & v) { oldContactHistory_[idx] = v; } - const newContactHistory_type& getNewContactHistory(const size_t idx) const {return newContactHistory_[idx];} + newContactHistory_type const & getNewContactHistory(const size_t idx) const {return newContactHistory_[idx];} newContactHistory_type& getNewContactHistoryRef(const size_t idx) {return newContactHistory_[idx];} - void setNewContactHistory(const size_t idx, const newContactHistory_type& v) { newContactHistory_[idx] = v; } + void setNewContactHistory(const size_t idx, newContactHistory_type const & v) { newContactHistory_[idx] = v; } - const temperature_type& getTemperature(const size_t idx) const {return temperature_[idx];} + temperature_type const & getTemperature(const size_t idx) const {return temperature_[idx];} temperature_type& getTemperatureRef(const size_t idx) {return temperature_[idx];} - void setTemperature(const size_t idx, const temperature_type& v) { temperature_[idx] = v; } + void setTemperature(const size_t idx, temperature_type const & v) { temperature_[idx] = v; } - const heatFlux_type& getHeatFlux(const size_t idx) const {return heatFlux_[idx];} + heatFlux_type const & getHeatFlux(const size_t idx) const {return heatFlux_[idx];} heatFlux_type& getHeatFluxRef(const size_t idx) {return heatFlux_[idx];} - void setHeatFlux(const size_t idx, const heatFlux_type& v) { heatFlux_[idx] = v; } + void setHeatFlux(const size_t idx, heatFlux_type const & v) { heatFlux_[idx] = v; } - const dv_type& getDv(const size_t idx) const {return dv_[idx];} + dv_type const & getDv(const size_t idx) const {return dv_[idx];} dv_type& getDvRef(const size_t idx) {return dv_[idx];} - void setDv(const size_t idx, const dv_type& v) { dv_[idx] = v; } + void setDv(const size_t idx, dv_type const & v) { dv_[idx] = v; } - const dw_type& getDw(const size_t idx) const {return dw_[idx];} + dw_type const & getDw(const size_t idx) const {return dw_[idx];} dw_type& getDwRef(const size_t idx) {return dw_[idx];} - void setDw(const size_t idx, const dw_type& v) { dw_[idx] = v; } + void setDw(const size_t idx, dw_type const & v) { dw_[idx] = v; } - const neighborState_type& getNeighborState(const size_t idx) const {return neighborState_[idx];} + neighborState_type const & getNeighborState(const size_t idx) const {return neighborState_[idx];} neighborState_type& getNeighborStateRef(const size_t idx) {return neighborState_[idx];} - void setNeighborState(const size_t idx, const neighborState_type& v) { neighborState_[idx] = v; } + void setNeighborState(const size_t idx, neighborState_type const & v) { neighborState_[idx] = v; } /** @@ -480,6 +491,7 @@ public: std::vector<force_type> force_ {}; std::vector<oldForce_type> oldForce_ {}; std::vector<oldTorque_type> oldTorque_ {}; + std::vector<currentBlock_type> currentBlock_ {}; std::vector<type_type> type_ {}; std::vector<nextParticle_type> nextParticle_ {}; std::vector<oldContactHistory_type> oldContactHistory_ {}; @@ -513,6 +525,7 @@ ParticleStorage::Particle& ParticleStorage::Particle::operator=(const ParticleSt getForceRef() = rhs.getForce(); getOldForceRef() = rhs.getOldForce(); getOldTorqueRef() = rhs.getOldTorque(); + getCurrentBlockRef() = rhs.getCurrentBlock(); getTypeRef() = rhs.getType(); getNextParticleRef() = rhs.getNextParticle(); getOldContactHistoryRef() = rhs.getOldContactHistory(); @@ -543,6 +556,7 @@ ParticleStorage::Particle& ParticleStorage::Particle::operator=(ParticleStorage: getForceRef() = std::move(rhs.getForceRef()); getOldForceRef() = std::move(rhs.getOldForceRef()); getOldTorqueRef() = std::move(rhs.getOldTorqueRef()); + getCurrentBlockRef() = std::move(rhs.getCurrentBlockRef()); getTypeRef() = std::move(rhs.getTypeRef()); getNextParticleRef() = std::move(rhs.getNextParticleRef()); getOldContactHistoryRef() = std::move(rhs.getOldContactHistoryRef()); @@ -574,6 +588,7 @@ void swap(ParticleStorage::Particle lhs, ParticleStorage::Particle rhs) std::swap(lhs.getForceRef(), rhs.getForceRef()); std::swap(lhs.getOldForceRef(), rhs.getOldForceRef()); std::swap(lhs.getOldTorqueRef(), rhs.getOldTorqueRef()); + std::swap(lhs.getCurrentBlockRef(), rhs.getCurrentBlockRef()); std::swap(lhs.getTypeRef(), rhs.getTypeRef()); std::swap(lhs.getNextParticleRef(), rhs.getNextParticleRef()); std::swap(lhs.getOldContactHistoryRef(), rhs.getOldContactHistoryRef()); @@ -605,6 +620,7 @@ std::ostream& operator<<( std::ostream& os, const ParticleStorage::Particle& p ) "force : " << p.getForce() << "\n" << "oldForce : " << p.getOldForce() << "\n" << "oldTorque : " << p.getOldTorque() << "\n" << + "currentBlock : " << p.getCurrentBlock() << "\n" << "type : " << p.getType() << "\n" << "nextParticle : " << p.getNextParticle() << "\n" << "oldContactHistory : " << p.getOldContactHistory() << "\n" << @@ -706,6 +722,7 @@ inline ParticleStorage::iterator ParticleStorage::create(const id_t& uid) force_.emplace_back(real_t(0)); oldForce_.emplace_back(real_t(0)); oldTorque_.emplace_back(real_t(0)); + currentBlock_.emplace_back(nullptr); type_.emplace_back(0); nextParticle_.emplace_back(-1); oldContactHistory_.emplace_back(); @@ -762,6 +779,7 @@ inline ParticleStorage::iterator ParticleStorage::erase(iterator& it) force_.pop_back(); oldForce_.pop_back(); oldTorque_.pop_back(); + currentBlock_.pop_back(); type_.pop_back(); nextParticle_.pop_back(); oldContactHistory_.pop_back(); @@ -805,6 +823,7 @@ inline void ParticleStorage::reserve(const size_t size) force_.reserve(size); oldForce_.reserve(size); oldTorque_.reserve(size); + currentBlock_.reserve(size); type_.reserve(size); nextParticle_.reserve(size); oldContactHistory_.reserve(size); @@ -833,6 +852,7 @@ inline void ParticleStorage::clear() force_.clear(); oldForce_.clear(); oldTorque_.clear(); + currentBlock_.clear(); type_.clear(); nextParticle_.clear(); oldContactHistory_.clear(); @@ -862,6 +882,7 @@ inline size_t ParticleStorage::size() const //WALBERLA_ASSERT_EQUAL( uid_.size(), force.size() ); //WALBERLA_ASSERT_EQUAL( uid_.size(), oldForce.size() ); //WALBERLA_ASSERT_EQUAL( uid_.size(), oldTorque.size() ); + //WALBERLA_ASSERT_EQUAL( uid_.size(), currentBlock.size() ); //WALBERLA_ASSERT_EQUAL( uid_.size(), type.size() ); //WALBERLA_ASSERT_EQUAL( uid_.size(), nextParticle.size() ); //WALBERLA_ASSERT_EQUAL( uid_.size(), oldContactHistory.size() ); @@ -1061,7 +1082,7 @@ public: using return_type = walberla::id_t; walberla::id_t& operator()(data::Particle& p) const {return p.getUidRef();} walberla::id_t& operator()(data::Particle&& p) const {return p.getUidRef();} - const walberla::id_t& operator()(const data::Particle& p) const {return p.getUid();} + walberla::id_t const & operator()(const data::Particle& p) const {return p.getUid();} }; ///Predicate that selects a certain property from a Particle class SelectParticlePosition @@ -1070,7 +1091,7 @@ public: using return_type = walberla::mesa_pd::Vec3; walberla::mesa_pd::Vec3& operator()(data::Particle& p) const {return p.getPositionRef();} walberla::mesa_pd::Vec3& operator()(data::Particle&& p) const {return p.getPositionRef();} - const walberla::mesa_pd::Vec3& operator()(const data::Particle& p) const {return p.getPosition();} + walberla::mesa_pd::Vec3 const & operator()(const data::Particle& p) const {return p.getPosition();} }; ///Predicate that selects a certain property from a Particle class SelectParticleInteractionRadius @@ -1079,7 +1100,7 @@ public: using return_type = walberla::real_t; walberla::real_t& operator()(data::Particle& p) const {return p.getInteractionRadiusRef();} walberla::real_t& operator()(data::Particle&& p) const {return p.getInteractionRadiusRef();} - const walberla::real_t& operator()(const data::Particle& p) const {return p.getInteractionRadius();} + walberla::real_t const & operator()(const data::Particle& p) const {return p.getInteractionRadius();} }; ///Predicate that selects a certain property from a Particle class SelectParticleFlags @@ -1088,7 +1109,7 @@ public: using return_type = walberla::mesa_pd::data::particle_flags::FlagT; walberla::mesa_pd::data::particle_flags::FlagT& operator()(data::Particle& p) const {return p.getFlagsRef();} walberla::mesa_pd::data::particle_flags::FlagT& operator()(data::Particle&& p) const {return p.getFlagsRef();} - const walberla::mesa_pd::data::particle_flags::FlagT& operator()(const data::Particle& p) const {return p.getFlags();} + walberla::mesa_pd::data::particle_flags::FlagT const & operator()(const data::Particle& p) const {return p.getFlags();} }; ///Predicate that selects a certain property from a Particle class SelectParticleOwner @@ -1097,7 +1118,7 @@ public: using return_type = int; int& operator()(data::Particle& p) const {return p.getOwnerRef();} int& operator()(data::Particle&& p) const {return p.getOwnerRef();} - const int& operator()(const data::Particle& p) const {return p.getOwner();} + int const & operator()(const data::Particle& p) const {return p.getOwner();} }; ///Predicate that selects a certain property from a Particle class SelectParticleGhostOwners @@ -1106,7 +1127,7 @@ public: using return_type = std::unordered_set<walberla::mpi::MPIRank>; std::unordered_set<walberla::mpi::MPIRank>& operator()(data::Particle& p) const {return p.getGhostOwnersRef();} std::unordered_set<walberla::mpi::MPIRank>& operator()(data::Particle&& p) const {return p.getGhostOwnersRef();} - const std::unordered_set<walberla::mpi::MPIRank>& operator()(const data::Particle& p) const {return p.getGhostOwners();} + std::unordered_set<walberla::mpi::MPIRank> const & operator()(const data::Particle& p) const {return p.getGhostOwners();} }; ///Predicate that selects a certain property from a Particle class SelectParticleShapeID @@ -1115,7 +1136,7 @@ public: using return_type = size_t; size_t& operator()(data::Particle& p) const {return p.getShapeIDRef();} size_t& operator()(data::Particle&& p) const {return p.getShapeIDRef();} - const size_t& operator()(const data::Particle& p) const {return p.getShapeID();} + size_t const & operator()(const data::Particle& p) const {return p.getShapeID();} }; ///Predicate that selects a certain property from a Particle class SelectParticleRotation @@ -1124,7 +1145,7 @@ public: using return_type = walberla::mesa_pd::Rot3; walberla::mesa_pd::Rot3& operator()(data::Particle& p) const {return p.getRotationRef();} walberla::mesa_pd::Rot3& operator()(data::Particle&& p) const {return p.getRotationRef();} - const walberla::mesa_pd::Rot3& operator()(const data::Particle& p) const {return p.getRotation();} + walberla::mesa_pd::Rot3 const & operator()(const data::Particle& p) const {return p.getRotation();} }; ///Predicate that selects a certain property from a Particle class SelectParticleAngularVelocity @@ -1133,7 +1154,7 @@ public: using return_type = walberla::mesa_pd::Vec3; walberla::mesa_pd::Vec3& operator()(data::Particle& p) const {return p.getAngularVelocityRef();} walberla::mesa_pd::Vec3& operator()(data::Particle&& p) const {return p.getAngularVelocityRef();} - const walberla::mesa_pd::Vec3& operator()(const data::Particle& p) const {return p.getAngularVelocity();} + walberla::mesa_pd::Vec3 const & operator()(const data::Particle& p) const {return p.getAngularVelocity();} }; ///Predicate that selects a certain property from a Particle class SelectParticleTorque @@ -1142,7 +1163,7 @@ public: using return_type = walberla::mesa_pd::Vec3; walberla::mesa_pd::Vec3& operator()(data::Particle& p) const {return p.getTorqueRef();} walberla::mesa_pd::Vec3& operator()(data::Particle&& p) const {return p.getTorqueRef();} - const walberla::mesa_pd::Vec3& operator()(const data::Particle& p) const {return p.getTorque();} + walberla::mesa_pd::Vec3 const & operator()(const data::Particle& p) const {return p.getTorque();} }; ///Predicate that selects a certain property from a Particle class SelectParticleLinearVelocity @@ -1151,7 +1172,7 @@ public: using return_type = walberla::mesa_pd::Vec3; walberla::mesa_pd::Vec3& operator()(data::Particle& p) const {return p.getLinearVelocityRef();} walberla::mesa_pd::Vec3& operator()(data::Particle&& p) const {return p.getLinearVelocityRef();} - const walberla::mesa_pd::Vec3& operator()(const data::Particle& p) const {return p.getLinearVelocity();} + walberla::mesa_pd::Vec3 const & operator()(const data::Particle& p) const {return p.getLinearVelocity();} }; ///Predicate that selects a certain property from a Particle class SelectParticleInvMass @@ -1160,7 +1181,7 @@ public: using return_type = walberla::real_t; walberla::real_t& operator()(data::Particle& p) const {return p.getInvMassRef();} walberla::real_t& operator()(data::Particle&& p) const {return p.getInvMassRef();} - const walberla::real_t& operator()(const data::Particle& p) const {return p.getInvMass();} + walberla::real_t const & operator()(const data::Particle& p) const {return p.getInvMass();} }; ///Predicate that selects a certain property from a Particle class SelectParticleForce @@ -1169,7 +1190,7 @@ public: using return_type = walberla::mesa_pd::Vec3; walberla::mesa_pd::Vec3& operator()(data::Particle& p) const {return p.getForceRef();} walberla::mesa_pd::Vec3& operator()(data::Particle&& p) const {return p.getForceRef();} - const walberla::mesa_pd::Vec3& operator()(const data::Particle& p) const {return p.getForce();} + walberla::mesa_pd::Vec3 const & operator()(const data::Particle& p) const {return p.getForce();} }; ///Predicate that selects a certain property from a Particle class SelectParticleOldForce @@ -1178,7 +1199,7 @@ public: using return_type = walberla::mesa_pd::Vec3; walberla::mesa_pd::Vec3& operator()(data::Particle& p) const {return p.getOldForceRef();} walberla::mesa_pd::Vec3& operator()(data::Particle&& p) const {return p.getOldForceRef();} - const walberla::mesa_pd::Vec3& operator()(const data::Particle& p) const {return p.getOldForce();} + walberla::mesa_pd::Vec3 const & operator()(const data::Particle& p) const {return p.getOldForce();} }; ///Predicate that selects a certain property from a Particle class SelectParticleOldTorque @@ -1187,7 +1208,16 @@ public: using return_type = walberla::mesa_pd::Vec3; walberla::mesa_pd::Vec3& operator()(data::Particle& p) const {return p.getOldTorqueRef();} walberla::mesa_pd::Vec3& operator()(data::Particle&& p) const {return p.getOldTorqueRef();} - const walberla::mesa_pd::Vec3& operator()(const data::Particle& p) const {return p.getOldTorque();} + walberla::mesa_pd::Vec3 const & operator()(const data::Particle& p) const {return p.getOldTorque();} +}; +///Predicate that selects a certain property from a Particle +class SelectParticleCurrentBlock +{ +public: + using return_type = blockforest::Block*; + blockforest::Block*& operator()(data::Particle& p) const {return p.getCurrentBlockRef();} + blockforest::Block*& operator()(data::Particle&& p) const {return p.getCurrentBlockRef();} + blockforest::Block* const & operator()(const data::Particle& p) const {return p.getCurrentBlock();} }; ///Predicate that selects a certain property from a Particle class SelectParticleType @@ -1196,7 +1226,7 @@ public: using return_type = uint_t; uint_t& operator()(data::Particle& p) const {return p.getTypeRef();} uint_t& operator()(data::Particle&& p) const {return p.getTypeRef();} - const uint_t& operator()(const data::Particle& p) const {return p.getType();} + uint_t const & operator()(const data::Particle& p) const {return p.getType();} }; ///Predicate that selects a certain property from a Particle class SelectParticleNextParticle @@ -1205,7 +1235,7 @@ public: using return_type = int; int& operator()(data::Particle& p) const {return p.getNextParticleRef();} int& operator()(data::Particle&& p) const {return p.getNextParticleRef();} - const int& operator()(const data::Particle& p) const {return p.getNextParticle();} + int const & operator()(const data::Particle& p) const {return p.getNextParticle();} }; ///Predicate that selects a certain property from a Particle class SelectParticleOldContactHistory @@ -1214,7 +1244,7 @@ public: using return_type = std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>; std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& operator()(data::Particle& p) const {return p.getOldContactHistoryRef();} std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& operator()(data::Particle&& p) const {return p.getOldContactHistoryRef();} - const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& operator()(const data::Particle& p) const {return p.getOldContactHistory();} + std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & operator()(const data::Particle& p) const {return p.getOldContactHistory();} }; ///Predicate that selects a certain property from a Particle class SelectParticleNewContactHistory @@ -1223,7 +1253,7 @@ public: using return_type = std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>; std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& operator()(data::Particle& p) const {return p.getNewContactHistoryRef();} std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& operator()(data::Particle&& p) const {return p.getNewContactHistoryRef();} - const std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory>& operator()(const data::Particle& p) const {return p.getNewContactHistory();} + std::map<walberla::id_t, walberla::mesa_pd::data::ContactHistory> const & operator()(const data::Particle& p) const {return p.getNewContactHistory();} }; ///Predicate that selects a certain property from a Particle class SelectParticleTemperature @@ -1232,7 +1262,7 @@ public: using return_type = walberla::real_t; walberla::real_t& operator()(data::Particle& p) const {return p.getTemperatureRef();} walberla::real_t& operator()(data::Particle&& p) const {return p.getTemperatureRef();} - const walberla::real_t& operator()(const data::Particle& p) const {return p.getTemperature();} + walberla::real_t const & operator()(const data::Particle& p) const {return p.getTemperature();} }; ///Predicate that selects a certain property from a Particle class SelectParticleHeatFlux @@ -1241,7 +1271,7 @@ public: using return_type = walberla::real_t; walberla::real_t& operator()(data::Particle& p) const {return p.getHeatFluxRef();} walberla::real_t& operator()(data::Particle&& p) const {return p.getHeatFluxRef();} - const walberla::real_t& operator()(const data::Particle& p) const {return p.getHeatFlux();} + walberla::real_t const & operator()(const data::Particle& p) const {return p.getHeatFlux();} }; ///Predicate that selects a certain property from a Particle class SelectParticleDv @@ -1250,7 +1280,7 @@ public: using return_type = walberla::mesa_pd::Vec3; walberla::mesa_pd::Vec3& operator()(data::Particle& p) const {return p.getDvRef();} walberla::mesa_pd::Vec3& operator()(data::Particle&& p) const {return p.getDvRef();} - const walberla::mesa_pd::Vec3& operator()(const data::Particle& p) const {return p.getDv();} + walberla::mesa_pd::Vec3 const & operator()(const data::Particle& p) const {return p.getDv();} }; ///Predicate that selects a certain property from a Particle class SelectParticleDw @@ -1259,7 +1289,7 @@ public: using return_type = walberla::mesa_pd::Vec3; walberla::mesa_pd::Vec3& operator()(data::Particle& p) const {return p.getDwRef();} walberla::mesa_pd::Vec3& operator()(data::Particle&& p) const {return p.getDwRef();} - const walberla::mesa_pd::Vec3& operator()(const data::Particle& p) const {return p.getDw();} + walberla::mesa_pd::Vec3 const & operator()(const data::Particle& p) const {return p.getDw();} }; ///Predicate that selects a certain property from a Particle class SelectParticleNeighborState @@ -1268,7 +1298,7 @@ public: using return_type = std::unordered_set<walberla::mpi::MPIRank>; std::unordered_set<walberla::mpi::MPIRank>& operator()(data::Particle& p) const {return p.getNeighborStateRef();} std::unordered_set<walberla::mpi::MPIRank>& operator()(data::Particle&& p) const {return p.getNeighborStateRef();} - const std::unordered_set<walberla::mpi::MPIRank>& operator()(const data::Particle& p) const {return p.getNeighborState();} + std::unordered_set<walberla::mpi::MPIRank> const & operator()(const data::Particle& p) const {return p.getNeighborState();} }; } //namespace data -- GitLab