Dolfin version 2019.2.0.dev0


I am using FeniCs via the ubuntu PPA installation (Ubuntu 18.04.5 in case it should matter).

I used to use dolfin-version 2019.1.0, but I suddenly seem to be running 2019.2.0.dev0. It seems this came via some Ubuntu updates. This now also seems to be the default version you get via the Ubuntu PPA installation (tried to re-install).

Now, my codes do not work anymore (yesterday they still did). Can provide more details if needed, as a short summary, running “ffc -l dolfin file.ufl” now results in Exception “Missing handler for type Constant”.

Is there:
a) A change log for 2019.2.0.dev0, so I can actually figure out what changed and adapt my codes accordingly? I cannot seem to find any.
b) A way to get back to 2019.1.0, preferably via the Ubuntu PPA, and to prevent further involuntary updates?

Best regards, Peter

Please provide a minimal example of your ufl code, so that we can reproduce the error. There have been very few changes from 2019.1.0 to 2019.2.0.dev0, mostly bug-fixes.
It is not likely that there will be many more releases of dolfin, as most of the developers are working on dolfinx. For more information about this change, see:

An example of where constant is used in ufl is the alpha parameter in:

Thanks, I got it running again with that example.

The following changes made it work:

“Constant(triangle)” to “Coefficient(FiniteElement(“Real”, triangle, 0))”
“VectorConstant(triangle)” to “Coefficient(VectorElement(“Real”, triangle, 0, dim))”

1 Like

Great you found the patch you need already. In general you should find the new version performs more effectively*.

In regards to reverting to old versions, it’s not so simple. One option is to dig into the build records on the PPA (look for the “View all builds” link, filter on “Successfully built”). e.g. . Download the .deb files for the old version, then install manually with sudo dpkg -i *.deb.

It’s possible to place packages in a Hold state to keep them from automatically upgrading. apt can also be configured to pause and show the list of packages to be upgraded before proceeding with the upgrade, giving you a chance to cancel the upgrade (e.g. to place individual packages on Hold).

* To get best performance, you’ll probably want a tuned BLAS library to be installed, such as openblas or blis, rather than the reference implementation libblas-dev.