I’m having a hard time understanding exactly how a PDESystem with independent array variables differs from a PDESystem initialized with other independent variables. For example, suppose I have the following two PDESystems
@parameters t z1 z2 z[1:2]
pde_system1 = PDESystem(eq, bcs, domains, [t, z1, z2], [u(t, z1, z2)])
pde_system2 = PDESystem(eqs, bcs, domains, [t, z...], [u(t, z...)])
I can look at the independent variables and I would get
In: pde_system1.indvars
Out: Num[t, z1, z2]
In: pde_system2.indvars
Out: Num[t, z[1], z[2]]
and both of these have type Vector{Num}
. However, when I call ModelingToolkit.getname
, I get
In: ModelingToolkit.getname(pde_system1.indvars)
Out: [:t, :z1, :z2]
In: ModelingToolkit.getname(pde_system2.indvars)
Out: [:t, :z, :z]
It seems to me that getname
in the case of pde_system2
returns the name of the entire array instead of the name of the particular entry. I have two questions about this. First, why is this happening? Naively, it seems like because pde_system1.indvars
and pde_system2.indvars
have the same type, ModelingToolkit.getname
should return names for each entry of the vector in both cases.
My second question is about how to address this. Is there a way to unpack the independent variables of pde_system2
so that ModelingToolkit.getname
returns a vector of symbols where each symbol corresponds to the entry of the array variables?