From dc4646d9f2a4f650f8f980842f766514fb193a88 Mon Sep 17 00:00:00 2001 From: NicolaCourtier <45851982+NicolaCourtier@users.noreply.github.com> Date: Wed, 19 Aug 2026 12:33:19 +0100 Subject: [PATCH 1/2] Ensure step and cycle lengths match --- packages/pybamm/src/pybamm/solvers/solution.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/pybamm/src/pybamm/solvers/solution.py b/packages/pybamm/src/pybamm/solvers/solution.py index b67ce33c7e..1f951408b7 100644 --- a/packages/pybamm/src/pybamm/solvers/solution.py +++ b/packages/pybamm/src/pybamm/solvers/solution.py @@ -979,6 +979,9 @@ def get_data_dict(self, variables=None, short_names=None, cycles_and_steps=True) data_short_names["Step"] = np.concatenate( [data_short_names["Step"], j * np.ones_like(step.t)] ) + data_short_names["Step"] = data_short_names["Step"][ + : len(data_short_names["Cycle"]) + ] return data_short_names From 3343ba6ee1b6f82de918d7c8a62a5d6c6e731078 Mon Sep 17 00:00:00 2001 From: u2370093 Date: Thu, 17 Sep 2026 11:51:53 +0100 Subject: [PATCH 2/2] new fix --- packages/pybamm/src/pybamm/solvers/solution.py | 7 +++---- packages/pybamm/tests/unit/test_solvers/test_solution.py | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/pybamm/src/pybamm/solvers/solution.py b/packages/pybamm/src/pybamm/solvers/solution.py index 1f951408b7..7fe0594e26 100644 --- a/packages/pybamm/src/pybamm/solvers/solution.py +++ b/packages/pybamm/src/pybamm/solvers/solution.py @@ -976,12 +976,11 @@ def get_data_dict(self, variables=None, short_names=None, cycles_and_steps=True) [data_short_names["Cycle"], i * np.ones_like(cycle.t)] ) for j, step in enumerate(cycle.steps): + repeated = j > 0 and cycle.steps[j - 1].t[-1] == step.t[0] + first = slice(1, None) if repeated else slice(None) data_short_names["Step"] = np.concatenate( - [data_short_names["Step"], j * np.ones_like(step.t)] + [data_short_names["Step"], j * np.ones_like(step.t[first])] ) - data_short_names["Step"] = data_short_names["Step"][ - : len(data_short_names["Cycle"]) - ] return data_short_names diff --git a/packages/pybamm/tests/unit/test_solvers/test_solution.py b/packages/pybamm/tests/unit/test_solvers/test_solution.py index b81cb19afe..6b33403db6 100644 --- a/packages/pybamm/tests/unit/test_solvers/test_solution.py +++ b/packages/pybamm/tests/unit/test_solvers/test_solution.py @@ -881,7 +881,7 @@ def test_get_data_cycles_steps(self): data = sol.get_data_dict("c") np.testing.assert_array_equal(data["Cycle"], 0) np.testing.assert_array_equal( - data["Step"], np.concatenate([np.zeros(50), np.ones(50)]) + data["Step"], np.concatenate([np.zeros(50), np.ones(49)]) ) def test_pickle_first_states_across_processes(self, tmp_path):