diff --git a/python/mesa_pd/templates/kernel/InsertParticleIntoLinkedCells.templ.h b/python/mesa_pd/templates/kernel/InsertParticleIntoLinkedCells.templ.h
index 96bcd932df6bdcc44b2ae034f104f6ab59c2f7a1..9cf3952cd27e4e7346928be9187d64060d653d8b 100644
--- a/python/mesa_pd/templates/kernel/InsertParticleIntoLinkedCells.templ.h
+++ b/python/mesa_pd/templates/kernel/InsertParticleIntoLinkedCells.templ.h
@@ -77,7 +77,9 @@ inline void InsertParticleIntoLinkedCells::operator()(const size_t p_idx, Access
       ac.setNextParticle(p_idx, lc.infiniteParticles_.exchange(int_c(p_idx)));
    } else
    {
+      WALBERLA_ASSERT_GREATER(ac.getInteractionRadius(p_idx), 0_r, "Did you forget to set the interaction radius?");
       {%- for dim in range(3) %}
+      WALBERLA_ASSERT_LESS(2_r * ac.getInteractionRadius(p_idx), lc.cellDiameter_[0], "Interaction radius is to large for this cell size. Contacts might get lost.");
       int hash{{dim}} = static_cast<int>(std::floor((ac.getPosition(p_idx)[{{dim}}] - minCorner[{{dim}}]) * lc.invCellDiameter_[{{dim}}]));
       {%- endfor %}
       {%- for dim in range(3) %}
diff --git a/python/mesa_pd/templates/kernel/InsertParticleIntoSparseLinkedCells.templ.h b/python/mesa_pd/templates/kernel/InsertParticleIntoSparseLinkedCells.templ.h
index ff10b7b6d3de00bca08b0a99ae90d996885d0284..3edaf2bb019e578f035f2927c6fe90f6e8fca08a 100644
--- a/python/mesa_pd/templates/kernel/InsertParticleIntoSparseLinkedCells.templ.h
+++ b/python/mesa_pd/templates/kernel/InsertParticleIntoSparseLinkedCells.templ.h
@@ -77,7 +77,9 @@ inline void InsertParticleIntoSparseLinkedCells::operator()(const size_t p_idx,
       ac.setNextParticle(p_idx, lc.infiniteParticles_.exchange(int_c(p_idx)));
    } else
    {
+      WALBERLA_ASSERT_GREATER(ac.getInteractionRadius(p_idx), 0_r, "Did you forget to set the interaction radius?");
       {%- for dim in range(3) %}
+      WALBERLA_ASSERT_LESS(2_r * ac.getInteractionRadius(p_idx), lc.cellDiameter_[0], "Interaction radius is to large for this cell size. Contacts might get lost.");
       int hash{{dim}} = static_cast<int>(std::floor((ac.getPosition(p_idx)[{{dim}}] - minCorner[{{dim}}]) * lc.invCellDiameter_[{{dim}}]));
       {%- endfor %}
       {%- for dim in range(3) %}
diff --git a/python/mesa_pd/templates/mpi/SyncGhostOwners.templ.cpp b/python/mesa_pd/templates/mpi/SyncGhostOwners.templ.cpp
index 7336ec1e8699c5a738062d5e0689e8d13556c17e..d1b5865b86c5bf65eda79861ec05d55ee02f5e5f 100644
--- a/python/mesa_pd/templates/mpi/SyncGhostOwners.templ.cpp
+++ b/python/mesa_pd/templates/mpi/SyncGhostOwners.templ.cpp
@@ -72,6 +72,7 @@ void SyncGhostOwners::updateAndMigrate( data::ParticleStorage& ps,
    std::set<walberla::mpi::MPIRank> recvRanks; // potential message senders
    for( auto pIt = ps.begin(); pIt != ps.end(); ++pIt)
    {
+      WALBERLA_ASSERT_GREATER(pIt->getInteractionRadius(), 0_r, "Did you forget to set the interaction radius?");
       if (isSet( pIt->getFlags(), GHOST))
       {
          if (!isSet( pIt->getFlags(), NON_COMMUNICATING) || syncNonCommunicatingBodies)
diff --git a/python/mesa_pd/templates/mpi/SyncNextNeighbors.templ.cpp b/python/mesa_pd/templates/mpi/SyncNextNeighbors.templ.cpp
index 3dd7ca3c40988c74193df432df99dcb43498fbc7..bd1d1b284ed45e1dd71dd8c54422841898d0f382 100644
--- a/python/mesa_pd/templates/mpi/SyncNextNeighbors.templ.cpp
+++ b/python/mesa_pd/templates/mpi/SyncNextNeighbors.templ.cpp
@@ -87,6 +87,8 @@ void SyncNextNeighbors::generateSynchronizationMessages(walberla::mpi::BufferSys
    // position update
    for( auto pIt = ps.begin(); pIt != ps.end(); )
    {
+      WALBERLA_ASSERT_GREATER(pIt->getInteractionRadius(), 0_r, "Did you forget to set the interaction radius?");
+
       //skip all ghost particles
       if (data::particle_flags::isSet( pIt->getFlags(), data::particle_flags::GHOST))
       {
diff --git a/src/mesa_pd/common/AABBConversion.h b/src/mesa_pd/common/AABBConversion.h
index 33896f25f731c381b866adbde962f51bf490682d..c105d1ed2b336b91c671e203bba786601b613ffd 100644
--- a/src/mesa_pd/common/AABBConversion.h
+++ b/src/mesa_pd/common/AABBConversion.h
@@ -32,6 +32,7 @@ namespace mesa_pd {
 
 math::AABB getAABBFromInteractionRadius(const Vector3<real_t> & pos, const real_t interactionRadius )
 {
+   WALBERLA_ASSERT_GREATER(interactionRadius, 0_r, "Did you forget to set the interaction radius?");
    return math::AABB( pos[0]-interactionRadius, pos[1]-interactionRadius, pos[2]-interactionRadius,
                       pos[0]+interactionRadius, pos[1]+interactionRadius, pos[2]+interactionRadius );
 }
diff --git a/src/mesa_pd/kernel/InsertParticleIntoLinkedCells.h b/src/mesa_pd/kernel/InsertParticleIntoLinkedCells.h
index a2cbd5c578c89d9da0937d2f86b617b4818d5013..088e0577ff09e3899d5af11e4ca99fb3dcbb5fcf 100644
--- a/src/mesa_pd/kernel/InsertParticleIntoLinkedCells.h
+++ b/src/mesa_pd/kernel/InsertParticleIntoLinkedCells.h
@@ -72,8 +72,12 @@ inline void InsertParticleIntoLinkedCells::operator()(const size_t p_idx, Access
       ac.setNextParticle(p_idx, lc.infiniteParticles_.exchange(int_c(p_idx)));
    } else
    {
+      WALBERLA_ASSERT_GREATER(ac.getInteractionRadius(p_idx), 0_r, "Did you forget to set the interaction radius?");
+      WALBERLA_ASSERT_LESS(2_r * ac.getInteractionRadius(p_idx), lc.cellDiameter_[0], "Interaction radius is to large for this cell size. Contacts might get lost.");
       int hash0 = static_cast<int>(std::floor((ac.getPosition(p_idx)[0] - minCorner[0]) * lc.invCellDiameter_[0]));
+      WALBERLA_ASSERT_LESS(2_r * ac.getInteractionRadius(p_idx), lc.cellDiameter_[0], "Interaction radius is to large for this cell size. Contacts might get lost.");
       int hash1 = static_cast<int>(std::floor((ac.getPosition(p_idx)[1] - minCorner[1]) * lc.invCellDiameter_[1]));
+      WALBERLA_ASSERT_LESS(2_r * ac.getInteractionRadius(p_idx), lc.cellDiameter_[0], "Interaction radius is to large for this cell size. Contacts might get lost.");
       int hash2 = static_cast<int>(std::floor((ac.getPosition(p_idx)[2] - minCorner[2]) * lc.invCellDiameter_[2]));
       if (hash0 < 0) hash0 = 0;
       if (hash0 >= lc.numCellsPerDim_[0]) hash0 = lc.numCellsPerDim_[0] - 1;
diff --git a/src/mesa_pd/kernel/InsertParticleIntoSparseLinkedCells.h b/src/mesa_pd/kernel/InsertParticleIntoSparseLinkedCells.h
index 6975337c415013d365f7a90b6fe3d060f2a8cf48..44af0f3b6e93f7ac81636010ac04956671392790 100644
--- a/src/mesa_pd/kernel/InsertParticleIntoSparseLinkedCells.h
+++ b/src/mesa_pd/kernel/InsertParticleIntoSparseLinkedCells.h
@@ -72,8 +72,12 @@ inline void InsertParticleIntoSparseLinkedCells::operator()(const size_t p_idx,
       ac.setNextParticle(p_idx, lc.infiniteParticles_.exchange(int_c(p_idx)));
    } else
    {
+      WALBERLA_ASSERT_GREATER(ac.getInteractionRadius(p_idx), 0_r, "Did you forget to set the interaction radius?");
+      WALBERLA_ASSERT_LESS(2_r * ac.getInteractionRadius(p_idx), lc.cellDiameter_[0], "Interaction radius is to large for this cell size. Contacts might get lost.");
       int hash0 = static_cast<int>(std::floor((ac.getPosition(p_idx)[0] - minCorner[0]) * lc.invCellDiameter_[0]));
+      WALBERLA_ASSERT_LESS(2_r * ac.getInteractionRadius(p_idx), lc.cellDiameter_[0], "Interaction radius is to large for this cell size. Contacts might get lost.");
       int hash1 = static_cast<int>(std::floor((ac.getPosition(p_idx)[1] - minCorner[1]) * lc.invCellDiameter_[1]));
+      WALBERLA_ASSERT_LESS(2_r * ac.getInteractionRadius(p_idx), lc.cellDiameter_[0], "Interaction radius is to large for this cell size. Contacts might get lost.");
       int hash2 = static_cast<int>(std::floor((ac.getPosition(p_idx)[2] - minCorner[2]) * lc.invCellDiameter_[2]));
       if (hash0 < 0) hash0 = 0;
       if (hash0 >= lc.numCellsPerDim_[0]) hash0 = lc.numCellsPerDim_[0] - 1;
diff --git a/src/mesa_pd/mpi/SyncGhostOwners.cpp b/src/mesa_pd/mpi/SyncGhostOwners.cpp
index e9eceaf88138b404d93d466283d45f0c7f4d9910..7bec109a44fad5322dff9d0021c8230e2c4f2901 100644
--- a/src/mesa_pd/mpi/SyncGhostOwners.cpp
+++ b/src/mesa_pd/mpi/SyncGhostOwners.cpp
@@ -72,6 +72,7 @@ void SyncGhostOwners::updateAndMigrate( data::ParticleStorage& ps,
    std::set<walberla::mpi::MPIRank> recvRanks; // potential message senders
    for( auto pIt = ps.begin(); pIt != ps.end(); ++pIt)
    {
+      WALBERLA_ASSERT_GREATER(pIt->getInteractionRadius(), 0_r, "Did you forget to set the interaction radius?");
       if (isSet( pIt->getFlags(), GHOST))
       {
          if (!isSet( pIt->getFlags(), NON_COMMUNICATING) || syncNonCommunicatingBodies)
diff --git a/src/mesa_pd/mpi/SyncNextNeighbors.cpp b/src/mesa_pd/mpi/SyncNextNeighbors.cpp
index 44f3946e792828e8729dd2967427f07227b79bda..3f9e5a2db9104be08571256c99562dc03d851aa6 100644
--- a/src/mesa_pd/mpi/SyncNextNeighbors.cpp
+++ b/src/mesa_pd/mpi/SyncNextNeighbors.cpp
@@ -87,6 +87,8 @@ void SyncNextNeighbors::generateSynchronizationMessages(walberla::mpi::BufferSys
    // position update
    for( auto pIt = ps.begin(); pIt != ps.end(); )
    {
+      WALBERLA_ASSERT_GREATER(pIt->getInteractionRadius(), 0_r, "Did you forget to set the interaction radius?");
+
       //skip all ghost particles
       if (data::particle_flags::isSet( pIt->getFlags(), data::particle_flags::GHOST))
       {
diff --git a/src/mesa_pd/mpi/SyncNextNeighborsBlockForest.cpp b/src/mesa_pd/mpi/SyncNextNeighborsBlockForest.cpp
index f4adbf79fae95e17734d7184115f8a2eab988023..a8528aa1a43e400ab426010858ea586e208c4164 100644
--- a/src/mesa_pd/mpi/SyncNextNeighborsBlockForest.cpp
+++ b/src/mesa_pd/mpi/SyncNextNeighborsBlockForest.cpp
@@ -111,6 +111,8 @@ void SyncNextNeighborsBlockForest::generateSynchronizationMessages(walberla::mpi
    // position update
    for( auto pIt = ps.begin(); pIt != ps.end(); )
    {
+      WALBERLA_ASSERT_GREATER(pIt->getInteractionRadius(), 0_r, "Did you forget to set the interaction radius?");
+
       //skip all ghost particles
       if (data::particle_flags::isSet( pIt->getFlags(), data::particle_flags::GHOST))
       {
diff --git a/tests/lbm_mesapd_coupling/mapping/ParticleMapping.cpp b/tests/lbm_mesapd_coupling/mapping/ParticleMapping.cpp
index ea60887f3121a7feb4a89bec8cb961d13ed35e00..b2ecf7107f455b229cde21f9f6c22742c10aec00 100644
--- a/tests/lbm_mesapd_coupling/mapping/ParticleMapping.cpp
+++ b/tests/lbm_mesapd_coupling/mapping/ParticleMapping.cpp
@@ -769,6 +769,7 @@ int main( int argc, char **argv )
       {
          mesa_pd::data::Particle&& p = *ps->create(true);
          p.setPosition(halfSpacePosition);
+         p.setInteractionRadius(std::numeric_limits<real_t>::infinity());
          p.setOwner(mpi::MPIManager::instance()->rank());
          p.setShapeID(halfSpaceShape);
          mesa_pd::data::particle_flags::set(p.getFlagsRef(), mesa_pd::data::particle_flags::INFINITE);
diff --git a/tests/lbm_mesapd_coupling/momentum_exchange_method/SettlingSphere.cpp b/tests/lbm_mesapd_coupling/momentum_exchange_method/SettlingSphere.cpp
index 2cc78a22f4511557e7e9f7743f1c36db8502f3c7..202601669557a91b5b8e2b2f26c8d0e36ffbccc3 100644
--- a/tests/lbm_mesapd_coupling/momentum_exchange_method/SettlingSphere.cpp
+++ b/tests/lbm_mesapd_coupling/momentum_exchange_method/SettlingSphere.cpp
@@ -281,6 +281,7 @@ void createPlaneSetup(const shared_ptr<mesa_pd::data::ParticleStorage> & ps, con
    // create bounding planes
    mesa_pd::data::Particle p0 = *ps->create(true);
    p0.setPosition(simulationDomain.minCorner());
+   p0.setInteractionRadius(std::numeric_limits<real_t>::infinity());
    p0.setShapeID(ss->create<mesa_pd::data::HalfSpace>( Vector3<real_t>(0,0,1) ));
    p0.setOwner(mpi::MPIManager::instance()->rank());
    p0.setType(0);
@@ -289,6 +290,7 @@ void createPlaneSetup(const shared_ptr<mesa_pd::data::ParticleStorage> & ps, con
 
    mesa_pd::data::Particle p1 = *ps->create(true);
    p1.setPosition(simulationDomain.maxCorner());
+   p1.setInteractionRadius(std::numeric_limits<real_t>::infinity());
    p1.setShapeID(ss->create<mesa_pd::data::HalfSpace>( Vector3<real_t>(0,0,-1) ));
    p1.setOwner(mpi::MPIManager::instance()->rank());
    p1.setType(0);
@@ -297,6 +299,7 @@ void createPlaneSetup(const shared_ptr<mesa_pd::data::ParticleStorage> & ps, con
 
    mesa_pd::data::Particle p2 = *ps->create(true);
    p2.setPosition(simulationDomain.minCorner());
+   p2.setInteractionRadius(std::numeric_limits<real_t>::infinity());
    p2.setShapeID(ss->create<mesa_pd::data::HalfSpace>( Vector3<real_t>(1,0,0) ));
    p2.setOwner(mpi::MPIManager::instance()->rank());
    p2.setType(0);
@@ -305,6 +308,7 @@ void createPlaneSetup(const shared_ptr<mesa_pd::data::ParticleStorage> & ps, con
 
    mesa_pd::data::Particle p3 = *ps->create(true);
    p3.setPosition(simulationDomain.maxCorner());
+   p3.setInteractionRadius(std::numeric_limits<real_t>::infinity());
    p3.setShapeID(ss->create<mesa_pd::data::HalfSpace>( Vector3<real_t>(-1,0,0) ));
    p3.setOwner(mpi::MPIManager::instance()->rank());
    p3.setType(0);
@@ -313,6 +317,7 @@ void createPlaneSetup(const shared_ptr<mesa_pd::data::ParticleStorage> & ps, con
 
    mesa_pd::data::Particle p4 = *ps->create(true);
    p4.setPosition(simulationDomain.minCorner());
+   p4.setInteractionRadius(std::numeric_limits<real_t>::infinity());
    p4.setShapeID(ss->create<mesa_pd::data::HalfSpace>( Vector3<real_t>(0,1,0) ));
    p4.setOwner(mpi::MPIManager::instance()->rank());
    p4.setType(0);
@@ -321,6 +326,7 @@ void createPlaneSetup(const shared_ptr<mesa_pd::data::ParticleStorage> & ps, con
 
    mesa_pd::data::Particle p5 = *ps->create(true);
    p5.setPosition(simulationDomain.maxCorner());
+   p5.setInteractionRadius(std::numeric_limits<real_t>::infinity());
    p5.setShapeID(ss->create<mesa_pd::data::HalfSpace>( Vector3<real_t>(0,-1,0) ));
    p5.setOwner(mpi::MPIManager::instance()->rank());
    p5.setType(0);
diff --git a/tests/lbm_mesapd_coupling/utility/LubricationCorrection.cpp b/tests/lbm_mesapd_coupling/utility/LubricationCorrection.cpp
index bef4e3e4644ca6efcbdbda122166d4f4b3f81c0c..b96ab7fb01ff40faedcb7ce4fb4ccd2b758067b2 100644
--- a/tests/lbm_mesapd_coupling/utility/LubricationCorrection.cpp
+++ b/tests/lbm_mesapd_coupling/utility/LubricationCorrection.cpp
@@ -147,24 +147,28 @@ int main( int argc, char **argv )
 
       mesa_pd::data::Particle&& p1 = *ps->create();
       p1.setPosition(position1);
+      p1.setInteractionRadius(sphereRadius);
       p1.setShapeID(sphereShape);
       p1.setLinearVelocity(Vector3<real_t>(relativeVelocity,-relativeVelocity,real_t(0.5)*relativeVelocity));
       auto idxSph1 = p1.getIdx();
 
       mesa_pd::data::Particle&& p2 = *ps->create();
       p2.setPosition(position2);
+      p2.setInteractionRadius(sphereRadius);
       p2.setShapeID(sphereShape);
       p2.setLinearVelocity(Vector3<real_t>(real_t(0),real_t(2),real_t(0)));
       auto idxSph2 = p2.getIdx();
 
       mesa_pd::data::Particle&& p3 = *ps->create();
       p3.setPosition(position3);
+      p3.setInteractionRadius(sphereRadius);
       p3.setShapeID(sphereShape);
       p3.setLinearVelocity(Vector3<real_t>(real_t(2),real_t(0),real_t(2)));
       auto idxSph3 = p3.getIdx();
 
       mesa_pd::data::Particle&& p4 = *ps->create();
       p4.setPosition(position4);
+      p4.setInteractionRadius(sphereRadius);
       p4.setShapeID(sphereShape);
       p4.setLinearVelocity(Vector3<real_t>(real_t(0),real_t(0),real_t(-0.5)*relativeVelocity));
       auto idxSph4 = p4.getIdx();
@@ -228,24 +232,28 @@ int main( int argc, char **argv )
 
       mesa_pd::data::Particle&& p1 = *ps->create();
       p1.setPosition(position1);
+      p1.setInteractionRadius(sphereRadius);
       p1.setShapeID(sphereShape);
       p1.setLinearVelocity(Vector3<real_t>(relativeVelocity,-relativeVelocity,real_t(0.5)*relativeVelocity));
       auto idxSph1 = p1.getIdx();
 
       mesa_pd::data::Particle&& p2 = *ps->create();
       p2.setPosition(position2);
+      p2.setInteractionRadius(sphereRadius);
       p2.setShapeID(sphereShape);
       p2.setLinearVelocity(Vector3<real_t>(real_t(0),real_t(2),real_t(0)));
       auto idxSph2 = p2.getIdx();
 
       mesa_pd::data::Particle&& p3 = *ps->create();
       p3.setPosition(position3);
+      p3.setInteractionRadius(sphereRadius);
       p3.setShapeID(sphereShape);
       p3.setLinearVelocity(Vector3<real_t>(real_t(2),real_t(0),real_t(2)));
       auto idxSph3 = p3.getIdx();
 
       mesa_pd::data::Particle&& p4 = *ps->create();
       p4.setPosition(position4);
+      p4.setInteractionRadius(sphereRadius);
       p4.setShapeID(sphereShape);
       p4.setLinearVelocity(Vector3<real_t>(real_t(0),real_t(0),real_t(-0.5)*relativeVelocity));
       auto idxSph4 = p4.getIdx();
@@ -328,6 +336,7 @@ int main( int argc, char **argv )
 
       mesa_pd::data::Particle&& p1 = *ps->create();
       p1.setPosition(position1);
+      p1.setInteractionRadius(sphereRadius);
       p1.setShapeID(sphereShape);
       p1.setLinearVelocity(Vector3<real_t>(real_t(0),real_t(0),relativeVelocity));
       auto idxSph1 = p1.getIdx();
@@ -335,29 +344,34 @@ int main( int argc, char **argv )
       // mix up order to test Sph - HSp and HSp - Sph variants
       mesa_pd::data::Particle&& pW = *ps->create(true);
       pW.setPosition(wallPosition);
+      pW.setInteractionRadius(std::numeric_limits<real_t>::infinity());
       pW.setShapeID(planeShape);
       auto idxWall = pW.getIdx();
 
       mesa_pd::data::Particle&& p2 = *ps->create();
       p2.setPosition(position2);
+      p2.setInteractionRadius(sphereRadius);
       p2.setShapeID(sphereShape);
       p2.setLinearVelocity(Vector3<real_t>(real_t(0),real_t(0),-relativeVelocity));
       auto idxSph2 = p2.getIdx();
 
       mesa_pd::data::Particle&& p3 = *ps->create();
       p3.setPosition(position3);
+      p3.setInteractionRadius(sphereRadius);
       p3.setShapeID(sphereShape);
       p3.setLinearVelocity(Vector3<real_t>(real_t(0),real_t(0),relativeVelocity));
       auto idxSph3 = p3.getIdx();
 
       mesa_pd::data::Particle&& p4 = *ps->create();
       p4.setPosition(position4);
+      p4.setInteractionRadius(sphereRadius);
       p4.setShapeID(sphereShape);
       p4.setLinearVelocity(Vector3<real_t>(real_t(0),real_t(0),relativeVelocity));
       auto idxSph4 = p4.getIdx();
 
       mesa_pd::data::Particle&& p5 = *ps->create();
       p5.setPosition(position5);
+      p5.setInteractionRadius(sphereRadius);
       p5.setShapeID(sphereShape);
       p5.setLinearVelocity(Vector3<real_t>(real_t(0),real_t(0),relativeVelocity));
       auto idxSph5 = p5.getIdx();
diff --git a/tests/mesa_pd/ContactDetection.cpp b/tests/mesa_pd/ContactDetection.cpp
index 41e62d75f7a486ed08a3099c24c35576181ec09c..56cb7fd811320abbb6854e646db694e6b3b22c32 100644
--- a/tests/mesa_pd/ContactDetection.cpp
+++ b/tests/mesa_pd/ContactDetection.cpp
@@ -80,7 +80,7 @@ int main( const int particlesPerAxis = 2, const real_t radius = real_t(0.9) )
 
    math::seedRandomGenerator( static_cast<unsigned int>(1337 * walberla::mpi::MPIManager::instance()->worldRank()) );
 
-   const real_t spacing(1.0);
+   const real_t spacing = 2.1_r * radius;
 
    WALBERLA_LOG_INFO_ON_ROOT("*** BLOCKFOREST ***");
    const int centerParticles  = particlesPerAxis * particlesPerAxis * particlesPerAxis;
diff --git a/tests/mesa_pd/kernel/GenerateAnalyticContacts.cpp b/tests/mesa_pd/kernel/GenerateAnalyticContacts.cpp
index 4762aed06e159d322033faace72d48c807fedc2d..fcd2b82c8ebaef80843686cada57d5d96a764a5a 100644
--- a/tests/mesa_pd/kernel/GenerateAnalyticContacts.cpp
+++ b/tests/mesa_pd/kernel/GenerateAnalyticContacts.cpp
@@ -79,7 +79,7 @@ int main( int argc, char ** argv )
    auto ps = std::make_shared<data::ParticleStorage>(100);
    auto ss = std::make_shared<data::ShapeStorage>();
    ParticleAccessorWithShape accessor(ps, ss);
-   data::LinkedCells      lc(math::AABB(-1,-1,-1,4,4,4), real_t(1));
+   data::LinkedCells      lc(math::AABB(-1,-1,-1,4,4,4), real_t(1.3));
 
    //initialize particles
    const real_t radius  = real_t(0.6);
diff --git a/tests/mesa_pd/kernel/GenerateLinkedCells.cpp b/tests/mesa_pd/kernel/GenerateLinkedCells.cpp
index 3ee5183cfcce026112cb192929db1de10bfff5aa..2aaf342aeec27dc3b5699bfa3844e6c2a2bb2e2b 100644
--- a/tests/mesa_pd/kernel/GenerateLinkedCells.cpp
+++ b/tests/mesa_pd/kernel/GenerateLinkedCells.cpp
@@ -66,6 +66,7 @@ int main( int argc, char ** argv )
    {
       data::Particle&& p    = *storage->create();
       p.getPositionRef()    = (*it);
+      p.setInteractionRadius(0.1_r);
       p.setShapeID(smallSphere);
    }
 
diff --git a/tests/mesa_pd/kernel/LinkedCellsVsBruteForce.cpp b/tests/mesa_pd/kernel/LinkedCellsVsBruteForce.cpp
index c52e39327afae37a42460cdcb2510bd5f7195002..8743d6ac3bcf21b8a2d9cf82c6d3defed3405c01 100644
--- a/tests/mesa_pd/kernel/LinkedCellsVsBruteForce.cpp
+++ b/tests/mesa_pd/kernel/LinkedCellsVsBruteForce.cpp
@@ -100,7 +100,7 @@ int main( int argc, char ** argv )
    //init data structures
    auto ps = std::make_shared<data::ParticleStorage>(100);
    auto ss = std::make_shared<data::ShapeStorage>();
-   data::LinkedCells     lc(blk.getAABB(), real_t(1));
+   data::LinkedCells     lc(blk.getAABB(), real_t(1.1));
    std::vector<collision_detection::AnalyticContactDetection> cs1(100);
    std::vector<collision_detection::AnalyticContactDetection> cs2(100);