Cannot simplify piecewise function with field access in condition
This fails:
from pystencils.session import *
dh = ps.create_data_handling((20,20))
ρ = dh.add_array('rho')
pw = sp.Piecewise((0, 1 < sp.Max(-0.5, ρ.center+0.5)), (1, True))
sp.simplify(pw)
with the following error:
./pystencils/pystencils/field.py in __iter__(self)
760 """This is necessary to work with parts of sympy that test if an object is iterable (e.g. simplify).
761 The __getitem__ would make it iterable"""
--> 762 raise TypeError("Field access is not iterable")
763
764 @property
TypeError: Field access is not iterable
Here are two similar examples that do not produce such an error:
s = sp.Symbol("s")
pw = sp.Piecewise((0, 1 < sp.Max(-0.5, s+0.5)), (1, True))
sp.simplify(pw)
pw = sp.Piecewise((0, 1 < ρ.center+0.5), (1, True))
sp.simplify(pw)