Skip to content

Commit be4c1a6

Browse files
committed
Add tests and renaming
1 parent 8b4d923 commit be4c1a6

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

src/systems/diffeqs/first_order_transform.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ function ode_order_lowering(eqs, iv, states)
2626
# only save to the dict when we need to lower the order to save memory
2727
maxorder > get(var_order, var, 1) && (var_order[var] = maxorder)
2828
var′ = lower_varname(var, iv, maxorder - 1)
29-
rhs′ = diff2symbol(eq.rhs)
29+
rhs′ = diff2term(eq.rhs)
3030
push!(diff_vars, var′)
3131
push!(diff_eqs, D(var′) ~ rhs′)
3232
end

src/utils.jl

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ function tosymbol(t::Term; states=nothing, escape=true)
176176
op = nameof(t.op)
177177
args = t.args
178178
elseif t.op isa Differential
179-
term = diff2symbol(t)
179+
term = diff2term(t)
180180
op = Symbol(operation(term))
181181
args = arguments(term)
182182
else
@@ -211,11 +211,16 @@ function flatten_differential(O::Term)
211211
return (x, t, order + 1)
212212
end
213213

214-
function diff2symbol(O)
214+
"""
215+
diff2term(x::Symbolic) -> Term
216+
217+
diff2term(D(D(x(t)))) -> xˍtt(t)
218+
"""
219+
function diff2term(O::Symbolic)
215220
isa(O, Term) || return O
216221
if is_derivative(O)
217222
(x, t, order) = flatten_differential(O)
218223
return lower_varname(x, t, order)
219224
end
220-
return Term(O.op, diff2symbol.(O.args))
225+
return Term(O.op, diff2term.(O.args))
221226
end

test/derivatives.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ using Test
44
# Derivatives
55
@parameters t σ ρ β
66
@variables x y z
7+
@variables uu(t)
78
@derivatives D'~t D2''~t Dx'~x
89

10+
@test Symbol(D(D(uu))) === Symbol("uuˍtt⦗t⦘")
11+
912
test_equal(a, b) = @test isequal(simplify(a), simplify(b))
1013

1114
@test @macroexpand(@derivatives D'~t D2''~t) == @macroexpand(@derivatives (D'~t), (D2''~t))

0 commit comments

Comments
 (0)