//====================================================================================================================== // // This file is part of waLBerla. waLBerla is free software: you can // redistribute it and/or modify it under the terms of the GNU General Public // License as published by the Free Software Foundation, either version 3 of // the License, or (at your option) any later version. // // waLBerla is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License // for more details. // // You should have received a copy of the GNU General Public License along // with waLBerla (see COPYING.txt). If not, see . // //! \file //! \author Sebastian Eibl // //====================================================================================================================== //====================================================================================================================== // // THIS FILE IS GENERATED - PLEASE CHANGE THE TEMPLATE !!! // //====================================================================================================================== #pragma once #include #include #include #include namespace walberla { namespace mesa_pd { namespace data { /** * @brief Basic ParticleAccessor for the ParticleStorage * * Provides get, set and getRef for all members of the ParticleStorage. * Can be used as a basis class for a more advanced ParticleAccessor. */ class ParticleAccessor : public IAccessor { public: ParticleAccessor(const std::shared_ptr& ps) : ps_(ps) {} ~ParticleAccessor() override = default; 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, walberla::id_t const & v) { ps_->setUid(p_idx, v);} 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, walberla::mesa_pd::Vec3 const & v) { ps_->setPosition(p_idx, v);} 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, walberla::real_t const & v) { ps_->setInteractionRadius(p_idx, v);} 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, walberla::mesa_pd::data::particle_flags::FlagT const & v) { ps_->setFlags(p_idx, v);} 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, int const & v) { ps_->setOwner(p_idx, v);} std::unordered_set const & getGhostOwners(const size_t p_idx) const {return ps_->getGhostOwners(p_idx);} std::unordered_set& getGhostOwnersRef(const size_t p_idx) {return ps_->getGhostOwnersRef(p_idx);} void setGhostOwners(const size_t p_idx, std::unordered_set const & v) { ps_->setGhostOwners(p_idx, v);} 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, walberla::mesa_pd::Vec3 const & v) { ps_->setLinearVelocity(p_idx, v);} 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, walberla::real_t const & v) { ps_->setInvMass(p_idx, v);} 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, walberla::mesa_pd::Vec3 const & v) { ps_->setForce(p_idx, v);} 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, walberla::mesa_pd::Vec3 const & v) { ps_->setOldForce(p_idx, v);} 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, size_t const & v) { ps_->setShapeID(p_idx, v);} 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, walberla::mesa_pd::Rot3 const & v) { ps_->setRotation(p_idx, v);} 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, walberla::mesa_pd::Vec3 const & v) { ps_->setAngularVelocity(p_idx, v);} 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, walberla::mesa_pd::Vec3 const & v) { ps_->setTorque(p_idx, v);} 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, walberla::mesa_pd::Vec3 const & v) { ps_->setOldTorque(p_idx, v);} walberla::real_t const & getRadiusAtTemperature(const size_t p_idx) const {return ps_->getRadiusAtTemperature(p_idx);} walberla::real_t& getRadiusAtTemperatureRef(const size_t p_idx) {return ps_->getRadiusAtTemperatureRef(p_idx);} void setRadiusAtTemperature(const size_t p_idx, walberla::real_t const & v) { ps_->setRadiusAtTemperature(p_idx, v);} blockforest::BlockID const & getCurrentBlock(const size_t p_idx) const {return ps_->getCurrentBlock(p_idx);} blockforest::BlockID& getCurrentBlockRef(const size_t p_idx) {return ps_->getCurrentBlockRef(p_idx);} void setCurrentBlock(const size_t p_idx, blockforest::BlockID 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, uint_t const & v) { ps_->setType(p_idx, v);} 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, int const & v) { ps_->setNextParticle(p_idx, v);} std::map const & getOldContactHistory(const size_t p_idx) const {return ps_->getOldContactHistory(p_idx);} std::map& getOldContactHistoryRef(const size_t p_idx) {return ps_->getOldContactHistoryRef(p_idx);} void setOldContactHistory(const size_t p_idx, std::map const & v) { ps_->setOldContactHistory(p_idx, v);} std::map const & getNewContactHistory(const size_t p_idx) const {return ps_->getNewContactHistory(p_idx);} std::map& getNewContactHistoryRef(const size_t p_idx) {return ps_->getNewContactHistoryRef(p_idx);} void setNewContactHistory(const size_t p_idx, std::map const & v) { ps_->setNewContactHistory(p_idx, v);} 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, walberla::real_t const & v) { ps_->setTemperature(p_idx, v);} 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, walberla::real_t const & v) { ps_->setHeatFlux(p_idx, v);} 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, walberla::mesa_pd::Vec3 const & v) { ps_->setDv(p_idx, v);} 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, walberla::mesa_pd::Vec3 const & v) { ps_->setDw(p_idx, v);} walberla::mesa_pd::Vec3 const & getHydrodynamicForce(const size_t p_idx) const {return ps_->getHydrodynamicForce(p_idx);} walberla::mesa_pd::Vec3& getHydrodynamicForceRef(const size_t p_idx) {return ps_->getHydrodynamicForceRef(p_idx);} void setHydrodynamicForce(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setHydrodynamicForce(p_idx, v);} walberla::mesa_pd::Vec3 const & getHydrodynamicTorque(const size_t p_idx) const {return ps_->getHydrodynamicTorque(p_idx);} walberla::mesa_pd::Vec3& getHydrodynamicTorqueRef(const size_t p_idx) {return ps_->getHydrodynamicTorqueRef(p_idx);} void setHydrodynamicTorque(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setHydrodynamicTorque(p_idx, v);} walberla::mesa_pd::Vec3 const & getOldHydrodynamicForce(const size_t p_idx) const {return ps_->getOldHydrodynamicForce(p_idx);} walberla::mesa_pd::Vec3& getOldHydrodynamicForceRef(const size_t p_idx) {return ps_->getOldHydrodynamicForceRef(p_idx);} void setOldHydrodynamicForce(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setOldHydrodynamicForce(p_idx, v);} walberla::mesa_pd::Vec3 const & getOldHydrodynamicTorque(const size_t p_idx) const {return ps_->getOldHydrodynamicTorque(p_idx);} walberla::mesa_pd::Vec3& getOldHydrodynamicTorqueRef(const size_t p_idx) {return ps_->getOldHydrodynamicTorqueRef(p_idx);} void setOldHydrodynamicTorque(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setOldHydrodynamicTorque(p_idx, v);} walberla::real_t const & getVirtualMass(const size_t p_idx) const {return ps_->getVirtualMass(p_idx);} walberla::real_t& getVirtualMassRef(const size_t p_idx) {return ps_->getVirtualMassRef(p_idx);} void setVirtualMass(const size_t p_idx, walberla::real_t const & v) { ps_->setVirtualMass(p_idx, v);} walberla::real_t const & getInvMassIncludingVirtual(const size_t p_idx) const {return ps_->getInvMassIncludingVirtual(p_idx);} walberla::real_t& getInvMassIncludingVirtualRef(const size_t p_idx) {return ps_->getInvMassIncludingVirtualRef(p_idx);} void setInvMassIncludingVirtual(const size_t p_idx, walberla::real_t const & v) { ps_->setInvMassIncludingVirtual(p_idx, v);} walberla::mesa_pd::Vec3 const & getOldLinearAcceleration(const size_t p_idx) const {return ps_->getOldLinearAcceleration(p_idx);} walberla::mesa_pd::Vec3& getOldLinearAccelerationRef(const size_t p_idx) {return ps_->getOldLinearAccelerationRef(p_idx);} void setOldLinearAcceleration(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setOldLinearAcceleration(p_idx, v);} walberla::mesa_pd::Mat3 const & getInvInertiaBF(const size_t p_idx) const {return ps_->getInvInertiaBF(p_idx);} walberla::mesa_pd::Mat3& getInvInertiaBFRef(const size_t p_idx) {return ps_->getInvInertiaBFRef(p_idx);} void setInvInertiaBF(const size_t p_idx, walberla::mesa_pd::Mat3 const & v) { ps_->setInvInertiaBF(p_idx, v);} walberla::mesa_pd::Mat3 const & getVirtualInertiaBF(const size_t p_idx) const {return ps_->getVirtualInertiaBF(p_idx);} walberla::mesa_pd::Mat3& getVirtualInertiaBFRef(const size_t p_idx) {return ps_->getVirtualInertiaBFRef(p_idx);} void setVirtualInertiaBF(const size_t p_idx, walberla::mesa_pd::Mat3 const & v) { ps_->setVirtualInertiaBF(p_idx, v);} walberla::mesa_pd::Mat3 const & getInvInertiaBFIncludingVirtual(const size_t p_idx) const {return ps_->getInvInertiaBFIncludingVirtual(p_idx);} walberla::mesa_pd::Mat3& getInvInertiaBFIncludingVirtualRef(const size_t p_idx) {return ps_->getInvInertiaBFIncludingVirtualRef(p_idx);} void setInvInertiaBFIncludingVirtual(const size_t p_idx, walberla::mesa_pd::Mat3 const & v) { ps_->setInvInertiaBFIncludingVirtual(p_idx, v);} walberla::mesa_pd::Vec3 const & getOldAngularAcceleration(const size_t p_idx) const {return ps_->getOldAngularAcceleration(p_idx);} walberla::mesa_pd::Vec3& getOldAngularAccelerationRef(const size_t p_idx) {return ps_->getOldAngularAccelerationRef(p_idx);} void setOldAngularAcceleration(const size_t p_idx, walberla::mesa_pd::Vec3 const & v) { ps_->setOldAngularAcceleration(p_idx, v);} int64_t const & getClusterID(const size_t p_idx) const {return ps_->getClusterID(p_idx);} int64_t& getClusterIDRef(const size_t p_idx) {return ps_->getClusterIDRef(p_idx);} void setClusterID(const size_t p_idx, int64_t const & v) { ps_->setClusterID(p_idx, v);} int64_t const & getSegmentID(const size_t p_idx) const {return ps_->getSegmentID(p_idx);} int64_t& getSegmentIDRef(const size_t p_idx) {return ps_->getSegmentIDRef(p_idx);} void setSegmentID(const size_t p_idx, int64_t const & v) { ps_->setSegmentID(p_idx, v);} std::unordered_set const & getNeighborState(const size_t p_idx) const {return ps_->getNeighborState(p_idx);} std::unordered_set& getNeighborStateRef(const size_t p_idx) {return ps_->getNeighborStateRef(p_idx);} void setNeighborState(const size_t p_idx, std::unordered_set const & v) { ps_->setNeighborState(p_idx, v);} id_t getInvalidUid() const {return UniqueID::invalidID();} size_t getInvalidIdx() const {return std::numeric_limits::max();} /** * @brief Returns the index of particle specified by uid. * @param uid unique id of the particle to be looked up * @return the index of the particle or std::numeric_limits::max() if the particle is not found */ size_t uidToIdx(const id_t& uid) const {auto it = ps_->find(uid); return it != ps_->end() ? it.getIdx() : std::numeric_limits::max();} size_t size() const { return ps_->size(); } inline size_t create(const id_t& uid); inline size_t erase(const size_t& idx); inline size_t find(const id_t& uid); protected: std::shared_ptr ps_; }; inline size_t ParticleAccessor::create(const id_t& uid) { auto it = ps_->create(uid); return it.getIdx(); } inline size_t ParticleAccessor::erase(const size_t& idx) { data::ParticleStorage::iterator it(ps_.get(), idx); it = ps_->erase(it); return it.getIdx(); } inline size_t ParticleAccessor::find(const id_t& uid) { auto it = ps_->find(uid); return it.getIdx(); } /** * @brief Basic ParticleAccessor which emulates a single particle in a ParticleStorage * without actually needing a ParticleStorage. This class is used mainly for testing purposes. * * Provides get, set and getRef. */ class SingleParticleAccessor : public IAccessor { public: ~SingleParticleAccessor() override = default; 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_;} 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_;} 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_;} 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_;} 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_;} std::unordered_set const & getGhostOwners(const size_t /*p_idx*/) const {return ghostOwners_;} void setGhostOwners(const size_t /*p_idx*/, std::unordered_set const & v) { ghostOwners_ = v;} std::unordered_set& getGhostOwnersRef(const size_t /*p_idx*/) {return ghostOwners_;} 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_;} 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_;} 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_;} 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_;} 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_;} 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_;} 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_;} 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_;} 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_;} walberla::real_t const & getRadiusAtTemperature(const size_t /*p_idx*/) const {return radiusAtTemperature_;} void setRadiusAtTemperature(const size_t /*p_idx*/, walberla::real_t const & v) { radiusAtTemperature_ = v;} walberla::real_t& getRadiusAtTemperatureRef(const size_t /*p_idx*/) {return radiusAtTemperature_;} blockforest::BlockID const & getCurrentBlock(const size_t /*p_idx*/) const {return currentBlock_;} void setCurrentBlock(const size_t /*p_idx*/, blockforest::BlockID const & v) { currentBlock_ = v;} blockforest::BlockID& 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_;} 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_;} std::map const & getOldContactHistory(const size_t /*p_idx*/) const {return oldContactHistory_;} void setOldContactHistory(const size_t /*p_idx*/, std::map const & v) { oldContactHistory_ = v;} std::map& getOldContactHistoryRef(const size_t /*p_idx*/) {return oldContactHistory_;} std::map const & getNewContactHistory(const size_t /*p_idx*/) const {return newContactHistory_;} void setNewContactHistory(const size_t /*p_idx*/, std::map const & v) { newContactHistory_ = v;} std::map& getNewContactHistoryRef(const size_t /*p_idx*/) {return newContactHistory_;} 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_;} 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_;} 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_;} 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_;} walberla::mesa_pd::Vec3 const & getHydrodynamicForce(const size_t /*p_idx*/) const {return hydrodynamicForce_;} void setHydrodynamicForce(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { hydrodynamicForce_ = v;} walberla::mesa_pd::Vec3& getHydrodynamicForceRef(const size_t /*p_idx*/) {return hydrodynamicForce_;} walberla::mesa_pd::Vec3 const & getHydrodynamicTorque(const size_t /*p_idx*/) const {return hydrodynamicTorque_;} void setHydrodynamicTorque(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { hydrodynamicTorque_ = v;} walberla::mesa_pd::Vec3& getHydrodynamicTorqueRef(const size_t /*p_idx*/) {return hydrodynamicTorque_;} walberla::mesa_pd::Vec3 const & getOldHydrodynamicForce(const size_t /*p_idx*/) const {return oldHydrodynamicForce_;} void setOldHydrodynamicForce(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { oldHydrodynamicForce_ = v;} walberla::mesa_pd::Vec3& getOldHydrodynamicForceRef(const size_t /*p_idx*/) {return oldHydrodynamicForce_;} walberla::mesa_pd::Vec3 const & getOldHydrodynamicTorque(const size_t /*p_idx*/) const {return oldHydrodynamicTorque_;} void setOldHydrodynamicTorque(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { oldHydrodynamicTorque_ = v;} walberla::mesa_pd::Vec3& getOldHydrodynamicTorqueRef(const size_t /*p_idx*/) {return oldHydrodynamicTorque_;} walberla::real_t const & getVirtualMass(const size_t /*p_idx*/) const {return virtualMass_;} void setVirtualMass(const size_t /*p_idx*/, walberla::real_t const & v) { virtualMass_ = v;} walberla::real_t& getVirtualMassRef(const size_t /*p_idx*/) {return virtualMass_;} walberla::real_t const & getInvMassIncludingVirtual(const size_t /*p_idx*/) const {return invMassIncludingVirtual_;} void setInvMassIncludingVirtual(const size_t /*p_idx*/, walberla::real_t const & v) { invMassIncludingVirtual_ = v;} walberla::real_t& getInvMassIncludingVirtualRef(const size_t /*p_idx*/) {return invMassIncludingVirtual_;} walberla::mesa_pd::Vec3 const & getOldLinearAcceleration(const size_t /*p_idx*/) const {return oldLinearAcceleration_;} void setOldLinearAcceleration(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { oldLinearAcceleration_ = v;} walberla::mesa_pd::Vec3& getOldLinearAccelerationRef(const size_t /*p_idx*/) {return oldLinearAcceleration_;} walberla::mesa_pd::Mat3 const & getInvInertiaBF(const size_t /*p_idx*/) const {return invInertiaBF_;} void setInvInertiaBF(const size_t /*p_idx*/, walberla::mesa_pd::Mat3 const & v) { invInertiaBF_ = v;} walberla::mesa_pd::Mat3& getInvInertiaBFRef(const size_t /*p_idx*/) {return invInertiaBF_;} walberla::mesa_pd::Mat3 const & getVirtualInertiaBF(const size_t /*p_idx*/) const {return virtualInertiaBF_;} void setVirtualInertiaBF(const size_t /*p_idx*/, walberla::mesa_pd::Mat3 const & v) { virtualInertiaBF_ = v;} walberla::mesa_pd::Mat3& getVirtualInertiaBFRef(const size_t /*p_idx*/) {return virtualInertiaBF_;} walberla::mesa_pd::Mat3 const & getInvInertiaBFIncludingVirtual(const size_t /*p_idx*/) const {return invInertiaBFIncludingVirtual_;} void setInvInertiaBFIncludingVirtual(const size_t /*p_idx*/, walberla::mesa_pd::Mat3 const & v) { invInertiaBFIncludingVirtual_ = v;} walberla::mesa_pd::Mat3& getInvInertiaBFIncludingVirtualRef(const size_t /*p_idx*/) {return invInertiaBFIncludingVirtual_;} walberla::mesa_pd::Vec3 const & getOldAngularAcceleration(const size_t /*p_idx*/) const {return oldAngularAcceleration_;} void setOldAngularAcceleration(const size_t /*p_idx*/, walberla::mesa_pd::Vec3 const & v) { oldAngularAcceleration_ = v;} walberla::mesa_pd::Vec3& getOldAngularAccelerationRef(const size_t /*p_idx*/) {return oldAngularAcceleration_;} int64_t const & getClusterID(const size_t /*p_idx*/) const {return clusterID_;} void setClusterID(const size_t /*p_idx*/, int64_t const & v) { clusterID_ = v;} int64_t& getClusterIDRef(const size_t /*p_idx*/) {return clusterID_;} int64_t const & getSegmentID(const size_t /*p_idx*/) const {return segmentID_;} void setSegmentID(const size_t /*p_idx*/, int64_t const & v) { segmentID_ = v;} int64_t& getSegmentIDRef(const size_t /*p_idx*/) {return segmentID_;} std::unordered_set const & getNeighborState(const size_t /*p_idx*/) const {return neighborState_;} void setNeighborState(const size_t /*p_idx*/, std::unordered_set const & v) { neighborState_ = v;} std::unordered_set& getNeighborStateRef(const size_t /*p_idx*/) {return neighborState_;} id_t getInvalidUid() const {return UniqueID::invalidID();} size_t getInvalidIdx() const {return std::numeric_limits::max();} /** * @brief Returns the index of particle specified by uid. * @param uid unique id of the particle to be looked up * @return the index of the particle or std::numeric_limits::max() if the particle is not found */ size_t uidToIdx(const id_t& uid) const {return uid == uid_ ? 0 : std::numeric_limits::max();} size_t size() const { return 1; } private: walberla::id_t uid_; walberla::mesa_pd::Vec3 position_; walberla::real_t interactionRadius_; walberla::mesa_pd::data::particle_flags::FlagT flags_; int owner_; std::unordered_set ghostOwners_; walberla::mesa_pd::Vec3 linearVelocity_; walberla::real_t invMass_; walberla::mesa_pd::Vec3 force_; walberla::mesa_pd::Vec3 oldForce_; size_t shapeID_; walberla::mesa_pd::Rot3 rotation_; walberla::mesa_pd::Vec3 angularVelocity_; walberla::mesa_pd::Vec3 torque_; walberla::mesa_pd::Vec3 oldTorque_; walberla::real_t radiusAtTemperature_; blockforest::BlockID currentBlock_; uint_t type_; int nextParticle_; std::map oldContactHistory_; std::map newContactHistory_; walberla::real_t temperature_; walberla::real_t heatFlux_; walberla::mesa_pd::Vec3 dv_; walberla::mesa_pd::Vec3 dw_; walberla::mesa_pd::Vec3 hydrodynamicForce_; walberla::mesa_pd::Vec3 hydrodynamicTorque_; walberla::mesa_pd::Vec3 oldHydrodynamicForce_; walberla::mesa_pd::Vec3 oldHydrodynamicTorque_; walberla::real_t virtualMass_; walberla::real_t invMassIncludingVirtual_; walberla::mesa_pd::Vec3 oldLinearAcceleration_; walberla::mesa_pd::Mat3 invInertiaBF_; walberla::mesa_pd::Mat3 virtualInertiaBF_; walberla::mesa_pd::Mat3 invInertiaBFIncludingVirtual_; walberla::mesa_pd::Vec3 oldAngularAcceleration_; int64_t clusterID_; int64_t segmentID_; std::unordered_set neighborState_; }; } //namespace data } //namespace mesa_pd } //namespace walberla