Traceback (most recent call last):
File "C:\Users\San\Desktop\src\code.py", line 178, in <module>
connections['Xe1Ae1'] = Synapses(input_groups['Xe1'], neuron_groups['Ae1'],method="euler",
File "D:\anaconda3\lib\site-packages\brian2\synapses\synapses.py", line 735, in __init__
model = Equations(model)
File "D:\anaconda3\lib\site-packages\brian2\equations\equations.py", line 554, in __init__
self._equations = parse_string_equations(eqns)
File "D:\anaconda3\lib\site-packages\brian2\utils\caching.py", line 101, in cached_func
func._cache[cache_key] = func(*args, **kwds)
File "D:\anaconda3\lib\site-packages\brian2\equations\equations.py", line 366, in parse_string_equations
expression = Expression(p.sub(' ', expression))
File "D:\anaconda3\lib\site-packages\brian2\equations\codestrings.py", line 107, in __init__
str_to_sympy(code)
File "D:\anaconda3\lib\site-packages\brian2\parsing\sympytools.py", line 76, in str_to_sympy
return _str_to_sympy(expr)
File "D:\anaconda3\lib\site-packages\brian2\utils\caching.py", line 101, in cached_func
func._cache[cache_key] = func(*args, **kwds)
File "D:\anaconda3\lib\site-packages\brian2\parsing\sympytools.py", line 84, in _str_to_sympy
raise SyntaxError(f"Error during evaluation of sympy expression "
SyntaxError: Error during evaluation of sympy expression '-(0.00035 * unblock_mg_function(voltage) * on + 0.00095 * ov)*(voltage -140) * (ca < 1)/ms - ca / t_ca ': Relational cannot be used in Mul
Hi @Erhong,
from the error message, I think the problem is that your equation multiplies with (ca < 1)
. You probably want this to multiply with 0 or 1 depending on the value of ca
, but this is not “mathematically correct”. Confusingly, this will often work the way you wrote it, since in the generated code it will be interpreted correctly. But as you can see in this example, we use sympy
to deal with the equations mathematically, and during these transformations this formulation can lead to issues. Instead, write it as int(ca < 1)
to explicitly tell Brian/sympy
to convert the boolean value into a number.
Hope that works,
Marcel
Thanks very much for your prompt reply. By changing it into int(ca<1), I have solved this problem.
Kind regards,
Erhong Long