diff --git a/src/script_interface/walberla/EKContainer.hpp b/src/script_interface/walberla/EKContainer.hpp index b52928ae37..15a8a19378 100644 --- a/src/script_interface/walberla/EKContainer.hpp +++ b/src/script_interface/walberla/EKContainer.hpp @@ -60,9 +60,15 @@ class EKContainer : public ObjectList { add_parameters({ {"tau", [this](Variant const &v) { + auto const tau = get_value(v); + context()->parallel_try_catch([tau]() { + if (tau <= 0.) { + throw std::domain_error("Parameter 'tau' must be > 0"); + } + }); EK::ek_container.set_tau(get_value(v)); }, - [this]() { return EK::ek_container.get_tau(); }}, + []() { return EK::ek_container.get_tau(); }}, {"solver", [this](Variant const &v) { set_solver(v); }, [this]() { return get_solver(); }}, }); diff --git a/testsuite/python/ek_interface.py b/testsuite/python/ek_interface.py index c5ee924710..eed2eb1280 100644 --- a/testsuite/python/ek_interface.py +++ b/testsuite/python/ek_interface.py @@ -55,6 +55,7 @@ def setUp(self): n_ghost_layers=1, agrid=self.params["agrid"]) ek_solver = espressomd.electrokinetics.EKNone(lattice=self.lattice) self.system.ekcontainer.solver = ek_solver + self.system.ekcontainer.tau = self.system.time_step def tearDown(self): self.system.actors.clear() @@ -85,9 +86,6 @@ def test_ek_species(self): ek_species = self.make_default_ek_species() self.check_ek_species_properties(ek_species) - ek_solver = espressomd.electrokinetics.EKNone(lattice=self.lattice) - self.system.ekcontainer.tau = self.system.time_step - self.system.ekcontainer.solver = ek_solver self.assertAlmostEqual( self.system.ekcontainer.tau, self.system.time_step, @@ -228,6 +226,12 @@ def test_ek_solver_exceptions(self): self.system.ekcontainer.clear() self.system.ekcontainer.add(incompatible_ek_species) self.system.ekcontainer.solver = ek_solver + with self.assertRaisesRegex(ValueError, "Parameter 'tau' must be > 0"): + self.system.ekcontainer.tau = 0. + self.assertAlmostEqual( + self.system.ekcontainer.tau, + self.system.time_step, + delta=self.atol) def test_ek_reactants(self): ek_species = self.make_default_ek_species()