diff --git a/pybamm/discretisations/discretisation.py b/pybamm/discretisations/discretisation.py index e7f8965e78..08072a668c 100644 --- a/pybamm/discretisations/discretisation.py +++ b/pybamm/discretisations/discretisation.py @@ -1107,6 +1107,7 @@ def remove_independent_variables_from_rhs(self, model): # only check children of variables, this will skip the variable itself # and catch any other cases + [child for var in model.variables.values() for child in var.children] + + [event.expression for event in model.events] ) all_vars_in_eqns = unpacker.unpack_list_of_symbols(eqns_to_check) all_vars_in_eqns = [var.name for var in all_vars_in_eqns] diff --git a/tests/unit/test_discretisations/test_discretisation.py b/tests/unit/test_discretisations/test_discretisation.py index f8922c38f2..997b40a688 100644 --- a/tests/unit/test_discretisations/test_discretisation.py +++ b/tests/unit/test_discretisations/test_discretisation.py @@ -1224,6 +1224,22 @@ def test_independent_rhs(self): disc.process_model(model) self.assertEqual(len(model.rhs), 2) + def test_independent_rhs_with_event(self): + a = pybamm.Variable("a") + b = pybamm.Variable("b") + c = pybamm.Variable("c") + model = pybamm.BaseModel() + model.rhs = {a: b, b: c, c: -c} + model.initial_conditions = { + a: pybamm.Scalar(0), + b: pybamm.Scalar(1), + c: pybamm.Scalar(1), + } + model.events = [pybamm.Event("a=1", a - 1)] + disc = pybamm.Discretisation() + disc.process_model(model) + self.assertEqual(len(model.rhs), 3) + if __name__ == "__main__": print("Add -v for more debug output")