Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: output variables option in idaklu solver fails when event triggered #3937

Closed
martinjrobins opened this issue Mar 27, 2024 · 0 comments · Fixed by #4300
Closed

[Bug]: output variables option in idaklu solver fails when event triggered #3937

martinjrobins opened this issue Mar 27, 2024 · 0 comments · Fixed by #4300
Assignees
Labels
bug Something isn't working

Comments

@martinjrobins
Copy link
Contributor

PyBaMM Version

24.1

Python Version

3.10

Describe the bug

When the output_variables option of the IDAKLU solver is used in a simulation with an event, the solve fails with the error message below when trying to get the event reason

Steps to Reproduce

def test(solver):
    model = pybamm.lithium_ion.DFN()
    parameter_values = pybamm.ParameterValues("Chen2020")

    sim = pybamm.Simulation(
        model,
        parameter_values=parameter_values,
        solver=solver,
    )
    sol = sim.solve(np.linspace(0, 3600, 1000))
    sol = sol["Terminal voltage [V]"].entries

test(pybamm.IDAKLUSolver(output_variables=["Terminal voltage [V]"]))

Relevant log output

Traceback (most recent call last):
  File "/home/mrobins/git/tmp/test.py", line 17, in <module>
    test(pybamm.IDAKLUSolver(output_variables=["Terminal voltage [V]"]))
  File "/home/mrobins/git/tmp/test.py", line 14, in test
    sol = sim.solve(np.linspace(0, 3600, 1000))
  File "/home/mrobins/git/tmp/env/lib/python3.10/site-packages/pybamm/simulation.py", line 584, in solve
    self._solution = solver.solve(self.built_model, t_eval, **kwargs)
  File "/home/mrobins/git/tmp/env/lib/python3.10/site-packages/pybamm/solvers/base_solver.py", line 959, in solve
    solutions[i], termination = self.get_termination_reason(
  File "/home/mrobins/git/tmp/env/lib/python3.10/site-packages/pybamm/solvers/base_solver.py", line 1303, in get_termination_reason
    final_event_values[event.name] = event.expression.evaluate(
  File "/home/mrobins/git/tmp/env/lib/python3.10/site-packages/pybamm/expression_tree/binary_operators.py", line 132, in evaluate
    right = self.right.evaluate(t, y, y_dot, inputs)
  File "/home/mrobins/git/tmp/env/lib/python3.10/site-packages/pybamm/expression_tree/binary_operators.py", line 132, in evaluate
    right = self.right.evaluate(t, y, y_dot, inputs)
  File "/home/mrobins/git/tmp/env/lib/python3.10/site-packages/pybamm/expression_tree/binary_operators.py", line 132, in evaluate
    right = self.right.evaluate(t, y, y_dot, inputs)
  File "/home/mrobins/git/tmp/env/lib/python3.10/site-packages/pybamm/expression_tree/symbol.py", line 778, in evaluate
    return self._base_evaluate(t, y, y_dot, inputs)
  File "/home/mrobins/git/tmp/env/lib/python3.10/site-packages/pybamm/expression_tree/state_vector.py", line 284, in _base_evaluate
    raise ValueError(
ValueError: y is too short, so value with slice is smaller than expected
(env) ➜  tmp pip list |grep pybamm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
2 participants