https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
TriInterWrapperMesh Class Reference

Mesh class for triangular, edge and corner inter_wrappers for hexagonal lattice fuel assemblies. More...

#include <TriInterWrapperMesh.h>

Inheritance diagram for TriInterWrapperMesh:
[legend]

Public Types

enum  ParallelType { ParallelType::DEFAULT, ParallelType::REPLICATED, ParallelType::DISTRIBUTED }
 
typedef std::pair< const Node *, BoundaryIDPeriodicNodeInfo
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 TriInterWrapperMesh (const InputParameters &parameters)
 
 TriInterWrapperMesh (const TriInterWrapperMesh &other_mesh)
 
virtual std::unique_ptr< MooseMeshsafeClone () const override
 
virtual void buildMesh () override
 
virtual const unsigned intgetNumOfAssemblies () const override
 Return the number of assemblies. More...
 
virtual Node * getPinNode (unsigned int, unsigned) const override
 Get the pin mesh node for a given pin index and elevation index. More...
 
virtual bool pinMeshExist () const override
 Return if Pin Mesh exists or not. More...
 
virtual bool ductMeshExist () const override
 Return if duct Mesh exists or not. More...
 
virtual const RealgetDuctToPinGap () const
 
virtual const unsigned intgetPinIndex (const unsigned int channel_idx, const unsigned int neighbor_idx)
 Return Pin index given inter_wrapper index and local neighbor index. More...
 
virtual Node * getChannelNode (unsigned int i_chan, unsigned iz) const override
 Get the inter-wrapper mesh node for a given channel index and elevation index. More...
 
virtual const unsigned intgetNumOfChannels () const override
 Return the number of channels per layer. More...
 
virtual const unsigned intgetNumOfGapsPerLayer () const override
 Return the number of gaps per layer. More...
 
virtual const std::pair< unsigned int, unsigned int > & getGapChannels (unsigned int i_gap) const override
 Return a pair of inter-wrapper indices for a given gap index. More...
 
virtual const std::vector< unsigned int > & getChannelGaps (unsigned int i_chan) const override
 Return a vector of gap indices for a given channel index. More...
 
virtual const std::vector< double > & getGapMap () const override
 Return a map with gap sizes. More...
 
virtual const RealgetCrossflowSign (unsigned int i_chan, unsigned int i_local) const override
 Return a signs for the cross flow given a inter-wrapper index and local neighbor index. More...
 
virtual unsigned int getSubchannelIndexFromPoint (const Point &p) const override
 Return a inter-wrapper index for a given physical point p More...
 
virtual unsigned int channelIndex (const Point &point) const override
 
virtual EChannelType getSubchannelType (unsigned int index) const override
 Return the type of the inter-wrapper for given inter-wrapper index. More...
 
virtual Real getGapWidth (unsigned int gap_index) const override
 Return gap width for a given gap index. More...
 
virtual const std::pair< unsigned int, unsigned int > & getSweepFlowGaps (unsigned int i_chan) const
 
virtual const std::pair< unsigned int, unsigned int > & getSweepFlowChans (unsigned int i_chan) const
 
virtual const std::vector< unsigned int > & getPinChannels (unsigned int i_pin) const override
 Return a vector of channel indices for a given Pin index. More...
 
virtual const std::vector< unsigned int > & getChannelPins (unsigned int i_chan) const override
 Return a vector of pin indices for a given channel index. More...
 
virtual const bool & getIsTightSide () const
 
virtual unsigned int getPinIndexFromPoint (const Point &p) const override
 Return a pin index for a given physical point p More...
 
virtual unsigned int pinIndex (const Point &p) const override
 
void setChannelToDuctMaps (const std::vector< Node *> &duct_nodes)
 Setup the internal maps when there is a outside duct present. More...
 
virtual const std::vector< Real > & getZGrid () const
 Get axial location of layers. More...
 
virtual unsigned int getZIndex (const Point &point) const
 Get axial index of point. More...
 
virtual const std::vector< std::vector< Real > > & getKGrid () const
 Get axial cell location and value of loss coefficient. More...
 
virtual const RealgetKij () const
 Return lateral loss coefficient. More...
 
virtual const unsigned intgetNumOfAxialCells () const
 Return the number of axial cells. More...
 
virtual const RealgetPitch () const
 Return the pitch between 2 inter-wrappers. More...
 
virtual const RealgetSideX () const
 Return side lengths of the assembly. More...
 
virtual const RealgetSideY () const
 
virtual const RealgetHeatedLengthEntry () const
 Return unheated length at entry. More...
 
virtual const RealgetHeatedLength () const
 Return heated length. More...
 
virtual const RealgetHeatedLengthExit () const
 Return unheated length at exit. More...
 
virtual MooseMeshclone () const
 
void determineUseDistributedMesh ()
 
std::unique_ptr< MeshBase > buildMeshBaseObject (unsigned int dim=libMesh::invalid_uint)
 
std::unique_ptr< T > buildTypedMesh (unsigned int dim=libMesh::invalid_uint)
 
void setMeshBase (std::unique_ptr< MeshBase > mesh_base)
 
virtual void init ()
 
virtual unsigned int dimension () const
 
virtual unsigned int spatialDimension () const
 
virtual unsigned int effectiveSpatialDimension () const
 
unsigned int getBlocksMaxDimension (const std::vector< SubdomainName > &blocks) const
 
std::vector< BoundaryIDgetBoundaryIDs (const Elem *const elem, const unsigned short int side) const
 
const std::set< BoundaryID > & getBoundaryIDs () const
 
std::vector< BoundaryIDgetBoundaryIDs (const std::vector< BoundaryName > &boundary_name, bool generate_unknown=false) const
 
const Elem * getLowerDElem (const Elem *, unsigned short int) const
 
unsigned int getHigherDSide (const Elem *elem) const
 
void buildNodeList ()
 
void buildBndElemList ()
 
const std::map< dof_id_type, std::vector< dof_id_type > > & nodeToElemMap ()
 
const std::map< dof_id_type, std::vector< dof_id_type > > & nodeToActiveSemilocalElemMap ()
 
virtual bnd_node_iterator bndNodesBegin ()
 
virtual bnd_node_iterator bndNodesEnd ()
 
virtual bnd_elem_iterator bndElemsBegin ()
 
virtual bnd_elem_iterator bndElemsEnd ()
 
void buildNodeListFromSideList ()
 
void buildSideList (std::vector< dof_id_type > &el, std::vector< unsigned short int > &sl, std::vector< boundary_id_type > &il)
 
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildSideList ()
 
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildActiveSideList () const
 
unsigned int sideWithBoundaryID (const Elem *const elem, const BoundaryID boundary_id) const
 
MeshBase::node_iterator localNodesBegin ()
 
MeshBase::const_node_iterator localNodesBegin () const
 
MeshBase::node_iterator localNodesEnd ()
 
MeshBase::const_node_iterator localNodesEnd () const
 
MeshBase::element_iterator activeLocalElementsBegin ()
 
MeshBase::const_element_iterator activeLocalElementsBegin () const
 
const MeshBase::element_iterator activeLocalElementsEnd ()
 
const MeshBase::const_element_iterator activeLocalElementsEnd () const
 
virtual dof_id_type nNodes () const
 
virtual dof_id_type nElem () const
 
virtual dof_id_type nLocalNodes () const
 
virtual dof_id_type nActiveElem () const
 
virtual dof_id_type nActiveLocalElem () const
 
virtual SubdomainID nSubdomains () const
 
virtual unsigned int nPartitions () const
 
virtual bool skipPartitioning () const
 
virtual bool skipNoncriticalPartitioning () const
 
virtual dof_id_type maxNodeId () const
 
virtual dof_id_type maxElemId () const
 
virtual const Node & node (const dof_id_type i) const
 
virtual Node & node (const dof_id_type i)
 
virtual const Node & nodeRef (const dof_id_type i) const
 
virtual Node & nodeRef (const dof_id_type i)
 
virtual const Node * nodePtr (const dof_id_type i) const
 
virtual Node * nodePtr (const dof_id_type i)
 
virtual const Node * queryNodePtr (const dof_id_type i) const
 
virtual Node * queryNodePtr (const dof_id_type i)
 
virtual Elem * elem (const dof_id_type i)
 
virtual const Elem * elem (const dof_id_type i) const
 
virtual Elem * elemPtr (const dof_id_type i)
 
virtual const Elem * elemPtr (const dof_id_type i) const
 
virtual Elem * queryElemPtr (const dof_id_type i)
 
virtual const Elem * queryElemPtr (const dof_id_type i) const
 
bool prepared () const
 
virtual void prepared (bool state)
 
void needsPrepareForUse ()
 
void meshChanged ()
 
virtual void onMeshChanged ()
 
void cacheChangedLists ()
 
ConstElemPointerRangerefinedElementRange () const
 
ConstElemPointerRangecoarsenedElementRange () const
 
const std::vector< const Elem *> & coarsenedElementChildren (const Elem *elem) const
 
void updateActiveSemiLocalNodeRange (std::set< dof_id_type > &ghosted_elems)
 
bool isSemiLocal (Node *const node) const
 
const std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > & getBoundariesToElems () const
 
const std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > & getBoundariesToActiveSemiLocalElemIds () const
 
std::unordered_set< dof_id_typegetBoundaryActiveSemiLocalElemIds (BoundaryID bid) const
 
std::unordered_set< dof_id_typegetBoundaryActiveNeighborElemIds (BoundaryID bid) const
 
bool isBoundaryFullyExternalToSubdomains (BoundaryID bid, const std::set< SubdomainID > &blk_group) const
 
const std::set< SubdomainID > & meshSubdomains () const
 
const std::set< BoundaryID > & meshBoundaryIds () const
 
const std::set< BoundaryID > & meshSidesetIds () const
 
const std::set< BoundaryID > & meshNodesetIds () const
 
void setBoundaryToNormalMap (std::unique_ptr< std::map< BoundaryID, RealVectorValue >> boundary_map)
 
void setBoundaryToNormalMap (std::map< BoundaryID, RealVectorValue > *boundary_map)
 
void setMeshBoundaryIDs (std::set< BoundaryID > boundary_IDs)
 
const RealVectorValuegetNormalByBoundaryID (BoundaryID id) const
 
bool prepare (const MeshBase *mesh_to_clone)
 
void update ()
 
unsigned int uniformRefineLevel () const
 
void setUniformRefineLevel (unsigned int, bool deletion=true)
 
bool skipDeletionRepartitionAfterRefine () const
 
bool skipRefineWhenUseSplit () const
 
void addGhostedBoundary (BoundaryID boundary_id)
 
void setGhostedBoundaryInflation (const std::vector< Real > &inflation)
 
const std::set< unsigned int > & getGhostedBoundaries () const
 
const std::vector< Real > & getGhostedBoundaryInflation () const
 
void ghostGhostedBoundaries ()
 
void needGhostGhostedBoundaries (bool needghost)
 
unsigned int getPatchSize () const
 
unsigned int getGhostingPatchSize () const
 
unsigned int getMaxLeafSize () const
 
void setPatchUpdateStrategy (Moose::PatchUpdateType patch_update_strategy)
 
const Moose::PatchUpdateTypegetPatchUpdateStrategy () const
 
libMesh::BoundingBox getInflatedProcessorBoundingBox (Real inflation_multiplier=0.01) const
 
 operator libMesh::MeshBase & ()
 
 operator const libMesh::MeshBase & () const
 
MeshBase & getMesh ()
 
MeshBase & getMesh (const std::string &name)
 
const MeshBase & getMesh () const
 
const MeshBase & getMesh (const std::string &name) const
 
const MeshBase * getMeshPtr () const
 
void printInfo (std::ostream &os=libMesh::out, const unsigned int verbosity=0) const
 
const std::set< SubdomainID > & getNodeBlockIds (const Node &node) const
 
const std::vector< dof_id_type > & getNodeList (boundary_id_type nodeset_id) const
 
const Node * addUniqueNode (const Point &p, Real tol=1e-6)
 
Node * addQuadratureNode (const Elem *elem, const unsigned short int side, const unsigned int qp, BoundaryID bid, const Point &point)
 
Node * getQuadratureNode (const Elem *elem, const unsigned short int side, const unsigned int qp)
 
void clearQuadratureNodes ()
 
BoundaryID getBoundaryID (const BoundaryName &boundary_name) const
 
SubdomainID getSubdomainID (const SubdomainName &subdomain_name) const
 
std::vector< SubdomainIDgetSubdomainIDs (const std::vector< SubdomainName > &subdomain_names) const
 
std::set< SubdomainIDgetSubdomainIDs (const std::set< SubdomainName > &subdomain_names) const
 
void setSubdomainName (SubdomainID subdomain_id, const SubdomainName &name)
 
const std::string & getSubdomainName (SubdomainID subdomain_id) const
 
std::vector< SubdomainName > getSubdomainNames (const std::vector< SubdomainID > &subdomain_ids) const
 
void setBoundaryName (BoundaryID boundary_id, BoundaryName name)
 
const std::string & getBoundaryName (BoundaryID boundary_id)
 
void buildPeriodicNodeMap (std::multimap< dof_id_type, dof_id_type > &periodic_node_map, unsigned int var_number, libMesh::PeriodicBoundaries *pbs) const
 
void buildPeriodicNodeSets (std::map< BoundaryID, std::set< dof_id_type >> &periodic_node_sets, unsigned int var_number, libMesh::PeriodicBoundaries *pbs) const
 
Real dimensionWidth (unsigned int component) const
 
bool detectOrthogonalDimRanges (Real tol=1e-6)
 
void addPeriodicVariable (unsigned int var_num, BoundaryID primary, BoundaryID secondary)
 
bool isTranslatedPeriodic (unsigned int nonlinear_var_num, unsigned int component) const
 
RealVectorValue minPeriodicVector (unsigned int nonlinear_var_num, Point p, Point q) const
 
Real minPeriodicDistance (unsigned int nonlinear_var_num, Point p, Point q) const
 
const std::pair< BoundaryID, BoundaryID > * getPairedBoundaryMapping (unsigned int component)
 
void buildRefinementAndCoarseningMaps (Assembly *assembly)
 
const std::vector< std::vector< QpMap > > & getRefinementMap (const Elem &elem, int parent_side, int child, int child_side)
 
const std::vector< std::pair< unsigned int, QpMap > > & getCoarseningMap (const Elem &elem, int input_side)
 
void changeBoundaryId (const boundary_id_type old_id, const boundary_id_type new_id, bool delete_prev)
 
const std::set< BoundaryID > & getSubdomainBoundaryIds (const SubdomainID subdomain_id) const
 
std::set< BoundaryIDgetSubdomainInterfaceBoundaryIds (const SubdomainID subdomain_id) const
 
std::set< SubdomainIDgetBoundaryConnectedBlocks (const BoundaryID bid) const
 
std::set< SubdomainIDgetBoundaryConnectedSecondaryBlocks (const BoundaryID bid) const
 
std::set< SubdomainIDgetInterfaceConnectedBlocks (const BoundaryID bid) const
 
const std::set< SubdomainID > & getBlockConnectedBlocks (const SubdomainID subdomain_id) const
 
bool isBoundaryNode (dof_id_type node_id) const
 
bool isBoundaryNode (dof_id_type node_id, BoundaryID bnd_id) const
 
bool isBoundaryElem (dof_id_type elem_id) const
 
bool isBoundaryElem (dof_id_type elem_id, BoundaryID bnd_id) const
 
void errorIfDistributedMesh (std::string name) const
 
virtual bool isDistributedMesh () const
 
bool isParallelTypeForced () const
 
void setParallelType (ParallelType parallel_type)
 
ParallelType getParallelType () const
 
const MooseEnumpartitionerName () const
 
bool isPartitionerForced () const
 
void allowRecovery (bool allow)
 
void setCustomPartitioner (libMesh::Partitioner *partitioner)
 
bool isRegularOrthogonal ()
 
bool hasSecondOrderElements ()
 
virtual std::unique_ptr< libMesh::PointLocatorBasegetPointLocator () const
 
virtual std::string getFileName () const
 
void needsRemoteElemDeletion (bool need_delete)
 
bool needsRemoteElemDeletion () const
 
void allowRemoteElementRemoval (bool allow_removal)
 
bool allowRemoteElementRemoval () const
 
void deleteRemoteElements ()
 
bool hasMeshBase () const
 
bool hasElementID (const std::string &id_name) const
 
unsigned int getElementIDIndex (const std::string &id_name) const
 
dof_id_type maxElementID (unsigned int elem_id_index) const
 
dof_id_type minElementID (unsigned int elem_id_index) const
 
bool areElemIDsIdentical (const std::string &id_name1, const std::string &id_name2) const
 
std::set< dof_id_typegetAllElemIDs (unsigned int elem_id_index) const
 
std::set< dof_id_typegetElemIDsOnBlocks (unsigned int elem_id_index, const std::set< SubdomainID > &blks) const
 
std::unordered_map< dof_id_type, std::set< dof_id_type > > getElemIDMapping (const std::string &from_id_name, const std::string &to_id_name) const
 
void cacheFaceInfoVariableOwnership () const
 
void cacheFVElementalDoFs () const
 
void computeFiniteVolumeCoords () const
 
void isDisplaced (bool is_displaced)
 
bool isDisplaced () const
 
const std::map< boundary_id_type, std::vector< dof_id_type > > & nodeSetNodes () const
 
Moose::CoordinateSystemType getCoordSystem (SubdomainID sid) const
 
const std::map< SubdomainID, Moose::CoordinateSystemType > & getCoordSystem () const
 
Moose::CoordinateSystemType getUniqueCoordSystem () const
 
void setCoordSystem (const std::vector< SubdomainName > &blocks, const MultiMooseEnum &coord_sys)
 
void setAxisymmetricCoordAxis (const MooseEnum &rz_coord_axis)
 
void setGeneralAxisymmetricCoordAxes (const std::vector< SubdomainName > &blocks, const std::vector< std::pair< Point, RealVectorValue >> &axes)
 
const std::pair< Point, RealVectorValue > & getGeneralAxisymmetricCoordAxis (SubdomainID subdomain_id) const
 
bool usingGeneralAxisymmetricCoordAxes () const
 
unsigned int getAxisymmetricRadialCoord () const
 
void checkCoordinateSystems ()
 
void setCoordData (const MooseMesh &other_mesh)
 
void markFiniteVolumeInfoDirty ()
 
bool isFiniteVolumeInfoDirty () const
 
MooseAppCoordTransformcoordTransform ()
 
const MooseUnitslengthUnit () const
 
const std::unordered_map< std::pair< const Elem *, unsigned short int >, const Elem *> & getLowerDElemMap () const
 
bool isSplit () const
 
void buildFiniteVolumeInfo () const
 
void setupFiniteVolumeMeshData () const
 
void doingPRefinement (bool doing_p_refinement)
 
bool doingPRefinement () const
 
unsigned int maxPLevel () const
 
unsigned int maxHLevel () const
 
const std::vector< QpMap > & getPRefinementMap (const Elem &elem) const
 
const std::vector< QpMap > & getPRefinementSideMap (const Elem &elem) const
 
const std::vector< QpMap > & getPCoarseningMap (const Elem &elem) const
 
const std::vector< QpMap > & getPCoarseningSideMap (const Elem &elem) const
 
void buildPRefinementAndCoarseningMaps (Assembly *assembly)
 
bool isLowerD (const SubdomainID subdomain_id) const
 
bool hasLowerD () const
 
const std::set< SubdomainID > & interiorLowerDBlocks () const
 
const std::set< SubdomainID > & boundaryLowerDBlocks () const
 
bool getConstructNodeListFromSideList ()
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
virtual const std::string & name () const
 
std::string typeAndName () const
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &nm) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void mooseError (Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
PerfGraphperfGraph ()
 
libMesh::ConstElemRangegetActiveLocalElementRange ()
 
libMesh::ConstElemRangegetActiveLocalElementRange ()
 
libMesh::NodeRangegetActiveNodeRange ()
 
libMesh::NodeRangegetActiveNodeRange ()
 
SemiLocalNodeRangegetActiveSemiLocalNodeRange () const
 
SemiLocalNodeRangegetActiveSemiLocalNodeRange () const
 
libMesh::ConstNodeRangegetLocalNodeRange ()
 
libMesh::ConstNodeRangegetLocalNodeRange ()
 
libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode *> * getBoundaryNodeRange ()
 
libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode *> * getBoundaryNodeRange ()
 
libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement *> * getBoundaryElementRange ()
 
libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement *> * getBoundaryElementRange ()
 
virtual Real getMinInDimension (unsigned int component) const
 
virtual Real getMinInDimension (unsigned int component) const
 
virtual Real getMaxInDimension (unsigned int component) const
 
virtual Real getMaxInDimension (unsigned int component) const
 
bool isCustomPartitionerRequested () const
 
bool isCustomPartitionerRequested () const
 
void setIsCustomPartitionerRequested (bool cpr)
 
void setIsCustomPartitionerRequested (bool cpr)
 
unsigned int nFace () const
 
unsigned int nFace () const
 
const std::vector< const FaceInfo *> & faceInfo () const
 
const FaceInfofaceInfo (const Elem *elem, unsigned int side) const
 
const std::vector< const FaceInfo *> & faceInfo () const
 
const FaceInfofaceInfo (const Elem *elem, unsigned int side) const
 
face_info_iterator ownedFaceInfoBegin ()
 
face_info_iterator ownedFaceInfoBegin ()
 
face_info_iterator ownedFaceInfoEnd ()
 
face_info_iterator ownedFaceInfoEnd ()
 
elem_info_iterator ownedElemInfoBegin ()
 
elem_info_iterator ownedElemInfoBegin ()
 
elem_info_iterator ownedElemInfoEnd ()
 
elem_info_iterator ownedElemInfoEnd ()
 
const ElemInfoelemInfo (const dof_id_type id) const
 
const ElemInfoelemInfo (const dof_id_type id) const
 
const std::vector< const ElemInfo *> & elemInfoVector () const
 
const std::vector< const ElemInfo *> & elemInfoVector () const
 
const std::vector< FaceInfo > & allFaceInfo () const
 
const std::vector< FaceInfo > & allFaceInfo () const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static void rodPositions (std::vector< Point > &positions, unsigned int nrings, Real assembly_pitch, Point center)
 Calculates and stores the Pin positions/centers for a hexagonal assembly containing the given number of rings in a triangular/alternating row grid spaced 'assembly_pitch' apart. More...
 
static void generateZGrid (Real unheated_length_entry, Real heated_length, Real unheated_length_exit, unsigned int n_cells, std::vector< Real > &z_grid)
 Generate the spacing in z-direction using heated and unheated lengths. More...
 
static void setSubdomainName (MeshBase &mesh, SubdomainID subdomain_id, const SubdomainName &name)
 
static void changeBoundaryId (MeshBase &mesh, const boundary_id_type old_id, const boundary_id_type new_id, bool delete_prev)
 
static MooseEnum partitioning ()
 
static MooseEnum elemTypes ()
 
static void setPartitioner (MeshBase &mesh_base, MooseEnum &partitioner, bool use_distributed_mesh, const InputParameters &params, MooseObject &context_obj)
 

Public Attributes

const ConsoleStream _console
 

Static Public Attributes

static const unsigned int N_CORNERS = 6
 number of corners in the duct x-sec More...
 

Protected Types

typedef std::vector< BndNode *>::iterator bnd_node_iterator_imp
 
typedef std::vector< BndNode *>::const_iterator const_bnd_node_iterator_imp
 
typedef std::vector< BndElement *>::iterator bnd_elem_iterator_imp
 
typedef std::vector< BndElement *>::const_iterator const_bnd_elem_iterator_imp
 

Protected Member Functions

void cacheInfo ()
 
void freeBndNodes ()
 
void freeBndElems ()
 
void setPartitionerHelper (MeshBase *mesh=nullptr)
 
T & declareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const T & getRestartableData (const std::string &data_name) const
 
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 

Protected Attributes

unsigned int _n_rings
 number of rings of fuel pins More...
 
unsigned int _n_channels
 number of subchannels More...
 
Real _flat_to_flat
 the distance between flat surfaces of the duct facing each other More...
 
Real _duct_to_pin_gap
 the gap thickness between the duct and peripheral fuel pins More...
 
std::vector< std::vector< Node * > > _nodes
 nodes More...
 
std::vector< Node * > _duct_nodes
 A list of all mesh nodes that form the (elements of) the hexagonal duct mesh that surrounds the pins/intertices. More...
 
std::map< Node *, Node * > _chan_to_duct_node_map
 A map for providing the closest/corresponding duct node associated with each interstice node. More...
 
std::map< Node *, Node * > _duct_node_to_chan_map
 A map for providing the closest/corresponding interstice node associated with each duct node. More...
 
std::vector< std::pair< unsigned int, unsigned int > > _gap_to_chan_map
 stores the channel pairs for each gap More...
 
std::vector< std::pair< unsigned int, unsigned int > > _gap_to_pin_map
 stores the fuel pins belonging to each gap More...
 
std::vector< std::vector< unsigned int > > _chan_to_gap_map
 stores the gaps that forms each interstice More...
 
std::vector< std::vector< Real > > _sign_id_crossflow_map
 Defines the global cross-flow direction -1 or 1 for each interstice and for all gaps that are belonging to the corresponding interstice. More...
 
std::vector< Real_gij_map
 gap size More...
 
std::vector< std::vector< Real > > _subchannel_position
 x,y coordinates of the interstice More...
 
std::vector< Point > _pin_position
 x,y coordinates of the fuel pins More...
 
std::vector< std::vector< Real > > _pins_in_rings
 fuel pins that are belonging to each ring More...
 
std::vector< std::vector< unsigned int > > _chan_to_pin_map
 stores the fuel pins belonging to each interstice More...
 
unsigned int _n_assemblies
 number of assemblies More...
 
unsigned int _n_gaps
 number of gaps More...
 
std::vector< EChannelType_subch_type
 interstice type More...
 
std::vector< EChannelType_gap_type
 gap type More...
 
std::vector< std::pair< unsigned int, unsigned int > > _gap_pairs_sf
 sweeping flow model gap pairs per channel to specify directional edge flow More...
 
std::vector< std::pair< unsigned int, unsigned int > > _chan_pairs_sf
 sweeping flow model channel pairs to specify directional edge flow More...
 
std::vector< std::vector< unsigned int > > _pin_to_chan_map
 TODO: channel indices corresponding to a given pin index. More...
 
bool _tight_side_bypass
 whether the side bypass shape follows the assemblies More...
 
Real _unheated_length_entry
 unheated length of the fuel Pin at the entry of the assembly More...
 
Real _heated_length
 heated length of the fuel Pin More...
 
Real _unheated_length_exit
 unheated length of the fuel Pin at the exit of the assembly More...
 
std::vector< Real_z_grid
 axial location of nodes More...
 
std::vector< std::vector< Real > > _k_grid
 axial form loss coefficient per computational cell More...
 
Real _kij
 Lateral form loss coefficient. More...
 
Real _assembly_pitch
 Distance between neighboring assemblies. More...
 
Real _assembly_side_x
 Size of assembly sides. More...
 
Real _assembly_side_y
 
unsigned int _n_cells
 number of axial cells More...
 
 X
 
 Y
 
 Z
 
 MIN
 
 MAX
 
std::vector< std::unique_ptr< libMesh::GhostingFunctor > > _ghosting_functors
 
std::vector< std::shared_ptr< RelationshipManager > > _relationship_managers
 
bool _built_from_other_mesh
 
ParallelType _parallel_type
 
bool _use_distributed_mesh
 
bool _distribution_overridden
 
bool _parallel_type_overridden
 
std::unique_ptr< libMesh::MeshBase_mesh
 
MooseEnum _partitioner_name
 
bool _partitioner_overridden
 
std::unique_ptr< libMesh::Partitioner_custom_partitioner
 
bool _custom_partitioner_requested
 
unsigned int _uniform_refine_level
 
bool _skip_refine_when_use_split
 
bool _skip_deletion_repartition_after_refine
 
bool _is_changed
 
bool _is_nemesis
 
bool _moose_mesh_prepared
 
std::unique_ptr< ConstElemPointerRange_refined_elements
 
std::unique_ptr< ConstElemPointerRange_coarsened_elements
 
std::map< const Elem *, std::vector< const Elem *> > _coarsened_element_children
 
std::set< Node *> _semilocal_node_list
 
std::unique_ptr< libMesh::ConstElemRange_active_local_elem_range
 
std::unique_ptr< SemiLocalNodeRange_active_semilocal_node_range
 
std::unique_ptr< libMesh::NodeRange_active_node_range
 
std::unique_ptr< libMesh::ConstNodeRange_local_node_range
 
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode *> > _bnd_node_range
 
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement *> > _bnd_elem_range
 
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
 
bool _node_to_elem_map_built
 
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
 
bool _node_to_active_semilocal_elem_map_built
 
std::set< SubdomainID_mesh_subdomains
 
std::unique_ptr< std::map< BoundaryID, RealVectorValue > > _boundary_to_normal_map
 
std::vector< BndNode *> _bnd_nodes
 
std::map< boundary_id_type, std::set< dof_id_type > > _bnd_node_ids
 
std::vector< BndElement *> _bnd_elems
 
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
 
std::map< dof_id_type, Node *> _quadrature_nodes
 
std::map< dof_id_type, std::map< unsigned int, std::map< dof_id_type, Node *> > > _elem_to_side_to_qp_to_quadrature_nodes
 
std::vector< BndNode_extra_bnd_nodes
 
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
 
std::map< boundary_id_type, std::vector< dof_id_type > > _node_set_nodes
 
std::set< unsigned int_ghosted_boundaries
 
std::vector< Real_ghosted_boundaries_inflation
 
unsigned int _patch_size
 
unsigned int _ghosting_patch_size
 
unsigned int _max_leaf_size
 
Moose::PatchUpdateType _patch_update_strategy
 
std::vector< Node *> _node_map
 
bool _regular_orthogonal_mesh
 
std::vector< std::vector< Real > > _bounds
 
std::vector< std::pair< BoundaryID, BoundaryID > > _paired_boundary
 
const bool _is_split
 
const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
std::set< BoundaryID_mesh_boundary_ids
 
std::set< BoundaryID_mesh_sideset_ids
 
std::set< BoundaryID_mesh_nodeset_ids
 
const Parallel::Communicator & _communicator
 

Friends

class SCMTriInterWrapperMeshGenerator
 

Detailed Description

Mesh class for triangular, edge and corner inter_wrappers for hexagonal lattice fuel assemblies.

Definition at line 17 of file TriInterWrapperMesh.h.

Constructor & Destructor Documentation

◆ TriInterWrapperMesh() [1/2]

TriInterWrapperMesh::TriInterWrapperMesh ( const InputParameters parameters)

Definition at line 25 of file TriInterWrapperMesh.C.

25  : InterWrapperMesh(params)
26 {
27 }
InterWrapperMesh(const InputParameters &parameters)

◆ TriInterWrapperMesh() [2/2]

TriInterWrapperMesh::TriInterWrapperMesh ( const TriInterWrapperMesh other_mesh)

Definition at line 29 of file TriInterWrapperMesh.C.

30  : InterWrapperMesh(other_mesh),
31  _n_rings(other_mesh._n_rings),
32  _n_channels(other_mesh._n_channels),
33  _flat_to_flat(other_mesh._flat_to_flat),
35  _nodes(other_mesh._nodes),
36  _duct_nodes(other_mesh._duct_nodes),
40  _gap_to_pin_map(other_mesh._gap_to_pin_map),
43  _gij_map(other_mesh._gij_map),
45  _pin_position(other_mesh._pin_position),
46  _pins_in_rings(other_mesh._pins_in_rings),
48  _n_assemblies(other_mesh._n_assemblies),
49  _n_gaps(other_mesh._n_gaps),
50  _subch_type(other_mesh._subch_type),
51  _gap_type(other_mesh._gap_type),
52  _gap_pairs_sf(other_mesh._gap_pairs_sf),
53  _chan_pairs_sf(other_mesh._chan_pairs_sf),
56 {
57 }
std::vector< std::vector< Real > > _sign_id_crossflow_map
Defines the global cross-flow direction -1 or 1 for each interstice and for all gaps that are belongi...
std::vector< Node * > _duct_nodes
A list of all mesh nodes that form the (elements of) the hexagonal duct mesh that surrounds the pins/...
unsigned int _n_assemblies
number of assemblies
std::vector< EChannelType > _gap_type
gap type
std::vector< Point > _pin_position
x,y coordinates of the fuel pins
std::vector< std::vector< Real > > _subchannel_position
x,y coordinates of the interstice
Real _flat_to_flat
the distance between flat surfaces of the duct facing each other
InterWrapperMesh(const InputParameters &parameters)
std::map< Node *, Node * > _duct_node_to_chan_map
A map for providing the closest/corresponding interstice node associated with each duct node...
Real _duct_to_pin_gap
the gap thickness between the duct and peripheral fuel pins
bool _tight_side_bypass
whether the side bypass shape follows the assemblies
unsigned int _n_rings
number of rings of fuel pins
std::vector< std::pair< unsigned int, unsigned int > > _gap_to_chan_map
stores the channel pairs for each gap
std::vector< std::pair< unsigned int, unsigned int > > _gap_pairs_sf
sweeping flow model gap pairs per channel to specify directional edge flow
std::vector< std::pair< unsigned int, unsigned int > > _chan_pairs_sf
sweeping flow model channel pairs to specify directional edge flow
unsigned int _n_gaps
number of gaps
std::vector< EChannelType > _subch_type
interstice type
std::vector< std::vector< Real > > _pins_in_rings
fuel pins that are belonging to each ring
std::vector< std::pair< unsigned int, unsigned int > > _gap_to_pin_map
stores the fuel pins belonging to each gap
unsigned int _n_channels
number of subchannels
std::vector< Real > _gij_map
gap size
std::vector< std::vector< unsigned int > > _chan_to_pin_map
stores the fuel pins belonging to each interstice
std::vector< std::vector< Node * > > _nodes
nodes
std::vector< std::vector< unsigned int > > _pin_to_chan_map
TODO: channel indices corresponding to a given pin index.
std::map< Node *, Node * > _chan_to_duct_node_map
A map for providing the closest/corresponding duct node associated with each interstice node...
std::vector< std::vector< unsigned int > > _chan_to_gap_map
stores the gaps that forms each interstice

Member Function Documentation

◆ buildMesh()

void TriInterWrapperMesh::buildMesh ( )
overridevirtual

Implements MooseMesh.

Definition at line 94 of file TriInterWrapperMesh.C.

95 {
96 }

◆ channelIndex()

unsigned int TriInterWrapperMesh::channelIndex ( const Point &  point) const
overridevirtual

Implements InterWrapperMesh.

Definition at line 87 of file TriInterWrapperMesh.C.

88 {
89  mooseAssert(false, "This is not implemented");
90  return 0;
91 }

◆ ductMeshExist()

virtual bool TriInterWrapperMesh::ductMeshExist ( ) const
inlineoverridevirtual

Return if duct Mesh exists or not.

Implements InterWrapperMesh.

Definition at line 30 of file TriInterWrapperMesh.h.

30 { return false; }

◆ generateZGrid()

void InterWrapperMesh::generateZGrid ( Real  unheated_length_entry,
Real  heated_length,
Real  unheated_length_exit,
unsigned int  n_cells,
std::vector< Real > &  z_grid 
)
staticinherited

Generate the spacing in z-direction using heated and unheated lengths.

Definition at line 38 of file InterWrapperMesh.C.

Referenced by SCMTriInterWrapperMeshGenerator::SCMTriInterWrapperMeshGenerator().

43 {
44  Real L = unheated_length_entry + heated_length + unheated_length_exit;
45  Real dz = L / n_cells;
46  for (unsigned int i = 0; i < n_cells + 1; i++)
47  z_grid.push_back(dz * i);
48 }
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
dof_id_type n_cells

◆ getChannelGaps()

virtual const std::vector<unsigned int>& TriInterWrapperMesh::getChannelGaps ( unsigned int  i_chan) const
inlineoverridevirtual

Return a vector of gap indices for a given channel index.

Implements InterWrapperMesh.

Definition at line 54 of file TriInterWrapperMesh.h.

55  {
56  return _chan_to_gap_map[i_chan];
57  }
std::vector< std::vector< unsigned int > > _chan_to_gap_map
stores the gaps that forms each interstice

◆ getChannelNode()

virtual Node* TriInterWrapperMesh::getChannelNode ( unsigned int  i_chan,
unsigned  iz 
) const
inlineoverridevirtual

Get the inter-wrapper mesh node for a given channel index and elevation index.

Implements InterWrapperMesh.

Definition at line 43 of file TriInterWrapperMesh.h.

44  {
45  return _nodes[i_chan][iz];
46  }
std::vector< std::vector< Node * > > _nodes
nodes

◆ getChannelPins()

virtual const std::vector<unsigned int>& TriInterWrapperMesh::getChannelPins ( unsigned int  i_chan) const
inlineoverridevirtual

Return a vector of pin indices for a given channel index.

Implements InterWrapperMesh.

Definition at line 89 of file TriInterWrapperMesh.h.

90  {
91  return _chan_to_pin_map[i_chan];
92  }
std::vector< std::vector< unsigned int > > _chan_to_pin_map
stores the fuel pins belonging to each interstice

◆ getCrossflowSign()

virtual const Real& TriInterWrapperMesh::getCrossflowSign ( unsigned int  i_chan,
unsigned int  i_local 
) const
inlineoverridevirtual

Return a signs for the cross flow given a inter-wrapper index and local neighbor index.

Implements InterWrapperMesh.

Definition at line 59 of file TriInterWrapperMesh.h.

60  {
61  return _sign_id_crossflow_map[i_chan][i_local];
62  }
std::vector< std::vector< Real > > _sign_id_crossflow_map
Defines the global cross-flow direction -1 or 1 for each interstice and for all gaps that are belongi...

◆ getDuctToPinGap()

virtual const Real& TriInterWrapperMesh::getDuctToPinGap ( ) const
inlinevirtual

Definition at line 32 of file TriInterWrapperMesh.h.

Referenced by TriInterWrapper1PhaseProblem::computeh(), TriInterWrapperWettedPerimIC::value(), and TriInterWrapperFlowAreaIC::value().

32 { return _duct_to_pin_gap; }
Real _duct_to_pin_gap
the gap thickness between the duct and peripheral fuel pins

◆ getGapChannels()

virtual const std::pair<unsigned int, unsigned int>& TriInterWrapperMesh::getGapChannels ( unsigned int  i_gap) const
inlineoverridevirtual

Return a pair of inter-wrapper indices for a given gap index.

Implements InterWrapperMesh.

Definition at line 50 of file TriInterWrapperMesh.h.

51  {
52  return _gap_to_chan_map[i_gap];
53  }
std::vector< std::pair< unsigned int, unsigned int > > _gap_to_chan_map
stores the channel pairs for each gap

◆ getGapMap()

virtual const std::vector<double>& TriInterWrapperMesh::getGapMap ( ) const
inlineoverridevirtual

Return a map with gap sizes.

Implements InterWrapperMesh.

Definition at line 58 of file TriInterWrapperMesh.h.

58 { return _gij_map; }
std::vector< Real > _gij_map
gap size

◆ getGapWidth()

virtual Real TriInterWrapperMesh::getGapWidth ( unsigned int  gap_index) const
inlineoverridevirtual

Return gap width for a given gap index.

Implements InterWrapperMesh.

Definition at line 72 of file TriInterWrapperMesh.h.

72 { return _gij_map[gap_index]; }
std::vector< Real > _gij_map
gap size

◆ getHeatedLength()

virtual const Real& InterWrapperMesh::getHeatedLength ( ) const
inlinevirtualinherited

◆ getHeatedLengthEntry()

virtual const Real& InterWrapperMesh::getHeatedLengthEntry ( ) const
inlinevirtualinherited

◆ getHeatedLengthExit()

virtual const Real& InterWrapperMesh::getHeatedLengthExit ( ) const
inlinevirtualinherited

Return unheated length at exit.

Definition at line 140 of file InterWrapperMesh.h.

140 { return _unheated_length_exit; }
Real _unheated_length_exit
unheated length of the fuel Pin at the exit of the assembly

◆ getIsTightSide()

virtual const bool& TriInterWrapperMesh::getIsTightSide ( ) const
inlinevirtual

Definition at line 94 of file TriInterWrapperMesh.h.

Referenced by TriInterWrapperWettedPerimIC::value(), and TriInterWrapperFlowAreaIC::value().

94 { return _tight_side_bypass; }
bool _tight_side_bypass
whether the side bypass shape follows the assemblies

◆ getKGrid()

virtual const std::vector<std::vector<Real> >& InterWrapperMesh::getKGrid ( ) const
inlinevirtualinherited

Get axial cell location and value of loss coefficient.

Definition at line 38 of file InterWrapperMesh.h.

Referenced by TriInterWrapper1PhaseProblem::computeDP(), and InterWrapper1PhaseProblem::computeDP().

38 { return _k_grid; }
std::vector< std::vector< Real > > _k_grid
axial form loss coefficient per computational cell

◆ getKij()

virtual const Real& InterWrapperMesh::getKij ( ) const
inlinevirtualinherited

Return lateral loss coefficient.

Definition at line 43 of file InterWrapperMesh.h.

43 { return _kij; }
Real _kij
Lateral form loss coefficient.

◆ getNumOfAssemblies()

virtual const unsigned int& TriInterWrapperMesh::getNumOfAssemblies ( ) const
inlineoverridevirtual

Return the number of assemblies.

Implements InterWrapperMesh.

Definition at line 25 of file TriInterWrapperMesh.h.

Referenced by TriInterWrapperPowerIC::initialSetup(), and TriInterWrapperPowerIC::TriInterWrapperPowerIC().

25 { return _n_assemblies; }
unsigned int _n_assemblies
number of assemblies

◆ getNumOfAxialCells()

virtual const unsigned int& InterWrapperMesh::getNumOfAxialCells ( ) const
inlinevirtualinherited

Return the number of axial cells.

Definition at line 48 of file InterWrapperMesh.h.

Referenced by TriInterWrapper1PhaseProblem::computeh(), QuadInterWrapperPowerIC::initialSetup(), and TriInterWrapperPowerIC::initialSetup().

48 { return _n_cells; }
unsigned int _n_cells
number of axial cells

◆ getNumOfChannels()

virtual const unsigned int& TriInterWrapperMesh::getNumOfChannels ( ) const
inlineoverridevirtual

Return the number of channels per layer.

Implements InterWrapperMesh.

Definition at line 47 of file TriInterWrapperMesh.h.

47 { return _n_channels; }
unsigned int _n_channels
number of subchannels

◆ getNumOfGapsPerLayer()

virtual const unsigned int& TriInterWrapperMesh::getNumOfGapsPerLayer ( ) const
inlineoverridevirtual

Return the number of gaps per layer.

Implements InterWrapperMesh.

Definition at line 48 of file TriInterWrapperMesh.h.

48 { return _n_gaps; }
unsigned int _n_gaps
number of gaps

◆ getPinChannels()

virtual const std::vector<unsigned int>& TriInterWrapperMesh::getPinChannels ( unsigned int  i_pin) const
inlineoverridevirtual

Return a vector of channel indices for a given Pin index.

Implements InterWrapperMesh.

Definition at line 84 of file TriInterWrapperMesh.h.

85  {
86  return _pin_to_chan_map[i_pin];
87  }
std::vector< std::vector< unsigned int > > _pin_to_chan_map
TODO: channel indices corresponding to a given pin index.

◆ getPinIndex()

virtual const unsigned int& TriInterWrapperMesh::getPinIndex ( const unsigned int  channel_idx,
const unsigned int  neighbor_idx 
)
inlinevirtual

Return Pin index given inter_wrapper index and local neighbor index.

Definition at line 37 of file TriInterWrapperMesh.h.

Referenced by TriInterWrapperPowerIC::value().

39  {
40  return _chan_to_pin_map[channel_idx][neighbor_idx];
41  }
std::vector< std::vector< unsigned int > > _chan_to_pin_map
stores the fuel pins belonging to each interstice

◆ getPinIndexFromPoint()

unsigned int TriInterWrapperMesh::getPinIndexFromPoint ( const Point &  p) const
overridevirtual

Return a pin index for a given physical point p

Implements InterWrapperMesh.

Definition at line 99 of file TriInterWrapperMesh.C.

100 {
101  mooseAssert(false, "This is not implemented");
102  return 0;
103 }

◆ getPinNode()

virtual Node* TriInterWrapperMesh::getPinNode ( unsigned  i_pin,
unsigned  iz 
) const
inlineoverridevirtual

Get the pin mesh node for a given pin index and elevation index.

Implements InterWrapperMesh.

Definition at line 27 of file TriInterWrapperMesh.h.

27 { return nullptr; }

◆ getPitch()

virtual const Real& InterWrapperMesh::getPitch ( ) const
inlinevirtualinherited

Return the pitch between 2 inter-wrappers.

Reimplemented in QuadInterWrapperMesh.

Definition at line 114 of file InterWrapperMesh.h.

Referenced by TriInterWrapper1PhaseProblem::computeh(), InterWrapper1PhaseProblem::computeWij(), and TriInterWrapperFlowAreaIC::value().

114 { return _assembly_pitch; }
Real _assembly_pitch
Distance between neighboring assemblies.

◆ getSideX()

virtual const Real& InterWrapperMesh::getSideX ( ) const
inlinevirtualinherited

◆ getSideY()

virtual const Real& InterWrapperMesh::getSideY ( ) const
inlinevirtualinherited

◆ getSubchannelIndexFromPoint()

unsigned int TriInterWrapperMesh::getSubchannelIndexFromPoint ( const Point &  p) const
overridevirtual

Return a inter-wrapper index for a given physical point p

Implements InterWrapperMesh.

Definition at line 66 of file TriInterWrapperMesh.C.

Referenced by TriInterWrapperWettedPerimIC::value(), TriInterWrapperFlowAreaIC::value(), and TriInterWrapperPowerIC::value().

67 {
68  Real distance0 = 1.0e+8;
69  Real distance1;
70  unsigned int j = 0;
71 
72  for (unsigned int i = 0; i < _n_channels; i++)
73  {
74  distance1 = std::sqrt(std::pow((p(0) - _subchannel_position[i][0]), 2.0) +
75  std::pow((p(1) - _subchannel_position[i][1]), 2.0));
76 
77  if (distance1 < distance0)
78  {
79  j = i;
80  distance0 = distance1;
81  } // if
82  } // for
83  return j;
84 }
std::vector< std::vector< Real > > _subchannel_position
x,y coordinates of the interstice
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int _n_channels
number of subchannels
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
MooseUnits pow(const MooseUnits &, int)

◆ getSubchannelType()

virtual EChannelType TriInterWrapperMesh::getSubchannelType ( unsigned int  index) const
inlineoverridevirtual

Return the type of the inter-wrapper for given inter-wrapper index.

Implements InterWrapperMesh.

Definition at line 67 of file TriInterWrapperMesh.h.

Referenced by TriInterWrapperWettedPerimIC::value(), TriInterWrapperFlowAreaIC::value(), and TriInterWrapperPowerIC::value().

68  {
69  return _subch_type[index];
70  }
std::vector< EChannelType > _subch_type
interstice type

◆ getSweepFlowChans()

virtual const std::pair<unsigned int, unsigned int>& TriInterWrapperMesh::getSweepFlowChans ( unsigned int  i_chan) const
inlinevirtual

Definition at line 79 of file TriInterWrapperMesh.h.

Referenced by TriInterWrapper1PhaseProblem::computeh().

80  {
81  return _chan_pairs_sf[i_chan];
82  }
std::vector< std::pair< unsigned int, unsigned int > > _chan_pairs_sf
sweeping flow model channel pairs to specify directional edge flow

◆ getSweepFlowGaps()

virtual const std::pair<unsigned int, unsigned int>& TriInterWrapperMesh::getSweepFlowGaps ( unsigned int  i_chan) const
inlinevirtual

Definition at line 74 of file TriInterWrapperMesh.h.

75  {
76  return _gap_pairs_sf[i_chan];
77  }
std::vector< std::pair< unsigned int, unsigned int > > _gap_pairs_sf
sweeping flow model gap pairs per channel to specify directional edge flow

◆ getZGrid()

virtual const std::vector<Real>& InterWrapperMesh::getZGrid ( ) const
inlinevirtualinherited

Get axial location of layers.

Definition at line 28 of file InterWrapperMesh.h.

Referenced by TriInterWrapper1PhaseProblem::computeDP(), TriInterWrapper1PhaseProblem::computeh(), QuadInterWrapperPowerIC::initialSetup(), and TriInterWrapperPowerIC::initialSetup().

28 { return _z_grid; }
std::vector< Real > _z_grid
axial location of nodes

◆ getZIndex()

unsigned int InterWrapperMesh::getZIndex ( const Point &  point) const
virtualinherited

Get axial index of point.

Definition at line 51 of file InterWrapperMesh.C.

Referenced by InterWrapperSolutionTransfer::getFromNode().

52 {
53  if (_z_grid.size() == 0)
54  mooseError("_z_grid is empty.");
55 
56  if (point(2) <= _z_grid[0])
57  return 0;
58  if (point(2) >= _z_grid[_z_grid.size() - 1])
59  return _z_grid.size() - 1;
60 
61  unsigned int lo = 0;
62  unsigned int hi = _z_grid.size();
63  while (lo < hi)
64  {
65  unsigned int mid = (lo + hi) / 2;
66  if (std::abs(_z_grid[mid] - point(2)) < 1e-5)
67  return mid;
68  else if (_z_grid[mid] < point(2))
69  lo = mid;
70  else
71  hi = mid;
72  }
73  return lo;
74 }
std::vector< Real > _z_grid
axial location of nodes
void mooseError(Args &&... args) const

◆ pinIndex()

unsigned int TriInterWrapperMesh::pinIndex ( const Point &  p) const
overridevirtual

Implements InterWrapperMesh.

Definition at line 106 of file TriInterWrapperMesh.C.

107 {
108  mooseAssert(false, "This is not implemented");
109  return 0;
110 }

◆ pinMeshExist()

virtual bool TriInterWrapperMesh::pinMeshExist ( ) const
inlineoverridevirtual

Return if Pin Mesh exists or not.

Implements InterWrapperMesh.

Definition at line 29 of file TriInterWrapperMesh.h.

29 { return false; }

◆ rodPositions()

void TriInterWrapperMesh::rodPositions ( std::vector< Point > &  positions,
unsigned int  nrings,
Real  assembly_pitch,
Point  center 
)
static

Calculates and stores the Pin positions/centers for a hexagonal assembly containing the given number of rings in a triangular/alternating row grid spaced 'assembly_pitch' apart.

The points are generated such that the duct is centered at the given center point.

Defining parameters

Definition at line 113 of file TriInterWrapperMesh.C.

Referenced by SCMTriInterWrapperMeshGenerator::SCMTriInterWrapperMeshGenerator().

117 {
119  // distance: it is the distance to the next Pin
120  //
121  Real theta = 0.0;
122  Real dtheta = 0.0;
123  Real distance = 0.0;
124  Real theta1 = 0.0;
125  Real theta_corrected = 0.0;
126  Real pi = libMesh::pi;
127  unsigned int k = 0;
128  positions.emplace_back(0.0, 0.0);
129  for (unsigned int i = 1; i < nrings; i++)
130  {
131  dtheta = 2.0 * pi / (i * 6);
132  theta = 0.0;
133  for (unsigned int j = 0; j < i * 6; j++)
134  {
135  k = k + 1;
136  theta1 = fmod(theta + 1.0e-10, pi / 3.0);
137  distance = std::sqrt(
138  (pow(i * assembly_pitch, 2) + pow(theta1 / dtheta * assembly_pitch, 2) -
139  2.0 * i * assembly_pitch * (theta1 / dtheta * assembly_pitch) * std::cos(pi / 3.0)));
140  theta_corrected = std::acos(1.0 / (i * assembly_pitch) / distance / 2.0 *
141  (std::pow(i * assembly_pitch, 2) + std::pow(distance, 2) -
142  std::pow(theta1 / dtheta * assembly_pitch, 2)));
143  if (theta1 < 1.0e-6)
144  {
145  theta_corrected = theta;
146  }
147  else
148  {
149  if (theta > pi / 3.0 && theta <= 2.0 / 3.0 * pi)
150  theta_corrected = theta_corrected + pi / 3.0;
151  else if (theta > 2.0 / 3.0 * pi && theta <= pi)
152  theta_corrected = theta_corrected + 2.0 / 3.0 * pi;
153  else if (theta > pi && theta <= 4.0 / 3.0 * pi)
154  theta_corrected = theta_corrected + pi;
155  else if (theta > 4.0 / 3.0 * pi && theta <= 5.0 / 3.0 * pi)
156  theta_corrected = theta_corrected + 4.0 / 3.0 * pi;
157  else if (theta > 5.0 / 3.0 * pi && theta <= 2.0 * pi)
158  theta_corrected = theta_corrected + 5.0 / 3.0 * pi;
159  }
160  positions.emplace_back(center(0) + distance * std::cos(theta_corrected),
161  center(1) + distance * std::sin(theta_corrected));
162  theta = theta + dtheta;
163  } // j
164  } // i
165 }
static const std::string assembly_pitch
Real distance(const Point &p)
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
MooseUnits pow(const MooseUnits &, int)
static const std::string k
Definition: NS.h:130
static const std::string center
Definition: NS.h:28
const Real pi

◆ safeClone()

std::unique_ptr< MooseMesh > TriInterWrapperMesh::safeClone ( ) const
overridevirtual

Implements MooseMesh.

Definition at line 60 of file TriInterWrapperMesh.C.

61 {
62  return _app.getFactory().copyConstruct(*this);
63 }
std::unique_ptr< T > copyConstruct(const T &object)
Factory & getFactory()
MooseApp & _app

◆ setChannelToDuctMaps()

void TriInterWrapperMesh::setChannelToDuctMaps ( const std::vector< Node *> &  duct_nodes)

Setup the internal maps when there is a outside duct present.

Definition at line 168 of file TriInterWrapperMesh.C.

169 {
170  const Real tol = 1e-10;
171  for (size_t i = 0; i < duct_nodes.size(); i++)
172  {
173  int min_chan = 0;
174  Real min_dist = std::numeric_limits<double>::max();
175  Point ductpos((*duct_nodes[i])(0), (*duct_nodes[i])(1), 0);
176  for (size_t j = 0; j < _subchannel_position.size(); j++)
177  {
178  Point chanpos(_subchannel_position[j][0], _subchannel_position[j][1], 0);
179  auto dist = (chanpos - ductpos).norm();
180  if (dist < min_dist)
181  {
182  min_dist = dist;
183  min_chan = j;
184  }
185  }
186 
187  Node * chan_node = nullptr;
188  for (auto cn : _nodes[min_chan])
189  {
190  if (std::abs((*cn)(2) - (*duct_nodes[i])(2)) < tol)
191  {
192  chan_node = cn;
193  break;
194  }
195  }
196 
197  if (chan_node == nullptr)
198  mooseError("failed to find matching channel node for duct node");
199 
200  _duct_node_to_chan_map[duct_nodes[i]] = chan_node;
201  _chan_to_duct_node_map[chan_node] = duct_nodes[i];
202  }
203 
204  _duct_nodes = duct_nodes;
205 }
std::vector< Node * > _duct_nodes
A list of all mesh nodes that form the (elements of) the hexagonal duct mesh that surrounds the pins/...
const double tol
std::vector< std::vector< Real > > _subchannel_position
x,y coordinates of the interstice
std::map< Node *, Node * > _duct_node_to_chan_map
A map for providing the closest/corresponding interstice node associated with each duct node...
auto norm(const T &a) -> decltype(std::abs(a))
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
std::vector< std::vector< Node * > > _nodes
nodes
std::map< Node *, Node * > _chan_to_duct_node_map
A map for providing the closest/corresponding duct node associated with each interstice node...

◆ validParams()

InputParameters TriInterWrapperMesh::validParams ( )
static

Definition at line 17 of file TriInterWrapperMesh.C.

18 {
20  params.addClassDescription("Creates an inter-wrappper mesh container for a triangular "
21  "lattice subchannel arrangement");
22  return params;
23 }
static InputParameters validParams()
void addClassDescription(const std::string &doc_string)

Friends And Related Function Documentation

◆ SCMTriInterWrapperMeshGenerator

friend class SCMTriInterWrapperMeshGenerator
friend

Definition at line 178 of file TriInterWrapperMesh.h.

Member Data Documentation

◆ _assembly_pitch

Real InterWrapperMesh::_assembly_pitch
protectedinherited

◆ _assembly_side_x

Real InterWrapperMesh::_assembly_side_x
protectedinherited

Size of assembly sides.

Definition at line 182 of file InterWrapperMesh.h.

Referenced by InterWrapperMesh::getSideX().

◆ _assembly_side_y

Real InterWrapperMesh::_assembly_side_y
protectedinherited

Definition at line 183 of file InterWrapperMesh.h.

Referenced by InterWrapperMesh::getSideY().

◆ _chan_pairs_sf

std::vector<std::pair<unsigned int, unsigned int> > TriInterWrapperMesh::_chan_pairs_sf
protected

sweeping flow model channel pairs to specify directional edge flow

Definition at line 158 of file TriInterWrapperMesh.h.

Referenced by getSweepFlowChans().

◆ _chan_to_duct_node_map

std::map<Node *, Node *> TriInterWrapperMesh::_chan_to_duct_node_map
protected

A map for providing the closest/corresponding duct node associated with each interstice node.

i.e. a map of interstice mesh nodes to duct mesh nodes.

Definition at line 121 of file TriInterWrapperMesh.h.

Referenced by setChannelToDuctMaps().

◆ _chan_to_gap_map

std::vector<std::vector<unsigned int> > TriInterWrapperMesh::_chan_to_gap_map
protected

stores the gaps that forms each interstice

Definition at line 131 of file TriInterWrapperMesh.h.

Referenced by getChannelGaps().

◆ _chan_to_pin_map

std::vector<std::vector<unsigned int> > TriInterWrapperMesh::_chan_to_pin_map
protected

stores the fuel pins belonging to each interstice

Definition at line 146 of file TriInterWrapperMesh.h.

Referenced by getChannelPins(), and getPinIndex().

◆ _duct_node_to_chan_map

std::map<Node *, Node *> TriInterWrapperMesh::_duct_node_to_chan_map
protected

A map for providing the closest/corresponding interstice node associated with each duct node.

i.e. a map of duct mesh nodes to interstice mesh nodes.

Definition at line 124 of file TriInterWrapperMesh.h.

Referenced by setChannelToDuctMaps().

◆ _duct_nodes

std::vector<Node *> TriInterWrapperMesh::_duct_nodes
protected

A list of all mesh nodes that form the (elements of) the hexagonal duct mesh that surrounds the pins/intertices.

Definition at line 118 of file TriInterWrapperMesh.h.

Referenced by setChannelToDuctMaps().

◆ _duct_to_pin_gap

Real TriInterWrapperMesh::_duct_to_pin_gap
protected

the gap thickness between the duct and peripheral fuel pins

Definition at line 112 of file TriInterWrapperMesh.h.

Referenced by getDuctToPinGap().

◆ _flat_to_flat

Real TriInterWrapperMesh::_flat_to_flat
protected

the distance between flat surfaces of the duct facing each other

Definition at line 110 of file TriInterWrapperMesh.h.

◆ _gap_pairs_sf

std::vector<std::pair<unsigned int, unsigned int> > TriInterWrapperMesh::_gap_pairs_sf
protected

sweeping flow model gap pairs per channel to specify directional edge flow

Definition at line 156 of file TriInterWrapperMesh.h.

Referenced by getSweepFlowGaps().

◆ _gap_to_chan_map

std::vector<std::pair<unsigned int, unsigned int> > TriInterWrapperMesh::_gap_to_chan_map
protected

stores the channel pairs for each gap

Definition at line 127 of file TriInterWrapperMesh.h.

Referenced by getGapChannels().

◆ _gap_to_pin_map

std::vector<std::pair<unsigned int, unsigned int> > TriInterWrapperMesh::_gap_to_pin_map
protected

stores the fuel pins belonging to each gap

Definition at line 129 of file TriInterWrapperMesh.h.

◆ _gap_type

std::vector<EChannelType> TriInterWrapperMesh::_gap_type
protected

gap type

Definition at line 154 of file TriInterWrapperMesh.h.

◆ _gij_map

std::vector<Real> TriInterWrapperMesh::_gij_map
protected

gap size

Definition at line 138 of file TriInterWrapperMesh.h.

Referenced by getGapMap(), and getGapWidth().

◆ _heated_length

Real InterWrapperMesh::_heated_length
protectedinherited

heated length of the fuel Pin

Definition at line 170 of file InterWrapperMesh.h.

Referenced by InterWrapperMesh::getHeatedLength().

◆ _k_grid

std::vector<std::vector<Real> > InterWrapperMesh::_k_grid
protectedinherited

axial form loss coefficient per computational cell

Definition at line 176 of file InterWrapperMesh.h.

Referenced by InterWrapperMesh::getKGrid().

◆ _kij

Real InterWrapperMesh::_kij
protectedinherited

Lateral form loss coefficient.

Definition at line 178 of file InterWrapperMesh.h.

Referenced by InterWrapperMesh::getKij().

◆ _n_assemblies

unsigned int TriInterWrapperMesh::_n_assemblies
protected

number of assemblies

Definition at line 148 of file TriInterWrapperMesh.h.

Referenced by getNumOfAssemblies().

◆ _n_cells

unsigned int InterWrapperMesh::_n_cells
protectedinherited

number of axial cells

Definition at line 185 of file InterWrapperMesh.h.

Referenced by InterWrapperMesh::getNumOfAxialCells().

◆ _n_channels

unsigned int TriInterWrapperMesh::_n_channels
protected

number of subchannels

Definition at line 108 of file TriInterWrapperMesh.h.

Referenced by getNumOfChannels(), and getSubchannelIndexFromPoint().

◆ _n_gaps

unsigned int TriInterWrapperMesh::_n_gaps
protected

number of gaps

Definition at line 150 of file TriInterWrapperMesh.h.

Referenced by getNumOfGapsPerLayer().

◆ _n_rings

unsigned int TriInterWrapperMesh::_n_rings
protected

number of rings of fuel pins

Definition at line 106 of file TriInterWrapperMesh.h.

◆ _nodes

std::vector<std::vector<Node *> > TriInterWrapperMesh::_nodes
protected

nodes

Definition at line 114 of file TriInterWrapperMesh.h.

Referenced by getChannelNode(), and setChannelToDuctMaps().

◆ _pin_position

std::vector<Point> TriInterWrapperMesh::_pin_position
protected

x,y coordinates of the fuel pins

Definition at line 142 of file TriInterWrapperMesh.h.

◆ _pin_to_chan_map

std::vector<std::vector<unsigned int> > TriInterWrapperMesh::_pin_to_chan_map
protected

TODO: channel indices corresponding to a given pin index.

Definition at line 160 of file TriInterWrapperMesh.h.

Referenced by getPinChannels().

◆ _pins_in_rings

std::vector<std::vector<Real> > TriInterWrapperMesh::_pins_in_rings
protected

fuel pins that are belonging to each ring

Definition at line 144 of file TriInterWrapperMesh.h.

◆ _sign_id_crossflow_map

std::vector<std::vector<Real> > TriInterWrapperMesh::_sign_id_crossflow_map
protected

Defines the global cross-flow direction -1 or 1 for each interstice and for all gaps that are belonging to the corresponding interstice.

Given a interstice and a gap, if the neighbor interstice index belonging to the same gap is lower, set it to -1, otherwise set it to 1.

Definition at line 136 of file TriInterWrapperMesh.h.

Referenced by getCrossflowSign().

◆ _subch_type

std::vector<EChannelType> TriInterWrapperMesh::_subch_type
protected

interstice type

Definition at line 152 of file TriInterWrapperMesh.h.

Referenced by getSubchannelType().

◆ _subchannel_position

std::vector<std::vector<Real> > TriInterWrapperMesh::_subchannel_position
protected

x,y coordinates of the interstice

Definition at line 140 of file TriInterWrapperMesh.h.

Referenced by getSubchannelIndexFromPoint(), and setChannelToDuctMaps().

◆ _tight_side_bypass

bool TriInterWrapperMesh::_tight_side_bypass
protected

whether the side bypass shape follows the assemblies

Definition at line 162 of file TriInterWrapperMesh.h.

Referenced by getIsTightSide().

◆ _unheated_length_entry

Real InterWrapperMesh::_unheated_length_entry
protectedinherited

unheated length of the fuel Pin at the entry of the assembly

Definition at line 168 of file InterWrapperMesh.h.

Referenced by SCMQuadInterWrapperMeshGenerator::generate(), SCMTriInterWrapperMeshGenerator::generate(), and InterWrapperMesh::getHeatedLengthEntry().

◆ _unheated_length_exit

Real InterWrapperMesh::_unheated_length_exit
protectedinherited

unheated length of the fuel Pin at the exit of the assembly

Definition at line 172 of file InterWrapperMesh.h.

Referenced by InterWrapperMesh::getHeatedLengthExit().

◆ _z_grid

std::vector<Real> InterWrapperMesh::_z_grid
protectedinherited

axial location of nodes

Definition at line 174 of file InterWrapperMesh.h.

Referenced by InterWrapperMesh::getZGrid(), and InterWrapperMesh::getZIndex().

◆ N_CORNERS

const unsigned int TriInterWrapperMesh::N_CORNERS = 6
static

number of corners in the duct x-sec

Definition at line 181 of file TriInterWrapperMesh.h.


The documentation for this class was generated from the following files: