# Dynamical systems with AbstractArray Interface

**URL:** https://discourse.julialang.org/t/dynamical-systems-with-abstractarray-interface/127073
**Category:** General Usage
**Tags:** dynamical-systems
**Created:** [March 17, 2025, 10:09pm UTC](https://discourse.julialang.org/t/dynamical-systems-with-abstractarray-interface/127073 "2025-03-17T22:09:09Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)
#### Post date: [March 17, 2025, 10:09pm UTC](https://discourse.julialang.org/t/dynamical-systems-with-abstractarray-interface/127073/1 "2025-03-17T22:09:10Z")

</div>

Dear all,

I am interested in a “survey” of which packages, in the context of dynamical systems (Trixi, VoronoiFVM, Gridap…), linear solvers, etc is using AbstractArray as a state space and which one is not.

BifurcationKit (BK) do not rely on AbstractArray abstraction but this is tough to maintain. Only the first layer of BK provides this functionality.

At the beginning, BK wanted to support functionals built on ApproxFun and ArrayFire and thus did not rely on AbstractArray. I know for example that KrylovKit.jl do not rely on the AbstractArray interface.

Hence, which one is and which one is not?

| AbstractArray Interface | Other |
| --- | --- |
| | BifurcationKit |
| | Gridap |
| | [DynamicalSystems.jl](https://juliaregistries.github.io/General/packages/redirect_to_repo/DynamicalSystems) |

---

<div class="post-metadata">

### Author: ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)
#### Post date: [March 24, 2025, 9:23am UTC](https://discourse.julialang.org/t/dynamical-systems-with-abstractarray-interface/127073/2 "2025-03-24T09:23:03Z")

</div>

At the moment in all of DynamicalSystems.jl the state space is `AbstractArray`. I am not sure if there is much reason to not have it be `AbstractArray`.

p.s. You’d have better chances at replies here if you posted this at the Modeling And Simulations subcategory, and probably also put the tag `dynamical-systems`.

---

<div class="post-metadata">

### Author: ![j-fu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j-fu/32/11373_2.png) [@j-fu](https://discourse.julialang.org/u/j-fu)
#### Post date: [March 24, 2025, 1:32pm UTC](https://discourse.julialang.org/t/dynamical-systems-with-abstractarray-interface/127073/3 "2025-03-24T13:32:26Z")

</div>

In VoronoiFVM.jl I try to adhere to it. My state is a `nspecies x nnodes` matrix, in order to handle PDE systems. It can be dense, or sparse if I work with multiphysics problems where not all species are defined on all parts of the domain. For time dependent problems, these can be combine into an `AbstractTransientSolution <: AbstractDiffEqArray` which can be accessed as a `nspecies x nnodes x ntsteps` tensor.
