Skip to content

Add Polygon/Polyhedron NSIDED/NFACED ExodusII output#4490

Open
ConnorOuellette wants to merge 10 commits into
libMesh:develfrom
ConnorOuellette:c0polyhedron-exodus-nfaced
Open

Add Polygon/Polyhedron NSIDED/NFACED ExodusII output#4490
ConnorOuellette wants to merge 10 commits into
libMesh:develfrom
ConnorOuellette:c0polyhedron-exodus-nfaced

Conversation

@ConnorOuellette

Copy link
Copy Markdown

Summary

This adds ExodusII output support for libMesh’s arbitrary polygon and polyhedron elements:

  • writes C0POLYGON elements as Exodus NSIDED blocks
  • writes C0POLYHEDRON elements as Exodus NFACED blocks
  • emits the associated face block, face-node connectivity, face counts, element-face connectivity, and element face counts needed for NFACED output

Notes

  • If using ParaView, the default IOSS Reader does not support polygonal/polyhedral input. Please use the Legacy Exodus Reader.
  • Fixed an error with build_cube() where corner nodes were scaled twice

@roystgnr roystgnr left a comment

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.

I'd have split this into like 6 commits instead of 2 (re-bootstrap should be separate, tests could be separate, additional build_cube option should be separate), but the contents look mostly solid. That hardcoded block id (unless I'm just misunderstanding?) is the only thing that looks wrong.

Comment thread src/mesh/exodusII_io_helper.C Outdated
Comment thread include/mesh/exodus_header_info.h
Comment thread src/mesh/exodusII_io_helper.C Outdated
Comment thread src/mesh/exodusII_io_helper.C
Comment thread src/mesh/mesh_generation.C
Comment thread src/mesh/mesh_generation.C Outdated
@ConnorOuellette
ConnorOuellette requested a review from roystgnr July 13, 2026 22:02
@roystgnr

Copy link
Copy Markdown
Member

Looks like you turned on some auto-code-reformatting option in your editor? That works within MOOSE, so long as you're pointing clang-format to the MOOSE config file and you're using the right clang-format version, but libMesh doesn't use the same (or any clang-format config-describable) formatting standards, and auto-reformatting utterly wrecked your ff02c5c commit. I can't find the needle of the actual changes in the 4000-line haystack of the reformatting.

As a general safety rule, never git add some/file or git commit -a without git diff to look at the changes first to make sure you're not committing anything you didn't mean to. Even in repos like MOOSE where CI will block formatting changes, it's still easy to accidentally commit diagnostic code, accidentally put multiple distinct changesets into a single commit, etc.

@ConnorOuellette
ConnorOuellette force-pushed the c0polyhedron-exodus-nfaced branch from 7d9682a to f1821dd Compare July 16, 2026 20:13

@roystgnr roystgnr left a comment

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.

The elem quality updates should have gone in a separate PR, but fortunately I'm not seeing any problems with them, so we might as well get them in via this one.

Civet's not letting me activate the jobs here, though; hopefully it's an easy fix, but we'll have to wait on CI before merging.

@roystgnr

Copy link
Copy Markdown
Member

-Wshadow errors ... but the second one actually does look like poor name choice overlap.

@roystgnr

Copy link
Copy Markdown
Member

Huh. These remaining errors are real, and there's more than one variety of them. I can reproduce some kind of error; I'll try to look into it soon.

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