-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG: failing to assemble expression HCurl element on a tensor product mesh when part of a mixed functionspace #3243
Comments
*** Makes thwaites depend on g-adopt *** Any bit of code that required fixing but is duplicated in g-adopt is now imported from g-adopt, specifically: extend_function_to_3d, is_continuous, normal_is_continuous. VertexBasedP1DGLimiter is subclassed to add special treatment of squeezed triangles. In test_*.py files please do not add any code that's run when imported as a module, as pytest will automatically import all of these to discover what files there are, and thus that code will already be run before pytest itself runs any tests. If you want to add code when the test file is run as a script, add a `if __name__ == "__main__"` guard. One of the UFL changes seems to have broken RTCE on tensor product meshes (firedrakeproject/firedrake#3243). Have implemented a fix in a fork of FInAT (https://github.com/thwaitesproject/FInAT) that should now be pulled in the CI.
Was this an issue introduced by the recent UFL update? Also it looks like you have submitted related fixes elsewhere, I assume that this issue is still valid?
AIUI apart from the namespace change the API is currently unchanged and is one step along the road to improving the finite element infrastructure in Firedrake/FEniCS. This was described a little here. |
I've found the fix. It was exactly as you suggested with those missing properties! |
Ah thanks, Connor, yeah wasn't entirely sure whether this was correct - as I don't actually know much about the interface at that level. The fix I submitted "elsewhere" was just on a temporary finat fork to unbreak the CI of a project that uses this. |
Describe the bug
In the below reproducer it fails to assemble expressions on a tensor product domain, if they involve a mixed function space where the "velocity" uses a HCurl element and the pressure is a plain tensor product element. This seems to be because a
HCurlElement
of a tensor product element reports theirembedded_superdegree
as a tuple, whereas a plain tensor product element reports it as an integer. I notice that infinat/ufl/hdivcurl.py
theHDivElement
has a specific implementation ofembedded_superdegree
which calls the underlying element, whereasHCurlElement
does not; Should it?I also notice that these elements have been moved recently as "ufl legacy elements" into finat. Is this a deprecated way of constructing this element for Firedrake as well? Should I be constructing it in a different way?
Steps to Reproduce
Reproducer:
fails with
The text was updated successfully, but these errors were encountered: