For anything going into the problem setup that will be used with an adaptive solver: the trick is to always fenics.split(solution.leaf_node()). You cannot do for exampe p, u = fenics.split(solution) and later do u.leaf_node(), and you can't do solution.split() or solution.leaf_node().split(). I figured this out just through trial and error. Soon this will be captured in our CI test suite with a water freezing test.
For anything going into the problem setup that will be used with an adaptive solver: the trick is to always
fenics.split(solution.leaf_node())
. You cannot do for exampep, u = fenics.split(solution)
and later dou.leaf_node()
, and you can't dosolution.split()
orsolution.leaf_node().split()
. I figured this out just through trial and error. Soon this will be captured in our CI test suite with a water freezing test.