Skip to content

Changes to FIAT to enable FUSE - #265

Open
indiamai wants to merge 14 commits into
mainfrom
indiamai/fuse
Open

Changes to FIAT to enable FUSE#265
indiamai wants to merge 14 commits into
mainfrom
indiamai/fuse

Conversation

@indiamai

@indiamai indiamai commented Jul 24, 2026

Copy link
Copy Markdown

Minimal changes to enable FUSE in FIAT.

Key changes:

  • Avoiding specific references to UFC cells
  • Lists of subentities can optionally be passed to reference cells
  • FUSE infrastructure for element creation at FIAT, finat and UFL level. Most notably the inclusion of use_fuse and FuseElement. use_fuse is derived from the Firedrake mesh.
  • Moves as_cell into FIAT from UFL so that we can delegate to fuse creation as appropriate. Falls back to UFL implementation in all other cases.

Tested in firedrake on Firedrake PR #5276 and FUSE main sits on this branch.

@indiamai
indiamai marked this pull request as ready for review August 6, 2026 12:54
Comment thread FIAT/reference_element.py Outdated
Comment thread finat/ufl/elementlist.py Outdated
Comment thread finat/ufl/finiteelementbase.py Outdated
Comment thread finat/ufl/fuseelement.py Outdated
Comment thread finat/ufl/fuseelement.py Outdated
Comment thread finat/ufl/fuseelement.py Outdated
Comment on lines +297 to +299
class CellBackend(Enum):
FIAT = 1
FUSE = 2

@JHopeCollins JHopeCollins Aug 18, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could use a string enum here: https://docs.python.org/3/library/enum.html#enum.StrEnum

Suggested change
class CellBackend(Enum):
FIAT = 1
FUSE = 2
class CellBackend(enum.StrEnum):
FIAT = 'FIAT'
FUSE = 'FUSE'

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.

3 participants