#include #include "../c++/equilibrium.hpp" namespace { template void check_equilibrium(){ using namespace kel; using dfi = lbm::df_info; saw::data rho{1.0}; saw::data> vel; for(saw::data i{0u}; i.get() < Descriptor::D; ++i){ vel.at(i) = {0.0}; } auto eq = lbm::equilibrium(rho,vel); for(saw::data i{0u}; i.get() < Descriptor::Q; ++i){ SAW_EXPECT(eq.at(i).get() == dfi::weights[i.get()], std::string{"No velocity and normalized rho should be exactly the weights: "} + std::to_string(eq.at(i).get()) + std::string{" "} + std::to_string(dfi::weights[i.get()])); } } SAW_TEST("Equilibrium at rest D1Q3"){ using namespace kel; check_equilibrium>(); } SAW_TEST("Equilibrium at rest D2Q5"){ using namespace kel; check_equilibrium>(); } SAW_TEST("Equilibrium at rest D2Q9"){ using namespace kel; check_equilibrium>(); } }