-
Notifications
You must be signed in to change notification settings - Fork 286
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
Conversation
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.
Aha. MOOSE is already using QuadShell8 elements indirectly (via loading a QuadShell4 .e and requesting Unless it was deliberate? Pinging @GiudGiud , who added |
no this was not deliberate. I didnt know QuadShells were in use in NS. This must be cubit's doing |
Yeah, apparently Cubit outputs shell elements by default for 2D. I'll set up a PR to switch it. |
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.
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.
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.
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.
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.
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.