Skip to content

Commit 21444af

Browse files
committed
SBML import: Handle unsolvable event triggers
Not all event trigger functions can be solved for `time` when trying to compute the trigger time. Handle sympy errors in that case.
1 parent ec55af6 commit 21444af

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

python/sdist/amici/sbml_import.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,9 +1875,16 @@ def get_empty_bolus_value() -> sp.Float:
18751875
return
18761876

18771877
# check if events are guaranteed to not trigger at the same time
1878+
def try_solve_t(expr: sp.Expr) -> list:
1879+
"""Try to solve the expression for time."""
1880+
try:
1881+
sp.solve(expr, sbml_time_symbol)
1882+
except NotImplementedError:
1883+
return []
1884+
18781885
trigger_times = [
1879-
sp.solve(event["value"], sbml_time_symbol)
1880-
for event_sym, event in self.symbols[SymbolId.EVENT].items()
1886+
try_solve_t(event["value"])
1887+
for event in self.symbols[SymbolId.EVENT].values()
18811888
]
18821889
# for now, we only check for single/fixed/unique time points, but there
18831890
# are probably other cases we could cover

0 commit comments

Comments
 (0)