From 434d18d0317a62fe85304c48baf419a21f120462 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Mon, 22 Sep 2025 16:39:52 +0200 Subject: Different force exchange on collision --- examples/poiseulle_particles_channel_2d.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/poiseulle_particles_channel_2d.cpp b/examples/poiseulle_particles_channel_2d.cpp index f098ca0..a9146e8 100644 --- a/examples/poiseulle_particles_channel_2d.cpp +++ b/examples/poiseulle_particles_channel_2d.cpp @@ -5,7 +5,7 @@ #include "../c++/particle/geometry/circle.hpp" #include -#include +#include #include @@ -347,6 +347,10 @@ void couple_particles_to_lattice( p_cell_pos.at({{0u}}).set(std::max(1ul, std::min(p_cell_pos.at({{0u}}).get(), meta.at({0u}).get()-2ul))); p_cell_pos.at({{1u}}).set(std::max(1ul, std::min(p_cell_pos.at({{1u}}).get(), meta.at({1u}).get()-2ul))); + saw::data> p_vec_cell_pos; + p_vec_cell_pos.at({{0u}}) = p_cell_pos.at({0u}); + p_vec_cell_pos.at({{1u}}) = p_cell_pos.at({1u}); + // Interpolate this from close U cells. // For now pick the closest U auto& closest_u = macros.at(p_cell_pos).template get<"velocity">(); @@ -372,7 +376,7 @@ void couple_particles_to_lattice( auto& p_info = cell.template get<"info">()({0u}); if(p_info.get() <= 1u){ // Fake solid normal - auto solid_normal = p_pos - p_cell_pos; + auto solid_normal = p_pos - p_vec_cell_pos.template cast_to(); solid_normal = saw::math::normalize(solid_normal); auto v_n = saw::math::dot(solid_normal,p_vel); -- cgit v1.2.3