# Error when multiplying with an interpolant

**URL:** <https://pybamm.discourse.group/t/error-when-multiplying-with-an-interpolant/292>\
**Category:** PyBaMM Q&A\
**Created:** [2 April 2025 16:22 UTC](https://pybamm.discourse.group/t/error-when-multiplying-with-an-interpolant/292 "2025-04-02T16:22:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![isaac\_basil](https://avatars.discourse-cdn.com/v4/letter/i/96bed5/32.png) [@isaac\_basil](https://pybamm.discourse.group/u/isaac_basil)\
**Post date:** [2 April 2025 16:22 UTC](https://pybamm.discourse.group/t/error-when-multiplying-with-an-interpolant/292/1 "2025-04-02T16:22:00Z")

</div>

Hi,

I posted a previous question on a similar (but not identical) topic. However the problem here is much more refined, so I may delete the previous one.

I am getting an error when I take the product of an interpolant function with something. But I don’t see any logical reason why this should be a problem. When I do an addition, it works fine. I have provided a MWE below, and the error is:

ValueError: cannot reshape array of size 1 into shape (17,1)

```auto
import pybamm
import numpy as np

model = pybamm.BaseModel()

x_p = pybamm.SpatialVariable("x_p", domain="positive electrode", coord_sys="cartesian")
c = pybamm.Variable("c", domain="positive electrode")

L_p = 50e-6 
t_max = 100

x_data = np.linspace(0, L_p, 50)
t_data = np.linspace(0, t_max, 100)

y_data = np.ones((len(x_data), len(t_data))) # arbitrary data to be interpolated

interp_func = pybamm.Interpolant((x_data, t_data), y_data, (x_p, pybamm.t)) # 2d interpolation function, with x and t as inputs

a = c + interp_func # no problem with addition

b = c * interp_func # product throws error

```

Thanks in advance for your help!

---

<div class="post-metadata">

**Author:** ![vipulnovo](https://avatars.discourse-cdn.com/v4/letter/v/f19dbf/32.png) [@vipulnovo](https://pybamm.discourse.group/u/vipulnovo)\
**Post date:** [29 April 2025 08:38 UTC](https://pybamm.discourse.group/t/error-when-multiplying-with-an-interpolant/292/2 "2025-04-29T08:38:47Z")

</div>

Hey I am facing a similar issue. were you able to solve it?

---

<div class="post-metadata">

**Author:** ![isaac\_basil](https://avatars.discourse-cdn.com/v4/letter/i/96bed5/32.png) [@isaac\_basil](https://pybamm.discourse.group/u/isaac_basil)\
**Post date:** [29 April 2025 08:54 UTC](https://pybamm.discourse.group/t/error-when-multiplying-with-an-interpolant/292/3 "2025-04-29T08:54:46Z")

</div>

Hi, no unfortunately I have not solved it yet.

---

<div class="post-metadata">

**Author:** ![isaac\_basil](https://avatars.discourse-cdn.com/v4/letter/i/96bed5/32.png) [@isaac\_basil](https://pybamm.discourse.group/u/isaac_basil)\
**Post date:** [19 May 2025 13:39 UTC](https://pybamm.discourse.group/t/error-when-multiplying-with-an-interpolant/292/4 "2025-05-19T13:39:49Z")

</div>

Any ideas on this anyone? I still haven’t solved the problem.

---

<div class="post-metadata">

**Author:** ![derek](https://avatars.discourse-cdn.com/v4/letter/d/b38774/32.png) [@derek](https://pybamm.discourse.group/u/derek)\
**Post date:** [27 May 2025 17:00 UTC](https://pybamm.discourse.group/t/error-when-multiplying-with-an-interpolant/292/5 "2025-05-27T17:00:50Z")

</div>

Does this work for your purposes? I changed just this line in your example:

```auto
b = pybamm.Multiplication(c, interp_func)
print(b)

```

result:

```auto
c * ing_functio(x_p, time)

```

---

<div class="post-metadata">

**Author:** ![isaac\_basil](https://avatars.discourse-cdn.com/v4/letter/i/96bed5/32.png) [@isaac\_basil](https://pybamm.discourse.group/u/isaac_basil)\
**Post date:** [29 May 2025 08:16 UTC](https://pybamm.discourse.group/t/error-when-multiplying-with-an-interpolant/292/6 "2025-05-29T08:16:51Z")

</div>

Hi Derek, that does seem to work for me. Thanks very much!
