From de948ff44366f7aa12181e8dd8d8f4eebf3bba26 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Fri, 30 Jan 2026 15:38:56 +0000 Subject: [PATCH 1/5] fixes --- FIAT/Sminus.py | 2 +- finat/ufl/elementlist.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FIAT/Sminus.py b/FIAT/Sminus.py index 862199cb..ed59d85e 100644 --- a/FIAT/Sminus.py +++ b/FIAT/Sminus.py @@ -52,7 +52,7 @@ def __init__(self, ref_el, degree, mapping): flat_el = flatten_reference_cube(ref_el) dim = flat_el.get_spatial_dimension() self.fdim = dim - if dim != 2 or dim != 3: + if dim not in (2, 3): raise Exception("Trimmed serendipity elements only valid for dimensions 2 and 3") flat_topology = flat_el.get_topology() diff --git a/finat/ufl/elementlist.py b/finat/ufl/elementlist.py index 8b923079..153b2600 100644 --- a/finat/ufl/elementlist.py +++ b/finat/ufl/elementlist.py @@ -93,7 +93,7 @@ def show_elements(): # Elements not in the periodic table # TODO: Implement generic Tear operator for elements instead of this: -register_element("Brezzi-Douglas-Fortin-Marini", "BDFM", 1, HDiv, "contravariant Piola", (1, None), simplices[1:]) +register_element("Brezzi-Douglas-Fortin-Marini", "BDFM", 1, HDiv, "contravariant Piola", (2, None), simplices[1:]) register_element("Crouzeix-Raviart", "CR", 0, L2, "identity", (1, None), simplices[1:]) register_element("Discontinuous Raviart-Thomas", "DRT", 1, L2, "contravariant Piola", (1, None), simplices[1:]) register_element("Kong-Mulder-Veldhuizen", "KMV", 0, H1, "identity", (1, None), simplices[1:]) From 71bd9e1e553df6e461f480cc6e36c3ee2dc16081 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Fri, 30 Jan 2026 15:45:44 +0000 Subject: [PATCH 2/5] bdfm order 2 --- finat/ufl/elementlist.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/finat/ufl/elementlist.py b/finat/ufl/elementlist.py index 153b2600..3120a7bf 100644 --- a/finat/ufl/elementlist.py +++ b/finat/ufl/elementlist.py @@ -93,7 +93,7 @@ def show_elements(): # Elements not in the periodic table # TODO: Implement generic Tear operator for elements instead of this: -register_element("Brezzi-Douglas-Fortin-Marini", "BDFM", 1, HDiv, "contravariant Piola", (2, None), simplices[1:]) +register_element("Brezzi-Douglas-Fortin-Marini", "BDFM", 1, HDiv, "contravariant Piola", (2, 2), simplices[1:]) register_element("Crouzeix-Raviart", "CR", 0, L2, "identity", (1, None), simplices[1:]) register_element("Discontinuous Raviart-Thomas", "DRT", 1, L2, "contravariant Piola", (1, None), simplices[1:]) register_element("Kong-Mulder-Veldhuizen", "KMV", 0, H1, "identity", (1, None), simplices[1:]) From b7f2d9e658a1173b66f4bd13b15b1b597fb69c6b Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Fri, 30 Jan 2026 16:35:48 +0000 Subject: [PATCH 3/5] more fixes --- finat/ufl/elementlist.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/finat/ufl/elementlist.py b/finat/ufl/elementlist.py index 3120a7bf..1eb61577 100644 --- a/finat/ufl/elementlist.py +++ b/finat/ufl/elementlist.py @@ -93,7 +93,7 @@ def show_elements(): # Elements not in the periodic table # TODO: Implement generic Tear operator for elements instead of this: -register_element("Brezzi-Douglas-Fortin-Marini", "BDFM", 1, HDiv, "contravariant Piola", (2, 2), simplices[1:]) +register_element("Brezzi-Douglas-Fortin-Marini", "BDFM", 1, HDiv, "contravariant Piola", (2, 2), ("triangle",)) register_element("Crouzeix-Raviart", "CR", 0, L2, "identity", (1, None), simplices[1:]) register_element("Discontinuous Raviart-Thomas", "DRT", 1, L2, "contravariant Piola", (1, None), simplices[1:]) register_element("Kong-Mulder-Veldhuizen", "KMV", 0, H1, "identity", (1, None), simplices[1:]) @@ -106,7 +106,7 @@ def show_elements(): register_element("Nonconforming Arnold-Winther", "AWnc", 2, HDiv, "double contravariant Piola", (2, 2), ("triangle",)) register_element("Conforming Arnold-Winther", "AWc", 2, HDiv, "double contravariant Piola", (3, None), ("triangle",)) -register_element("Hu-Zhang", "HZ", 2, HDiv, "double contravariant Piola", (3, None), ("triangle")) +register_element("Hu-Zhang", "HZ", 2, HDiv, "double contravariant Piola", (3, None), ("triangle",)) # Zany elements register_element("Bernardi-Raugel", "BR", 1, H1, "contravariant Piola", (1, None), simplices[1:]) @@ -148,7 +148,7 @@ def show_elements(): register_element("Real", "R", 0, HInf, "identity", (0, 0), any_cell + ("TensorProductCell",)) register_element("Undefined", "U", 0, L2, "identity", (0, None), any_cell) register_element("Radau", "Rad", 0, L2, "identity", (0, None), ("interval",)) -register_element("HDiv Trace", "HDivT", 0, L2, "identity", (0, None), any_cell) +register_element("HDiv Trace", "HDivT", 0, L2, "identity", (0, None), (None, *simplices[1:], *cubes[1:], "prism", "pyramid")) # Spectral elements. register_element("Gauss-Legendre", "GL", 0, L2, "identity", (0, None), ("interval",)) From d00fcc5cac103bdade2596e67b2987c6b670a7b7 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Tue, 21 Apr 2026 11:23:55 +0100 Subject: [PATCH 4/5] fix --- finat/ufl/elementlist.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/finat/ufl/elementlist.py b/finat/ufl/elementlist.py index 1eb61577..47aadbcb 100644 --- a/finat/ufl/elementlist.py +++ b/finat/ufl/elementlist.py @@ -93,7 +93,7 @@ def show_elements(): # Elements not in the periodic table # TODO: Implement generic Tear operator for elements instead of this: -register_element("Brezzi-Douglas-Fortin-Marini", "BDFM", 1, HDiv, "contravariant Piola", (2, 2), ("triangle",)) +register_element("Brezzi-Douglas-Fortin-Marini", "BDFM", 1, HDiv, "contravariant Piola", (1, None), simplices[1:]) register_element("Crouzeix-Raviart", "CR", 0, L2, "identity", (1, None), simplices[1:]) register_element("Discontinuous Raviart-Thomas", "DRT", 1, L2, "contravariant Piola", (1, None), simplices[1:]) register_element("Kong-Mulder-Veldhuizen", "KMV", 0, H1, "identity", (1, None), simplices[1:]) From ad32a2ebaeb4ee443cbd2e77a960178a61d4f869 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Tue, 21 Apr 2026 12:35:57 +0100 Subject: [PATCH 5/5] fix --- finat/ufl/elementlist.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/finat/ufl/elementlist.py b/finat/ufl/elementlist.py index 47aadbcb..70341fff 100644 --- a/finat/ufl/elementlist.py +++ b/finat/ufl/elementlist.py @@ -181,8 +181,8 @@ def show_elements(): lambda family, dim, order, degree: ("HDiv Trace", order)) # New elements introduced for the periodic table 2014 -register_element("Q", None, 0, H1, "identity", (1, None), cubes) -register_element("DQ", None, 0, L2, "identity", (0, None), cubes) +register_element("Q", None, 0, H1, "identity", (1, None), cubes[1:]) +register_element("DQ", None, 0, L2, "identity", (0, None), cubes[1:]) register_element("RTCE", None, 1, HCurl, "covariant Piola", (1, None), ("quadrilateral",)) register_element("RTCF", None, 1, HDiv, "contravariant Piola", (1, None), ("quadrilateral",)) register_element("NCE", None, 1, HCurl, "covariant Piola", (1, None), ("hexahedron",)) @@ -223,7 +223,7 @@ def show_elements(): # discontinuous elements using l2 pullbacks register_element("DPC L2", None, 0, L2, "L2 Piola", (1, None), cubes) -register_element("DQ L2", None, 0, L2, "L2 Piola", (0, None), cubes) +register_element("DQ L2", None, 0, L2, "L2 Piola", (0, None), cubes[1:]) register_element("Gauss-Legendre L2", "GL L2", 0, L2, "L2 Piola", (0, None), ("interval",)) register_element("Discontinuous Lagrange L2", "DG L2", 0, L2, "L2 Piola", (0, None),