# Using \`similar\` with ArrayPartitions

**URL:** https://discourse.julialang.org/t/using-similar-with-arraypartitions/115802
**Category:** General Usage
**Tags:** question, diffeq, array, differentialequation
**Created:** [June 18, 2024, 9:56am UTC](https://discourse.julialang.org/t/using-similar-with-arraypartitions/115802 "2024-06-18T09:56:49Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![dbox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dbox/32/209217_2.png) [@dbox](https://discourse.julialang.org/u/dbox)
#### Post date: [June 18, 2024, 9:56am UTC](https://discourse.julialang.org/t/using-similar-with-arraypartitions/115802/1 "2024-06-18T09:56:49Z")

</div>

Hi,  
I’m trying to solve an ODE with variables of different types using an ArrayPartition. I have tried several solvers but they all get stuck on performing similar(ArrayPartition, Type).  
The code executed in the ODE solving stack is:

```julia
    atmp = similar(u, uEltypeNoUnits)
    recursivefill!(atmp, false)

```

where `u` is the initial condition.  
For example, I have several different variables making my `u` look like:

```julia
using RecursiveArrayTools
var1 = 0:0.01:1
var2 = 0.0,
var3 = sin.(0:0.01:pi)
init = ArrayPartition(var1,var2,var3)

```

Using a simple ArrayPartition with the same types I can use similar, for example with:

```julia
a = [1.0,2.0,3.0]
b = [4.0,5.0]
c = [a,b]
d = ArrayPartition(c...)
similar(d,Float64)

```

But I can’t see how to do this with something that looks like `init` above.

Alternatively, is there a solver that works with ArrayPartitions with different types ‘out of the box’?  
Many thanks!

---

<div class="post-metadata">

### Author: ![Dan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dan/32/42581_2.png) [@Dan](https://discourse.julialang.org/u/Dan)
#### Post date: [June 18, 2024, 12:20pm UTC](https://discourse.julialang.org/t/using-similar-with-arraypartitions/115802/2 "2024-06-18T12:20:40Z")

</div>

> [@dbox](#):
>
> `var2 = 0.0,`

`var2` doesn’t support an Array interface, using:

```julia
var2 = [0.0]

```

would work (and the extra comma after `0.0` in the OP doesn’t help).

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [June 20, 2024, 11:11am UTC](https://discourse.julialang.org/t/using-similar-with-arraypartitions/115802/3 "2024-06-20T11:11:18Z")

</div>

We could add a new similar specialization on ArrayPartition for this. Open an issue on RecursiveArrayTools.jl
