Cardinal
|
#include <HexagonalSubchannelMesh.h>
Public Member Functions | |
HexagonalSubchannelMesh (const InputParameters ¶meters) | |
virtual std::unique_ptr< MooseMesh > | safeClone () const override |
virtual void | buildMesh () override |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Member Functions | |
void | getInteriorPoints () |
void | getEdgePoints () |
void | getCornerPoints () |
void | addPrismElem (const Point &pt1, const Point &pt2, const Point &pt3, const Real &zmin, const Real &zmax, const SubdomainID &id) |
void | addTriElem (const Point &pt1, const Point &pt2, const Point &pt3, const Real &z, const SubdomainID &id) |
const Point | rotatePoint (const Point &p, const Real &theta) const |
Protected Attributes | |
const unsigned int & | _theta_res |
Number of nodes on each pin's quarter circumference. More... | |
const unsigned int & | _gap_res |
Number of nodes on each gap. More... | |
const unsigned int & | _n_axial |
Number of axial cells to build. More... | |
const Real & | _height |
Height of assembly. More... | |
const SubdomainID & | _interior_id |
Subdomain ID to set for the interior channels. More... | |
const SubdomainID & | _edge_id |
Subdomain ID to set for the edge channels. More... | |
const SubdomainID & | _corner_id |
Subdomain ID to set for the corner channels. More... | |
const bool & | _volume_mesh |
std::vector< Point > | _interior_points |
Node positions for a single upward-facing interior subchannel with a centroid at (0, 0, 0) More... | |
std::vector< Point > | _edge_points |
Node positions for a single upward-facing edge subchannel with a centroid at (0, 0, 0) More... | |
std::vector< Point > | _corner_points |
Node positions for a single, top-right, corner subchannel with a centroid at (0, 0, 0) More... | |
int | _elems_per_interior |
Number of elements per interior channel. More... | |
int | _elems_per_edge |
Number of elements per edge channel. More... | |
int | _elems_per_corner |
Number of elements per corner channel. More... | |
const Real & | _bundle_pitch |
Bundle pitch (distance across bundle measured flat-to-flat on the inside of the duct) More... | |
const Real & | _pin_pitch |
Pin pitch. More... | |
const Real & | _pin_diameter |
Pin diameter. More... | |
const unsigned int & | _n_rings |
Total number of rings of pins. More... | |
const unsigned int | _axis |
Vertical axis of the bundle along which the pins are aligned. More... | |
HexagonalLatticeUtils | _hex_lattice |
Utility providing hexagonal lattice geometry calculations. More... | |
const std::vector< Point > & | _pin_centers |
Coordinates for the pin centers. More... | |
int | _elem_id_counter |
Element ID. More... | |
int | _node_id_counter |
Node ID. More... | |
Static Protected Attributes | |
static const Real | SIN30 = 0.5 |
static const Real | COS30 = std::sqrt(3.0) / 2.0 |
static const unsigned int | NODES_PER_PRISM = 6 |
Number of nodes per prism6 element. More... | |
static const unsigned int | NUM_SIDES = 6 |
Number of sides in a hexagon. More... | |
Mesh of a triangular lattice of pins enclosed in a hexagonal duct; this mesh should ONLY be used for visualization purposes - there is no node connectivity, so you cannot solve any continuous finite element problems on this mesh (nor it is recommended because the element creation pays no attention to normal physics requirements/recommendation, like resolving near boundaries or using near-equal element sizes).
HexagonalSubchannelMesh::HexagonalSubchannelMesh | ( | const InputParameters & | parameters | ) |
|
protected |
Add a prism6 element for given points in triangle and between two axial planes
[in] | pt1 | point in triangle |
[in] | pt2 | point in triangle |
[in] | pt3 | point in triangle |
[in] | zmin | minimum z-coordinate for layer |
[in] | zmax | maximum z-coordinate for layer |
[in] | id | subdomain ID |
|
protected |
Add a tri3 element for given points in triangle on a given axial plane
[in] | pt1 | point in triangle |
[in] | pt2 | point in triangle |
[in] | pt3 | point in triangle |
[in] | z | z-coordinate for layer |
[in] | id | subdomain ID |
|
overridevirtual |
|
protected |
Get the node positions for a single, upper-right, corner subchannel with a centroid at (0, 0, 0)
|
protected |
Get the node positions for a single, downwards-facing, edge subchannel with a centroid at (0, 0, 0)
|
protected |
Get the node positions for a single, upwards-facing, interior subchannel with a centroid at (0, 0, 0)
|
protectedinherited |
Rotate a point counterclockwise about the z axis
[in] | p | point |
[in] | theta | angle (radians) by which to rotate |
|
overridevirtual |
|
static |
|
protectedinherited |
Vertical axis of the bundle along which the pins are aligned.
|
protectedinherited |
Bundle pitch (distance across bundle measured flat-to-flat on the inside of the duct)
|
protected |
Subdomain ID to set for the corner channels.
|
protected |
Node positions for a single, top-right, corner subchannel with a centroid at (0, 0, 0)
|
protected |
Subdomain ID to set for the edge channels.
|
protected |
Node positions for a single upward-facing edge subchannel with a centroid at (0, 0, 0)
|
protectedinherited |
Element ID.
|
protected |
Number of elements per corner channel.
|
protected |
Number of elements per edge channel.
|
protected |
Number of elements per interior channel.
|
protected |
Number of nodes on each gap.
|
protected |
Height of assembly.
|
protectedinherited |
Utility providing hexagonal lattice geometry calculations.
|
protected |
Subdomain ID to set for the interior channels.
|
protected |
Node positions for a single upward-facing interior subchannel with a centroid at (0, 0, 0)
|
protected |
Number of axial cells to build.
|
protectedinherited |
Total number of rings of pins.
|
protectedinherited |
Node ID.
|
protectedinherited |
Coordinates for the pin centers.
|
protectedinherited |
Pin diameter.
|
protectedinherited |
Pin pitch.
|
protected |
Number of nodes on each pin's quarter circumference.
|
protected |
Whether to create a volume mesh (such that the volumes of the subchannels are represented) or a surface mesh (which will create a 2-D mesh on n_axial + 1 planes through the assembly).
|
staticprotectedinherited |
|
staticprotectedinherited |
Number of nodes per prism6 element.
|
staticprotectedinherited |
Number of sides in a hexagon.
|
staticprotectedinherited |