bug: discretizer string Hamiltonian and sympy Hamiltonian substitution behaves differently
import kwant
from kwant.continuum import momentum_operators, position_operators
import sympy
k_x = momentum_operators[0]
x = position_operators[0]
m, m_eff = sympy.symbols('m, m_eff', commutative=False)
print(kwant.continuum.discretize_symbolic('k_x * m(x) * k_x', substitutions={'m(x)': 'm_eff'}))
print(kwant.continuum.discretize_symbolic(k_x * m(x) * k_x, substitutions={m(x): m_eff}))
({(0,): m(-a/2 + x)/a**2 + m(a/2 + x)/a**2, (1,): -m(a/2 + x)/a**2}, ['x'])
({(0,): 2*m_eff/a**2, (1,): -m_eff/a**2}, ['x'])
@r-j-skolasinski