#pragma once #include "macroscopic.hpp" #include "component.hpp" #include "equilibrium.hpp" namespace kel { namespace lbm { namespace cmpt { struct PSM {}; } /** * HLBM collision operator for LBM */ template class component { private: public: component() = default; template void apply(const saw::data& field, const saw::data& macros, saw::data> index, saw::data time_step) const { bool is_even = ((time_step.get() % 2) == 0); auto& dfs_old_f = (is_even) ? field.template get<"dfs_old">() : field.template get<"dfs">(); auto& porous = field.template get<"porosity">(); } }; } }