# Can DifferentialEquations.jl solve a system of matrix DAEs expressed in a Mass-Matrix DAE Format with RecursiveArrayTools

**URL:** <https://discourse.julialang.org/t/can-differentialequations-jl-solve-a-system-of-matrix-daes-expressed-in-a-mass-matrix-dae-format-with-recursivearraytools/119071>\
**Category:** Specific Domains\
**Tags:** differentialequation\
**Created:** [September 5, 2024, 11:19am UTC](https://discourse.julialang.org/t/can-differentialequations-jl-solve-a-system-of-matrix-daes-expressed-in-a-mass-matrix-dae-format-with-recursivearraytools/119071 "2024-09-05T11:19:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mouhamed](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@Mouhamed](https://discourse.julialang.org/u/Mouhamed)\
**Post date:** [September 5, 2024, 11:19am UTC](https://discourse.julialang.org/t/can-differentialequations-jl-solve-a-system-of-matrix-daes-expressed-in-a-mass-matrix-dae-format-with-recursivearraytools/119071/1 "2024-09-05T11:19:08Z")

</div>

Hello, I have this following code :

```julia
using RecursiveArrayTools
using LinearAlgebra
using DifferentialEquations
#
matrix_3 = [-1/0.08 0 -0.2/0.08 ; 1/0.3 -1/0.3 0; 0 50/20 -1/20]
matrix_4 = [-1/0.08 0 -0.2/0.08 ; 1/0.3 -1/0.3 0; 0 50/20 -1/20]
matrix = VectorOfArray([matrix_3, matrix_4])
#
M =VectorOfArray([1.0*I(3), 1.0*I(3)])
#M =1.0*I(6) 
#
p = [0; 0; -0.05*(50/20)]
function powsys!(du, u, p, t)
    du[1] = matrix[1]*u[1] .+ p
    du[2] = matrix[2]*u[2] .+ p
end
u0= VectorOfArray([zeros(3,1), zeros(3,1)])
tspan = (0.0,20.0)
prob = ODEProblem(ODEFunction(powsys!, mass_matrix = M),u0,tspan, p)
sol = solve(prob,Rodas5(), reltol = 1e-8, abstol = 1e-8)

```

Defining M as a VectorOfArray will cause a MethodError because DiffrentialEquations.jl won’t be able to evaluate if the matrix is singular.

Does anyone know if what I want is possible ? In summary I want to know how the mass-matrix should be defined when the state variable is in a matrix format expressed with VectorOfArray.

PS : I am using VectorOfArray because later on my matrices will have different size.

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [September 5, 2024, 12:45pm UTC](https://discourse.julialang.org/t/can-differentialequations-jl-solve-a-system-of-matrix-daes-expressed-in-a-mass-matrix-dae-format-with-recursivearraytools/119071/2 "2024-09-05T12:45:02Z")

</div>

what’s the stacktrace of the error?

---

<div class="post-metadata">

**Author:** ![Mouhamed](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@Mouhamed](https://discourse.julialang.org/u/Mouhamed)\
**Post date:** [September 5, 2024, 1:07pm UTC](https://discourse.julialang.org/t/can-differentialequations-jl-solve-a-system-of-matrix-daes-expressed-in-a-mass-matrix-dae-format-with-recursivearraytools/119071/3 "2024-09-05T13:07:32Z")

</div>

This is the error I get :

```julia
MethodError: no method matching issingular(::VectorOfArray{Float64, 3, Vector{Diagonal{Float64, Vector{Float64}}}})

Closest candidates are:
  issingular(::SymTridiagonal)
   @ ArrayInterface C:\Users\lenovo\.julia\packages\ArrayInterface\ubN3d\src\ArrayInterface.jl:328
  issingular(::Matrix)
   @ ArrayInterface C:\Users\lenovo\.julia\packages\ArrayInterface\ubN3d\src\ArrayInterface.jl:324
  issingular(::Tridiagonal)
   @ ArrayInterface C:\Users\lenovo\.julia\packages\ArrayInterface\ubN3d\src\ArrayInterface.jl:329
  ...
Stacktrace:
 [1] __init(prob::ODEProblem{VectorOfArray{Float64, 3, Vector{Matrix{Float64}}},...

```

---

<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:** [September 5, 2024, 4:16pm UTC](https://discourse.julialang.org/t/can-differentialequations-jl-solve-a-system-of-matrix-daes-expressed-in-a-mass-matrix-dae-format-with-recursivearraytools/119071/4 "2024-09-05T16:16:45Z")

</div>

Open an issue, that’s unintended and fixable.
