Skip to content

Commit 828bcdb

Browse files
feat: propagate and implement allow_algebraic
1 parent ae0c750 commit 828bcdb

File tree

3 files changed

+6
-13
lines changed

3 files changed

+6
-13
lines changed

src/structural_transformation/partial_state_selection.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,9 +345,7 @@ function dummy_derivative_graph!(
345345
end
346346

347347
dummy_derivatives_set = BitSet(dummy_derivatives)
348-
if !allow_symbolic
349-
make_differential_denominators_unsolvable!(structure, dummy_derivatives_set)
350-
end
348+
make_differential_denominators_unsolvable!(structure, dummy_derivatives_set)
351349

352350
ret = tearing_with_dummy_derivatives(structure, dummy_derivatives_set)
353351
if log

src/structural_transformation/symbolics_tearing.jl

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -992,12 +992,9 @@ end
992992
ndims = ndims(arr)
993993
end
994994

995-
function tearing(state::TearingState; allow_symbolic = false, kwargs...)
996-
state.structure.solvable_graph === nothing &&
997-
find_solvables!(state; allow_symbolic, kwargs...)
998-
if !allow_symbolic
999-
make_differential_denominators_unsolvable!(state.structure)
1000-
end
995+
function tearing(state::TearingState; kwargs...)
996+
state.structure.solvable_graph === nothing && find_solvables!(state; kwargs...)
997+
make_differential_denominators_unsolvable!(state.structure)
1001998
complete!(state.structure)
1002999
tearing_with_dummy_derivatives(state.structure, ())
10031000
end

src/systems/systemstructure.jl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -719,10 +719,8 @@ function _structural_simplify!(state::TearingState, io; simplify = false,
719719
sys = ModelingToolkit.dummy_derivative(
720720
sys, state; simplify, mm, check_consistency, allow_symbolic, kwargs...)
721721
elseif fully_determined
722-
var_eq_matching = pantelides!(state; finalize = false, allow_symbolic, kwargs...)
723-
if !allow_symbolic
724-
StructuralTransformations.make_differential_denominators_unsolvable!(state.structure)
725-
end
722+
var_eq_matching = pantelides!(state; finalize = false, kwargs...)
723+
StructuralTransformations.make_differential_denominators_unsolvable!(state.structure)
726724
sys = pantelides_reassemble(state, var_eq_matching)
727725
state = TearingState(sys)
728726
sys, mm = ModelingToolkit.alias_elimination!(state; allow_symbolic, kwargs...)

0 commit comments

Comments
 (0)