diff --git a/src/script_interface/walberla/EKContainer.hpp b/src/script_interface/walberla/EKContainer.hpp index 265405fc77..74870cbf2a 100644 --- a/src/script_interface/walberla/EKContainer.hpp +++ b/src/script_interface/walberla/EKContainer.hpp @@ -103,6 +103,12 @@ class EKContainer : public ObjectList { throw std::runtime_error( "Cannot mix single and double precision kernels"); } + auto const tau_container = m_ek_container->get_tau(); + auto const tau_species = get_value(obj_ptr->get_parameter("tau")); + if (tau_species != tau_container) { + throw std::runtime_error( + "EK species and EK container must have the same tau"); + } ek_throw_if_expired(obj_ptr->get_mpi_cart_comm_observer()); m_ek_container->add(obj_ptr->get_ekinstance()); }); diff --git a/testsuite/python/ek_interface.py b/testsuite/python/ek_interface.py index fe9313098d..1058ec9247 100644 --- a/testsuite/python/ek_interface.py +++ b/testsuite/python/ek_interface.py @@ -332,6 +332,10 @@ def test_ek_container_exceptions(self): self.system.ekcontainer.solver, ek_solver_incompatible) self.assertEqual(len(self.system.ekcontainer), 1) + # the tau value must match for units conversion + with self.assertRaisesRegex(RuntimeError, "EK species and EK container must have the same tau"): + self.system.ekcontainer.add(self.make_default_ek_species(tau=200.)) + self.assertEqual(len(self.system.ekcontainer), 1) def test_ek_solver_exceptions(self): ek_solver = self.system.ekcontainer.solver