Skip to content

Commit a81cd1d

Browse files
committed
Merge tri assembly mesh generators and fix detailed mesh regressions
Unify the triangular subchannel/pin mesh generators behind SCMTriAssemblyMeshGenerator and SCMDetailedTriAssemblyMeshGenerator, matching the earlier quad-generator merge and the new convention that assembly generators build both subchannel and pin meshes when pins exist. This updates triangular inputs, tests, and registrations to use the new assembly generator names directly and removes the old tri alias registrations for consistency with the quad side. While validating the merged detailed-tri path, fix several regressions: - stop mutating TriSubChannelMesh from the detailed visualization generator - avoid post-build renumbering in the detailed-tri assembly path - copy _pin_nodes in TriSubChannelMesh copy construction - assign unique element IDs to generated pin prisms by starting from mesh_base->n_elem() Also refresh the detailed triangular mesh test baseline to reflect the new combined subchannel+pin mesh output and quiet its verbose debug logging. Refs #32796
1 parent 3b03c31 commit a81cd1d

104 files changed

Lines changed: 540 additions & 1070 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

modules/subchannel/doc/content/modules/subchannel/v&v/ornl_19_pin.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ The general parameters on the experimental conditions are described here. The pu
6666

6767
### Mesh
6868

69-
The meshing in SCM uses a custom *SCMTriSubChannelMeshGenerator*.
69+
The meshing in SCM uses a custom *SCMTriAssemblyMeshGenerator*.
7070
This one generates a mesh of 1D channel segments connected in 3D.
7171
The subchannel positions are automatically generated by specifying the number of radial rings, the flat to flat distance of the duct, and the pin pitch.
7272
The number of axial cells in which the domain is discretrized is specified by *n_cells*.
@@ -121,7 +121,7 @@ A custom transfer, *SCMSolutionTransfer*, is used for this purpose.
121121

122122
!listing /validation/ORNL_19_pin/test_ORNL_19.i block=Transfers language=moose
123123

124-
The detailed mesh uses a *SCMDetailedTriSubChannelMeshGenerator* and the solution variables are populated by the transfer.
124+
The detailed mesh uses a *SCMDetailedTriAssemblyMeshGenerator* and the solution variables are populated by the transfer.
125125

126126
!listing /validation/ORNL_19_pin/test_ORNL_19.i language=moose
127127

modules/subchannel/doc/content/modules/subchannel/v&v/toshiba_37_pin.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ P_out = 2.0e5 # Pa
6565

6666
### Mesh
6767

68-
The meshing in SCM uses a custom [SCMTriSubChannelMeshGenerator](source/meshgenerators/SCMTriSubChannelMeshGenerator.md).
68+
The meshing in SCM uses a custom [SCMTriAssemblyMeshGenerator](source/meshgenerators/SCMTriAssemblyMeshGenerator.md).
6969
This one generates a mesh of 1D channel segments connected in 3D.
7070
The subchannel positions are automatically generated by specifying the number of radial rings, the flat to flat distance of the duct, and the pin pitch. The number of axial cells in which the domain is discretrized is specified by *n_cells*.
7171
For more information about the mesh generator, pelase consult the website documentation on SCM.
@@ -121,7 +121,7 @@ A custom transfer, *MultiAppDetailedSolutionTransfer*, is used for this purpose.
121121

122122
!listing /validation/Toshiba_37_pin/toshiba_37_pin.i block=Transfers language=moose
123123

124-
The detailed mesh uses a *SCMDetailedTriSubChannelMeshGenerator* and the solution variables are populated by the transfer.
124+
The detailed mesh uses a *SCMDetailedTriAssemblyMeshGenerator* and the solution variables are populated by the transfer.
125125

126126
!listing /validation/Toshiba_37_pin/toshiba_37_pin.i block=viz language=moose
127127

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# SCMDetailedTriAssemblyMeshGenerator
2+
3+
!syntax description /Mesh/SCMDetailedTriAssemblyMeshGenerator
4+
5+
## Overview
6+
7+
!! Intentional comment to provide extra spacing
8+
9+
This mesh generator creates one detailed 3D visualization mesh containing both the subchannel
10+
volume and the fuel pin volume for a triangular lattice arrangement. The generated subdomains are
11+
named `subchannel` and `fuel_pins`.
12+
13+
!syntax parameters /Mesh/SCMDetailedTriAssemblyMeshGenerator
14+
15+
!syntax inputs /Mesh/SCMDetailedTriAssemblyMeshGenerator
16+
17+
!syntax children /Mesh/SCMDetailedTriAssemblyMeshGenerator

modules/subchannel/doc/content/source/meshgenerators/SCMDetailedTriPinMeshGenerator.md

Lines changed: 0 additions & 17 deletions
This file was deleted.

modules/subchannel/doc/content/source/meshgenerators/SCMDetailedTriSubChannelMeshGenerator.md

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# SCMTriAssemblyMeshGenerator
2+
3+
!syntax description /Mesh/SCMTriAssemblyMeshGenerator
4+
5+
## Overview
6+
7+
!! Intentional comment to provide extra spacing
8+
9+
This mesh generator creates the 1D subchannel and pin meshes for a triangular lattice arrangement.
10+
The generated subdomains are named `subchannel` and `fuel_pins`.
11+
The center of the mesh is the origin.
12+
13+
## Example Input File Syntax
14+
15+
!listing /test/tests/problems/SFR/sodium-19pin/test19_monolithic.i block=TriSubChannelMesh language=moose
16+
17+
!syntax parameters /Mesh/SCMTriAssemblyMeshGenerator
18+
19+
!syntax inputs /Mesh/SCMTriAssemblyMeshGenerator
20+
21+
!syntax children /Mesh/SCMTriAssemblyMeshGenerator

modules/subchannel/doc/content/source/meshgenerators/SCMTriPinMeshGenerator.md

Lines changed: 0 additions & 22 deletions
This file was deleted.

modules/subchannel/doc/content/source/meshgenerators/SCMTriSubChannelMeshGenerator.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

modules/subchannel/doc/content/source/positions/SCMPinPositions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
!syntax description /Positions/SCMPinPositions
44

5-
This object currently requires using a `SubChannel` pin mesh, such as the meshes generated by the [SCMTriPinMeshGenerator.md]
5+
This object currently requires using a `SubChannel` pin mesh, such as the meshes generated by the [SCMTriAssemblyMeshGenerator.md]
66
or the [SCMQuadAssemblyMeshGenerator.md].
77

88
!alert note

modules/subchannel/examples/MultiApp/3d.i

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ n_cells = 100
2929

3030
[Mesh]
3131
[subchannel]
32-
type = SCMDetailedTriSubChannelMeshGenerator
32+
type = SCMDetailedTriAssemblyMeshGenerator
3333
nrings = '${fparse n_rings}'
3434
n_cells = ${n_cells}
3535
flat_to_flat = '${fparse duct_inside}'
@@ -40,17 +40,6 @@ n_cells = 100
4040
pitch = '${fparse fuel_pin_pitch}'
4141
[]
4242

43-
[fuel_pins]
44-
type = SCMDetailedTriPinMeshGenerator
45-
input = subchannel
46-
nrings = '${fparse n_rings}'
47-
n_cells = ${n_cells}
48-
unheated_length_entry = '${fparse length_entry_fuel}'
49-
heated_length = '${fparse length_heated_fuel}'
50-
unheated_length_exit = '${fparse length_outlet_fuel}'
51-
pitch = '${fparse fuel_pin_pitch}'
52-
pin_diameter = '${fparse fuel_pin_diameter}'
53-
[]
5443
[]
5544

5645
[AuxVariables]

0 commit comments

Comments
 (0)