Cardinal
HexagonalSubchannelMeshBase.h
Go to the documentation of this file.
1 /********************************************************************/
2 /* SOFTWARE COPYRIGHT NOTIFICATION */
3 /* Cardinal */
4 /* */
5 /* (c) 2021 UChicago Argonne, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by UChicago Argonne, LLC */
9 /* Under Contract No. DE-AC02-06CH11357 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* Prepared by Battelle Energy Alliance, LLC */
13 /* Under Contract No. DE-AC07-05ID14517 */
14 /* With the U. S. Department of Energy */
15 /* */
16 /* See LICENSE for full restrictions */
17 /********************************************************************/
18 
19 #pragma once
20 
21 #include "MooseMesh.h"
22 #include "HexagonalLatticeUtils.h"
23 
28 class HexagonalSubchannelMeshBase : public MooseMesh
29 {
30 public:
31  static InputParameters validParams();
32 
33  HexagonalSubchannelMeshBase(const InputParameters & parameters);
34  HexagonalSubchannelMeshBase(const HexagonalSubchannelMeshBase & /* other_mesh */) = default;
35 
37 
38 protected:
45  const Point rotatePoint(const Point & p, const Real & theta) const;
46 
48  const Real & _bundle_pitch;
49 
51  const Real & _pin_pitch;
52 
54  const Real & _pin_diameter;
55 
57  const unsigned int & _n_rings;
58 
60  const unsigned int _axis;
61 
63  HexagonalLatticeUtils _hex_lattice;
64 
66  const std::vector<Point> & _pin_centers;
67 
70 
73 
74  static const Real SIN30;
75 
76  static const Real COS30;
77 
79  static const unsigned int NODES_PER_PRISM;
80 
82  static const unsigned int NUM_SIDES;
83 };
static const unsigned int NUM_SIDES
Number of sides in a hexagon.
Definition: HexagonalSubchannelMeshBase.h:82
const Real & _bundle_pitch
Bundle pitch (distance across bundle measured flat-to-flat on the inside of the duct)
Definition: HexagonalSubchannelMeshBase.h:48
HexagonalSubchannelMeshBase & operator=(const HexagonalSubchannelMeshBase &other_mesh)=delete
static const Real SIN30
Definition: HexagonalSubchannelMeshBase.h:74
const Point rotatePoint(const Point &p, const Real &theta) const
Definition: HexagonalSubchannelMeshBase.C:65
static InputParameters validParams()
Definition: HexagonalSubchannelMeshBase.C:27
Definition: HexagonalSubchannelMeshBase.h:28
static const Real COS30
Definition: HexagonalSubchannelMeshBase.h:76
const Real & _pin_diameter
Pin diameter.
Definition: HexagonalSubchannelMeshBase.h:54
const unsigned int _axis
Vertical axis of the bundle along which the pins are aligned.
Definition: HexagonalSubchannelMeshBase.h:60
HexagonalSubchannelMeshBase(const InputParameters &parameters)
Definition: HexagonalSubchannelMeshBase.C:45
HexagonalLatticeUtils _hex_lattice
Utility providing hexagonal lattice geometry calculations.
Definition: HexagonalSubchannelMeshBase.h:63
static const unsigned int NODES_PER_PRISM
Number of nodes per prism6 element.
Definition: HexagonalSubchannelMeshBase.h:79
int _elem_id_counter
Element ID.
Definition: HexagonalSubchannelMeshBase.h:69
const Real & _pin_pitch
Pin pitch.
Definition: HexagonalSubchannelMeshBase.h:51
int _node_id_counter
Node ID.
Definition: HexagonalSubchannelMeshBase.h:72
const std::vector< Point > & _pin_centers
Coordinates for the pin centers.
Definition: HexagonalSubchannelMeshBase.h:66
const unsigned int & _n_rings
Total number of rings of pins.
Definition: HexagonalSubchannelMeshBase.h:57