Skip to content

Commit cb3b39b

Browse files
#1996 some progress, but events don't work
1 parent a24feda commit cb3b39b

File tree

2 files changed

+14
-16
lines changed

2 files changed

+14
-16
lines changed

pybamm/solvers/solution.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -737,8 +737,8 @@ def __add__(self, other):
737737
else:
738738
all_ts = self.all_ts + other.all_ts
739739
all_ys = self.all_ys + other.all_ys
740-
all_models = self.all_models + other.all_models
741-
all_inputs = self.all_inputs + other.all_inputs
740+
all_models = self.all_models + other.all_models
741+
all_inputs = self.all_inputs + other.all_inputs
742742

743743
new_sol = Solution(
744744
all_ts,

pybamm/solvers/solver_utils.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,22 @@ class NoMemAllocVertcat:
99
Acts like a vertcat, but does not allocate new memory.
1010
"""
1111

12-
def __init__(self, xs, ys, len_x=None, len_y=None, items=None):
12+
def __init__(self, xs, zs, len_x=None, len_z=None, items=None):
1313
self.xs = xs
14-
self.ys = ys
14+
self.zs = zs
1515
self.len_x = len_x or xs[0].shape[0]
16-
self.len_y = len_y or ys[0].shape[0]
16+
self.len_z = len_z or zs[0].shape[0]
1717
len_items = len(xs)
18-
self.shape = (self.len_x + self.len_y, len_items)
18+
self.shape = (self.len_x + self.len_z, len_items)
1919

2020
if items is None:
2121
items = [None] * len_items
22+
for idx in range(len_items):
23+
out = casadi.DM.zeros((self.shape[0], 1))
24+
out[: self.len_x] = self.xs[idx]
25+
out[self.len_x :] = self.zs[idx]
26+
items[idx] = out
27+
2228
self.items = items
2329

2430
def __getitem__(self, idx):
@@ -29,15 +35,7 @@ def __getitem__(self, idx):
2935
idx = idx[1]
3036
if isinstance(idx, slice):
3137
return NoMemAllocVertcat(
32-
self.xs[idx], self.ys[idx], self.len_x, self.len_y, self.items[idx]
38+
self.xs[idx], self.zs[idx], self.len_x, self.len_z, self.items[idx]
3339
)
3440
else:
35-
item = self.items[idx]
36-
if item is not None:
37-
return item
38-
else:
39-
out = casadi.DM.zeros((self.shape[0], 1))
40-
out[: self.len_x] = self.xs[idx]
41-
out[self.len_x :] = self.ys[idx]
42-
self.items[idx] = out
43-
return out
41+
return self.items[idx]

0 commit comments

Comments
 (0)