Skip to content

Move MacroPolynomialSet to subclass to prevent infinite recursion errors#206

Merged
pbrubeck merged 1 commit intoreleasefrom
pbrubeck/fix/macro-polyset
Jan 12, 2026
Merged

Move MacroPolynomialSet to subclass to prevent infinite recursion errors#206
pbrubeck merged 1 commit intoreleasefrom
pbrubeck/fix/macro-polyset

Conversation

@pbrubeck
Copy link
Copy Markdown

@pbrubeck pbrubeck commented Dec 31, 2025

HCT(p) fails to build the supermooth C1 space for sufficiently large p (see firedrakeproject/firedrake#4152), since finding the nullspace of the jump constraints is a very ill-posed problem. The current logic in CiarletElement attempts to resolve mismatching space dimension and number of degrees of freedom by assuming that we are tiling a non-macro element on a split cell with MacroPolynomalSet. This will trigger an infinite recursion loop when we get a dimension mismatch on a non-tiled macroelement.

This PR only instantiates MacroPolynomalSet within the CiarletElement subclasses that can be tiled.

Copy link
Copy Markdown

@rckirby rckirby left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fine

@pbrubeck pbrubeck merged commit 7f767b2 into release Jan 12, 2026
8 checks passed
@pbrubeck pbrubeck deleted the pbrubeck/fix/macro-polyset branch January 12, 2026 23:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants