@@ -131,8 +131,7 @@ def set_up(self, model, inputs=None):
131
131
if self .ode_solver is True :
132
132
self .root_method = None
133
133
if (
134
- isinstance (self , pybamm .CasadiSolver )
135
- or self .root_method == "casadi"
134
+ isinstance (self , pybamm .CasadiSolver ) or self .root_method == "casadi"
136
135
) and model .convert_to_format != "casadi" :
137
136
pybamm .logger .warning (
138
137
f"Converting { model .name } to CasADi for solving with CasADi solver"
@@ -367,15 +366,20 @@ def calculate_consistent_state(self, model, time=0, y0_guess=None, inputs=None):
367
366
"roots" ,
368
367
"newton" ,
369
368
dict (x = y_alg , p = u , g = alg_root ),
370
- {"error_on_fail" : False },
371
- )
372
- y0_alg = roots (y0_alg_guess , u_stacked ).full ().flatten ()
373
- success = True
374
- message = None
375
- # Check final output
376
- fun = model .casadi_algebraic (
377
- time , casadi .vertcat (y0_diff , y0_alg ), u_stacked
369
+ {"abstol" : self .root_tol },
378
370
)
371
+ try :
372
+ y0_alg = roots (y0_alg_guess , u_stacked ).full ().flatten ()
373
+ success = True
374
+ message = None
375
+ # Check final output
376
+ fun = model .casadi_algebraic (
377
+ time , casadi .vertcat (y0_diff , y0_alg ), u_stacked
378
+ )
379
+ except RuntimeError as err :
380
+ success = False
381
+ message = err .args [0 ]
382
+ fun = None
379
383
else :
380
384
algebraic = model .algebraic_eval
381
385
jac = model .jac_algebraic_eval
@@ -553,7 +557,7 @@ def solve(self, model, t_eval, external_variables=None, inputs=None):
553
557
)
554
558
else :
555
559
t_eval_dimensionless = np .insert (
556
- t_eval_dimensionless , dindex , [dtime - eps , dtime + eps ],
560
+ t_eval_dimensionless , dindex , [dtime - eps , dtime + eps ]
557
561
)
558
562
end_indices .append (len (t_eval_dimensionless ))
559
563
0 commit comments