Dear Firedrakers, This email is to let you know that one of the ways of creating expressions to interpolate into Functions is going to be deleted in January 2019. What is going away? --------------------------- Interpolating expressions given as C strings will no longer be possible. That is: f = interpolate(Expression("sin(x[0]*pi)"), V) will no longer work. Instead, you should interpolate a UFL expression. In the case above, this would be. x = SpatialCoordinate(V.mesh()) f = interpolate(sin(x[0] * math.pi), V) What do I need to do? ------------------------------ As of now, when you update Firedrake it will emit a warning every time you use a C string expression. You should change all of the C string expressions in your code to UFL expressions. See https://www.firedrakeproject.org/interpolation.html for documentation on interpolating UFL expressions. If you run into any difficulties, please ask via any of the usual support mechanisms: https://www.firedrakeproject.org/contact.html At a future date, currently expected to be in January 2019, we will remove support for C string expressions. Why are we doing this? ------------------------------- Firedrake is in the process of replacing its low-level loop manipulation framework and final code generation stage with Loopy https://mathema.tician.de/software/loopy/. Loopy enables sophisticated optimisations such as better vectorisation, and provides a pathway to GPU support. It also enables us to remove some quite old PyOP2 code which we now understand how to do better. Moving to Loopy means that the previous mechanism for injecting the C strings from expressions into generated code will not work, and any replacement would not be completely compatible with the current system. C string expressions are currently only supported for compatibility with FEniCS. It is always better to use UFL expressions, since they are more robust and produce much simpler to debug errors if used incorrectly. UFL expressions cover all the current functionality of C string expressions. Since UFL expressions are in every respect better than C string expressions, and since C string expressions are hard to make work with the new Loopy structure, we have decided to drop C string expression support.