Skip to content
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

QuadShell9 support (which also fixes QuadShell8 refinement...) and shell unit tests #3886

Merged
merged 3 commits into from
Jun 27, 2024

Conversation

roystgnr
Copy link
Member

Hopefully this will fix idaholab/moose#27974 as well; it at least passes our standard Elem unit tests now. Previously QuadShell8 would fail on the refinement tests, because in the bracketing-nodes calculation where a Quad8 would use a Quad9 to "steal" its middle node, a QuadShell8 would just fail.

I don't actually directly need this myself, but it's in ExodusII so
someone might need it, and it's the easiest way to fix a bug where we
don't support QUADSHELL8 refinement.
@moosebuild
Copy link

Job Coverage on e00c7a0 wanted to post the following:

Coverage

e2d73c #3886 e00c7a
Total Total +/- New
Rate 62.73% 62.73% +0.01% 90.00%
Hits 69384 69401 +17 18
Misses 41232 41230 -2 2

Diff coverage report

Full coverage report

This comment will be updated on new commits.

@roystgnr
Copy link
Member Author

Aha. MOOSE is already using QuadShell8 elements indirectly (via loading a QuadShell4 .e and requesting second_order) in the Navier-Stokes module regression tests. I can convert that into a Quad4->Quad9 process.

Unless it was deliberate? Pinging @GiudGiud , who added expansion_quad.e in idaholab/moose#16767 - if we really need shell elements and/or we really need 8-node elements in the second_order case, then I can convert in a way to handle that instead.

@GiudGiud
Copy link
Contributor

no this was not deliberate. I didnt know QuadShells were in use in NS. This must be cubit's doing

@roystgnr
Copy link
Member Author

Yeah, apparently Cubit outputs shell elements by default for 2D. I'll set up a PR to switch it.

roystgnr added a commit to roystgnr/moose that referenced this pull request Jun 25, 2024
Refs idaholab#27974

Guillaume reports that we ended up with shell elements instead of quad
elements here by accident, because it was a Cubit default for 2D output.
The elements solve the same way, *except* that with old libMesh a
"full-order" `all_second_order()` update to a 4-node shell would produce
an 8-node shell, not a 9-node, and we'd like to change that without
breaking MOOSE tests.

This should let us get libMesh/libmesh#3886 passing and make that
change.

I generated the new `expansion_quad.e` by using ncdump, changing
`SHELL4` to `QUAD4`, deleting 2 from sideset indices (since Exodus quad
shell edge-sides are numbered 3-6 instead of 1-4), and using ncgen.

We did expect the csv results to change here, since we're now using
a biquadratic basis rather than a serendipity basis when the
`second_order` conversion adds the internal nodes.
jmeier pushed a commit to jmeier/moose that referenced this pull request Jun 26, 2024
Refs idaholab#27974

Guillaume reports that we ended up with shell elements instead of quad
elements here by accident, because it was a Cubit default for 2D output.
The elements solve the same way, *except* that with old libMesh a
"full-order" `all_second_order()` update to a 4-node shell would produce
an 8-node shell, not a 9-node, and we'd like to change that without
breaking MOOSE tests.

This should let us get libMesh/libmesh#3886 passing and make that
change.

I generated the new `expansion_quad.e` by using ncdump, changing
`SHELL4` to `QUAD4`, deleting 2 from sideset indices (since Exodus quad
shell edge-sides are numbered 3-6 instead of 1-4), and using ncgen.

We did expect the csv results to change here, since we're now using
a biquadratic basis rather than a serendipity basis when the
`second_order` conversion adds the internal nodes.
@roystgnr roystgnr merged commit 9820ed8 into libMesh:devel Jun 27, 2024
20 checks passed
@roystgnr roystgnr deleted the quad_shell_9 branch June 27, 2024 16:35
abanki1 pushed a commit to abanki1/moose that referenced this pull request Jul 11, 2024
Refs idaholab#27974

Guillaume reports that we ended up with shell elements instead of quad
elements here by accident, because it was a Cubit default for 2D output.
The elements solve the same way, *except* that with old libMesh a
"full-order" `all_second_order()` update to a 4-node shell would produce
an 8-node shell, not a 9-node, and we'd like to change that without
breaking MOOSE tests.

This should let us get libMesh/libmesh#3886 passing and make that
change.

I generated the new `expansion_quad.e` by using ncdump, changing
`SHELL4` to `QUAD4`, deleting 2 from sideset indices (since Exodus quad
shell edge-sides are numbered 3-6 instead of 1-4), and using ncgen.

We did expect the csv results to change here, since we're now using
a biquadratic basis rather than a serendipity basis when the
`second_order` conversion adds the internal nodes.
N4hom pushed a commit to N4hom/moose that referenced this pull request Jul 30, 2024
Refs idaholab#27974

Guillaume reports that we ended up with shell elements instead of quad
elements here by accident, because it was a Cubit default for 2D output.
The elements solve the same way, *except* that with old libMesh a
"full-order" `all_second_order()` update to a 4-node shell would produce
an 8-node shell, not a 9-node, and we'd like to change that without
breaking MOOSE tests.

This should let us get libMesh/libmesh#3886 passing and make that
change.

I generated the new `expansion_quad.e` by using ncdump, changing
`SHELL4` to `QUAD4`, deleting 2 from sideset indices (since Exodus quad
shell edge-sides are numbered 3-6 instead of 1-4), and using ncgen.

We did expect the csv results to change here, since we're now using
a biquadratic basis rather than a serendipity basis when the
`second_order` conversion adds the internal nodes.
Leni-Yeo pushed a commit to Leni-Yeo/moose that referenced this pull request Aug 28, 2024
Refs idaholab#27974

Guillaume reports that we ended up with shell elements instead of quad
elements here by accident, because it was a Cubit default for 2D output.
The elements solve the same way, *except* that with old libMesh a
"full-order" `all_second_order()` update to a 4-node shell would produce
an 8-node shell, not a 9-node, and we'd like to change that without
breaking MOOSE tests.

This should let us get libMesh/libmesh#3886 passing and make that
change.

I generated the new `expansion_quad.e` by using ncdump, changing
`SHELL4` to `QUAD4`, deleting 2 from sideset indices (since Exodus quad
shell edge-sides are numbered 3-6 instead of 1-4), and using ncgen.

We did expect the csv results to change here, since we're now using
a biquadratic basis rather than a serendipity basis when the
`second_order` conversion adds the internal nodes.
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.

FileMeshGenerator and uniform_refine produce weird results
4 participants