# Can I use user defined data types with ODE?

**URL:** https://discourse.julialang.org/t/can-i-use-user-defined-data-types-with-ode/94390
**Category:** Numerics
**Tags:** diffeq, differentialequation
**Created:** [February 10, 2023, 3:04am UTC](https://discourse.julialang.org/t/can-i-use-user-defined-data-types-with-ode/94390 "2023-02-10T03:04:19Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![shaurya](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shaurya/32/30468_2.png) [@shaurya](https://discourse.julialang.org/u/shaurya)
#### Post date: [February 10, 2023, 3:04am UTC](https://discourse.julialang.org/t/can-i-use-user-defined-data-types-with-ode/94390/1 "2023-02-10T03:04:19Z")

</div>

Can I use user defined data type with ODE function?

```julia
 mutable struct ud
     a::Float64
     b::Float64
end

function od!(dx,x,t)
    dx.= [1, x.a];
end

ic = ud(1.0,2.0);
prob=ODEProblem(od!,ic,(0.0,1.2));
sol1=solve(prob1, Tsit5(), reltol=1e-12, abstol=1e-12);

```

This currently does not work. Is it possible to design something like this? If so how?

---

<div class="post-metadata">

### Author: ![jlchan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jlchan/32/10958_2.png) [@jlchan](https://discourse.julialang.org/u/jlchan)
#### Post date: [February 10, 2023, 3:21am UTC](https://discourse.julialang.org/t/can-i-use-user-defined-data-types-with-ode/94390/2 "2023-02-10T03:21:55Z")

</div>

Yes, but you will probably need to make your struct an `AbstractArray` type. You could use a FieldVector (see [API · StaticArrays.jl](https://juliaarrays.github.io/StaticArrays.jl/stable/pages/api/#FieldVector)) from StaticArrays.jl.

---

<div class="post-metadata">

### Author: ![shaurya](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shaurya/32/30468_2.png) [@shaurya](https://discourse.julialang.org/u/shaurya)
#### Post date: [February 10, 2023, 3:26am UTC](https://discourse.julialang.org/t/can-i-use-user-defined-data-types-with-ode/94390/3 "2023-02-10T03:26:36Z")

</div>

Thanks that answers my question! 😃
