Skip to content

Commit a88c056

Browse files
committed
fix #2642
1 parent 64de63a commit a88c056

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

python/sdist/amici/sbml_import.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2292,9 +2292,16 @@ def _make_initial(
22922292

22932293
sym_math, rateof_to_dummy = _rateof_to_dummy(sym_math)
22942294

2295-
for species_id, species in self.symbols[SymbolId.SPECIES].items():
2296-
if "init" in species:
2297-
sym_math = smart_subs(sym_math, species_id, species["init"])
2295+
for var in sym_math.free_symbols:
2296+
# already recursive since _get_element_initial_assignment calls _make_initial
2297+
ia = self._get_element_initial_assignment(str(var))
2298+
if ia is not None:
2299+
sym_math = sym_math.subs(var, ia)
2300+
2301+
elif (species := self.sbml.getSpecies(str(var))) is not None:
2302+
# recursive!
2303+
init = self._make_initial(get_species_initial(species))
2304+
sym_math = sym_math.subs(var, init)
22982305

22992306
sym_math = smart_subs(sym_math, sbml_time_symbol, sp.Float(0))
23002307

0 commit comments

Comments
 (0)