12 #include "libmesh/cell_prism6.h" 16 DetailedTriPinMeshGenerator,
25 "Creates a detailed mesh of fuel pins in a triangular lattice arrangement");
26 params.
addRequiredParam<MeshGeneratorName>(
"input",
"The corresponding subchannel mesh");
27 params.
addRequiredParam<
unsigned int>(
"nrings",
"Number of fuel Pin rings per assembly [-]");
34 _n_rings(getParam<unsigned
int>(
"nrings"))
38 std::unique_ptr<MeshBase>
41 std::unique_ptr<MeshBase> mesh_base = std::move(
_input);
44 mesh_base->set_mesh_dimension(3);
46 std::vector<Point> pin_centers;
50 for (
auto & ctr : pin_centers)
54 mesh_base->prepare_for_use();
T & getMesh(MooseMesh &mesh)
function to cast mesh
registerMooseObjectRenamed("SubChannelApp", DetailedTriPinMeshGenerator, "06/30/2025 24:00", SCMDetailedTriPinMeshGenerator)
virtual std::unique_ptr< MeshBase > generate() override
const Real _pitch
Distance between the neighbor fuel pins, pitch.
virtual const std::string & name() const
SCMDetailedTriPinMeshGenerator(const InputParameters ¶meters)
dof_id_type _elem_id
Counter for element numbering.
std::unique_ptr< MeshBase > & _input
Mesh that comes from another generator.
void generatePin(std::unique_ptr< MeshBase > &mesh_base, const Point ¢er)
static void rodPositions(std::vector< Point > &positions, unsigned int nrings, Real pitch, Point center)
Calculates and stores the pin positions/centers for a hexagonal assembly containing the given number ...
static InputParameters validParams()
const unsigned int & _n_rings
Number of rings in the fuel assembly.
std::unique_ptr< MeshBase > buildMeshBaseObject(unsigned int dim=libMesh::invalid_uint)
Base class for generating fuel pins.
static InputParameters validParams()
void ErrorVector unsigned int
const unsigned int & _block_id
Subdomain ID used for the mesh block.
Mesh generator for fuel pins in a triangular lattice.
registerMooseObject("SubChannelApp", SCMDetailedTriPinMeshGenerator)