SubChannel Mesh Generator Migration
The SubChannel mesh generators now create the subchannel and pin meshes with a single assembly mesh generator. Inputs that previously chained a subchannel mesh generator into a pin mesh generator must be updated to use the corresponding assembly mesh generator.
This is a breaking input-file change. The old pin and subchannel mesh generator objects have been replaced by the assembly mesh generator objects listed below.
| Old generator | New generator |
|---|---|
SCMQuadSubChannelMeshGenerator + SCMQuadPinMeshGenerator | SCMQuadAssemblyMeshGenerator |
SCMTriSubChannelMeshGenerator + SCMTriPinMeshGenerator | SCMTriAssemblyMeshGenerator |
SCMDetailedQuadSubChannelMeshGenerator + SCMDetailedQuadPinMeshGenerator | SCMDetailedQuadAssemblyMeshGenerator |
SCMDetailedTriSubChannelMeshGenerator + SCMDetailedTriPinMeshGenerator | SCMDetailedTriAssemblyMeshGenerator |
The new assembly generators create a mesh with both subchannel and fuel_pins subdomains. The old input = ... parameter on the pin mesh generator is no longer used because there is no separate pin mesh generator step.
Quad Assembly Migration
Old quad inputs used two generators:
[QuadSubChannelMesh]
[sub_channel]
type = SCMQuadSubChannelMeshGenerator
nx = 3
ny = 3
n_cells = 10
pitch = 0.25
pin_diameter = 0.125
side_gap = 0.1
heated_length = 1
[]
[fuel_pins]
type = SCMQuadPinMeshGenerator
input = sub_channel
nx = 3
ny = 3
n_cells = 10
pitch = 0.25
heated_length = 1
[]
[]The replacement is one assembly generator:
[QuadSubChannelMesh]
[assembly]
type = SCMQuadAssemblyMeshGenerator
nx = 3
ny = 3
n_cells = 10
pitch = 0.25
pin_diameter = 0.125
side_gap = 0.1
heated_length = 1
[]
[]For square-lattice inputs, move the geometry and axial-discretization parameters onto the SCMQuadAssemblyMeshGenerator block. Remove the old pin mesh block and its input parameter.
The quad assembly generator supports 1xN and Nx1 subchannel-only meshes. These meshes do not contain pins. A 2x2 or larger quad assembly contains pins.
Triangular Assembly Migration
Old triangular inputs used a subchannel generator followed by a pin generator:
[TriSubChannelMesh]
[subchannel]
type = SCMTriSubChannelMeshGenerator
nrings = 3
n_cells = 20
flat_to_flat = 0.056
heated_length = 0.2
pitch = 0.012
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
[]
[pins]
type = SCMTriPinMeshGenerator
input = subchannel
[]
[]The replacement is one assembly generator:
[TriSubChannelMesh]
[assembly]
type = SCMTriAssemblyMeshGenerator
nrings = 3
n_cells = 20
flat_to_flat = 0.056
heated_length = 0.2
pitch = 0.012
pin_diameter = 0.01
dwire = 0.002
hwire = 0.0833
[]
[]For triangular-lattice inputs, move the pin, duct, wire-wrap, and axial-discretization parameters onto the SCMTriAssemblyMeshGenerator block. Remove the old pin mesh block and its input parameter.
Triangular assembly meshes always contain pins. The minimum triangular assembly has nrings = 2, which creates seven pins.
Detailed Mesh Migration
The detailed visualization mesh generators follow the same pattern. Replace the old chained subchannel and pin generator blocks with a single detailed assembly generator.
For quad detailed meshes:
[Mesh<<<{"href": "../../../syntax/Mesh/index.html"}>>>]
[assembly]
type = SCMDetailedQuadAssemblyMeshGenerator<<<{"description": "Creates a detailed mesh of subchannels and fuel pins in a square lattice arrangement", "href": "../../../source/meshgenerators/SCMDetailedQuadAssemblyMeshGenerator.html"}>>>
nx<<<{"description": "Number of channels in the x direction [-]"}>>> = 3
ny<<<{"description": "Number of channels in the y direction [-]"}>>> = 3
n_cells<<<{"description": "The number of cells in the axial direction"}>>> = 10
pitch<<<{"description": "Pitch [m]"}>>> = 0.25
pin_diameter<<<{"description": "Rod diameter [m]"}>>> = 0.125
side_gap<<<{"description": "The side gap, not to be confused with the gap between pins, this refers to the gap next to the duct or else the distance between the subchannel centroid to the duct wall.distance(edge pin center, duct wall) = pitch / 2 + side_gap [m]"}>>> = 0.1
heated_length<<<{"description": "Heated length [m]"}>>> = 1
[]
[]For triangular detailed meshes:
[Mesh<<<{"href": "../../../syntax/Mesh/index.html"}>>>]
[assembly]
type = SCMDetailedTriAssemblyMeshGenerator<<<{"description": "Creates a detailed mesh of subchannels and pins in a triangular lattice arrangement", "href": "../../../source/meshgenerators/SCMDetailedTriAssemblyMeshGenerator.html"}>>>
nrings<<<{"description": "Number of fuel-pin rings per assembly, counting the center pin as the first ring [-]"}>>> = 3
n_cells<<<{"description": "The number of cells in the axial direction"}>>> = 20
flat_to_flat<<<{"description": "Flat to flat distance for the hexagonal assembly [m]"}>>> = 0.056
heated_length<<<{"description": "Heated length [m]"}>>> = 0.2
pitch<<<{"description": "Pitch [m]"}>>> = 0.012
pin_diameter<<<{"description": "Rod diameter [m]"}>>> = 0.01
dwire = 0.002
hwire = 0.0833
[]
[]Parameter Changes
Most geometry parameters keep the same names and values. The main changes are:
| Old usage | New usage |
|---|---|
input = subchannel on the pin mesh generator | Remove it |
block_id for the subchannel mesh block | subchannel_block_id |
block_id for the pin mesh block | pin_block_id |
gap | side_gap |
If a downstream object, material, AuxVariable, or output block restricts by subdomain, update the restriction to use the new assembly generator subdomain names or IDs. The default generated subdomain names are subchannel for the fluid/subchannel mesh and fuel_pins for the pin mesh.
See SCMQuadAssemblyMeshGenerator, SCMTriAssemblyMeshGenerator, SCMDetailedQuadAssemblyMeshGenerator, and SCMDetailedTriAssemblyMeshGenerator for the full parameter lists.