35 std::size_t m_lb_obj_tag = 0ul;
37 std::size_t get_lb_obj_tag(
LB::Solver const &solver)
const {
38 std::size_t lb_obj_tag{0u};
39 solver.
connect([&lb_obj_tag](
auto const &lb_obj) {
40 lb_obj_tag =
reinterpret_cast<std::size_t
>(&lb_obj);
48 m_box_l = box_geo.
length();
50 m_lb_obj_tag = get_lb_obj_tag(solver);
54 if (m_lb_obj_tag == 0u) {
57 auto const same_lb_obj = get_lb_obj_tag(solver) == m_lb_obj_tag;
58 auto const same_box_l = m_box_l == box_geo.
length();
59 auto const same_agrid = m_agrid == solver.
get_agrid();
60 return not(same_lb_obj and same_box_l and same_agrid);
Vector implementation and trait types for boost qvm interoperability.
Utils::Vector3d const & length() const
Box length.
Bookkeeping of the box gometry and LB object memory address.
bool mismatch(BoxGeometry const &box_geo, LB::Solver const &solver) const
SanityChecksLB(BoxGeometry const &box_geo, LB::Solver const &solver)
static DEVICE_QUALIFIER constexpr Vector< T, N > broadcast(typename Base::value_type const &value) noexcept
Create a vector that has all entries set to the same value.
void connect(Connector &&connector) const
Connector to the implementation internal state.
double get_agrid() const
Get the LB grid spacing.