www.mooseframework.org
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
RinglebMesh Class Reference

Mesh generated from parameters. More...

#include <RinglebMesh.h>

Inheritance diagram for RinglebMesh:
[legend]

Public Types

enum  ParallelType { ParallelType::DEFAULT, ParallelType::REPLICATED, ParallelType::DISTRIBUTED }
 
using PeriodicNodeInfo = std::pair< const Node *, BoundaryID >
 Helper type for building periodic node maps. More...
 
using DataFileParameterType = DataFileName
 The parameter type this interface expects for a data file name. More...
 

Public Member Functions

 RinglebMesh (const InputParameters &parameters)
 
 RinglebMesh (const RinglebMesh &)=default
 
RinglebMeshoperator= (const RinglebMesh &other_mesh)=delete
 
virtual std::unique_ptr< MooseMeshsafeClone () const override
 A safer version of the clone() method that hands back an allocated object wrapped in a smart pointer. More...
 
virtual void buildMesh () override
 Must be overridden by child classes. More...
 
std::vector< Realarhopj (const Real &gamma, const std::vector< Real > &q, const int &index)
 
std::vector< Realcomputexy (const std::vector< Real > values, const int &i, const int &index, const std::vector< Real > &ks, const std::vector< Real > &q)
 
virtual MooseMeshclone () const
 Clone method. More...
 
void determineUseDistributedMesh ()
 Determine whether to use a distributed mesh. More...
 
std::unique_ptr< MeshBase > buildMeshBaseObject (unsigned int dim=libMesh::invalid_uint)
 Method to construct a libMesh::MeshBase object that is normally set and used by the MooseMesh object during the "init()" phase. More...
 
template<typename T >
std::unique_ptr< T > buildTypedMesh (unsigned int dim=libMesh::invalid_uint)
 Shortcut method to construct a unique pointer to a libMesh mesh instance. More...
 
void setMeshBase (std::unique_ptr< MeshBase > mesh_base)
 Method to set the mesh_base object. More...
 
virtual void init ()
 Initialize the Mesh object. More...
 
virtual unsigned int dimension () const
 Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh mesh object. More...
 
virtual unsigned int effectiveSpatialDimension () const
 Returns the effective spatial dimension determined by the coordinates actually used by the mesh. More...
 
unsigned int getBlocksMaxDimension (const std::vector< SubdomainName > &blocks) const
 Returns the maximum element dimension on the given blocks. More...
 
std::vector< BoundaryIDgetBoundaryIDs (const Elem *const elem, const unsigned short int side) const
 Returns a vector of boundary IDs for the requested element on the requested side. More...
 
const std::set< BoundaryID > & getBoundaryIDs () const
 Returns a const reference to a set of all user-specified boundary IDs. More...
 
std::vector< BoundaryIDgetBoundaryIDs (const std::vector< BoundaryName > &boundary_name, bool generate_unknown=false) const
 Get the associated BoundaryID for the boundary names that are passed in. More...
 
const Elem * getLowerDElem (const Elem *, unsigned short int) const
 Returns a const pointer to a lower dimensional element that corresponds to a side of a higher dimensional element. More...
 
unsigned int getHigherDSide (const Elem *elem) const
 Returns the local side ID of the interior parent aligned with the lower dimensional element. More...
 
void buildNodeList ()
 Calls BoundaryInfo::build_node_list()/build_side_list() and makes separate copies of Nodes/Elems in those lists. More...
 
void buildBndElemList ()
 
const std::map< dof_id_type, std::vector< dof_id_type > > & nodeToElemMap ()
 If not already created, creates a map from every node to all elements to which they are connected. More...
 
const std::map< dof_id_type, std::vector< dof_id_type > > & nodeToActiveSemilocalElemMap ()
 If not already created, creates a map from every node to all active semilocal elements to which they are connected. More...
 
virtual bnd_node_iterator bndNodesBegin ()
 Return iterators to the beginning/end of the boundary nodes list. More...
 
virtual bnd_node_iterator bndNodesEnd ()
 
virtual bnd_elem_iterator bndElemsBegin ()
 Return iterators to the beginning/end of the boundary elements list. More...
 
virtual bnd_elem_iterator bndElemsEnd ()
 
void buildNodeListFromSideList ()
 Calls BoundaryInfo::build_node_list_from_side_list(). More...
 
void buildSideList (std::vector< dof_id_type > &el, std::vector< unsigned short int > &sl, std::vector< boundary_id_type > &il)
 Calls BoundaryInfo::build_side_list(). More...
 
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildSideList ()
 As above, but uses the non-deprecated std::tuple interface. More...
 
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildActiveSideList () const
 Calls BoundaryInfo::build_active_side_list. More...
 
unsigned int sideWithBoundaryID (const Elem *const elem, const BoundaryID boundary_id) const
 Calls BoundaryInfo::side_with_boundary_id(). More...
 
MeshBase::node_iterator localNodesBegin ()
 Calls local_nodes_begin/end() on the underlying libMesh mesh object. More...
 
MeshBase::const_node_iterator localNodesBegin () const
 
MeshBase::node_iterator localNodesEnd ()
 
MeshBase::const_node_iterator localNodesEnd () const
 
MeshBase::element_iterator activeLocalElementsBegin ()
 Calls active_local_nodes_begin/end() on the underlying libMesh mesh object. More...
 
MeshBase::const_element_iterator activeLocalElementsBegin () const
 
const MeshBase::element_iterator activeLocalElementsEnd ()
 
const MeshBase::const_element_iterator activeLocalElementsEnd () const
 
virtual dof_id_type nNodes () const
 Calls n_nodes/elem() on the underlying libMesh mesh object. More...
 
virtual dof_id_type nElem () const
 
virtual dof_id_type maxNodeId () const
 Calls max_node/elem_id() on the underlying libMesh mesh object. More...
 
virtual dof_id_type maxElemId () const
 
virtual const Node & node (const dof_id_type i) const
 Various accessors (pointers/references) for Node "i". More...
 
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)
 Various accessors (pointers/references) for Elem "i". More...
 
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
 Setter/getter for whether the mesh is prepared. More...
 
virtual void prepared (bool state)
 
void needsPrepareForUse ()
 If this method is called, we will call libMesh's prepare_for_use method when we call Moose's prepare method. More...
 
void meshChanged ()
 Declares that the MooseMesh has changed, invalidates cached data and rebuilds caches. More...
 
virtual void onMeshChanged ()
 Declares a callback function that is executed at the conclusion of meshChanged(). More...
 
void cacheChangedLists ()
 Cache information about what elements were refined and coarsened in the previous step. More...
 
ConstElemPointerRangerefinedElementRange () const
 Return a range that is suitable for threaded execution over elements that were just refined. More...
 
ConstElemPointerRangecoarsenedElementRange () const
 Return a range that is suitable for threaded execution over elements that were just coarsened. More...
 
const std::vector< const Elem * > & coarsenedElementChildren (const Elem *elem) const
 Get the newly removed children element ids for an element that was just coarsened. More...
 
void updateActiveSemiLocalNodeRange (std::set< dof_id_type > &ghosted_elems)
 Clears the "semi-local" node list and rebuilds it. More...
 
bool isSemiLocal (Node *const node) const
 Returns true if the node is semi-local. More...
 
const std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > & getBoundariesToElems () const
 Returns a map of boundaries to ids of elements on the boundary. More...
 
const std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > & getBoundariesToActiveSemiLocalElemIds () const
 Returns a map of boundaries to ids of elements on the boundary. More...
 
std::unordered_set< dof_id_typegetBoundaryActiveSemiLocalElemIds (BoundaryID bid) const
 Return all ids of elements which have a side which is part of a sideset. More...
 
std::unordered_set< dof_id_typegetBoundaryActiveNeighborElemIds (BoundaryID bid) const
 Return all ids of neighbors of elements which have a side which is part of a sideset. More...
 
bool isBoundaryFullyExternalToSubdomains (BoundaryID bid, const std::set< SubdomainID > &blk_group) const
 Returns whether a boundary (given by its id) is not crossing through a group of blocks, by which we mean that elements on both sides of the boundary are in those blocks. More...
 
const std::set< SubdomainID > & meshSubdomains () const
 Returns a read-only reference to the set of subdomains currently present in the Mesh. More...
 
const std::set< BoundaryID > & meshBoundaryIds () const
 Returns a read-only reference to the set of boundary IDs currently present in the Mesh. More...
 
const std::set< BoundaryID > & meshSidesetIds () const
 Returns a read-only reference to the set of sidesets currently present in the Mesh. More...
 
const std::set< BoundaryID > & meshNodesetIds () const
 Returns a read-only reference to the set of nodesets currently present in the Mesh. More...
 
void setBoundaryToNormalMap (std::unique_ptr< std::map< BoundaryID, RealVectorValue >> boundary_map)
 Sets the mapping between BoundaryID and normal vector Is called by AddAllSideSetsByNormals. More...
 
void setBoundaryToNormalMap (std::map< BoundaryID, RealVectorValue > *boundary_map)
 
void setMeshBoundaryIDs (std::set< BoundaryID > boundary_IDs)
 Sets the set of BoundaryIDs Is called by AddAllSideSetsByNormals. More...
 
const RealVectorValuegetNormalByBoundaryID (BoundaryID id) const
 Returns the normal vector associated with a given BoundaryID. More...
 
bool prepare (const MeshBase *mesh_to_clone)
 Calls prepare_for_use() if the underlying MeshBase object isn't prepared, then communicates various boundary information on parallel meshes. More...
 
void update ()
 Calls buildNodeListFromSideList(), buildNodeList(), and buildBndElemList(). More...
 
unsigned int uniformRefineLevel () const
 Returns the level of uniform refinement requested (zero if AMR is disabled). More...
 
void setUniformRefineLevel (unsigned int, bool deletion=true)
 Set uniform refinement level. More...
 
bool skipDeletionRepartitionAfterRefine () const
 Return a flag indicating whether or not we should skip remote deletion and repartition after uniform refinements. More...
 
bool skipRefineWhenUseSplit () const
 Whether or not skip uniform refinements when using a pre-split mesh. More...
 
void addGhostedBoundary (BoundaryID boundary_id)
 This will add the boundary ids to be ghosted to this processor. More...
 
void setGhostedBoundaryInflation (const std::vector< Real > &inflation)
 This sets the inflation amount for the bounding box for each partition for use in ghosting boundaries. More...
 
const std::set< unsigned int > & getGhostedBoundaries () const
 Return a writable reference to the set of ghosted boundary IDs. More...
 
const std::vector< Real > & getGhostedBoundaryInflation () const
 Return a writable reference to the _ghosted_boundaries_inflation vector. More...
 
void ghostGhostedBoundaries ()
 Actually do the ghosting of boundaries that need to be ghosted to this processor. More...
 
void needGhostGhostedBoundaries (bool needghost)
 Whether or not we want to ghost ghosted boundaries. More...
 
unsigned int getPatchSize () const
 Getter for the patch_size parameter. More...
 
unsigned int getGhostingPatchSize () const
 Getter for the ghosting_patch_size parameter. More...
 
unsigned int getMaxLeafSize () const
 Getter for the maximum leaf size parameter. More...
 
void setPatchUpdateStrategy (Moose::PatchUpdateType patch_update_strategy)
 Set the patch size update strategy. More...
 
const Moose::PatchUpdateTypegetPatchUpdateStrategy () const
 Get the current patch update strategy. More...
 
BoundingBox getInflatedProcessorBoundingBox (Real inflation_multiplier=0.01) const
 Get a (slightly inflated) processor bounding box. More...
 
 operator libMesh::MeshBase & ()
 Implicit conversion operator from MooseMesh -> libMesh::MeshBase. More...
 
 operator const libMesh::MeshBase & () const
 
MeshBase & getMesh ()
 Accessor for the underlying libMesh Mesh object. More...
 
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
 Calls print_info() on the underlying Mesh. More...
 
const std::set< SubdomainID > & getNodeBlockIds (const Node &node) const
 Return list of blocks to which the given node belongs. More...
 
const std::vector< dof_id_type > & getNodeList (boundary_id_type nodeset_id) const
 Return a writable reference to a vector of node IDs that belong to nodeset_id. More...
 
const Node * addUniqueNode (const Point &p, Real tol=1e-6)
 Add a new node to the mesh. More...
 
Node * addQuadratureNode (const Elem *elem, const unsigned short int side, const unsigned int qp, BoundaryID bid, const Point &point)
 Adds a fictitious "QuadratureNode". More...
 
Node * getQuadratureNode (const Elem *elem, const unsigned short int side, const unsigned int qp)
 Get a specified quadrature node. More...
 
void clearQuadratureNodes ()
 Clear out any existing quadrature nodes. More...
 
BoundaryID getBoundaryID (const BoundaryName &boundary_name) const
 Get the associated BoundaryID for the boundary name. More...
 
SubdomainID getSubdomainID (const SubdomainName &subdomain_name) const
 Get the associated subdomain ID for the subdomain name. More...
 
std::vector< SubdomainIDgetSubdomainIDs (const std::vector< SubdomainName > &subdomain_name) const
 Get the associated subdomainIDs for the subdomain names that are passed in. More...
 
void setSubdomainName (SubdomainID subdomain_id, const SubdomainName &name)
 This method sets the name for subdomain_id to name. More...
 
const std::string & getSubdomainName (SubdomainID subdomain_id) const
 Return the name of a block given an id. More...
 
std::vector< SubdomainName > getSubdomainNames (const std::vector< SubdomainID > &subdomain_ids) const
 Get the associated subdomainNames for the subdomain ids that are passed in. More...
 
void setBoundaryName (BoundaryID boundary_id, BoundaryName name)
 This method sets the boundary name of the boundary based on the id parameter. More...
 
const std::string & getBoundaryName (BoundaryID boundary_id)
 Return the name of the boundary given the id. More...
 
void buildPeriodicNodeMap (std::multimap< dof_id_type, dof_id_type > &periodic_node_map, unsigned int var_number, PeriodicBoundaries *pbs) const
 This routine builds a multimap of boundary ids to matching boundary ids across all periodic boundaries in the system. More...
 
void buildPeriodicNodeSets (std::map< BoundaryID, std::set< dof_id_type >> &periodic_node_sets, unsigned int var_number, PeriodicBoundaries *pbs) const
 This routine builds a datastructure of node ids organized by periodic boundary ids. More...
 
Real dimensionWidth (unsigned int component) const
 Returns the width of the requested dimension. More...
 
bool detectOrthogonalDimRanges (Real tol=1e-6)
 This routine determines whether the Mesh is a regular orthogonal mesh (i.e. More...
 
void addPeriodicVariable (unsigned int var_num, BoundaryID primary, BoundaryID secondary)
 For "regular orthogonal" meshes, determine if variable var_num is periodic with respect to the primary and secondary BoundaryIDs, record this fact in the _periodic_dim data structure. More...
 
bool isTranslatedPeriodic (unsigned int nonlinear_var_num, unsigned int component) const
 Returns whether this generated mesh is periodic in the given dimension for the given variable. More...
 
RealVectorValue minPeriodicVector (unsigned int nonlinear_var_num, Point p, Point q) const
 This function returns the minimum vector between two points on the mesh taking into account periodicity for the given variable number. More...
 
Real minPeriodicDistance (unsigned int nonlinear_var_num, Point p, Point q) const
 This function returns the distance between two points on the mesh taking into account periodicity for the given variable number. More...
 
const std::pair< BoundaryID, BoundaryID > * getPairedBoundaryMapping (unsigned int component)
 This function attempts to return the paired boundary ids for the given component. More...
 
void buildRefinementAndCoarseningMaps (Assembly *assembly)
 Create the refinement and coarsening maps necessary for projection of stateful material properties when using adaptivity. More...
 
const std::vector< std::vector< QpMap > > & getRefinementMap (const Elem &elem, int parent_side, int child, int child_side)
 Get the refinement map for a given element type. More...
 
const std::vector< std::pair< unsigned int, QpMap > > & getCoarseningMap (const Elem &elem, int input_side)
 Get the coarsening map for a given element type. More...
 
void changeBoundaryId (const boundary_id_type old_id, const boundary_id_type new_id, bool delete_prev)
 Change all the boundary IDs for a given side from old_id to new_id. More...
 
const std::set< BoundaryID > & getSubdomainBoundaryIds (const SubdomainID subdomain_id) const
 Get the list of boundary ids associated with the given subdomain id. More...
 
std::set< BoundaryIDgetSubdomainInterfaceBoundaryIds (const SubdomainID subdomain_id) const
 Get the list of boundaries that contact the given subdomain. More...
 
std::set< SubdomainIDgetBoundaryConnectedBlocks (const BoundaryID bid) const
 Get the list of subdomains associated with the given boundary. More...
 
std::set< SubdomainIDgetBoundaryConnectedSecondaryBlocks (const BoundaryID bid) const
 Get the list of subdomains associated with the given boundary of its secondary side. More...
 
std::set< SubdomainIDgetInterfaceConnectedBlocks (const BoundaryID bid) const
 Get the list of subdomains contacting the given boundary. More...
 
const std::set< SubdomainID > & getBlockConnectedBlocks (const SubdomainID subdomain_id) const
 Get the list of subdomains neighboring a given subdomain. More...
 
bool isBoundaryNode (dof_id_type node_id) const
 Returns true if the requested node is in the list of boundary nodes, false otherwise. More...
 
bool isBoundaryNode (dof_id_type node_id, BoundaryID bnd_id) const
 Returns true if the requested node is in the list of boundary nodes for the specified boundary, false otherwise. More...
 
bool isBoundaryElem (dof_id_type elem_id) const
 Returns true if the requested element is in the list of boundary elements, false otherwise. More...
 
bool isBoundaryElem (dof_id_type elem_id, BoundaryID bnd_id) const
 Returns true if the requested element is in the list of boundary elements for the specified boundary, false otherwise. More...
 
void errorIfDistributedMesh (std::string name) const
 Generate a unified error message if the underlying libMesh mesh is a DistributedMesh. More...
 
bool isDistributedMesh () const
 Returns the final Mesh distribution type. More...
 
bool isParallelTypeForced () const
 Tell the user if the distribution was overriden for any reason. More...
 
void setParallelType (ParallelType parallel_type)
 Allow to change parallel type. More...
 
const MooseEnumpartitionerName () const
 
bool isPartitionerForced () const
 Tell the user if the partitioner was overriden for any reason. More...
 
void allowRecovery (bool allow)
 Set whether or not this mesh is allowed to read a recovery file. More...
 
void setCustomPartitioner (Partitioner *partitioner)
 Setter for custom partitioner. More...
 
bool isRegularOrthogonal ()
 Getter to query if the mesh was detected to be regular and orthogonal. More...
 
bool hasSecondOrderElements ()
 check if the mesh has SECOND order elements More...
 
virtual std::unique_ptr< PointLocatorBase > getPointLocator () const
 Proxy function to get a (sub)PointLocator from either the underlying libMesh mesh (default), or to allow derived meshes to return a custom point locator. More...
 
virtual std::string getFileName () const
 Returns the name of the mesh file read to produce this mesh if any or an empty string otherwise. More...
 
void needsRemoteElemDeletion (bool need_delete)
 Set whether we need to delete remote elements. More...
 
bool needsRemoteElemDeletion () const
 Whether we need to delete remote elements. More...
 
void allowRemoteElementRemoval (bool allow_removal)
 Set whether to allow remote element removal. More...
 
bool allowRemoteElementRemoval () const
 Whether we are allow remote element removal. More...
 
void deleteRemoteElements ()
 Delete remote elements. More...
 
bool hasMeshBase () const
 Whether mesh base object was constructed or not. More...
 
bool hasElementID (const std::string &id_name) const
 Whether mesh has an extra element integer with a given name. More...
 
unsigned int getElementIDIndex (const std::string &id_name) const
 Return the accessing integer for an extra element integer with its name. More...
 
dof_id_type maxElementID (unsigned int elem_id_index) const
 Return the maximum element ID for an extra element integer with its accessing index. More...
 
dof_id_type minElementID (unsigned int elem_id_index) const
 Return the minimum element ID for an extra element integer with its accessing index. More...
 
bool areElemIDsIdentical (const std::string &id_name1, const std::string &id_name2) const
 Whether or not two extra element integers are identical. More...
 
std::set< dof_id_typegetAllElemIDs (unsigned int elem_id_index) const
 Return all the unique element IDs for an extra element integer with its index. More...
 
std::set< dof_id_typegetElemIDsOnBlocks (unsigned int elem_id_index, const std::set< SubdomainID > &blks) const
 Return all the unique element IDs for an extra element integer with its index on a set of subdomains. More...
 
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
 Cache if variables live on the elements connected by the FaceInfo objects. More...
 
void cacheFVElementalDoFs () const
 Cache the DoF indices for FV variables on each element. More...
 
void computeFiniteVolumeCoords () const
 Compute the face coordinate value for all FaceInfo and ElemInfo objects. More...
 
void isDisplaced (bool is_displaced)
 Set whether this mesh is displaced. More...
 
bool isDisplaced () const
 whether this mesh is displaced More...
 
const std::map< boundary_id_type, std::vector< dof_id_type > > & nodeSetNodes () const
 
Moose::CoordinateSystemType getCoordSystem (SubdomainID sid) const
 Get the coordinate system type, e.g. More...
 
const std::map< SubdomainID, Moose::CoordinateSystemType > & getCoordSystem () const
 Get the map from subdomain ID to coordinate system type, e.g. More...
 
Moose::CoordinateSystemType getUniqueCoordSystem () const
 Get the coordinate system from the mesh, it must be the same in all subdomains otherwise this will error. More...
 
void setCoordSystem (const std::vector< SubdomainName > &blocks, const MultiMooseEnum &coord_sys)
 Set the coordinate system for the provided blocks to coord_sys. More...
 
void setAxisymmetricCoordAxis (const MooseEnum &rz_coord_axis)
 For axisymmetric simulations, set the symmetry coordinate axis. More...
 
void setGeneralAxisymmetricCoordAxes (const std::vector< SubdomainName > &blocks, const std::vector< std::pair< Point, RealVectorValue >> &axes)
 Sets the general coordinate axes for axisymmetric blocks. More...
 
const std::pair< Point, RealVectorValue > & getGeneralAxisymmetricCoordAxis (SubdomainID subdomain_id) const
 Gets the general axisymmetric coordinate axis for a block. More...
 
bool usingGeneralAxisymmetricCoordAxes () const
 Returns true if general axisymmetric coordinate axes are being used. More...
 
unsigned int getAxisymmetricRadialCoord () const
 Returns the desired radial direction for RZ coordinate transformation. More...
 
void checkCoordinateSystems ()
 Performs a sanity check for every element in the mesh. More...
 
void setCoordData (const MooseMesh &other_mesh)
 Set the coordinate system data to that of other_mesh. More...
 
void markFiniteVolumeInfoDirty ()
 Mark the finite volume information as dirty. More...
 
bool isFiniteVolumeInfoDirty () const
 
MooseAppCoordTransformcoordTransform ()
 
const MooseUnitslengthUnit () const
 
const std::unordered_map< std::pair< const Elem *, unsigned short int >, const Elem * > & getLowerDElemMap () const
 This function attempts to return the map from a high-order element side to its corresponding lower-d element. More...
 
bool isSplit () const
 
void buildFiniteVolumeInfo () const
 Builds the face and elem info vectors that store meta-data needed for looping over and doing calculations based on mesh faces and elements in a finite volume setting. More...
 
void setupFiniteVolumeMeshData () const
 Sets up the additional data needed for finite volume computations. More...
 
void doingPRefinement (bool doing_p_refinement)
 Indicate whether the kind of adaptivity we're doing is p-refinement. More...
 
bool doingPRefinement () const
 Query whether we have p-refinement. More...
 
const std::vector< QpMap > & getPRefinementMap (const Elem &elem) const
 Get the map describing for each volumetric quadrature point (qp) on the refined level which qp on the previous coarser level the fine qp is closest to. More...
 
const std::vector< QpMap > & getPRefinementSideMap (const Elem &elem) const
 Get the map describing for each side quadrature point (qp) on the refined level which qp on the previous coarser level the fine qp is closest to. More...
 
const std::vector< QpMap > & getPCoarseningMap (const Elem &elem) const
 Get the map describing for each volumetric quadrature point (qp) on the coarse level which qp on the previous finer level the coarse qp is closest to. More...
 
const std::vector< QpMap > & getPCoarseningSideMap (const Elem &elem) const
 Get the map describing for each side quadrature point (qp) on the coarse level which qp on the previous finer level the coarse qp is closest to. More...
 
void buildPRefinementAndCoarseningMaps (Assembly *assembly)
 
bool isLowerD (const SubdomainID subdomain_id) const
 
bool hasLowerD () const
 
virtual bool enabled () const
 Return the enabled status of the object. More...
 
MooseAppgetMooseApp () const
 Get the MooseApp this class is associated with. More...
 
const std::string & type () const
 Get the type of this class. More...
 
virtual const std::string & name () const
 Get the name of the class. More...
 
std::string typeAndName () const
 Get the class's combined type and name; useful in error handling. More...
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 Calls moose error with the message msg. More...
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 The unique parameter name of a valid parameter of this object for accessing parameter controls. More...
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
MooseObjectName uniqueName () const
 The unique name for accessing input parameters of this object in the InputParameterWarehouse. More...
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object. More...
 
template<typename T1 , typename T2 >
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 Retrieve two parameters and provide pair of parameters for the object. More...
 
template<typename T >
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 Retrieve a renamed parameter for the object. More...
 
template<typename T >
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 Verifies that the requested parameter exists and is not NULL and returns it to the caller. More...
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid. More...
 
bool isParamSetByUser (const std::string &nm) const
 Test if the supplied parameter is set by a user, as opposed to not set or set to default. More...
 
template<typename... Args>
void paramError (const std::string &param, Args... args) const
 Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args) const
 Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramInfo (const std::string &param, Args... args) const
 Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 Connect controllable parameter of this action with the controllable parameters of the objects added by this action. More...
 
template<typename... Args>
void mooseError (Args &&... args) const
 Emits an error prefixed with object name and type. More...
 
template<typename... Args>
void mooseErrorNonPrefixed (Args &&... args) const
 Emits an error without the prefixing included in mooseError(). More...
 
template<typename... Args>
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 Emits a documented error with object name and type. More...
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 Emits a warning prefixed with object name and type. More...
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 Emits a warning without the prefixing included in mooseWarning(). More...
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
std::string getDataFileName (const std::string &param) const
 Returns the path of a data file for a given FileName type parameter, searching (in the following order) More...
 
std::string getDataFileNameByName (const std::string &name, const std::string *param=nullptr) const
 Returns the path of a data file for a given relative file path. More...
 
PerfGraphperfGraph ()
 Get the PerfGraph. More...
 
ConstElemRangegetActiveLocalElementRange ()
 Return pointers to range objects for various types of ranges (local nodes, boundary elems, etc.). More...
 
NodeRangegetActiveNodeRange ()
 
SemiLocalNodeRangegetActiveSemiLocalNodeRange () const
 
ConstNodeRangegetLocalNodeRange ()
 
StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > * getBoundaryNodeRange ()
 
StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > * getBoundaryElementRange ()
 
virtual Real getMinInDimension (unsigned int component) const
 Returns the min or max of the requested dimension respectively. More...
 
virtual Real getMaxInDimension (unsigned int component) const
 
bool isCustomPartitionerRequested () const
 Setter and getter for _custom_partitioner_requested. More...
 
void setIsCustomPartitionerRequested (bool cpr)
 
unsigned int nFace () const
 accessors for the FaceInfo objects More...
 
const std::vector< const FaceInfo * > & faceInfo () const
 Accessor for local FaceInfo objects. More...
 
const FaceInfofaceInfo (const Elem *elem, unsigned int side) const
 Accessor for the local FaceInfo object on the side of one element. Returns null if ghosted. More...
 
face_info_iterator ownedFaceInfoBegin ()
 Iterators to owned faceInfo objects. More...
 
face_info_iterator ownedFaceInfoEnd ()
 
elem_info_iterator ownedElemInfoBegin ()
 Iterators to owned faceInfo objects. More...
 
elem_info_iterator ownedElemInfoEnd ()
 
const ElemInfoelemInfo (const dof_id_type id) const
 Accessor for the elemInfo object for a given element ID. More...
 
const std::vector< const ElemInfo * > & elemInfoVector () const
 Accessor for the element info objects owned by this process. More...
 
const std::vector< FaceInfo > & allFaceInfo () const
 Accessor for all FaceInfo objects. More...
 

Static Public Member Functions

static InputParameters validParams ()
 
static MooseEnum partitioning ()
 returns MooseMesh partitioning options so other classes can use it More...
 
static MooseEnum elemTypes ()
 returns MooseMesh element type options More...
 
static void setSubdomainName (MeshBase &mesh, SubdomainID subdomain_id, const SubdomainName &name)
 This method sets the name for subdomain_id on the provided mesh to name. More...
 
static void changeBoundaryId (MeshBase &mesh, const boundary_id_type old_id, const boundary_id_type new_id, bool delete_prev)
 Change all the boundary IDs for a given side from old_id to new_id for the given mesh. More...
 
static void setPartitioner (MeshBase &mesh_base, MooseEnum &partitioner, bool use_distributed_mesh, const InputParameters &params, MooseObject &context_obj)
 Method for setting the partitioner on the passed in mesh_base object. More...
 

Public Attributes

const ConsoleStream _console
 An instance of helper class to write streams to the Console objects. More...
 

Protected Types

enum  { X = 0, Y, Z }
 Convenience enums. More...
 
enum  { MIN = 0, MAX }
 
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)
 
template<typename T , typename... Args>
T & declareRestartableData (const std::string &data_name, Args &&... args)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T , typename... Args>
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 Declares a piece of "managed" restartable data and initialize it. More...
 
template<typename T , typename... Args>
const T & getRestartableData (const std::string &data_name) const
 Declare a piece of data as "restartable" and initialize it Similar to declareRestartableData but returns a const reference to the object. More...
 
template<typename T , typename... Args>
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T , typename... Args>
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 Declare a piece of data as "recoverable" and initialize it. More...
 
template<typename T , typename... Args>
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 Declare a piece of data as "restartable". More...
 
template<typename T , typename... Args>
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 Declare a piece of data as "restartable". More...
 
std::string restartableName (const std::string &data_name) const
 Gets the name of a piece of restartable data given a data name, adding the system name and object name prefix. More...
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 Call to register a named section for timing. More...
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 Call to register a named section for timing. More...
 
std::string timedSectionName (const std::string &section_name) const
 

Protected Attributes

const Real_gamma
 Gamma. More...
 
const Real_kmax
 k is a streamline parameter, i.e. More...
 
const Real_kmin
 kmin corresponds to the outer wall More...
 
const int_num_q_pts
 How many points to discretize the range q = (0.5, k) into. More...
 
const int_n_extra_q_pts
 how many "extra" points should be inserted in the nearest element from the horizontal in additi /// on to the equispaced q points. More...
 
const int_num_k_pts
 how many points in the range k=(kmin, kmax). More...
 
const boundary_id_type _inflow_bid
 The boundary ids to use for the ringleb mesh. More...
 
const boundary_id_type _outflow_bid
 
const boundary_id_type _inner_wall_bid
 
const boundary_id_type _outer_wall_bid
 
const bool & _triangles
 This parameter, if true, allows to split the quadrilateral elements into triangular elements. More...
 
std::vector< std::unique_ptr< GhostingFunctor > > _ghosting_functors
 Deprecated (DO NOT USE) More...
 
std::vector< std::shared_ptr< RelationshipManager > > _relationship_managers
 The list of active geometric relationship managers (bound to the underlying MeshBase object). More...
 
bool _built_from_other_mesh = false
 Whether or not this mesh was built from another mesh. More...
 
ParallelType _parallel_type
 Can be set to DISTRIBUTED, REPLICATED, or DEFAULT. More...
 
bool _use_distributed_mesh
 False by default. More...
 
bool _distribution_overridden
 
bool _parallel_type_overridden
 
std::unique_ptr< libMesh::MeshBase_mesh
 Pointer to underlying libMesh mesh object. More...
 
MooseEnum _partitioner_name
 The partitioner used on this mesh. More...
 
bool _partitioner_overridden
 
std::unique_ptr< Partitioner > _custom_partitioner
 The custom partitioner. More...
 
bool _custom_partitioner_requested
 
unsigned int _uniform_refine_level
 The level of uniform refinement requested (set to zero if AMR is disabled) More...
 
bool _skip_refine_when_use_split
 Whether or not to skip uniform refinements when using a pre-split mesh. More...
 
bool _skip_deletion_repartition_after_refine
 Whether or not skip remote deletion and repartition after uniform refinements. More...
 
bool _is_changed
 true if mesh is changed (i.e. after adaptivity step) More...
 
bool _is_nemesis
 True if a Nemesis Mesh was read in. More...
 
bool _moose_mesh_prepared = false
 True if prepare has been called on the mesh. More...
 
std::unique_ptr< ConstElemPointerRange_refined_elements
 The elements that were just refined. More...
 
std::unique_ptr< ConstElemPointerRange_coarsened_elements
 The elements that were just coarsened. More...
 
std::map< const Elem *, std::vector< const Elem * > > _coarsened_element_children
 Map of Parent elements to child elements for elements that were just coarsened. More...
 
std::set< Node * > _semilocal_node_list
 Used for generating the semilocal node range. More...
 
std::unique_ptr< ConstElemRange_active_local_elem_range
 A range for use with threading. More...
 
std::unique_ptr< SemiLocalNodeRange_active_semilocal_node_range
 
std::unique_ptr< NodeRange_active_node_range
 
std::unique_ptr< ConstNodeRange_local_node_range
 
std::unique_ptr< StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
 
std::unique_ptr< 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
 A map of all of the current nodes to the elements that they are connected to. More...
 
bool _node_to_elem_map_built
 
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
 A map of all of the current nodes to the active elements that they are connected to. More...
 
bool _node_to_active_semilocal_elem_map_built
 
std::set< SubdomainID_mesh_subdomains
 A set of subdomain IDs currently present in the mesh. More...
 
std::unique_ptr< std::map< BoundaryID, RealVectorValue > > _boundary_to_normal_map
 The boundary to normal map - valid only when AddAllSideSetsByNormals is active. More...
 
std::vector< BndNode * > _bnd_nodes
 array of boundary nodes More...
 
std::map< boundary_id_type, std::set< dof_id_type > > _bnd_node_ids
 Map of sets of node IDs in each boundary. More...
 
std::vector< BndElement * > _bnd_elems
 array of boundary elems More...
 
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
 Map of set of elem IDs connected to each boundary. More...
 
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
 list of nodes that belongs to a specified block (domain) More...
 
std::map< boundary_id_type, std::vector< dof_id_type > > _node_set_nodes
 list of nodes that belongs to a specified nodeset: indexing [nodeset_id] -> [array of node ids] More...
 
std::set< unsigned int_ghosted_boundaries
 
std::vector< Real_ghosted_boundaries_inflation
 
unsigned int _patch_size
 The number of nodes to consider in the NearestNode neighborhood. More...
 
unsigned int _ghosting_patch_size
 The number of nearest neighbors to consider for ghosting purposes when iteration patch update strategy is used. More...
 
unsigned int _max_leaf_size
 
Moose::PatchUpdateType _patch_update_strategy
 The patch update strategy. More...
 
std::vector< Node * > _node_map
 Vector of all the Nodes in the mesh for determining when to add a new point. More...
 
bool _regular_orthogonal_mesh
 Boolean indicating whether this mesh was detected to be regular and orthogonal. More...
 
std::vector< std::vector< Real > > _bounds
 The bounds in each dimension of the mesh for regular orthogonal meshes. More...
 
std::vector< std::pair< BoundaryID, BoundaryID > > _paired_boundary
 A vector holding the paired boundaries for a regular orthogonal mesh. More...
 
const bool _is_split
 Whether or not we are using a (pre-)split mesh (automatically DistributedMesh) More...
 
const bool & _enabled
 Reference to the "enable" InputParameters, used by Controls for toggling on/off MooseObjects. More...
 
MooseApp_app
 The MOOSE application this is associated with. More...
 
const std::string _type
 The type of this class. More...
 
const std::string _name
 The name of this class. More...
 
const InputParameters_pars
 Parameters of this object, references the InputParameters stored in the InputParametersWarehouse. More...
 
Factory_factory
 The Factory associated with the MooseApp. More...
 
ActionFactory_action_factory
 Builds Actions. More...
 
const Parallel::Communicator & _communicator
 
MooseApp_restartable_app
 Reference to the application. More...
 
const std::string _restartable_system_name
 The system name this object is in. More...
 
const THREAD_ID _restartable_tid
 The thread ID for this object. More...
 
const bool _restartable_read_only
 Flag for toggling read only status (see ReporterData) More...
 
MooseApp_pg_moose_app
 The MooseApp that owns the PerfGraph. More...
 
const std::string _prefix
 A prefix to use for all sections. More...
 
std::set< BoundaryID_mesh_boundary_ids
 A set of boundary IDs currently present in the mesh. More...
 
std::set< BoundaryID_mesh_sideset_ids
 
std::set< BoundaryID_mesh_nodeset_ids
 

Detailed Description

Mesh generated from parameters.

Definition at line 17 of file RinglebMesh.h.

Member Typedef Documentation

◆ bnd_elem_iterator_imp

typedef std::vector<BndElement *>::iterator MooseMesh::bnd_elem_iterator_imp
protectedinherited

Definition at line 1497 of file MooseMesh.h.

◆ bnd_node_iterator_imp

typedef std::vector<BndNode *>::iterator MooseMesh::bnd_node_iterator_imp
protectedinherited

Definition at line 1490 of file MooseMesh.h.

◆ const_bnd_elem_iterator_imp

typedef std::vector<BndElement *>::const_iterator MooseMesh::const_bnd_elem_iterator_imp
protectedinherited

Definition at line 1498 of file MooseMesh.h.

◆ const_bnd_node_iterator_imp

typedef std::vector<BndNode *>::const_iterator MooseMesh::const_bnd_node_iterator_imp
protectedinherited

Definition at line 1491 of file MooseMesh.h.

◆ DataFileParameterType

using DataFileInterface< MooseObject >::DataFileParameterType = DataFileName
inherited

The parameter type this interface expects for a data file name.

Definition at line 26 of file DataFileInterface.h.

◆ PeriodicNodeInfo

using MooseMesh::PeriodicNodeInfo = std::pair<const Node *, BoundaryID>
inherited

Helper type for building periodic node maps.

Definition at line 1052 of file MooseMesh.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited

Convenience enums.

Enumerator

Definition at line 1401 of file MooseMesh.h.

1402  {
1403  X = 0,
1404  Y,
1405  Z
1406  };

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
MIN 
MAX 

Definition at line 1407 of file MooseMesh.h.

1408  {
1409  MIN = 0,
1410  MAX
1411  };

◆ ParallelType

enum MooseMesh::ParallelType
stronginherited
Enumerator
DEFAULT 
REPLICATED 
DISTRIBUTED 

Definition at line 104 of file MooseMesh.h.

105  {
106  DEFAULT,
107  REPLICATED,
108  DISTRIBUTED
109  };

Constructor & Destructor Documentation

◆ RinglebMesh() [1/2]

RinglebMesh::RinglebMesh ( const InputParameters parameters)

Definition at line 46 of file RinglebMesh.C.

48  _gamma(getParam<Real>("gamma")),
49  _kmax(getParam<Real>("kmax")),
50  _kmin(getParam<Real>("kmin")),
51  _num_q_pts(getParam<int>("num_q_pts")),
52  _n_extra_q_pts(getParam<int>("n_extra_q_pts")),
53  _num_k_pts(getParam<int>("num_k_pts")),
54  _inflow_bid(getParam<boundary_id_type>("inflow_bid")),
55  _outflow_bid(getParam<boundary_id_type>("outflow_bid")),
56  _inner_wall_bid(getParam<boundary_id_type>("inner_wall_bid")),
57  _outer_wall_bid(getParam<boundary_id_type>("outer_wall_bid")),
58  _triangles(getParam<bool>("triangles"))
59 {
60 
61  // catch likely user errors
62  if (_kmax <= _kmin)
63  mooseError("RinglebMesh: kmax must be greater than kmin");
64 }
const int & _num_q_pts
How many points to discretize the range q = (0.5, k) into.
Definition: RinglebMesh.h:57
const boundary_id_type _outer_wall_bid
Definition: RinglebMesh.h:66
const Real & _kmax
k is a streamline parameter, i.e.
Definition: RinglebMesh.h:51
const bool & _triangles
This parameter, if true, allows to split the quadrilateral elements into triangular elements...
Definition: RinglebMesh.h:69
MooseMesh()=delete
const boundary_id_type _outflow_bid
Definition: RinglebMesh.h:66
const Real & _kmin
kmin corresponds to the outer wall
Definition: RinglebMesh.h:54
const int & _n_extra_q_pts
how many "extra" points should be inserted in the nearest element from the horizontal in additi /// o...
Definition: RinglebMesh.h:60
const boundary_id_type _inner_wall_bid
Definition: RinglebMesh.h:66
const Real & _gamma
Gamma.
Definition: RinglebMesh.h:45
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const int & _num_k_pts
how many points in the range k=(kmin, kmax).
Definition: RinglebMesh.h:63
const InputParameters & parameters() const
Get the parameters of the object.
const boundary_id_type _inflow_bid
The boundary ids to use for the ringleb mesh.
Definition: RinglebMesh.h:66

◆ RinglebMesh() [2/2]

RinglebMesh::RinglebMesh ( const RinglebMesh )
default

Member Function Documentation

◆ activeLocalElementsBegin() [1/2]

MeshBase::element_iterator MooseMesh::activeLocalElementsBegin ( )
inherited

Calls active_local_nodes_begin/end() on the underlying libMesh mesh object.

Definition at line 2802 of file MooseMesh.C.

Referenced by FEProblemBase::checkDisplacementOrders(), and MooseMesh::hasSecondOrderElements().

2803 {
2804  return getMesh().active_local_elements_begin();
2805 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ activeLocalElementsBegin() [2/2]

MeshBase::const_element_iterator MooseMesh::activeLocalElementsBegin ( ) const
inherited

Definition at line 2814 of file MooseMesh.C.

2815 {
2816  return getMesh().active_local_elements_begin();
2817 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ activeLocalElementsEnd() [1/2]

const MeshBase::element_iterator MooseMesh::activeLocalElementsEnd ( )
inherited

Definition at line 2808 of file MooseMesh.C.

Referenced by FEProblemBase::checkDisplacementOrders(), and MooseMesh::hasSecondOrderElements().

2809 {
2810  return getMesh().active_local_elements_end();
2811 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ activeLocalElementsEnd() [2/2]

const MeshBase::const_element_iterator MooseMesh::activeLocalElementsEnd ( ) const
inherited

Definition at line 2820 of file MooseMesh.C.

2821 {
2822  return getMesh().active_local_elements_end();
2823 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ addGhostedBoundary()

void MooseMesh::addGhostedBoundary ( BoundaryID  boundary_id)
inherited

This will add the boundary ids to be ghosted to this processor.

Definition at line 2980 of file MooseMesh.C.

Referenced by FEProblemBase::addGhostedBoundary().

2981 {
2982  _ghosted_boundaries.insert(boundary_id);
2983 }
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1514

◆ addPeriodicVariable()

void MooseMesh::addPeriodicVariable ( unsigned int  var_num,
BoundaryID  primary,
BoundaryID  secondary 
)
inherited

For "regular orthogonal" meshes, determine if variable var_num is periodic with respect to the primary and secondary BoundaryIDs, record this fact in the _periodic_dim data structure.

Definition at line 1974 of file MooseMesh.C.

Referenced by AddPeriodicBCAction::setPeriodicVars().

1975 {
1977  return;
1978 
1979  _periodic_dim[var_num].resize(dimension());
1980 
1981  _half_range = Point(dimensionWidth(0) / 2.0, dimensionWidth(1) / 2.0, dimensionWidth(2) / 2.0);
1982 
1983  for (unsigned int component = 0; component < dimension(); ++component)
1984  {
1985  const std::pair<BoundaryID, BoundaryID> * boundary_ids = getPairedBoundaryMapping(component);
1986 
1987  if (boundary_ids != nullptr &&
1988  ((boundary_ids->first == primary && boundary_ids->second == secondary) ||
1989  (boundary_ids->first == secondary && boundary_ids->second == primary)))
1990  _periodic_dim[var_num][component] = true;
1991  }
1992 }
RealVectorValue _half_range
A convenience vector used to hold values in each dimension representing half of the range...
Definition: MooseMesh.h:1587
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2679
const std::pair< BoundaryID, BoundaryID > * getPairedBoundaryMapping(unsigned int component)
This function attempts to return the paired boundary ids for the given component. ...
Definition: MooseMesh.C:2037
Real dimensionWidth(unsigned int component) const
Returns the width of the requested dimension.
Definition: MooseMesh.C:1950
std::map< unsigned int, std::vector< bool > > _periodic_dim
A map of vectors indicating which dimensions are periodic in a regular orthogonal mesh for the specif...
Definition: MooseMesh.h:1582
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1533

◆ addQuadratureNode()

Node * MooseMesh::addQuadratureNode ( const Elem *  elem,
const unsigned short int  side,
const unsigned int  qp,
BoundaryID  bid,
const Point &  point 
)
inherited

Adds a fictitious "QuadratureNode".

This doesn't actually add it to the libMesh mesh... we just keep track of these here in MooseMesh.

QuadratureNodes are fictitious "Nodes" that are located at quadrature points. This is useful for using the geometric search system to do searches based on quadrature point locations....

Parameters
elemThe element
sideThe side number on which we want to add a quadrature node
qpThe number of the quadrature point
bidThe boundary ID for the point to be added with
pointThe physical location of the point

Definition at line 1393 of file MooseMesh.C.

Referenced by GeometricSearchData::generateQuadratureNodes().

1398 {
1399  Node * qnode;
1400 
1401  if (_elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].find(qp) ==
1402  _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].end())
1403  {
1404  // Create a new node id starting from the max node id and counting down. This will be the least
1405  // likely to collide with an existing node id.
1406  // Note that we are using numeric_limits<unsigned>::max even
1407  // though max_id is stored as a dof_id_type. I tried this with
1408  // numeric_limits<dof_id_type>::max and it broke several tests in
1409  // MOOSE. So, this is some kind of a magic number that we will
1410  // just continue to use...
1412  dof_id_type new_id = max_id - _quadrature_nodes.size();
1413 
1414  if (new_id <= getMesh().max_node_id())
1415  mooseError("Quadrature node id collides with existing node id!");
1416 
1417  qnode = new Node(point, new_id);
1418 
1419  // Keep track of this new node in two different ways for easy lookup
1420  _quadrature_nodes[new_id] = qnode;
1421  _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp] = qnode;
1422 
1423  if (elem->active())
1424  {
1425  _node_to_elem_map[new_id].push_back(elem->id());
1426  _node_to_active_semilocal_elem_map[new_id].push_back(elem->id());
1427  }
1428  }
1429  else
1430  qnode = _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp];
1431 
1432  BndNode * bnode = new BndNode(qnode, bid);
1433  _bnd_nodes.push_back(bnode);
1434  _bnd_node_ids[bid].insert(qnode->id());
1435 
1436  _extra_bnd_nodes.push_back(*bnode);
1437 
1438  // Do this so the range will be regenerated next time it is accessed
1439  _bnd_node_range.reset();
1440 
1441  return qnode;
1442 }
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1503
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
A map of all of the current nodes to the elements that they are connected to.
Definition: MooseMesh.h:1461
std::map< boundary_id_type, std::set< dof_id_type > > _bnd_node_ids
Map of sets of node IDs in each boundary.
Definition: MooseMesh.h:1493
auto max(const L &left, const R &right)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1489
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1506
std::map< dof_id_type, std::map< unsigned int, std::map< dof_id_type, Node * > > > _elem_to_side_to_qp_to_quadrature_nodes
Definition: MooseMesh.h:1505
std::unique_ptr< StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1456
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
A map of all of the current nodes to the active elements that they are connected to.
Definition: MooseMesh.h:1465
uint8_t dof_id_type

◆ addUniqueNode()

const Node * MooseMesh::addUniqueNode ( const Point &  p,
Real  tol = 1e-6 
)
inherited

Add a new node to the mesh.

If there is already a node located at the point passed then the node will not be added. In either case a reference to the node at that location will be returned

Looping through the mesh nodes each time we add a point is very slow. To speed things up we keep a local data structure

Definition at line 1359 of file MooseMesh.C.

1360 {
1365  if (getMesh().n_nodes() != _node_map.size())
1366  {
1367  _node_map.clear();
1368  _node_map.reserve(getMesh().n_nodes());
1369  for (const auto & node : getMesh().node_ptr_range())
1370  _node_map.push_back(node);
1371  }
1372 
1373  Node * node = nullptr;
1374  for (unsigned int i = 0; i < _node_map.size(); ++i)
1375  {
1376  if (p.relative_fuzzy_equals(*_node_map[i], tol))
1377  {
1378  node = _node_map[i];
1379  break;
1380  }
1381  }
1382  if (node == nullptr)
1383  {
1384  node = getMesh().add_node(new Node(p));
1385  _node_map.push_back(node);
1386  }
1387 
1388  mooseAssert(node != nullptr, "Node is NULL");
1389  return node;
1390 }
const dof_id_type n_nodes
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::vector< Node * > _node_map
Vector of all the Nodes in the mesh for determining when to add a new point.
Definition: MooseMesh.h:1530
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:623

◆ allFaceInfo()

const std::vector< FaceInfo > & MooseMesh::allFaceInfo ( ) const
inlineinherited

Accessor for all FaceInfo objects.

Definition at line 2114 of file MooseMesh.h.

Referenced by SideIntegralPostprocessor::initialSetup().

2115 {
2116  return _all_face_info;
2117 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1560

◆ allowRecovery()

void MooseMesh::allowRecovery ( bool  allow)
inlineinherited

Set whether or not this mesh is allowed to read a recovery file.

Definition at line 1009 of file MooseMesh.h.

1009 { _allow_recovery = allow; }
bool _allow_recovery
Whether or not this Mesh is allowed to read a recovery file.
Definition: MooseMesh.h:1765

◆ allowRemoteElementRemoval() [1/2]

void MooseMesh::allowRemoteElementRemoval ( bool  allow_removal)
inherited

Set whether to allow remote element removal.

Definition at line 3662 of file MooseMesh.C.

Referenced by MooseApp::attachRelationshipManagers().

3663 {
3664  _allow_remote_element_removal = allow_remote_element_removal;
3665  if (_mesh)
3666  _mesh->allow_remote_element_removal(allow_remote_element_removal);
3667 
3668  if (!allow_remote_element_removal)
3669  // If we're not allowing remote element removal now, then we will need deletion later after
3670  // late geoemetric ghosting functors have been added (late geometric ghosting functor addition
3671  // happens when algebraic ghosting functors are added)
3672  _need_delete = true;
3673 }
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1774
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390
bool _need_delete
Whether we need to delete remote elements after init&#39;ing the EquationSystems.
Definition: MooseMesh.h:1771

◆ allowRemoteElementRemoval() [2/2]

bool MooseMesh::allowRemoteElementRemoval ( ) const
inlineinherited

Whether we are allow remote element removal.

Definition at line 1072 of file MooseMesh.h.

Referenced by MooseMesh::MooseMesh().

bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1774

◆ areElemIDsIdentical()

bool MooseMesh::areElemIDsIdentical ( const std::string &  id_name1,
const std::string &  id_name2 
) const
inlineinherited

Whether or not two extra element integers are identical.

Definition at line 2100 of file MooseMesh.h.

2101 {
2102  auto id1 = getElementIDIndex(id_name1);
2103  auto id2 = getElementIDIndex(id_name2);
2104  return _id_identical_flag[id1][id2];
2105 }
std::vector< std::vector< bool > > _id_identical_flag
Flags to indicate whether or not any two extra element integers are the same.
Definition: MooseMesh.h:1792
unsigned int getElementIDIndex(const std::string &id_name) const
Return the accessing integer for an extra element integer with its name.
Definition: MooseMesh.h:2092

◆ arhopj()

std::vector< Real > RinglebMesh::arhopj ( const Real gamma,
const std::vector< Real > &  q,
const int index 
)

Definition at line 73 of file RinglebMesh.C.

Referenced by buildMesh().

74 {
75  std::vector<Real> values(4);
76  Real a = std::sqrt(1 - ((gamma - 1) / 2.) * std::pow(q[index], 2));
77  Real rho = std::pow(a, 2. / (gamma - 1));
78  Real p = (1. / gamma) * std::pow(a, 2 * gamma / (gamma - 1));
79  Real J = 1. / a + 1. / (3. * std::pow(a, 3)) + 1. / (5. * std::pow(a, 5)) -
80  0.5 * std::log((1 + a) / (1 - a));
81  values = {a, rho, p, J};
82  return values;
83 }
ADRealEigenVector< T, D, asd > sqrt(const ADRealEigenVector< T, D, asd > &)
auto log(const T &)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MooseUnits pow(const MooseUnits &, int)
Definition: Units.C:537

◆ bndElemsBegin()

MooseMesh::bnd_elem_iterator MooseMesh::bndElemsBegin ( )
virtualinherited

Return iterators to the beginning/end of the boundary elements list.

Definition at line 1344 of file MooseMesh.C.

Referenced by MooseMesh::getBoundaryElementRange(), and MeshInfo::possiblyAddSidesetInfo().

1345 {
1346  Predicates::NotNull<bnd_elem_iterator_imp> p;
1347  return bnd_elem_iterator(_bnd_elems.begin(), _bnd_elems.end(), p);
1348 }
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1496

◆ bndElemsEnd()

MooseMesh::bnd_elem_iterator MooseMesh::bndElemsEnd ( )
virtualinherited

Definition at line 1352 of file MooseMesh.C.

Referenced by MooseMesh::getBoundaryElementRange(), and MeshInfo::possiblyAddSidesetInfo().

1353 {
1354  Predicates::NotNull<bnd_elem_iterator_imp> p;
1355  return bnd_elem_iterator(_bnd_elems.end(), _bnd_elems.end(), p);
1356 }
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1496

◆ bndNodesBegin()

MooseMesh::bnd_node_iterator MooseMesh::bndNodesBegin ( )
virtualinherited

Return iterators to the beginning/end of the boundary nodes list.

Definition at line 1328 of file MooseMesh.C.

Referenced by MooseMesh::getBoundaryNodeRange().

1329 {
1330  Predicates::NotNull<bnd_node_iterator_imp> p;
1331  return bnd_node_iterator(_bnd_nodes.begin(), _bnd_nodes.end(), p);
1332 }
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1489

◆ bndNodesEnd()

MooseMesh::bnd_node_iterator MooseMesh::bndNodesEnd ( )
virtualinherited

Definition at line 1336 of file MooseMesh.C.

Referenced by MooseMesh::getBoundaryNodeRange().

1337 {
1338  Predicates::NotNull<bnd_node_iterator_imp> p;
1339  return bnd_node_iterator(_bnd_nodes.end(), _bnd_nodes.end(), p);
1340 }
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1489

◆ buildActiveSideList()

std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > MooseMesh::buildActiveSideList ( ) const
inherited

Calls BoundaryInfo::build_active_side_list.

Returns
A container of active (element, side, id) tuples.

Definition at line 2766 of file MooseMesh.C.

Referenced by MooseMesh::buildFiniteVolumeInfo(), and PenetrationLocator::detectPenetration().

2767 {
2768  return getMesh().get_boundary_info().build_active_side_list();
2769 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ buildBndElemList()

void MooseMesh::buildBndElemList ( )
inherited

Definition at line 958 of file MooseMesh.C.

Referenced by MooseMesh::update().

959 {
960  TIME_SECTION("buildBndElemList", 5, "Building Boundary Elements List");
961 
962  freeBndElems();
963 
964  auto bc_tuples = getMesh().get_boundary_info().build_active_side_list();
965 
966  int n = bc_tuples.size();
967  _bnd_elems.clear();
968  _bnd_elems.reserve(n);
969  for (const auto & t : bc_tuples)
970  {
971  auto elem_id = std::get<0>(t);
972  auto side_id = std::get<1>(t);
973  auto bc_id = std::get<2>(t);
974 
975  _bnd_elems.push_back(new BndElement(getMesh().elem_ptr(elem_id), side_id, bc_id));
976  _bnd_elem_ids[bc_id].insert(elem_id);
977  }
978 }
void freeBndElems()
Definition: MooseMesh.C:352
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
Map of set of elem IDs connected to each boundary.
Definition: MooseMesh.h:1501
const boundary_id_type side_id
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1496

◆ buildFiniteVolumeInfo()

void MooseMesh::buildFiniteVolumeInfo ( ) const
inherited

Builds the face and elem info vectors that store meta-data needed for looping over and doing calculations based on mesh faces and elements in a finite volume setting.

This should only be called when finite volume variables are used in the problem or when the face and elem info objects are necessary for functor-based evaluations.

Definition at line 3486 of file MooseMesh.C.

Referenced by MooseMesh::setupFiniteVolumeMeshData().

3487 {
3488  mooseAssert(!Threads::in_threads,
3489  "This routine has not been implemented for threads. Please query this routine before "
3490  "a threaded region or contact a MOOSE developer to discuss.");
3491  _finite_volume_info_dirty = false;
3492 
3493  using Keytype = std::pair<const Elem *, unsigned short int>;
3494 
3495  // create a map from elem/side --> boundary ids
3496  std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>> side_list =
3498  std::map<Keytype, std::set<boundary_id_type>> side_map;
3499  for (auto & [elem_id, side, bc_id] : side_list)
3500  {
3501  const Elem * elem = _mesh->elem_ptr(elem_id);
3502  Keytype key(elem, side);
3503  auto & bc_set = side_map[key];
3504  bc_set.insert(bc_id);
3505  }
3506 
3507  _face_info.clear();
3508  _all_face_info.clear();
3509  _elem_side_to_face_info.clear();
3510 
3511  _elem_to_elem_info.clear();
3512  _elem_info.clear();
3513 
3514  // by performing the element ID comparison check in the below loop, we are ensuring that we never
3515  // double count face contributions. If a face lies along a process boundary, the only process that
3516  // will contribute to both sides of the face residuals/Jacobians will be the process that owns the
3517  // element with the lower ID.
3518  auto begin = getMesh().active_elements_begin();
3519  auto end = getMesh().active_elements_end();
3520 
3521  // We prepare a map connecting the Elem* and the corresponding ElemInfo
3522  // for the active elements.
3523  for (const Elem * elem : as_range(begin, end))
3524  _elem_to_elem_info.emplace(elem->id(), elem);
3525 
3526  dof_id_type face_index = 0;
3527  for (const Elem * elem : as_range(begin, end))
3528  {
3529  for (unsigned int side = 0; side < elem->n_sides(); ++side)
3530  {
3531  // get the neighbor element
3532  const Elem * neighbor = elem->neighbor_ptr(side);
3533 
3534  // Check if the FaceInfo shall belong to the element. If yes,
3535  // create and initialize the FaceInfo. We need this to ensure that
3536  // we do not duplicate FaceInfo-s.
3537  if (Moose::FV::elemHasFaceInfo(*elem, neighbor))
3538  {
3539  mooseAssert(!neighbor || (neighbor->level() < elem->level() ? neighbor->active() : true),
3540  "If the neighbor is coarser than the element, we expect that the neighbor must "
3541  "be active.");
3542 
3543  // We construct the faceInfo using the elementinfo and side index
3544  _all_face_info.emplace_back(&_elem_to_elem_info[elem->id()], side, face_index++);
3545 
3546  auto & fi = _all_face_info.back();
3547 
3548  // get all the sidesets that this face is contained in and cache them
3549  // in the face info.
3550  std::set<boundary_id_type> & boundary_ids = fi.boundaryIDs();
3551  boundary_ids.clear();
3552 
3553  // We initialize the weights/other information in faceInfo. If the neighbor does not exist
3554  // or is remote (so when we are on some sort of mesh boundary), we initialize the ghost
3555  // cell and use it to compute the weights corresponding to the faceInfo.
3556  if (!neighbor || neighbor == remote_elem)
3557  fi.computeBoundaryCoefficients();
3558  else
3559  fi.computeInternalCoefficients(&_elem_to_elem_info[neighbor->id()]);
3560 
3561  auto lit = side_map.find(Keytype(&fi.elem(), fi.elemSideID()));
3562  if (lit != side_map.end())
3563  boundary_ids.insert(lit->second.begin(), lit->second.end());
3564 
3565  if (fi.neighborPtr())
3566  {
3567  auto rit = side_map.find(Keytype(fi.neighborPtr(), fi.neighborSideID()));
3568  if (rit != side_map.end())
3569  boundary_ids.insert(rit->second.begin(), rit->second.end());
3570  }
3571  }
3572  }
3573  }
3574 
3575  // Build the local face info and elem_side to face info maps. We need to do this after
3576  // _all_face_info is finished being constructed because emplace_back invalidates all iterators and
3577  // references if ever the new size exceeds capacity
3578  for (auto & fi : _all_face_info)
3579  {
3580  const Elem * const elem = &fi.elem();
3581  const auto side = fi.elemSideID();
3582 
3583 #ifndef NDEBUG
3584  auto pair_it =
3585 #endif
3586  _elem_side_to_face_info.emplace(std::make_pair(elem, side), &fi);
3587  mooseAssert(pair_it.second, "We should be adding unique FaceInfo objects.");
3588 
3589  // We will add the faces on processor boundaries to the list of face infos on each
3590  // associated processor.
3591  if (fi.elem().processor_id() == this->processor_id() ||
3592  (fi.neighborPtr() && (fi.neighborPtr()->processor_id() == this->processor_id())))
3593  _face_info.push_back(&fi);
3594  }
3595 
3596  for (auto & ei : _elem_to_elem_info)
3597  if (ei.second.elem()->processor_id() == this->processor_id())
3598  _elem_info.push_back(&ei.second);
3599 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1560
std::vector< const FaceInfo * > _face_info
Holds only those FaceInfo objects that have processor_id equal to this process&#39;s id, e.g.
Definition: MooseMesh.h:1564
bool elemHasFaceInfo(const Elem &elem, const Elem *const neighbor)
This function infers based on elements if the faceinfo between them belongs to the element or not...
Definition: FVUtils.C:21
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1571
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildActiveSideList() const
Calls BoundaryInfo::build_active_side_list.
Definition: MooseMesh.C:2766
std::vector< const ElemInfo * > _elem_info
Holds only those ElemInfo objects that have processor_id equal to this process&#39;s id, e.g.
Definition: MooseMesh.h:1556
std::unordered_map< std::pair< const Elem *, unsigned int >, FaceInfo * > _elem_side_to_face_info
Map from elem-side pair to FaceInfo.
Definition: MooseMesh.h:1568
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
std::unordered_map< dof_id_type, ElemInfo > _elem_to_elem_info
Map connecting elems with their corresponding ElemInfo, we use the element ID as the key...
Definition: MooseMesh.h:1552
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
processor_id_type processor_id() const
uint8_t dof_id_type

◆ buildMesh()

void RinglebMesh::buildMesh ( )
overridevirtual

Must be overridden by child classes.

This is where the Mesh object is actually created and filled in.

Data structure that holds pointers to the Nodes of each streamline.

Node id counter.

Vector containing the regularly spaced k values

Vector containing the regularly spaced (and the extra q points) q values

Add the extra q points

Create the nodes for the upper part

Create the nodes for the lower part

Add elements for the whole mesh

This is done in order to avoid having two nodes at the exact same location (on the straight /// line y=0)

Find neighbors, etc.

Create the triangular elements if required by the user

Create sideset names.

Implements MooseMesh.

Definition at line 109 of file RinglebMesh.C.

110 {
111  MeshBase & mesh = getMesh();
112  BoundaryInfo & boundary_info = mesh.get_boundary_info();
113 
115  std::vector<std::vector<Node *>> stream_nodes(_num_k_pts);
116 
118  int current_node_id = 0;
119 
121  std::vector<Real> ks(_num_k_pts);
122  Real diff = (_kmax - _kmin) / (_num_k_pts - 1);
123  for (int i = 0; i < _num_k_pts; i++)
124  ks[i] = _kmin + i * diff;
125 
126  for (int i = 0; i < _num_k_pts; i++)
127  {
128  stream_nodes[i].resize(2 * (_num_q_pts + _n_extra_q_pts));
129 
131  std::vector<Real> q(_num_q_pts);
132  Real diffq = (ks[i] - 0.5) / (_num_q_pts - 1);
133  for (int j = 0; j < _num_q_pts; j++)
134  q[j] = 0.5 + j * diffq;
135 
137  for (int j = _num_q_pts; j < _num_q_pts + _n_extra_q_pts; j++)
138  {
139  std::vector<Real>::iterator it = q.end();
140  q.insert(--it, 0.3 * q[j - 2] + 0.7 * q[j - 1]);
141  }
142 
143  std::vector<Real> vals(4);
144  std::vector<Real> xy(2);
146  for (int j = 0; j < _num_q_pts + _n_extra_q_pts; j++)
147  {
148  // Compute the different parameters
149  vals = arhopj(_gamma, q, j);
150 
151  // Compute x and y
152  xy = computexy(vals, i, j, ks, q);
153 
154  // Create a node with (x,y) coordinates as it's on the upper part of the mesh
155  if (j != _num_q_pts + _n_extra_q_pts - 1)
156  stream_nodes[i][j] = mesh.add_point(Point(xy[0], xy[1]), current_node_id++);
157  }
158 
160  for (int j = _num_q_pts + _n_extra_q_pts; j < 2 * (_num_q_pts + _n_extra_q_pts); j++)
161  {
162  int index = 2 * (_num_q_pts + _n_extra_q_pts) - 1 - j;
163  // Compute the different parameters
164  vals = arhopj(_gamma, q, index);
165 
166  // Compute x and y
167  xy = computexy(vals, i, index, ks, q);
168 
169  // Create a node with (x,-y) coordinates as it's on the lower part of the mesh
170  stream_nodes[i][j] = mesh.add_point(Point(xy[0], -xy[1]), current_node_id++);
171  }
172  }
173 
175  for (int i = 0; i < _num_k_pts - 1; i++)
176  {
177  for (int j = 0; j < 2 * (_num_q_pts + _n_extra_q_pts) - 1; j++)
178  {
180  if (j != _num_q_pts + _n_extra_q_pts - 1 and j != _num_q_pts + _n_extra_q_pts - 2)
181  {
182  Elem * elem = mesh.add_elem(new Quad4);
183  elem->set_node(0) = stream_nodes[i][j];
184  elem->set_node(1) = stream_nodes[i][j + 1];
185  elem->set_node(2) = stream_nodes[i + 1][j + 1];
186  elem->set_node(3) = stream_nodes[i + 1][j];
187 
188  if (i == 0)
189  boundary_info.add_side(elem->id(), /*side=*/0, _outer_wall_bid);
190  if (j == 0)
191  boundary_info.add_side(elem->id(), /*side=*/3, _inflow_bid);
192  if (j == 2 * (_num_q_pts + _n_extra_q_pts) - 2)
193  boundary_info.add_side(elem->id(), /*side=*/1, _outflow_bid);
194  if (i == _num_k_pts - 2)
195  boundary_info.add_side(elem->id(), /*side=*/2, _inner_wall_bid);
196  }
197  else if (j == _num_q_pts + _n_extra_q_pts - 2)
198  {
199  Elem * elem = mesh.add_elem(new Quad4);
200  elem->set_node(0) = stream_nodes[i][j];
201  elem->set_node(1) = stream_nodes[i][j + 2];
202  elem->set_node(2) = stream_nodes[i + 1][j + 2];
203  elem->set_node(3) = stream_nodes[i + 1][j];
204 
205  if (i == 0)
206  boundary_info.add_side(elem->id(), /*side=*/0, _outer_wall_bid);
207  if (i == _num_k_pts - 2)
208  boundary_info.add_side(elem->id(), /*side=*/2, _inner_wall_bid);
209  }
210  }
211  }
212 
214  mesh.prepare_for_use();
215 
217  if (_triangles)
218  MeshTools::Modification::all_tri(mesh);
219 
221  boundary_info.sideset_name(_inflow_bid) = "inflow";
222  boundary_info.sideset_name(_outflow_bid) = "outflow";
223  boundary_info.sideset_name(_inner_wall_bid) = "inner_wall";
224  boundary_info.sideset_name(_outer_wall_bid) = "outer_wall";
225 }
const int & _num_q_pts
How many points to discretize the range q = (0.5, k) into.
Definition: RinglebMesh.h:57
const boundary_id_type _outer_wall_bid
Definition: RinglebMesh.h:66
const Real & _kmax
k is a streamline parameter, i.e.
Definition: RinglebMesh.h:51
const bool & _triangles
This parameter, if true, allows to split the quadrilateral elements into triangular elements...
Definition: RinglebMesh.h:69
MeshBase & mesh
std::vector< Real > arhopj(const Real &gamma, const std::vector< Real > &q, const int &index)
Definition: RinglebMesh.C:73
const boundary_id_type _outflow_bid
Definition: RinglebMesh.h:66
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::vector< Real > computexy(const std::vector< Real > values, const int &i, const int &index, const std::vector< Real > &ks, const std::vector< Real > &q)
Definition: RinglebMesh.C:86
const Real & _kmin
kmin corresponds to the outer wall
Definition: RinglebMesh.h:54
const int & _n_extra_q_pts
how many "extra" points should be inserted in the nearest element from the horizontal in additi /// o...
Definition: RinglebMesh.h:60
const boundary_id_type _inner_wall_bid
Definition: RinglebMesh.h:66
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const Real & _gamma
Gamma.
Definition: RinglebMesh.h:45
const int & _num_k_pts
how many points in the range k=(kmin, kmax).
Definition: RinglebMesh.h:63
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
const boundary_id_type _inflow_bid
The boundary ids to use for the ringleb mesh.
Definition: RinglebMesh.h:66

◆ buildMeshBaseObject()

std::unique_ptr< MeshBase > MooseMesh::buildMeshBaseObject ( unsigned int  dim = libMesh::invalid_uint)
inherited

Method to construct a libMesh::MeshBase object that is normally set and used by the MooseMesh object during the "init()" phase.

If the parameter dim is not provided, then its value will be taken from the input file mesh block.

Definition at line 2604 of file MooseMesh.C.

Referenced by MeshGenerator::buildMeshBaseObject(), and MooseMesh::init().

2605 {
2606  if (dim == libMesh::invalid_uint)
2607  dim = getParam<MooseEnum>("dim");
2608 
2609  std::unique_ptr<MeshBase> mesh;
2611  mesh = buildTypedMesh<DistributedMesh>(dim);
2612  else
2613  mesh = buildTypedMesh<ReplicatedMesh>(dim);
2614 
2615  return mesh;
2616 }
const unsigned int invalid_uint
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:148
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1385

◆ buildNodeList()

void MooseMesh::buildNodeList ( )
inherited

Calls BoundaryInfo::build_node_list()/build_side_list() and makes separate copies of Nodes/Elems in those lists.

Allocates memory which is cleaned up in the freeBndNodes()/freeBndElems() functions.

Definition at line 828 of file MooseMesh.C.

Referenced by MooseMesh::update().

829 {
830  TIME_SECTION("buildNodeList", 5, "Building Node List");
831 
832  freeBndNodes();
833 
834  auto bc_tuples = getMesh().get_boundary_info().build_node_list();
835 
836  int n = bc_tuples.size();
837  _bnd_nodes.clear();
838  _bnd_nodes.reserve(n);
839  for (const auto & t : bc_tuples)
840  {
841  auto node_id = std::get<0>(t);
842  auto bc_id = std::get<1>(t);
843 
844  _bnd_nodes.push_back(new BndNode(getMesh().node_ptr(node_id), bc_id));
845  _node_set_nodes[bc_id].push_back(node_id);
846  _bnd_node_ids[bc_id].insert(node_id);
847  }
848 
849  _bnd_nodes.reserve(_bnd_nodes.size() + _extra_bnd_nodes.size());
850  for (unsigned int i = 0; i < _extra_bnd_nodes.size(); i++)
851  {
852  BndNode * bnode = new BndNode(_extra_bnd_nodes[i]._node, _extra_bnd_nodes[i]._bnd_id);
853  _bnd_nodes.push_back(bnode);
854  _bnd_node_ids[std::get<1>(bc_tuples[i])].insert(_extra_bnd_nodes[i]._node->id());
855  }
856 
857  // This sort is here so that boundary conditions are always applied in the same order
858  std::sort(_bnd_nodes.begin(), _bnd_nodes.end(), BndNodeCompare());
859 }
Helper class for sorting Boundary Nodes so that we always get the same order of application for bound...
Definition: MooseMesh.C:804
std::map< boundary_id_type, std::set< dof_id_type > > _bnd_node_ids
Map of sets of node IDs in each boundary.
Definition: MooseMesh.h:1493
std::map< boundary_id_type, std::vector< dof_id_type > > _node_set_nodes
list of nodes that belongs to a specified nodeset: indexing [nodeset_id] -> [array of node ids] ...
Definition: MooseMesh.h:1512
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1489
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1506
void freeBndNodes()
Definition: MooseMesh.C:334

◆ buildNodeListFromSideList()

void MooseMesh::buildNodeListFromSideList ( )
inherited

Calls BoundaryInfo::build_node_list_from_side_list().

Definition at line 2734 of file MooseMesh.C.

Referenced by MooseMesh::prepare(), and MooseMesh::update().

2735 {
2737  getMesh().get_boundary_info().build_node_list_from_side_list();
2738 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
bool _construct_node_list_from_side_list
Whether or not to allow generation of nodesets from sidesets.
Definition: MooseMesh.h:1768

◆ buildPeriodicNodeMap()

void MooseMesh::buildPeriodicNodeMap ( std::multimap< dof_id_type, dof_id_type > &  periodic_node_map,
unsigned int  var_number,
PeriodicBoundaries *  pbs 
) const
inherited

This routine builds a multimap of boundary ids to matching boundary ids across all periodic boundaries in the system.

Definition at line 1588 of file MooseMesh.C.

1591 {
1592  TIME_SECTION("buildPeriodicNodeMap", 5);
1593 
1594  // clear existing map
1595  periodic_node_map.clear();
1596 
1597  // get periodic nodes
1598  std::vector<PeriodicNodeInfo> periodic_nodes;
1599  for (const auto & t : getMesh().get_boundary_info().build_node_list())
1600  {
1601  // unfortunately libMesh does not give us a pointer, so we have to look it up ourselves
1602  auto node = _mesh->node_ptr(std::get<0>(t));
1603  mooseAssert(node != nullptr,
1604  "libMesh::BoundaryInfo::build_node_list() returned an ID for a non-existing node");
1605  auto bc_id = std::get<1>(t);
1606  periodic_nodes.emplace_back(node, bc_id);
1607  }
1608 
1609  // sort by boundary id
1610  std::sort(periodic_nodes.begin(),
1611  periodic_nodes.end(),
1612  [](const PeriodicNodeInfo & a, const PeriodicNodeInfo & b) -> bool
1613  { return a.second > b.second; });
1614 
1615  // build kd-tree
1616  using KDTreeType = nanoflann::KDTreeSingleIndexAdaptor<
1617  nanoflann::L2_Simple_Adaptor<Real, PointListAdaptor<PeriodicNodeInfo>, Real, std::size_t>,
1619  LIBMESH_DIM,
1620  std::size_t>;
1621  const unsigned int max_leaf_size = 20; // slightly affects runtime
1622  auto point_list =
1623  PointListAdaptor<PeriodicNodeInfo>(periodic_nodes.begin(), periodic_nodes.end());
1624  auto kd_tree = std::make_unique<KDTreeType>(
1625  LIBMESH_DIM, point_list, nanoflann::KDTreeSingleIndexAdaptorParams(max_leaf_size));
1626  mooseAssert(kd_tree != nullptr, "KDTree was not properly initialized.");
1627  kd_tree->buildIndex();
1628 
1629  // data structures for kd-tree search
1630  nanoflann::SearchParameters search_params;
1631  std::vector<nanoflann::ResultItem<std::size_t, Real>> ret_matches;
1632 
1633  // iterate over periodic nodes (boundary ids are in contiguous blocks)
1634  PeriodicBoundaryBase * periodic = nullptr;
1635  BoundaryID current_bc_id = BoundaryInfo::invalid_id;
1636  for (auto & pair : periodic_nodes)
1637  {
1638  // entering a new block of boundary IDs
1639  if (pair.second != current_bc_id)
1640  {
1641  current_bc_id = pair.second;
1642  periodic = pbs->boundary(current_bc_id);
1643  if (periodic && !periodic->is_my_variable(var_number))
1644  periodic = nullptr;
1645  }
1646 
1647  // variable is not periodic at this node, skip
1648  if (!periodic)
1649  continue;
1650 
1651  // clear result buffer
1652  ret_matches.clear();
1653 
1654  // id of the current node
1655  const auto id = pair.first->id();
1656 
1657  // position where we expect a periodic partner for the current node and boundary
1658  Point search_point = periodic->get_corresponding_pos(*pair.first);
1659 
1660  // search at the expected point
1661  kd_tree->radiusSearch(&(search_point)(0), libMesh::TOLERANCE, ret_matches, search_params);
1662  for (auto & match_pair : ret_matches)
1663  {
1664  const auto & match = periodic_nodes[match_pair.first];
1665  // add matched node if the boundary id is the corresponding id in the periodic pair
1666  if (match.second == periodic->pairedboundary)
1667  periodic_node_map.emplace(id, match.first->id());
1668  }
1669  }
1670 }
static constexpr Real TOLERANCE
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::pair< const Node *, BoundaryID > PeriodicNodeInfo
Helper type for building periodic node maps.
Definition: MooseMesh.h:1052
boundary_id_type BoundaryID
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:623
SearchParams SearchParameters

◆ buildPeriodicNodeSets()

void MooseMesh::buildPeriodicNodeSets ( std::map< BoundaryID, std::set< dof_id_type >> &  periodic_node_sets,
unsigned int  var_number,
PeriodicBoundaries *  pbs 
) const
inherited

This routine builds a datastructure of node ids organized by periodic boundary ids.

Definition at line 1673 of file MooseMesh.C.

1676 {
1677  TIME_SECTION("buildPeriodicNodeSets", 5);
1678 
1679  periodic_node_sets.clear();
1680 
1681  // Loop over all the boundary nodes adding the periodic nodes to the appropriate set
1682  for (const auto & t : getMesh().get_boundary_info().build_node_list())
1683  {
1684  auto node_id = std::get<0>(t);
1685  auto bc_id = std::get<1>(t);
1686 
1687  // Is this current node on a known periodic boundary?
1688  if (periodic_node_sets.find(bc_id) != periodic_node_sets.end())
1689  periodic_node_sets[bc_id].insert(node_id);
1690  else // This still might be a periodic node but we just haven't seen this boundary_id yet
1691  {
1692  const PeriodicBoundaryBase * periodic = pbs->boundary(bc_id);
1693  if (periodic && periodic->is_my_variable(var_number))
1694  periodic_node_sets[bc_id].insert(node_id);
1695  }
1696  }
1697 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ buildPRefinementAndCoarseningMaps()

void MooseMesh::buildPRefinementAndCoarseningMaps ( Assembly assembly)
inherited

Definition at line 2112 of file MooseMesh.C.

Referenced by MooseMesh::buildRefinementAndCoarseningMaps(), and FEProblemBase::meshChangedHelper().

2113 {
2118 
2119  std::map<ElemType, std::pair<Elem *, unsigned int>> elems_and_max_p_level;
2120 
2121  for (const auto & elem : getMesh().active_element_ptr_range())
2122  {
2123  const auto type = elem->type();
2124  auto & [picked_elem, max_p_level] = elems_and_max_p_level[type];
2125  if (!picked_elem)
2126  picked_elem = elem;
2127  max_p_level = std::max(max_p_level, elem->p_level());
2128  }
2129 
2130  // The only requirement on the FEType is that it can be arbitrarily p-refined
2131  const FEType p_refinable_fe_type(CONSTANT, MONOMIAL);
2132  std::vector<Point> volume_ref_points_coarse, volume_ref_points_fine, face_ref_points_coarse,
2133  face_ref_points_fine;
2134  std::vector<unsigned int> p_levels;
2135 
2136  for (auto & [elem_type, elem_p_level_pair] : elems_and_max_p_level)
2137  {
2138  auto & [moose_elem, max_p_level] = elem_p_level_pair;
2139  const auto dim = moose_elem->dim();
2140  // Need to do this just once to get the right qrules put in place
2141  assembly->setCurrentSubdomainID(moose_elem->subdomain_id());
2142  assembly->reinit(moose_elem);
2143  assembly->reinit(moose_elem, 0);
2144  auto & qrule = assembly->writeableQRule();
2145  auto & qrule_face = assembly->writeableQRuleFace();
2146 
2147  libMesh::Parallel::Communicator self_comm{};
2148  ReplicatedMesh mesh(self_comm);
2149  mesh.set_mesh_dimension(dim);
2150  for (const auto & nd : moose_elem->node_ref_range())
2151  mesh.add_point(nd);
2152 
2153  Elem * const elem = mesh.add_elem(Elem::build(elem_type).release());
2154  for (const auto i : elem->node_index_range())
2155  elem->set_node(i) = mesh.node_ptr(i);
2156 
2157  std::unique_ptr<FEBase> fe(FEBase::build(dim, p_refinable_fe_type));
2158  std::unique_ptr<FEBase> fe_face(FEBase::build(dim, p_refinable_fe_type));
2159  fe_face->get_phi();
2160  const auto & face_phys_points = fe_face->get_xyz();
2161 
2162  fe->attach_quadrature_rule(qrule);
2163  fe_face->attach_quadrature_rule(qrule_face);
2164  fe->reinit(elem);
2165  volume_ref_points_coarse = qrule->get_points();
2166  fe_face->reinit(elem, (unsigned int)0);
2167  FEInterface::inverse_map(
2168  dim, p_refinable_fe_type, elem, face_phys_points, face_ref_points_coarse);
2169 
2170  p_levels.resize(max_p_level + 1);
2171  std::iota(p_levels.begin(), p_levels.end(), 0);
2172  MeshRefinement mesh_refinement(mesh);
2173 
2174  for (const auto p_level : p_levels)
2175  {
2176  mesh_refinement.uniformly_p_refine(1);
2177  fe->reinit(elem);
2178  volume_ref_points_fine = qrule->get_points();
2179  fe_face->reinit(elem, (unsigned int)0);
2180  FEInterface::inverse_map(
2181  dim, p_refinable_fe_type, elem, face_phys_points, face_ref_points_fine);
2182 
2183  const auto map_key = std::make_pair(elem_type, p_level);
2184  auto & volume_refine_map = _elem_type_to_p_refinement_map[map_key];
2185  auto & face_refine_map = _elem_type_to_p_refinement_side_map[map_key];
2186  auto & volume_coarsen_map = _elem_type_to_p_coarsening_map[map_key];
2187  auto & face_coarsen_map = _elem_type_to_p_coarsening_side_map[map_key];
2188 
2189  auto fill_maps = [this](const auto & coarse_ref_points,
2190  const auto & fine_ref_points,
2191  auto & coarsen_map,
2192  auto & refine_map)
2193  {
2194  mapPoints(fine_ref_points, coarse_ref_points, refine_map);
2195  mapPoints(coarse_ref_points, fine_ref_points, coarsen_map);
2196  };
2197 
2198  fill_maps(
2199  volume_ref_points_coarse, volume_ref_points_fine, volume_coarsen_map, volume_refine_map);
2200  fill_maps(face_ref_points_coarse, face_ref_points_fine, face_coarsen_map, face_refine_map);
2201 
2202  // With this level's maps filled our fine points now become our coarse points
2203  volume_ref_points_fine.swap(volume_ref_points_coarse);
2204  face_ref_points_fine.swap(face_ref_points_coarse);
2205  }
2206  }
2207 }
std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_map
Definition: MooseMesh.h:1707
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:148
std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_side_map
Definition: MooseMesh.h:1734
void reinit(const Elem *elem)
Reinitialize objects (JxW, q_points, ...) for an elements.
Definition: Assembly.C:1811
auto max(const L &left, const R &right)
void mapPoints(const std::vector< Point > &from, const std::vector< Point > &to, std::vector< QpMap > &qp_map)
Find the closest points that map "from" to "to" and fill up "qp_map".
Definition: MooseMesh.C:2338
QBase *const & writeableQRuleFace()
Returns the reference to the current quadrature being used on a current face.
Definition: Assembly.h:292
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
QBase *const & writeableQRule()
Returns the reference to the current quadrature being used.
Definition: Assembly.h:216
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:51
std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_map
Definition: MooseMesh.h:1732
std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_side_map
Definition: MooseMesh.h:1709
void setCurrentSubdomainID(SubdomainID i)
set the current subdomain ID
Definition: Assembly.h:377
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ buildRefinementAndCoarseningMaps()

void MooseMesh::buildRefinementAndCoarseningMaps ( Assembly assembly)
inherited

Create the refinement and coarsening maps necessary for projection of stateful material properties when using adaptivity.

Parameters
assemblyPointer to the Assembly object for this Mesh.

Definition at line 2210 of file MooseMesh.C.

Referenced by FEProblemBase::initialSetup().

2211 {
2212  TIME_SECTION("buildRefinementAndCoarseningMaps", 5, "Building Refinement And Coarsening Maps");
2213  if (doingPRefinement())
2215  else
2217 }
void buildHRefinementAndCoarseningMaps(Assembly *assembly)
Definition: MooseMesh.C:2055
bool doingPRefinement() const
Query whether we have p-refinement.
Definition: MooseMesh.h:1330
void buildPRefinementAndCoarseningMaps(Assembly *assembly)
Definition: MooseMesh.C:2112

◆ buildSideList() [1/2]

void MooseMesh::buildSideList ( std::vector< dof_id_type > &  el,
std::vector< unsigned short int > &  sl,
std::vector< boundary_id_type > &  il 
)
inherited

Calls BoundaryInfo::build_side_list().

Fills in the three passed vectors with list logical (element, side, id) tuples. This function will eventually be deprecated in favor of the one below, which returns a single std::vector of (elem-id, side-id, bc-id) tuples instead.

Definition at line 2741 of file MooseMesh.C.

Referenced by InterfaceQpUserObjectBase::initialSetup().

2744 {
2745 #ifdef LIBMESH_ENABLE_DEPRECATED
2746  mooseDeprecated("The version of MooseMesh::buildSideList() taking three arguments is "
2747  "deprecated, call the version that returns a vector of tuples instead.");
2748  getMesh().get_boundary_info().build_side_list(el, sl, il);
2749 #else
2750  libmesh_ignore(el);
2751  libmesh_ignore(sl);
2752  libmesh_ignore(il);
2753  mooseError("The version of MooseMesh::buildSideList() taking three "
2754  "arguments is not available in your version of libmesh, call the "
2755  "version that returns a vector of tuples instead.");
2756 #endif
2757 }
void mooseDeprecated(Args &&... args) const
void libmesh_ignore(const Args &...)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ buildSideList() [2/2]

std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > MooseMesh::buildSideList ( )
inherited

As above, but uses the non-deprecated std::tuple interface.

Definition at line 2760 of file MooseMesh.C.

2761 {
2762  return getMesh().get_boundary_info().build_side_list();
2763 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ buildTypedMesh()

template<typename T >
std::unique_ptr< T > MooseMesh::buildTypedMesh ( unsigned int  dim = libMesh::invalid_uint)
inherited

Shortcut method to construct a unique pointer to a libMesh mesh instance.

The created derived-from-MeshBase object will have its allow_remote_element_removal flag set to whatever our value is. We will also attach any geometric RelationshipManagers that have been requested by our simulation objects to the MeshBase object. If the parameter dim is not provided, then its value will be taken from the input file mesh block.

Definition at line 2031 of file MooseMesh.h.

Referenced by MeshGenerator::buildDistributedMesh(), and MeshGenerator::buildReplicatedMesh().

2032 {
2033  // If the requested mesh type to build doesn't match our current value for _use_distributed_mesh,
2034  // then we need to make sure to make our state consistent because other objects, like the periodic
2035  // boundary condition action, will be querying isDistributedMesh()
2036  if (_use_distributed_mesh != std::is_same<T, DistributedMesh>::value)
2037  {
2038  if (getMeshPtr())
2039  mooseError("A MooseMesh object is being asked to build a libMesh mesh that is a different "
2040  "parallel type than the libMesh mesh that it wraps. This is not allowed. Please "
2041  "create another MooseMesh object to wrap the new libMesh mesh");
2042  setParallelType(MeshType<T>::value);
2043  }
2044 
2045  if (dim == libMesh::invalid_uint)
2046  dim = getParam<MooseEnum>("dim");
2047 
2048  auto mesh = std::make_unique<T>(_communicator, dim);
2049 
2050  if (!getParam<bool>("allow_renumbering"))
2051  mesh->allow_renumbering(false);
2052 
2053  mesh->allow_remote_element_removal(_allow_remote_element_removal);
2054  _app.attachRelationshipManagers(*mesh, *this);
2055 
2057  {
2058  // Check of partitioner is supplied (not allowed if custom partitioner is used)
2059  if (!parameters().isParamSetByAddParam("partitioner"))
2060  mooseError("If partitioner block is provided, partitioner keyword cannot be used!");
2061  // Set custom partitioner
2062  if (!_custom_partitioner.get())
2063  mooseError("Custom partitioner requested but not set!");
2064  mesh->partitioner() = _custom_partitioner->clone();
2065  }
2066  else
2067  setPartitionerHelper(mesh.get());
2068 
2069  return mesh;
2070 }
const unsigned int invalid_uint
void setParallelType(ParallelType parallel_type)
Allow to change parallel type.
Definition: MooseMesh.h:2079
bool _custom_partitioner_requested
Definition: MooseMesh.h:1398
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:148
const Parallel::Communicator & _communicator
void setPartitionerHelper(MeshBase *mesh=nullptr)
Definition: MooseMesh.C:3379
void attachRelationshipManagers(Moose::RelationshipManagerType rm_type, bool attach_geometric_rm_final=false)
Attach the relationship managers of the given type Note: Geometric relationship managers that are sup...
Definition: MooseApp.C:2552
const MeshBase * getMeshPtr() const
Definition: MooseMesh.C:3193
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1385
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1774
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const InputParameters & parameters() const
Get the parameters of the object.
std::unique_ptr< Partitioner > _custom_partitioner
The custom partitioner.
Definition: MooseMesh.h:1397

◆ cacheChangedLists()

void MooseMesh::cacheChangedLists ( )
inherited

Cache information about what elements were refined and coarsened in the previous step.

Definition at line 716 of file MooseMesh.C.

Referenced by FEProblemBase::meshChangedHelper().

717 {
718  TIME_SECTION("cacheChangedLists", 5, "Caching Changed Lists");
719 
720  ConstElemRange elem_range(getMesh().local_elements_begin(), getMesh().local_elements_end(), 1);
721  CacheChangedListsThread cclt(*this);
722  Threads::parallel_reduce(elem_range, cclt);
723 
725 
726  _refined_elements = std::make_unique<ConstElemPointerRange>(cclt._refined_elements.begin(),
727  cclt._refined_elements.end());
728  _coarsened_elements = std::make_unique<ConstElemPointerRange>(cclt._coarsened_elements.begin(),
729  cclt._coarsened_elements.end());
730  _coarsened_element_children = cclt._coarsened_element_children;
731 }
std::unique_ptr< ConstElemPointerRange > _refined_elements
The elements that were just refined.
Definition: MooseMesh.h:1432
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::unique_ptr< ConstElemPointerRange > _coarsened_elements
The elements that were just coarsened.
Definition: MooseMesh.h:1435
std::map< const Elem *, std::vector< const Elem * > > _coarsened_element_children
Map of Parent elements to child elements for elements that were just coarsened.
Definition: MooseMesh.h:1442

◆ cacheFaceInfoVariableOwnership()

void MooseMesh::cacheFaceInfoVariableOwnership ( ) const
inherited

Cache if variables live on the elements connected by the FaceInfo objects.

The following paragraph of code assigns the VarFaceNeighbors

  1. The face is an internal face of this variable if it is defined on the elem and neighbor subdomains
  2. The face is an invalid face of this variable if it is neither defined on the elem nor the neighbor subdomains
  3. If not 1. or 2. then this is a boundary for this variable and the else clause applies

Definition at line 3688 of file MooseMesh.C.

Referenced by MooseMesh::setupFiniteVolumeMeshData().

3689 {
3690  mooseAssert(
3691  !Threads::in_threads,
3692  "Performing writes to faceInfo variable association maps. This must be done unthreaded!");
3693 
3694  std::vector<const MooseVariableFieldBase *> moose_vars;
3695 
3696  for (const auto i : make_range(_app.feProblem().numNonlinearSystems()))
3697  {
3698  const auto & nl_variables = _app.feProblem().getNonlinearSystemBase(i).getVariables(0);
3699  for (const auto & var : nl_variables)
3700  if (var->fieldType() == Moose::VAR_FIELD_STANDARD)
3701  moose_vars.push_back(var);
3702  }
3703 
3704  for (const auto i : make_range(_app.feProblem().numLinearSystems()))
3705  {
3706  const auto & variables = _app.feProblem().getLinearSystem(i).getVariables(0);
3707  for (const auto & var : variables)
3708  if (var->fieldType() == Moose::VAR_FIELD_STANDARD)
3709  moose_vars.push_back(var);
3710  }
3711 
3712  const auto & aux_variables = _app.feProblem().getAuxiliarySystem().getVariables(0);
3713  for (const auto & var : aux_variables)
3714  if (var->fieldType() == Moose::VAR_FIELD_STANDARD)
3715  moose_vars.push_back(var);
3716 
3717  for (FaceInfo & face : _all_face_info)
3718  {
3719  const SubdomainID elem_subdomain_id = face.elemSubdomainID();
3720  const SubdomainID neighbor_subdomain_id = face.neighborSubdomainID();
3721 
3722  // loop through vars
3723  for (unsigned int j = 0; j < moose_vars.size(); ++j)
3724  {
3725  // get the variable, its name, and its domain of definition
3726  const MooseVariableFieldBase * const var = moose_vars[j];
3727  const std::pair<unsigned int, unsigned int> var_sys =
3728  std::make_pair(var->number(), var->sys().number());
3729  std::set<SubdomainID> var_subdomains = var->blockIDs();
3730 
3740  bool var_defined_elem = var_subdomains.find(elem_subdomain_id) != var_subdomains.end();
3741  bool var_defined_neighbor =
3742  var_subdomains.find(neighbor_subdomain_id) != var_subdomains.end();
3743  if (var_defined_elem && var_defined_neighbor)
3744  face.faceType(var_sys) = FaceInfo::VarFaceNeighbors::BOTH;
3745  else if (!var_defined_elem && !var_defined_neighbor)
3746  face.faceType(var_sys) = FaceInfo::VarFaceNeighbors::NEITHER;
3747  else
3748  {
3749  // this is a boundary face for this variable, set elem or neighbor
3750  if (var_defined_elem)
3751  face.faceType(var_sys) = FaceInfo::VarFaceNeighbors::ELEM;
3752  else if (var_defined_neighbor)
3753  face.faceType(var_sys) = FaceInfo::VarFaceNeighbors::NEIGHBOR;
3754  else
3755  mooseError("Should never get here");
3756  }
3757  }
3758  }
3759 }
const std::vector< MooseVariableFieldBase * > & getVariables(THREAD_ID tid)
Definition: SystemBase.h:742
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1560
virtual std::size_t numNonlinearSystems() const override
unsigned int number() const
Get variable number coming from libMesh.
This class provides an interface for common operations on field variables of both FE and FV types wit...
virtual const std::set< SubdomainID > & blockIDs() const
Return the block subdomain ids for this object Note, if this is not block restricted, this function returns all mesh subdomain ids.
FEProblemBase & feProblem() const
Definition: MooseApp.C:1320
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition: FaceInfo.h:35
NonlinearSystemBase & getNonlinearSystemBase(const unsigned int sys_num)
subdomain_id_type SubdomainID
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
unsigned int number() const
Gets the number of this system.
Definition: SystemBase.C:1132
AuxiliarySystem & getAuxiliarySystem()
LinearSystem & getLinearSystem(unsigned int sys_num)
Get non-constant reference to a linear system.
IntRange< T > make_range(T beg, T end)
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual std::size_t numLinearSystems() const override
SystemBase & sys()
Get the system this variable is part of.

◆ cacheFVElementalDoFs()

void MooseMesh::cacheFVElementalDoFs ( ) const
inherited

Cache the DoF indices for FV variables on each element.

These indices are used to speed up the setup loops of finite volume systems.

Definition at line 3762 of file MooseMesh.C.

Referenced by MooseMesh::setupFiniteVolumeMeshData().

3763 {
3764  mooseAssert(!Threads::in_threads,
3765  "Performing writes to elemInfo dof indices. This must be done unthreaded!");
3766 
3767  const unsigned int num_eqs = _app.feProblem().es().n_systems();
3768 
3769  for (auto & elem_info_pair : _elem_to_elem_info)
3770  {
3771  ElemInfo & elem_info = elem_info_pair.second;
3772  auto & dof_vector = elem_info.dofIndices();
3773 
3774  dof_vector.clear();
3775  dof_vector.resize(num_eqs);
3776 
3777  for (const auto i : make_range(_app.feProblem().numNonlinearSystems()))
3779  {
3780  auto & sys = _app.feProblem().getNonlinearSystemBase(i);
3781  dof_vector[sys.number()].resize(sys.nVariables(), libMesh::DofObject::invalid_id);
3782  const auto & variables = sys.getVariables(0);
3783  for (const auto & var : variables)
3784  {
3785  const auto & var_subdomains = var->blockIDs();
3786 
3787  // We will only cache for FV variables and if they live on the current subdomain
3788  if (var->isFV() && var_subdomains.find(elem_info.subdomain_id()) != var_subdomains.end())
3789  {
3790  std::vector<dof_id_type> indices;
3791  var->dofMap().dof_indices(elem_info.elem(), indices, var->number());
3792  mooseAssert(indices.size() == 1, "We expect to have only one dof per element!");
3793  dof_vector[sys.number()][var->number()] = indices[0];
3794  }
3795  }
3796  }
3797 
3798  for (const auto i : make_range(_app.feProblem().numLinearSystems()))
3800  {
3801  auto & sys = _app.feProblem().getLinearSystem(i);
3802  dof_vector[sys.number()].resize(sys.nVariables(), libMesh::DofObject::invalid_id);
3803  const auto & variables = sys.getVariables(0);
3804  for (const auto & var : variables)
3805  {
3806  const auto & var_subdomains = var->blockIDs();
3807 
3808  // We will only cache for FV variables and if they live on the current subdomain
3809  if (var->isFV() && var_subdomains.find(elem_info.subdomain_id()) != var_subdomains.end())
3810  {
3811  std::vector<dof_id_type> indices;
3812  var->dofMap().dof_indices(elem_info.elem(), indices, var->number());
3813  mooseAssert(indices.size() == 1, "We expect to have only one dof per element!");
3814  dof_vector[sys.number()][var->number()] = indices[0];
3815  }
3816  }
3817  }
3818 
3820  {
3821  auto & sys = _app.feProblem().getAuxiliarySystem();
3822  dof_vector[sys.number()].resize(sys.nVariables(), libMesh::DofObject::invalid_id);
3823  const auto & aux_variables = sys.getVariables(0);
3824  for (const auto & var : aux_variables)
3825  {
3826  const auto & var_subdomains = var->blockIDs();
3827 
3828  // We will only cache for FV variables and if they live on the current subdomain
3829  if (var->isFV() && var_subdomains.find(elem_info.subdomain_id()) != var_subdomains.end())
3830  {
3831  std::vector<dof_id_type> indices;
3832  var->dofMap().dof_indices(elem_info.elem(), indices, var->number());
3833  mooseAssert(indices.size() == 1, "We expect to have only one dof per element!");
3834  dof_vector[sys.number()][var->number()] = indices[0];
3835  }
3836  }
3837  }
3838  }
3839 }
const std::vector< MooseVariableFieldBase * > & getVariables(THREAD_ID tid)
Definition: SystemBase.h:742
virtual std::size_t numNonlinearSystems() const override
const Elem * elem() const
Definition: ElemInfo.h:34
FEProblemBase & feProblem() const
Definition: MooseApp.C:1320
virtual EquationSystems & es() override
static const dof_id_type invalid_id
NonlinearSystemBase & getNonlinearSystemBase(const unsigned int sys_num)
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
AuxiliarySystem & getAuxiliarySystem()
std::unordered_map< dof_id_type, ElemInfo > _elem_to_elem_info
Map connecting elems with their corresponding ElemInfo, we use the element ID as the key...
Definition: MooseMesh.h:1552
LinearSystem & getLinearSystem(unsigned int sys_num)
Get non-constant reference to a linear system.
const std::vector< std::vector< dof_id_type > > & dofIndices() const
Definition: ElemInfo.h:39
unsigned int nFVVariables() const
Get the number of finite volume variables in this system.
Definition: SystemBase.C:866
IntRange< T > make_range(T beg, T end)
virtual std::size_t numLinearSystems() const override
Class used for caching additional information for elements such as the volume and centroid...
Definition: ElemInfo.h:25
SubdomainID subdomain_id() const
We return the subdomain ID of the corresponding libmesh element.
Definition: ElemInfo.h:43

◆ cacheInfo()

void MooseMesh::cacheInfo ( )
protectedinherited

Definition at line 1210 of file MooseMesh.C.

Referenced by MooseMesh::update().

1211 {
1212  TIME_SECTION("cacheInfo", 3);
1213 
1214  _has_lower_d = false;
1215  _sub_to_data.clear();
1217  _block_node_list.clear();
1219 
1220  // TODO: Thread this!
1221  for (const auto & elem : getMesh().element_ptr_range())
1222  {
1223  const Elem * ip_elem = elem->interior_parent();
1224 
1225  if (ip_elem)
1226  {
1227  if (elem->active())
1228  _sub_to_data[elem->subdomain_id()].is_lower_d = true;
1229  unsigned int ip_side = ip_elem->which_side_am_i(elem);
1230 
1231  // For some grid sequencing tests: ip_side == libMesh::invalid_uint
1232  if (ip_side != libMesh::invalid_uint)
1233  {
1234  auto pair = std::make_pair(ip_elem, ip_side);
1236  std::pair<std::pair<const Elem *, unsigned short int>, const Elem *>(pair, elem));
1237  }
1238  }
1239 
1240  for (unsigned int nd = 0; nd < elem->n_nodes(); ++nd)
1241  {
1242  Node & node = *elem->node_ptr(nd);
1243  _block_node_list[node.id()].insert(elem->subdomain_id());
1244  }
1245  }
1246 
1247  for (const auto & elem : getMesh().active_local_element_ptr_range())
1248  {
1249  SubdomainID subdomain_id = elem->subdomain_id();
1250  auto & sub_data = _sub_to_data[subdomain_id];
1251  for (unsigned int side = 0; side < elem->n_sides(); side++)
1252  {
1253  std::vector<BoundaryID> boundary_ids = getBoundaryIDs(elem, side);
1254  sub_data.boundary_ids.insert(boundary_ids.begin(), boundary_ids.end());
1255 
1256  Elem * neig = elem->neighbor_ptr(side);
1257  if (neig)
1258  {
1259  _neighbor_subdomain_boundary_ids[neig->subdomain_id()].insert(boundary_ids.begin(),
1260  boundary_ids.end());
1261  SubdomainID neighbor_subdomain_id = neig->subdomain_id();
1262  if (neighbor_subdomain_id != subdomain_id)
1263  sub_data.neighbor_subs.insert(neighbor_subdomain_id);
1264  }
1265  }
1266  }
1267 
1268  for (const auto blk_id : _mesh_subdomains)
1269  {
1270  auto & sub_data = _sub_to_data[blk_id];
1271  _communicator.set_union(sub_data.neighbor_subs);
1272  _communicator.set_union(sub_data.boundary_ids);
1273  _communicator.max(sub_data.is_lower_d);
1274  if (sub_data.is_lower_d)
1275  _has_lower_d = true;
1277  }
1278 }
const std::set< BoundaryID > & getBoundaryIDs() const
Returns a const reference to a set of all user-specified boundary IDs.
Definition: MooseMesh.C:2728
const unsigned int invalid_uint
std::unordered_map< std::pair< const Elem *, unsigned short int >, const Elem * > _higher_d_elem_side_to_lower_d_elem
Holds a map from a high-order element side to its corresponding lower-d element.
Definition: MooseMesh.h:1757
bool _has_lower_d
Whether there are any lower-dimensional blocks that are manifolds of higher-dimensional block faces...
Definition: MooseMesh.h:1762
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
list of nodes that belongs to a specified block (domain)
Definition: MooseMesh.h:1509
const Parallel::Communicator & _communicator
std::unordered_map< SubdomainID, std::set< BoundaryID > > _neighbor_subdomain_boundary_ids
Holds a map from neighbor subomdain ids to the boundary ids that are attached to it.
Definition: MooseMesh.h:1753
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
subdomain_id_type SubdomainID
void max(const T &r, T &o, Request &req) const
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:623
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
std::set< SubdomainID > _mesh_subdomains
A set of subdomain IDs currently present in the mesh.
Definition: MooseMesh.h:1472
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1750
void set_union(T &data, const unsigned int root_id) const

◆ callMooseError()

void MooseBase::callMooseError ( std::string  msg,
const bool  with_prefix 
) const
inherited

Calls moose error with the message msg.

Will prefix the message with the subapp name if one exists.

If with_prefix, then add the prefix from errorPrefix() to the error.

Definition at line 33 of file MooseBase.C.

Referenced by InputParameters::callMooseErrorHelper(), MooseBaseErrorInterface::mooseDocumentedError(), MooseBaseErrorInterface::mooseError(), MooseBaseErrorInterface::mooseErrorNonPrefixed(), and MooseBaseParameterInterface::paramError().

34 {
36  const std::string prefix = _app.isUltimateMaster() ? "" : _app.name();
37  if (with_prefix)
38  msg = errorPrefix("error") + msg;
39  moose::internal::mooseErrorRaw(msg, prefix);
40 }
bool isUltimateMaster() const
Whether or not this app is the ultimate master app.
Definition: MooseApp.h:805
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
std::string errorPrefix(const std::string &error_type) const
Definition: MooseBase.C:43
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
void mooseErrorRaw(std::string msg, const std::string prefix="")
Definition: MooseError.C:51
void mooseConsole()
Send current output buffer to Console output objects.
OutputWarehouse & getOutputWarehouse()
Get the OutputWarehouse objects.
Definition: MooseApp.C:1766

◆ changeBoundaryId() [1/2]

void MooseMesh::changeBoundaryId ( const boundary_id_type  old_id,
const boundary_id_type  new_id,
bool  delete_prev 
)
inherited

Change all the boundary IDs for a given side from old_id to new_id.

If delete_prev is true, also actually remove the side with old_id from the BoundaryInfo object.

Definition at line 2510 of file MooseMesh.C.

2513 {
2514  TIME_SECTION("changeBoundaryId", 6);
2515  changeBoundaryId(getMesh(), old_id, new_id, delete_prev);
2516 }
void changeBoundaryId(const boundary_id_type old_id, const boundary_id_type new_id, bool delete_prev)
Change all the boundary IDs for a given side from old_id to new_id.
Definition: MooseMesh.C:2510
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ changeBoundaryId() [2/2]

void MooseMesh::changeBoundaryId ( MeshBase &  mesh,
const boundary_id_type  old_id,
const boundary_id_type  new_id,
bool  delete_prev 
)
staticinherited

Change all the boundary IDs for a given side from old_id to new_id for the given mesh.

If delete_prev is true, also actually remove the side with old_id from the BoundaryInfo object.

Definition at line 2519 of file MooseMesh.C.

2523 {
2524  // Get a reference to our BoundaryInfo object, we will use it several times below...
2525  BoundaryInfo & boundary_info = mesh.get_boundary_info();
2526 
2527  // Container to catch ids passed back from BoundaryInfo
2528  std::vector<boundary_id_type> old_ids;
2529 
2530  // Only level-0 elements store BCs. Loop over them.
2531  for (auto & elem : as_range(mesh.level_elements_begin(0), mesh.level_elements_end(0)))
2532  {
2533  unsigned int n_sides = elem->n_sides();
2534  for (unsigned int s = 0; s != n_sides; ++s)
2535  {
2536  boundary_info.boundary_ids(elem, s, old_ids);
2537  if (std::find(old_ids.begin(), old_ids.end(), old_id) != old_ids.end())
2538  {
2539  std::vector<boundary_id_type> new_ids(old_ids);
2540  std::replace(new_ids.begin(), new_ids.end(), old_id, new_id);
2541  if (delete_prev)
2542  {
2543  boundary_info.remove_side(elem, s);
2544  boundary_info.add_side(elem, s, new_ids);
2545  }
2546  else
2547  boundary_info.add_side(elem, s, new_ids);
2548  }
2549  }
2550  }
2551 
2552  // Remove any remaining references to the old ID from the
2553  // BoundaryInfo object. This prevents things like empty sidesets
2554  // from showing up when printing information, etc.
2555  if (delete_prev)
2556  boundary_info.remove_id(old_id);
2557 }
MeshBase & mesh
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ checkCoordinateSystems()

void MooseMesh::checkCoordinateSystems ( )
inherited

Performs a sanity check for every element in the mesh.

If an element dimension is 3 and the corresponding coordinate system is RZ, then this will error. If an element dimension is greater than 1 and the corresponding system is RPSHERICAL then this will error

Definition at line 4051 of file MooseMesh.C.

Referenced by FEProblemBase::checkCoordinateSystems().

4052 {
4053  for (const auto & elem : getMesh().element_ptr_range())
4054  {
4055  SubdomainID sid = elem->subdomain_id();
4056  if (_coord_sys[sid] == Moose::COORD_RZ && elem->dim() == 3)
4057  mooseError("An RZ coordinate system was requested for subdomain " + Moose::stringify(sid) +
4058  " which contains 3D elements.");
4059  if (_coord_sys[sid] == Moose::COORD_RSPHERICAL && elem->dim() > 1)
4060  mooseError("An RSPHERICAL coordinate system was requested for subdomain " +
4061  Moose::stringify(sid) + " which contains 2D or 3D elements.");
4062  }
4063 }
std::map< SubdomainID, Moose::CoordinateSystemType > _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1804
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
subdomain_id_type SubdomainID
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:62
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ clearQuadratureNodes()

void MooseMesh::clearQuadratureNodes ( )
inherited

Clear out any existing quadrature nodes.

Most likely called before re-adding them.

Definition at line 1463 of file MooseMesh.C.

Referenced by DisplacedProblem::meshChanged(), GeometricSearchData::reinit(), and MooseMesh::~MooseMesh().

1464 {
1465  // Delete all the quadrature nodes
1466  for (auto & it : _quadrature_nodes)
1467  delete it.second;
1468 
1469  _quadrature_nodes.clear();
1471  _extra_bnd_nodes.clear();
1472 }
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1503
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1506
std::map< dof_id_type, std::map< unsigned int, std::map< dof_id_type, Node * > > > _elem_to_side_to_qp_to_quadrature_nodes
Definition: MooseMesh.h:1505

◆ clone()

MooseMesh & MooseMesh::clone ( ) const
virtualinherited

Clone method.

Allocates memory you are responsible to clean up.

Definition at line 2570 of file MooseMesh.C.

Referenced by TiledMesh::buildMesh().

2571 {
2572  mooseError("MooseMesh::clone() is no longer supported, use MooseMesh::safeClone() instead.");
2573 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ coarsenedElementChildren()

const std::vector< const Elem * > & MooseMesh::coarsenedElementChildren ( const Elem *  elem) const
inherited

Get the newly removed children element ids for an element that was just coarsened.

Parameters
elemPointer to the parent element that was coarsened to.
Returns
The child element ids in Elem::child() order.

Definition at line 746 of file MooseMesh.C.

Referenced by FEProblemBase::meshChangedHelper(), ProjectMaterialProperties::onBoundary(), and ProjectMaterialProperties::onElement().

747 {
748  auto elem_to_child_pair = _coarsened_element_children.find(elem);
749  mooseAssert(elem_to_child_pair != _coarsened_element_children.end(), "Missing element in map");
750  return elem_to_child_pair->second;
751 }
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
std::map< const Elem *, std::vector< const Elem * > > _coarsened_element_children
Map of Parent elements to child elements for elements that were just coarsened.
Definition: MooseMesh.h:1442

◆ coarsenedElementRange()

ConstElemPointerRange * MooseMesh::coarsenedElementRange ( ) const
inherited

Return a range that is suitable for threaded execution over elements that were just coarsened.

Note that these are the Parent elements that are now set to be INACTIVE. Their children are the elements that were just removed. Use coarsenedElementChildren() to get the element IDs for the children that were just removed for a particular parent element.

Definition at line 740 of file MooseMesh.C.

Referenced by FEProblemBase::meshChangedHelper().

741 {
742  return _coarsened_elements.get();
743 }
std::unique_ptr< ConstElemPointerRange > _coarsened_elements
The elements that were just coarsened.
Definition: MooseMesh.h:1435

◆ computeFiniteVolumeCoords()

void MooseMesh::computeFiniteVolumeCoords ( ) const
inherited

Compute the face coordinate value for all FaceInfo and ElemInfo objects.

'Coordinate' here means a coordinate value associated with the coordinate system. For Cartesian coordinate systems, 'coordinate' is simply '1'; in RZ, '2*pi*r', and in spherical, '4*pi*r^2'

Definition at line 3624 of file MooseMesh.C.

Referenced by MooseMesh::setupFiniteVolumeMeshData().

3625 {
3627  mooseError("Trying to compute face- and elem-info coords when the information is dirty");
3628 
3629  for (auto & fi : _all_face_info)
3630  {
3631  // get elem & neighbor elements, and set subdomain ids
3632  const SubdomainID elem_subdomain_id = fi.elemSubdomainID();
3633  const SubdomainID neighbor_subdomain_id = fi.neighborSubdomainID();
3634 
3636  *this, elem_subdomain_id, fi.faceCentroid(), fi.faceCoord(), neighbor_subdomain_id);
3637  }
3638 
3639  for (auto & ei : _elem_to_elem_info)
3641  *this, ei.second.subdomain_id(), ei.second.centroid(), ei.second.coordFactor());
3642 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1560
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1571
void coordTransformFactor(const SubProblem &s, SubdomainID sub_id, const P &point, C &factor, SubdomainID neighbor_sub_id=libMesh::Elem::invalid_subdomain_id)
Computes a conversion multiplier for use when computing integraals for the current coordinate system ...
Definition: Assembly.C:39
subdomain_id_type SubdomainID
std::unordered_map< dof_id_type, ElemInfo > _elem_to_elem_info
Map connecting elems with their corresponding ElemInfo, we use the element ID as the key...
Definition: MooseMesh.h:1552
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ computexy()

std::vector< Real > RinglebMesh::computexy ( const std::vector< Real values,
const int i,
const int index,
const std::vector< Real > &  ks,
const std::vector< Real > &  q 
)

Definition at line 86 of file RinglebMesh.C.

Referenced by buildMesh().

91 {
92  std::vector<Real> xy(2);
93 
94  // Compute x(q,k)
95  xy[0] = 0.5 / values[1] * (2. / ks[i] / ks[i] - 1. / q[index] / q[index]) - 0.5 * values[3];
96 
97  // Compute the term that goes under the sqrt sign
98  // If 1 - (q/k)^2 is slightly negative, we make it zero.
99  Real sqrt_term = 1. - q[index] * q[index] / ks[i] / ks[i];
100  sqrt_term = std::max(sqrt_term, 0.);
101 
102  // Compute y(q,k)
103  xy[1] = 1. / (ks[i] * values[1] * q[index]) * std::sqrt(sqrt_term);
104 
105  return xy;
106 }
ADRealEigenVector< T, D, asd > sqrt(const ADRealEigenVector< T, D, asd > &)
auto max(const L &left, const R &right)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ connectControllableParams()

void MooseBaseParameterInterface::connectControllableParams ( const std::string &  parameter,
const std::string &  object_type,
const std::string &  object_name,
const std::string &  object_parameter 
) const
inherited

Connect controllable parameter of this action with the controllable parameters of the objects added by this action.

Parameters
parameterName of the controllable parameter of this action
object_typeType of the object added by this action.
object_nameName of the object added by this action.
object_parameterName of the parameter of the object.

Definition at line 33 of file MooseBaseParameterInterface.C.

37 {
38  MooseObjectParameterName primary_name(uniqueName(), parameter);
39  const auto base_type = _factory.getValidParams(object_type).get<std::string>("_moose_base");
40  MooseObjectParameterName secondary_name(base_type, object_name, object_parameter);
42  primary_name, secondary_name);
43 
44  const auto & tags = _pars.get<std::vector<std::string>>("control_tags");
45  for (const auto & tag : tags)
46  {
47  if (!tag.empty())
48  {
49  MooseObjectParameterName tagged_name(tag, _moose_base.name(), parameter);
51  tagged_name, secondary_name);
52  }
53  }
54 }
void addControllableParameterConnection(const MooseObjectParameterName &primary, const MooseObjectParameterName &secondary, bool error_on_empty=true)
Method for linking control parameters of different names.
const MooseBase & _moose_base
The MooseBase object that inherits this class.
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
InputParameterWarehouse & getInputParameterWarehouse()
Get the InputParameterWarehouse for MooseObjects.
Definition: MooseApp.C:2218
InputParameters getValidParams(const std::string &name) const
Get valid parameters for the object.
Definition: Factory.C:67
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
MooseApp & getMooseApp() const
Get the MooseApp this class is associated with.
Definition: MooseBase.h:45
Factory & _factory
The Factory associated with the MooseApp.
MooseObjectName uniqueName() const
The unique name for accessing input parameters of this object in the InputParameterWarehouse.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
A class for storing an input parameter name.

◆ coordTransform()

MooseAppCoordTransform & MooseMesh::coordTransform ( )
inlineinherited
Returns
the coordinate transformation object that describes how to transform this problem's coordinate system into the canonical/reference coordinate system

Definition at line 1830 of file MooseMesh.h.

Referenced by FEProblemBase::coordTransform().

1831 {
1832  mooseAssert(_coord_transform, "The coordinate transformation object is null.");
1833  return *_coord_transform;
1834 }
std::unique_ptr< MooseAppCoordTransform > _coord_transform
A coordinate transformation object that describes how to transform this problem&#39;s coordinate system i...
Definition: MooseMesh.h:1814

◆ declareManagedRestartableDataWithContext()

template<typename T , typename... Args>
Restartable::ManagedValue< T > Restartable::declareManagedRestartableDataWithContext ( const std::string &  data_name,
void context,
Args &&...  args 
)
protectedinherited

Declares a piece of "managed" restartable data and initialize it.

Here, "managed" restartable data means that the caller can destruct this data upon destruction of the return value of this method. Therefore, this ManagedValue<T> wrapper should survive after the final calls to dataStore() for it. That is... at the very end.

This is needed for objects whose destruction ordering is important, and enables natural c++ destruction in reverse construction order of the object that declares it.

See delcareRestartableData and declareRestartableDataWithContext for more information.

Definition at line 276 of file Restartable.h.

279 {
280  auto & data_ptr =
281  declareRestartableDataHelper<T>(data_name, context, std::forward<Args>(args)...);
282  return Restartable::ManagedValue<T>(data_ptr);
283 }
Wrapper class for restartable data that is "managed.
Definition: Restartable.h:42

◆ declareRecoverableData()

template<typename T , typename... Args>
T & Restartable::declareRecoverableData ( const std::string &  data_name,
Args &&...  args 
)
protectedinherited

Declare a piece of data as "recoverable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

Note - this data will NOT be restored on Restart!

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
argsArguments to forward to the constructor of the data

Definition at line 351 of file Restartable.h.

352 {
353  const auto full_name = restartableName(data_name);
354 
356 
357  return declareRestartableDataWithContext<T>(data_name, nullptr, std::forward<Args>(args)...);
358 }
std::string restartableName(const std::string &data_name) const
Gets the name of a piece of restartable data given a data name, adding the system name and object nam...
Definition: Restartable.C:66
void registerRestartableNameWithFilterOnApp(const std::string &name, Moose::RESTARTABLE_FILTER filter)
Helper function for actually registering the restartable data.
Definition: Restartable.C:59

◆ declareRestartableData()

template<typename T , typename... Args>
T & Restartable::declareRestartableData ( const std::string &  data_name,
Args &&...  args 
)
protectedinherited

Declare a piece of data as "restartable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
argsArguments to forward to the constructor of the data

Definition at line 269 of file Restartable.h.

270 {
271  return declareRestartableDataWithContext<T>(data_name, nullptr, std::forward<Args>(args)...);
272 }

◆ declareRestartableDataWithContext()

template<typename T , typename... Args>
T & Restartable::declareRestartableDataWithContext ( const std::string &  data_name,
void context,
Args &&...  args 
)
protectedinherited

Declare a piece of data as "restartable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
contextContext pointer that will be passed to the load and store functions
argsArguments to forward to the constructor of the data

Definition at line 294 of file Restartable.h.

297 {
298  return declareRestartableDataHelper<T>(data_name, context, std::forward<Args>(args)...).set();
299 }

◆ declareRestartableDataWithObjectName()

template<typename T , typename... Args>
T & Restartable::declareRestartableDataWithObjectName ( const std::string &  data_name,
const std::string &  object_name,
Args &&...  args 
)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
object_nameA supplied name for the object that is declaring this data.
argsArguments to forward to the constructor of the data

Definition at line 323 of file Restartable.h.

326 {
327  return declareRestartableDataWithObjectNameWithContext<T>(
328  data_name, object_name, nullptr, std::forward<Args>(args)...);
329 }

◆ declareRestartableDataWithObjectNameWithContext()

template<typename T , typename... Args>
T & Restartable::declareRestartableDataWithObjectNameWithContext ( const std::string &  data_name,
const std::string &  object_name,
void context,
Args &&...  args 
)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
object_nameA supplied name for the object that is declaring this data.
contextContext pointer that will be passed to the load and store functions
argsArguments to forward to the constructor of the data

Definition at line 333 of file Restartable.h.

337 {
338  std::string old_name = _restartable_name;
339 
340  _restartable_name = object_name;
341 
342  T & value = declareRestartableDataWithContext<T>(data_name, context, std::forward<Args>(args)...);
343 
344  _restartable_name = old_name;
345 
346  return value;
347 }
std::string _restartable_name
The name of the object.
Definition: Restartable.h:243
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

◆ deleteRemoteElements()

void MooseMesh::deleteRemoteElements ( )
inherited

Delete remote elements.

Definition at line 3676 of file MooseMesh.C.

3677 {
3679  if (!_mesh)
3680  mooseError("Cannot delete remote elements because we have not yet attached a MeshBase");
3681 
3682  _mesh->allow_remote_element_removal(true);
3683 
3684  _mesh->delete_remote_elements();
3685 }
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1774
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ detectOrthogonalDimRanges()

bool MooseMesh::detectOrthogonalDimRanges ( Real  tol = 1e-6)
inherited

This routine determines whether the Mesh is a regular orthogonal mesh (i.e.

square in 2D, cubic in 3D). If it is, then we can use a number of convenience functions when periodic boundary conditions are applied. This routine populates the _range vector which is necessary for these convenience functions.

Note: This routine can potentially identify meshes with concave faces that still "fit" in the convex hull of the corresponding regular orthogonal mesh. This case is highly unlikely in practice and if a user does this, well.... release the kicker!

Definition at line 1700 of file MooseMesh.C.

Referenced by AddPeriodicBCAction::autoTranslationBoundaries(), and MooseMesh::prepare().

1701 {
1702  TIME_SECTION("detectOrthogonalDimRanges", 5);
1703 
1705  return true;
1706 
1707  std::vector<Real> min(3, std::numeric_limits<Real>::max());
1708  std::vector<Real> max(3, std::numeric_limits<Real>::min());
1709  unsigned int dim = getMesh().mesh_dimension();
1710 
1711  // Find the bounding box of our mesh
1712  for (const auto & node : getMesh().node_ptr_range())
1713  // Check all coordinates, we don't know if this mesh might be lying in a higher dim even if the
1714  // mesh dimension is lower.
1715  for (const auto i : make_range(Moose::dim))
1716  {
1717  if ((*node)(i) < min[i])
1718  min[i] = (*node)(i);
1719  if ((*node)(i) > max[i])
1720  max[i] = (*node)(i);
1721  }
1722 
1723  this->comm().max(max);
1724  this->comm().min(min);
1725 
1726  _extreme_nodes.resize(8); // 2^LIBMESH_DIM
1727  // Now make sure that there are actual nodes at all of the extremes
1728  std::vector<bool> extreme_matches(8, false);
1729  std::vector<unsigned int> comp_map(3);
1730  for (const auto & node : getMesh().node_ptr_range())
1731  {
1732  // See if the current node is located at one of the extremes
1733  unsigned int coord_match = 0;
1734 
1735  for (const auto i : make_range(Moose::dim))
1736  {
1737  if (std::abs((*node)(i)-min[i]) < tol)
1738  {
1739  comp_map[i] = MIN;
1740  ++coord_match;
1741  }
1742  else if (std::abs((*node)(i)-max[i]) < tol)
1743  {
1744  comp_map[i] = MAX;
1745  ++coord_match;
1746  }
1747  }
1748 
1749  if (coord_match == LIBMESH_DIM) // Found a coordinate at one of the extremes
1750  {
1751  _extreme_nodes[comp_map[X] * 4 + comp_map[Y] * 2 + comp_map[Z]] = node;
1752  extreme_matches[comp_map[X] * 4 + comp_map[Y] * 2 + comp_map[Z]] = true;
1753  }
1754  }
1755 
1756  // See if we matched all of the extremes for the mesh dimension
1757  this->comm().max(extreme_matches);
1758  if (std::count(extreme_matches.begin(), extreme_matches.end(), true) == (1 << dim))
1759  _regular_orthogonal_mesh = true;
1760 
1761  // Set the bounds
1762  _bounds.resize(LIBMESH_DIM);
1763  for (const auto i : make_range(Moose::dim))
1764  {
1765  _bounds[i].resize(2);
1766  _bounds[i][MIN] = min[i];
1767  _bounds[i][MAX] = max[i];
1768  }
1769 
1770  return _regular_orthogonal_mesh;
1771 }
std::vector< std::vector< Real > > _bounds
The bounds in each dimension of the mesh for regular orthogonal meshes.
Definition: MooseMesh.h:1536
std::vector< Node * > _extreme_nodes
A vector containing the nodes at the corners of a regular orthogonal mesh.
Definition: MooseMesh.h:1590
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:148
const Parallel::Communicator & comm() const
auto max(const L &left, const R &right)
ADRealEigenVector< T, D, asd > abs(const ADRealEigenVector< T, D, asd > &)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
void min(const T &r, T &o, Request &req) const
void max(const T &r, T &o, Request &req) const
IntRange< T > make_range(T beg, T end)
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:623
auto min(const L &left, const R &right)
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1533

◆ determineUseDistributedMesh()

void MooseMesh::determineUseDistributedMesh ( )
inherited

Determine whether to use a distributed mesh.

Should be called during construction

Definition at line 2576 of file MooseMesh.C.

Referenced by MooseMesh::MooseMesh(), and MooseMesh::setParallelType().

2577 {
2578  switch (_parallel_type)
2579  {
2580  case ParallelType::DEFAULT:
2581  // The user did not specify 'parallel_type = XYZ' in the input file,
2582  // so we allow the --distributed-mesh command line arg to possibly turn
2583  // on DistributedMesh. If the command line arg is not present, we pick ReplicatedMesh.
2585  _use_distributed_mesh = true;
2586  break;
2590  _use_distributed_mesh = false;
2591  break;
2593  _use_distributed_mesh = true;
2594  break;
2595  }
2596 
2597  // If the user specifies 'nemesis = true' in the Mesh block, or they are using --use-split,
2598  // we must use DistributedMesh.
2599  if (_is_nemesis || _is_split)
2600  _use_distributed_mesh = true;
2601 }
ParallelType _parallel_type
Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.
Definition: MooseMesh.h:1380
bool _is_nemesis
True if a Nemesis Mesh was read in.
Definition: MooseMesh.h:1426
bool getDistributedMeshOnCommandLine() const
Returns true if the user specified –distributed-mesh (or –parallel-mesh, for backwards compatibilit...
Definition: MooseApp.h:452
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1385
const bool _is_split
Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)
Definition: MooseMesh.h:1542
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
bool _parallel_type_overridden
Definition: MooseMesh.h:1387

◆ dimension()

unsigned int MooseMesh::dimension ( ) const
virtualinherited

◆ dimensionWidth()

Real MooseMesh::dimensionWidth ( unsigned int  component) const
inherited

Returns the width of the requested dimension.

Definition at line 1950 of file MooseMesh.C.

Referenced by MooseMesh::addPeriodicVariable(), AddPeriodicBCAction::autoTranslationBoundaries(), and MooseMesh::effectiveSpatialDimension().

1951 {
1952  return getMaxInDimension(component) - getMinInDimension(component);
1953 }
virtual Real getMaxInDimension(unsigned int component) const
Definition: MooseMesh.C:1965
virtual Real getMinInDimension(unsigned int component) const
Returns the min or max of the requested dimension respectively.
Definition: MooseMesh.C:1956

◆ doingPRefinement() [1/2]

void MooseMesh::doingPRefinement ( bool  doing_p_refinement)
inlineinherited

Indicate whether the kind of adaptivity we're doing is p-refinement.

Definition at line 1325 of file MooseMesh.h.

Referenced by SubProblem::doingPRefinement(), ProjectMaterialProperties::onBoundary(), CacheChangedListsThread::onElement(), and ProjectMaterialProperties::onElement().

1325 { _doing_p_refinement = doing_p_refinement; }
bool _doing_p_refinement
Whether we have p-refinement (as opposed to h-refinement)
Definition: MooseMesh.h:1823

◆ doingPRefinement() [2/2]

bool MooseMesh::doingPRefinement ( ) const
inlineinherited

Query whether we have p-refinement.

Definition at line 1330 of file MooseMesh.h.

Referenced by MooseMesh::buildRefinementAndCoarseningMaps().

1330 { return _doing_p_refinement; }
bool _doing_p_refinement
Whether we have p-refinement (as opposed to h-refinement)
Definition: MooseMesh.h:1823

◆ effectiveSpatialDimension()

unsigned int MooseMesh::effectiveSpatialDimension ( ) const
virtualinherited

Returns the effective spatial dimension determined by the coordinates actually used by the mesh.

This means that a 1D mesh that has non-zero z or y coordinates is actually a 2D or 3D mesh, respectively. Likewise a 2D mesh that has non-zero z coordinates is actually 3D mesh.

Definition at line 2685 of file MooseMesh.C.

2686 {
2687  const Real abs_zero = 1e-12;
2688 
2689  // See if the mesh is completely containd in the z and y planes to calculate effective spatial
2690  // dim
2691  for (unsigned int dim = LIBMESH_DIM; dim >= 1; --dim)
2692  if (dimensionWidth(dim - 1) >= abs_zero)
2693  return dim;
2694 
2695  // If we get here, we have a 1D mesh on the x-axis.
2696  return 1;
2697 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:148
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real dimensionWidth(unsigned int component) const
Returns the width of the requested dimension.
Definition: MooseMesh.C:1950

◆ elem() [1/2]

Elem * MooseMesh::elem ( const dof_id_type  i)
virtualinherited

Various accessors (pointers/references) for Elem "i".

If the requested elem is a remote element on a distributed mesh, only the query accessors are valid to call, and they return NULL.

Definition at line 2850 of file MooseMesh.C.

Referenced by MooseMesh::addQuadratureNode(), MooseMesh::buildCoarseningMap(), MooseMesh::buildElemIDInfo(), MooseMesh::buildFiniteVolumeInfo(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildLowerDMesh(), AnnularMesh::buildMesh(), ConcentricCircleMesh::buildMesh(), buildMesh(), SpiralAnnularMesh::buildMesh(), MooseMesh::buildPRefinementAndCoarseningMaps(), MooseMesh::buildRefinementMap(), MooseMesh::cacheInfo(), MooseMesh::changeBoundaryId(), MooseMesh::checkCoordinateSystems(), MooseMesh::coarsenedElementChildren(), MooseMesh::detectPairedSidesets(), MooseMesh::faceInfo(), MooseMesh::findAdaptivityQpMaps(), MooseMesh::getBlocksMaxDimension(), MooseMesh::getBoundaryIDs(), MooseMesh::getCoarseningMap(), MooseMesh::getElemIDMapping(), MooseMesh::getHigherDSide(), MooseMesh::getLowerDElem(), MooseMesh::getPCoarseningMap(), MooseMesh::getPCoarseningMapHelper(), MooseMesh::getPCoarseningSideMap(), MooseMesh::getPRefinementMap(), MooseMesh::getPRefinementMapHelper(), MooseMesh::getPRefinementSideMap(), MooseMesh::getQuadratureNode(), MooseMesh::getRefinementMap(), MooseMesh::ghostGhostedBoundaries(), MooseMesh::nodeToActiveSemilocalElemMap(), MooseMesh::nodeToElemMap(), MooseMesh::prepare(), MooseMesh::sideWithBoundaryID(), and MooseMesh::updateActiveSemiLocalNodeRange().

2851 {
2852  mooseDeprecated("MooseMesh::elem() is deprecated, please use MooseMesh::elemPtr() instead");
2853  return elemPtr(i);
2854 }
void mooseDeprecated(Args &&... args) const
virtual Elem * elemPtr(const dof_id_type i)
Definition: MooseMesh.C:2864

◆ elem() [2/2]

const Elem * MooseMesh::elem ( const dof_id_type  i) const
virtualinherited

Definition at line 2857 of file MooseMesh.C.

2858 {
2859  mooseDeprecated("MooseMesh::elem() is deprecated, please use MooseMesh::elemPtr() instead");
2860  return elemPtr(i);
2861 }
void mooseDeprecated(Args &&... args) const
virtual Elem * elemPtr(const dof_id_type i)
Definition: MooseMesh.C:2864

◆ elemInfo()

const ElemInfo & MooseMesh::elemInfo ( const dof_id_type  id) const
inherited

Accessor for the elemInfo object for a given element ID.

Definition at line 3618 of file MooseMesh.C.

Referenced by MooseLinearVariableFV< Real >::evaluate(), and MooseLinearVariableFV< Real >::evaluateGradient().

3619 {
3620  return libmesh_map_find(_elem_to_elem_info, id);
3621 }
std::unordered_map< dof_id_type, ElemInfo > _elem_to_elem_info
Map connecting elems with their corresponding ElemInfo, we use the element ID as the key...
Definition: MooseMesh.h:1552

◆ elemInfoVector()

const std::vector<const ElemInfo *>& MooseMesh::elemInfoVector ( ) const
inlineinherited

Accessor for the element info objects owned by this process.

Definition at line 1159 of file MooseMesh.h.

1159 { return _elem_info; }
std::vector< const ElemInfo * > _elem_info
Holds only those ElemInfo objects that have processor_id equal to this process&#39;s id, e.g.
Definition: MooseMesh.h:1556

◆ elemPtr() [1/2]

Elem * MooseMesh::elemPtr ( const dof_id_type  i)
virtualinherited

Definition at line 2864 of file MooseMesh.C.

Referenced by FEProblemBase::addGhostedElem(), SystemBase::augmentSendList(), NodalPatchRecoveryAuxBase::blockRestrictElements(), NodalPatchRecovery::compute(), BoundaryMarker::computeElementMarker(), ProjectionAux::computeValue(), NodalPatchRecoveryAuxBase::computeValue(), MooseMesh::elem(), ProjectionAux::elemOnNodeVariableIsDefinedOn(), ElementSubdomainModifier::execute(), ActivateElementsUserObjectBase::execute(), NonlinearSystemBase::findImplicitGeometricCouplingEntries(), NearestNodeLocator::findNodes(), NodeElemConstraint::getConnectedDofIndices(), NodeFaceConstraint::getConnectedDofIndices(), FEProblemBase::getDiracElements(), PenetrationThread::getInfoForFacesWithCommonNodes(), ActivateElementsUserObjectBase::getNewlyActivatedElementRange(), ActivateElementsUserObjectBase::getNewlyActivatedNodeRange(), DiracKernelBase::hasPointsOnElem(), ActivateElementsUserObjectBase::isNewlyActivated(), Moose::Mortar::loopOverMortarSegments(), SecondaryNeighborhoodThread::operator()(), PenetrationThread::operator()(), FEProblemBase::prepare(), FEProblemBase::prepareFace(), FEProblemBase::reinitDirac(), FEProblemBase::reinitElem(), FEProblemBase::reinitElemFace(), FEProblemBase::reinitElemFaceRef(), FEProblemBase::reinitElemNeighborAndLowerD(), FEProblemBase::reinitLowerDElem(), FEProblemBase::reinitNeighbor(), FEProblemBase::reinitNeighborFaceRef(), NonlinearSystemBase::reinitNodeFace(), ElementSubdomainModifier::setAncestorsSubdomainIDs(), FEProblemBase::setCurrentLowerDElem(), EqualValueEmbeddedConstraint::shouldApply(), and NearestNodeLocator::updatePatch().

2865 {
2866  return getMesh().elem_ptr(i);
2867 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ elemPtr() [2/2]

const Elem * MooseMesh::elemPtr ( const dof_id_type  i) const
virtualinherited

Definition at line 2870 of file MooseMesh.C.

2871 {
2872  return getMesh().elem_ptr(i);
2873 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ elemTypes()

MooseEnum MooseMesh::elemTypes ( )
staticinherited

returns MooseMesh element type options

Definition at line 3653 of file MooseMesh.C.

3654 {
3656  "EDGE EDGE2 EDGE3 EDGE4 QUAD QUAD4 QUAD8 QUAD9 TRI3 TRI6 HEX HEX8 HEX20 HEX27 TET4 TET10 "
3657  "PRISM6 PRISM15 PRISM18 PYRAMID5 PYRAMID13 PYRAMID14");
3658  return elemTypes;
3659 }
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:31
static MooseEnum elemTypes()
returns MooseMesh element type options
Definition: MooseMesh.C:3653

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 49 of file MooseObject.h.

Referenced by EigenKernel::enabled().

49 { return _enabled; }
const bool & _enabled
Reference to the "enable" InputParameters, used by Controls for toggling on/off MooseObjects.
Definition: MooseObject.h:53

◆ errorIfDistributedMesh()

void MooseMesh::errorIfDistributedMesh ( std::string  name) const
inherited

Generate a unified error message if the underlying libMesh mesh is a DistributedMesh.

Clients of MooseMesh can use this function to throw an error if they know they don't work with DistributedMesh.

See, for example, the NodalVariableValue class.

Definition at line 3368 of file MooseMesh.C.

Referenced by BoundaryPreservedMarker::BoundaryPreservedMarker(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementsAlongLine::ElementsAlongLine(), ElementsAlongPlane::ElementsAlongPlane(), FunctorPositions::initialize(), FunctorTimes::initialize(), IntersectionPointsAlongLine::IntersectionPointsAlongLine(), LineMaterialSamplerBase< Real >::LineMaterialSamplerBase(), MultiAppGeometricInterpolationTransfer::MultiAppGeometricInterpolationTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), NodeElemConstraint::NodeElemConstraint(), NonlocalIntegratedBC::NonlocalIntegratedBC(), NonlocalKernel::NonlocalKernel(), PatternedMesh::PatternedMesh(), StitchedMesh::StitchedMesh(), and TiledMesh::TiledMesh().

3369 {
3371  mooseError("Cannot use ",
3372  name,
3373  " with DistributedMesh!\n",
3374  "Consider specifying parallel_type = 'replicated' in your input file\n",
3375  "to prevent it from being run with DistributedMesh.");
3376 }
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1385
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ errorPrefix()

std::string MooseBase::errorPrefix ( const std::string &  error_type) const
inherited
Returns
A prefix to be used in errors that contains the input file location associated with this object (if any) and the name and type of the object.

Definition at line 43 of file MooseBase.C.

Referenced by MooseBase::callMooseError(), MooseBaseErrorInterface::mooseWarning(), and MooseBaseParameterInterface::paramErrorMsg().

44 {
45  std::stringstream oss;
46  if (const auto node = _params.getHitNode())
47  if (!node->isRoot())
48  oss << node->fileLocation() << ":\n";
49  oss << "The following " << error_type << " occurred in the ";
50  if (const auto base_ptr = _params.getBase())
51  oss << *base_ptr;
52  else
53  oss << "object";
54  oss << " '" << name() << "' of type " << type() << ".\n\n";
55  return oss.str();
56 }
const hit::Node * getHitNode(const std::string &param) const
std::optional< std::string > getBase() const
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
const InputParameters & _params
The object&#39;s parameteres.
Definition: MooseBase.h:94
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:51

◆ faceInfo() [1/2]

const std::vector< const FaceInfo * > & MooseMesh::faceInfo ( ) const
inlineinherited

Accessor for local FaceInfo objects.

Definition at line 2108 of file MooseMesh.h.

Referenced by LayeredSideDiffusiveFluxAverage::computeQpIntegral(), SideIntegralVariableUserObject::computeQpIntegral(), InterfaceUserObject::execute(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), SideUserObject::getFaceInfos(), and InternalSideUserObject::getFaceInfos().

2109 {
2110  return _face_info;
2111 }
std::vector< const FaceInfo * > _face_info
Holds only those FaceInfo objects that have processor_id equal to this process&#39;s id, e.g.
Definition: MooseMesh.h:1564

◆ faceInfo() [2/2]

const FaceInfo * MooseMesh::faceInfo ( const Elem *  elem,
unsigned int  side 
) const
inherited

Accessor for the local FaceInfo object on the side of one element. Returns null if ghosted.

Definition at line 3602 of file MooseMesh.C.

3603 {
3604  auto it = _elem_side_to_face_info.find(std::make_pair(elem, side));
3605 
3606  if (it == _elem_side_to_face_info.end())
3607  return nullptr;
3608  else
3609  {
3610  mooseAssert(it->second,
3611  "For some reason, the FaceInfo object is NULL! Try calling "
3612  "`buildFiniteVolumeInfo()` before using this accessor!");
3613  return it->second;
3614  }
3615 }
std::unordered_map< std::pair< const Elem *, unsigned int >, FaceInfo * > _elem_side_to_face_info
Map from elem-side pair to FaceInfo.
Definition: MooseMesh.h:1568
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ freeBndElems()

void MooseMesh::freeBndElems ( )
protectedinherited

Definition at line 352 of file MooseMesh.C.

Referenced by MooseMesh::buildBndElemList(), and MooseMesh::~MooseMesh().

353 {
354  // free memory
355  for (auto & belem : _bnd_elems)
356  delete belem;
357 
358  for (auto & it : _bnd_elem_ids)
359  it.second.clear();
360 
361  _bnd_elem_ids.clear();
362 }
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
Map of set of elem IDs connected to each boundary.
Definition: MooseMesh.h:1501
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1496

◆ freeBndNodes()

void MooseMesh::freeBndNodes ( )
protectedinherited

Definition at line 334 of file MooseMesh.C.

Referenced by MooseMesh::buildNodeList(), and MooseMesh::~MooseMesh().

335 {
336  // free memory
337  for (auto & bnode : _bnd_nodes)
338  delete bnode;
339 
340  for (auto & it : _node_set_nodes)
341  it.second.clear();
342 
343  _node_set_nodes.clear();
344 
345  for (auto & it : _bnd_node_ids)
346  it.second.clear();
347 
348  _bnd_node_ids.clear();
349 }
std::map< boundary_id_type, std::set< dof_id_type > > _bnd_node_ids
Map of sets of node IDs in each boundary.
Definition: MooseMesh.h:1493
std::map< boundary_id_type, std::vector< dof_id_type > > _node_set_nodes
list of nodes that belongs to a specified nodeset: indexing [nodeset_id] -> [array of node ids] ...
Definition: MooseMesh.h:1512
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1489

◆ getActiveLocalElementRange()

ConstElemRange * MooseMesh::getActiveLocalElementRange ( )
inherited

Return pointers to range objects for various types of ranges (local nodes, boundary elems, etc.).

Definition at line 1041 of file MooseMesh.C.

Referenced by NonlinearSystemBase::computeDamping(), AuxiliarySystem::computeElementalVarsHelper(), FEProblemBase::computeIndicators(), NonlinearSystemBase::computeJacobianBlocks(), NonlinearSystemBase::computeJacobianInternal(), FEProblemBase::computeMarkers(), NonlinearSystemBase::computeResidualAndJacobianInternal(), NonlinearSystemBase::computeResidualInternal(), FEProblemBase::computeUserObjectsInternal(), PointwiseRenormalizeVector::execute(), FEProblemBase::initialSetup(), MooseMesh::meshChanged(), DOFMapOutput::output(), MeshInfo::possiblyAddSubdomainInfo(), FEProblemBase::projectSolution(), SystemBase::setVariableGlobalDoFs(), FixedPointSolve::solve(), TransientMultiApp::solveStep(), MooseMesh::updateActiveSemiLocalNodeRange(), Adaptivity::updateErrorVectors(), FEProblemBase::updateMaxQps(), and SystemBase::zeroVariables().

1042 {
1044  {
1045  TIME_SECTION("getActiveLocalElementRange", 5);
1046 
1047  _active_local_elem_range = std::make_unique<ConstElemRange>(
1048  getMesh().active_local_elements_begin(), getMesh().active_local_elements_end(), GRAIN_SIZE);
1049  }
1050 
1051  return _active_local_elem_range.get();
1052 }
static const int GRAIN_SIZE
Definition: MooseMesh.C:64
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::unique_ptr< ConstElemRange > _active_local_elem_range
A range for use with threading.
Definition: MooseMesh.h:1451

◆ getActiveNodeRange()

NodeRange * MooseMesh::getActiveNodeRange ( )
inherited

Definition at line 1055 of file MooseMesh.C.

Referenced by VariableCondensationPreconditioner::getDofToCondense(), and MooseMesh::meshChanged().

1056 {
1057  if (!_active_node_range)
1058  {
1059  TIME_SECTION("getActiveNodeRange", 5);
1060 
1061  _active_node_range = std::make_unique<NodeRange>(
1062  getMesh().active_nodes_begin(), getMesh().active_nodes_end(), GRAIN_SIZE);
1063  }
1064 
1065  return _active_node_range.get();
1066 }
std::unique_ptr< NodeRange > _active_node_range
Definition: MooseMesh.h:1454
static const int GRAIN_SIZE
Definition: MooseMesh.C:64
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ getActiveSemiLocalNodeRange()

SemiLocalNodeRange * MooseMesh::getActiveSemiLocalNodeRange ( ) const
inherited

Definition at line 1069 of file MooseMesh.C.

1070 {
1071  mooseAssert(_active_semilocal_node_range,
1072  "_active_semilocal_node_range has not been created yet!");
1073 
1074  return _active_semilocal_node_range.get();
1075 }
std::unique_ptr< SemiLocalNodeRange > _active_semilocal_node_range
Definition: MooseMesh.h:1453

◆ getAllElemIDs()

std::set< dof_id_type > MooseMesh::getAllElemIDs ( unsigned int  elem_id_index) const
inherited

Return all the unique element IDs for an extra element integer with its index.

Definition at line 932 of file MooseMesh.C.

Referenced by MooseMesh::getElemIDMapping().

933 {
934  std::set<dof_id_type> unique_ids;
935  for (auto & pair : _block_id_mapping[elem_id_index])
936  for (auto & id : pair.second)
937  unique_ids.insert(id);
938  return unique_ids;
939 }
std::vector< std::unordered_map< SubdomainID, std::set< dof_id_type > > > _block_id_mapping
Unique element integer IDs for each subdomain and each extra element integers.
Definition: MooseMesh.h:1786

◆ getAxisymmetricRadialCoord()

unsigned int MooseMesh::getAxisymmetricRadialCoord ( ) const
inherited

Returns the desired radial direction for RZ coordinate transformation.

Returns
The coordinate direction for the radial direction

Definition at line 4038 of file MooseMesh.C.

Referenced by SubProblem::getAxisymmetricRadialCoord(), and ComputeLinearFVGreenGaussGradientVolumeThread::operator()().

4039 {
4041  mooseError("getAxisymmetricRadialCoord() should not be called if "
4042  "setGeneralAxisymmetricCoordAxes() has been called.");
4043 
4044  if (_rz_coord_axis == 0)
4045  return 1; // if the rotation axis is x (0), then the radial direction is y (1)
4046  else
4047  return 0; // otherwise the radial direction is assumed to be x, i.e., the rotation axis is y
4048 }
bool usingGeneralAxisymmetricCoordAxes() const
Returns true if general axisymmetric coordinate axes are being used.
Definition: MooseMesh.C:4023
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
unsigned int _rz_coord_axis
Storage for RZ axis selection.
Definition: MooseMesh.h:1807

◆ getBlockConnectedBlocks()

const std::set< SubdomainID > & MooseMesh::getBlockConnectedBlocks ( const SubdomainID  subdomain_id) const
inherited

Get the list of subdomains neighboring a given subdomain.

Parameters
subdomain_idThe boundary ID you want to get the subdomain IDs for.
Returns
All subdomain IDs neighboring a given subdomain

Definition at line 3305 of file MooseMesh.C.

3306 {
3307  const auto it = _sub_to_data.find(subdomain_id);
3308 
3309  if (it == _sub_to_data.end())
3310  mooseError("Unable to find subdomain ID: ", subdomain_id, '.');
3311 
3312  return it->second.neighbor_subs;
3313 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1750

◆ getBlocksMaxDimension()

unsigned int MooseMesh::getBlocksMaxDimension ( const std::vector< SubdomainName > &  blocks) const
inherited

Returns the maximum element dimension on the given blocks.

Definition at line 2700 of file MooseMesh.C.

Referenced by BlockRestrictable::initializeBlockRestrictable().

2701 {
2702  const auto & mesh = getMesh();
2703 
2704  // Take a shortcut if possible
2705  if (const auto & elem_dims = mesh.elem_dimensions(); mesh.is_prepared() && elem_dims.size() == 1)
2706  return *elem_dims.begin();
2707 
2708  unsigned short dim = 0;
2709  const auto subdomain_ids = getSubdomainIDs(blocks);
2710  const std::set<SubdomainID> subdomain_ids_set(subdomain_ids.begin(), subdomain_ids.end());
2711  for (const auto & elem : mesh.active_subdomain_set_elements_ptr_range(subdomain_ids_set))
2712  dim = std::max(dim, elem->dim());
2713 
2714  // Get the maximumal globally
2716  return dim;
2717 }
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:148
const Parallel::Communicator & _communicator
auto max(const L &left, const R &right)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
void max(const T &r, T &o, Request &req) const
std::vector< SubdomainID > getSubdomainIDs(const std::vector< SubdomainName > &subdomain_name) const
Get the associated subdomainIDs for the subdomain names that are passed in.
Definition: MooseMesh.C:1520
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getBoundariesToActiveSemiLocalElemIds()

const std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > & MooseMesh::getBoundariesToActiveSemiLocalElemIds ( ) const
inherited

Returns a map of boundaries to ids of elements on the boundary.

Definition at line 1128 of file MooseMesh.C.

Referenced by MooseMesh::getBoundariesToElems().

1129 {
1130  return _bnd_elem_ids;
1131 }
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
Map of set of elem IDs connected to each boundary.
Definition: MooseMesh.h:1501

◆ getBoundariesToElems()

const std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > & MooseMesh::getBoundariesToElems ( ) const
inherited

Returns a map of boundaries to ids of elements on the boundary.

Definition at line 1120 of file MooseMesh.C.

1121 {
1122  mooseDeprecated("MooseMesh::getBoundariesToElems is deprecated, "
1123  "use MooseMesh::getBoundariesToActiveSemiLocalElemIds");
1125 }
void mooseDeprecated(Args &&... args) const
const std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > & getBoundariesToActiveSemiLocalElemIds() const
Returns a map of boundaries to ids of elements on the boundary.
Definition: MooseMesh.C:1128

◆ getBoundaryActiveNeighborElemIds()

std::unordered_set< dof_id_type > MooseMesh::getBoundaryActiveNeighborElemIds ( BoundaryID  bid) const
inherited

Return all ids of neighbors of elements which have a side which is part of a sideset.

Note that boundaries are sided, this is on the neighbor side. For the sideset side, use getBoundariesActiveLocalElemIds. Note that while the element is local and active, the neighbor is not guaranteed to be local, it could be ghosted. Note that if the neighbor is not ghosted, is a remote_elem, then it will not be included

Parameters
bidthe id of the sideset of interest

Definition at line 1145 of file MooseMesh.C.

1146 {
1147  // Vector of boundary elems is updated every mesh update
1148  std::unordered_set<dof_id_type> neighbor_elems;
1149  for (const auto & bnd_elem : _bnd_elems)
1150  {
1151  const auto & [elem_ptr, elem_side, elem_bid] = *bnd_elem;
1152  if (elem_bid == bid)
1153  {
1154  const auto * neighbor = elem_ptr->neighbor_ptr(elem_side);
1155  // Dont add fully remote elements, ghosted is fine
1156  if (neighbor && neighbor != libMesh::remote_elem)
1157  {
1158  // handle mesh refinement, only return active elements near the boundary
1159  if (neighbor->active())
1160  neighbor_elems.insert(neighbor->id());
1161  else
1162  {
1163  std::vector<const Elem *> family;
1164  neighbor->active_family_tree_by_neighbor(family, elem_ptr);
1165  for (const auto & child_neighbor : family)
1166  neighbor_elems.insert(child_neighbor->id());
1167  }
1168  }
1169  }
1170  }
1171 
1172  return neighbor_elems;
1173 }
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1496
const RemoteElem * remote_elem

◆ getBoundaryActiveSemiLocalElemIds()

std::unordered_set< dof_id_type > MooseMesh::getBoundaryActiveSemiLocalElemIds ( BoundaryID  bid) const
inherited

Return all ids of elements which have a side which is part of a sideset.

Note that boundaries are sided.

Parameters
bidthe id of the sideset of interest

Definition at line 1134 of file MooseMesh.C.

1135 {
1136  // The boundary to element map is computed on every mesh update
1137  const auto it = _bnd_elem_ids.find(bid);
1138  if (it == _bnd_elem_ids.end())
1139  // Boundary is not local to this domain, return an empty set
1140  return std::unordered_set<dof_id_type>{};
1141  return it->second;
1142 }
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
Map of set of elem IDs connected to each boundary.
Definition: MooseMesh.h:1501

◆ getBoundaryConnectedBlocks()

std::set< SubdomainID > MooseMesh::getBoundaryConnectedBlocks ( const BoundaryID  bid) const
inherited

Get the list of subdomains associated with the given boundary.

Parameters
bidThe boundary ID you want to get the subdomain IDs for.
Returns
All subdomain IDs associated with given boundary ID

Definition at line 3272 of file MooseMesh.C.

Referenced by DomainUserObject::DomainUserObject(), MooseMesh::getInterfaceConnectedBlocks(), and NodeFaceConstraint::getSecondaryConnectedBlocks().

3273 {
3274  std::set<SubdomainID> subdomain_ids;
3275  for (const auto & [sub_id, data] : _sub_to_data)
3276  if (data.boundary_ids.find(bid) != data.boundary_ids.end())
3277  subdomain_ids.insert(sub_id);
3278 
3279  return subdomain_ids;
3280 }
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1750

◆ getBoundaryConnectedSecondaryBlocks()

std::set< SubdomainID > MooseMesh::getBoundaryConnectedSecondaryBlocks ( const BoundaryID  bid) const
inherited

Get the list of subdomains associated with the given boundary of its secondary side.

Parameters
bidThe boundary ID you want to get the subdomain IDs for.
Returns
All subdomain IDs associated with given boundary ID

Definition at line 3283 of file MooseMesh.C.

Referenced by DomainUserObject::DomainUserObject().

3284 {
3285  std::set<SubdomainID> subdomain_ids;
3286  for (const auto & it : _neighbor_subdomain_boundary_ids)
3287  if (it.second.find(bid) != it.second.end())
3288  subdomain_ids.insert(it.first);
3289 
3290  return subdomain_ids;
3291 }
std::unordered_map< SubdomainID, std::set< BoundaryID > > _neighbor_subdomain_boundary_ids
Holds a map from neighbor subomdain ids to the boundary ids that are attached to it.
Definition: MooseMesh.h:1753

◆ getBoundaryElementRange()

ConstBndElemRange * MooseMesh::getBoundaryElementRange ( )
inherited

Definition at line 1106 of file MooseMesh.C.

Referenced by AuxiliarySystem::computeElementalVarsHelper(), DMMooseGetEmbedding_Private(), GeometricSearchData::generateQuadratureNodes(), FEProblemBase::initialSetup(), MooseMesh::meshChanged(), and GeometricSearchData::updateQuadratureNodes().

1107 {
1108  if (!_bnd_elem_range)
1109  {
1110  TIME_SECTION("getBoundaryElementRange", 5);
1111 
1112  _bnd_elem_range =
1113  std::make_unique<ConstBndElemRange>(bndElemsBegin(), bndElemsEnd(), GRAIN_SIZE);
1114  }
1115 
1116  return _bnd_elem_range.get();
1117 }
virtual bnd_elem_iterator bndElemsEnd()
Definition: MooseMesh.C:1352
virtual bnd_elem_iterator bndElemsBegin()
Return iterators to the beginning/end of the boundary elements list.
Definition: MooseMesh.C:1344
std::unique_ptr< StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:1458
static const int GRAIN_SIZE
Definition: MooseMesh.C:64

◆ getBoundaryID()

BoundaryID MooseMesh::getBoundaryID ( const BoundaryName &  boundary_name) const
inherited

Get the associated BoundaryID for the boundary name.

Returns
param boundary_name The name of the boundary.
the boundary id from the passed boundary name.

Definition at line 1475 of file MooseMesh.C.

Referenced by AddPeriodicBCAction::act(), TiledMesh::buildMesh(), StitchedMesh::buildMesh(), PatternedMesh::buildMesh(), DMSetUp_Moose_Pre(), GeometricSearchData::getNearestNodeLocator(), GeometricSearchData::getPenetrationLocator(), GeometricSearchData::getQuadratureNearestNodeLocator(), GeometricSearchData::getQuadraturePenetrationLocator(), LinearNodalConstraint::LinearNodalConstraint(), LowerBoundNodalKernel::LowerBoundNodalKernel(), NodalScalarKernel::NodalScalarKernel(), EqualValueBoundaryConstraint::updateConstrainedNodes(), and UpperBoundNodalKernel::UpperBoundNodalKernel().

1476 {
1477  if (boundary_name == "ANY_BOUNDARY_ID")
1478  mooseError("Please use getBoundaryIDs() when passing \"ANY_BOUNDARY_ID\"");
1479 
1480  return MooseMeshUtils::getBoundaryID(boundary_name, getMesh());
1481 }
BoundaryID getBoundaryID(const BoundaryName &boundary_name, const MeshBase &mesh)
Gets the boundary ID associated with the given BoundaryName.
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getBoundaryIDs() [1/3]

std::vector< BoundaryID > MooseMesh::getBoundaryIDs ( const Elem *const  elem,
const unsigned short int  side 
) const
inherited

Returns a vector of boundary IDs for the requested element on the requested side.

Definition at line 2720 of file MooseMesh.C.

Referenced by NonlinearSystemBase::computeJacobianInternal(), DGKernelBase::DGKernelBase(), DGKernelBase::excludeBoundary(), MultiAppUserObjectTransfer::execute(), BoundaryRestrictable::hasBoundary(), BoundaryRestrictable::initializeBoundaryRestrictable(), BoundaryRestrictable::meshBoundaryIDs(), and ActivateElementsUserObjectBase::setNewBoundayName().

2721 {
2722  std::vector<BoundaryID> ids;
2723  getMesh().get_boundary_info().boundary_ids(elem, side, ids);
2724  return ids;
2725 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getBoundaryIDs() [2/3]

const std::set< BoundaryID > & MooseMesh::getBoundaryIDs ( ) const
inherited

Returns a const reference to a set of all user-specified boundary IDs.

On a distributed mesh this will only include boundary IDs which exist on local or ghosted elements; a copy and a call to _communicator.set_union() will be necessary to get the global ID set.

Definition at line 2728 of file MooseMesh.C.

Referenced by MooseMesh::cacheInfo().

2729 {
2730  return getMesh().get_boundary_info().get_boundary_ids();
2731 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ getBoundaryIDs() [3/3]

std::vector< BoundaryID > MooseMesh::getBoundaryIDs ( const std::vector< BoundaryName > &  boundary_name,
bool  generate_unknown = false 
) const
inherited

Get the associated BoundaryID for the boundary names that are passed in.

Returns
param boundary_name The names of the boundaries.
the boundary ids from the passed boundary names.

Definition at line 1506 of file MooseMesh.C.

1508 {
1510  getMesh(), boundary_name, generate_unknown, _mesh_boundary_ids);
1511 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::vector< BoundaryID > getBoundaryIDs(const libMesh::MeshBase &mesh, const std::vector< BoundaryName > &boundary_name, bool generate_unknown, const std::set< BoundaryID > &mesh_boundary_ids)
Gets the boundary IDs with their names.
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1480

◆ getBoundaryName()

const std::string & MooseMesh::getBoundaryName ( BoundaryID  boundary_id)
inherited

Return the name of the boundary given the id.

Definition at line 1567 of file MooseMesh.C.

Referenced by FEProblemBase::initialSetup(), and NonlinearThread::printBoundaryExecutionInformation().

1568 {
1569  BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1570 
1571  // We need to figure out if this boundary is a sideset or nodeset
1572  if (boundary_info.get_side_boundary_ids().count(boundary_id))
1573  return boundary_info.get_sideset_name(boundary_id);
1574  else
1575  return boundary_info.get_nodeset_name(boundary_id);
1576 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ getBoundaryNodeRange()

ConstBndNodeRange * MooseMesh::getBoundaryNodeRange ( )
inherited

Definition at line 1092 of file MooseMesh.C.

Referenced by ElementSubdomainModifier::buildMovedBndNodesRange(), NonlinearSystemBase::computeJacobianBlocks(), NonlinearSystemBase::computeJacobianInternal(), AuxiliarySystem::computeMortarNodalVars(), NonlinearSystemBase::computeNodalBCs(), NonlinearSystemBase::computeNodalBCsResidualAndJacobian(), AuxiliarySystem::computeNodalVarsHelper(), NonlinearSystemBase::computeResidualInternal(), DMMooseGetEmbedding_Private(), NearestNodeLocator::findNodes(), ActivateElementsUserObjectBase::getNewlyActivatedBndNodeRange(), FEProblemBase::initialSetup(), MooseMesh::meshChanged(), FEProblemBase::projectSolution(), NonlinearSystemBase::setInitialSolution(), and NearestNodeLocator::updatePatch().

1093 {
1094  if (!_bnd_node_range)
1095  {
1096  TIME_SECTION("getBoundaryNodeRange", 5);
1097 
1098  _bnd_node_range =
1099  std::make_unique<ConstBndNodeRange>(bndNodesBegin(), bndNodesEnd(), GRAIN_SIZE);
1100  }
1101 
1102  return _bnd_node_range.get();
1103 }
virtual bnd_node_iterator bndNodesEnd()
Definition: MooseMesh.C:1336
virtual bnd_node_iterator bndNodesBegin()
Return iterators to the beginning/end of the boundary nodes list.
Definition: MooseMesh.C:1328
static const int GRAIN_SIZE
Definition: MooseMesh.C:64
std::unique_ptr< StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1456

◆ getCheckedPointerParam()

template<typename T >
T MooseBaseParameterInterface::getCheckedPointerParam ( const std::string &  name,
const std::string &  error_string = "" 
) const
inherited

Verifies that the requested parameter exists and is not NULL and returns it to the caller.

The template parameter must be a pointer or an error will be thrown.

Definition at line 268 of file MooseBaseParameterInterface.h.

270 {
271  return parameters().getCheckedPointerParam<T>(name, error_string);
272 }
std::string name(const ElemQuality q)
T getCheckedPointerParam(const std::string &name, const std::string &error_string="") const
Verifies that the requested parameter exists and is not NULL and returns it to the caller...
const InputParameters & parameters() const
Get the parameters of the object.

◆ getCoarseningMap()

const std::vector< std::pair< unsigned int, QpMap > > & MooseMesh::getCoarseningMap ( const Elem &  elem,
int  input_side 
)
inherited

Get the coarsening map for a given element type.

This will tell you what quadrature points to copy from and to for stateful material properties on newly created elements from Adaptivity.

Parameters
elemThe element that represents the element type you need the coarsening map for.
input_sideThe side to map

Definition at line 2327 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onBoundary(), and ProjectMaterialProperties::onElement().

2328 {
2329  std::pair<int, ElemType> the_pair(input_side, elem.type());
2330 
2331  if (_elem_type_to_coarsening_map.find(the_pair) == _elem_type_to_coarsening_map.end())
2332  mooseError("Could not find a suitable qp refinement map!");
2333 
2334  return _elem_type_to_coarsening_map[the_pair];
2335 }
std::map< std::pair< int, ElemType >, std::vector< std::pair< unsigned int, QpMap > > > _elem_type_to_coarsening_map
Holds mappings for volume to volume and parent side to child side Map key:
Definition: MooseMesh.h:1730
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getCoordSystem() [1/2]

Moose::CoordinateSystemType MooseMesh::getCoordSystem ( SubdomainID  sid) const
inherited

Get the coordinate system type, e.g.

xyz, rz, or r-spherical, for the provided subdomain id sid

Definition at line 3919 of file MooseMesh.C.

Referenced by SubProblem::getCoordSystem(), and ComputeLinearFVGreenGaussGradientVolumeThread::operator()().

3920 {
3921  auto it = _coord_sys.find(sid);
3922  if (it != _coord_sys.end())
3923  return (*it).second;
3924  else
3925  mooseError("Requested subdomain ", sid, " does not exist.");
3926 }
std::map< SubdomainID, Moose::CoordinateSystemType > _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1804
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getCoordSystem() [2/2]

const std::map< SubdomainID, Moose::CoordinateSystemType > & MooseMesh::getCoordSystem ( ) const
inherited

Get the map from subdomain ID to coordinate system type, e.g.

xyz, rz, or r-spherical

Definition at line 3951 of file MooseMesh.C.

Referenced by MooseMesh::setGeneralAxisymmetricCoordAxes().

3952 {
3953  return _coord_sys;
3954 }
std::map< SubdomainID, Moose::CoordinateSystemType > _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1804

◆ getDataFileName()

std::string DataFileInterface< MooseObject >::getDataFileName ( const std::string &  param) const
inherited

Returns the path of a data file for a given FileName type parameter, searching (in the following order)

  • relative to the input file directory
  • relative to the running binary (assuming the application is installed)
  • relative to all registered data file directories

Definition at line 24 of file DataFileInterface.C.

25 {
26  // The path from the parameters, which has not been modified because it is a DataFileName
27  const auto & value = _parent.template getParam<DataFileParameterType>(param);
28  if (value.empty())
29  _parent.paramInfo(param, "Data file name is empty");
30 
31  const std::filesystem::path value_path = std::filesystem::path(std::string(value));
32 
33  // If the file is absolute, we should reference that directly and don't need to add
34  // any info beacuse this is not ambiguous
35  if (value_path.is_absolute() && MooseUtils::checkFileReadable(value, false, false, false))
36  return value;
37 
38  // Look relative to the input file
39  const auto base = _parent.parameters().getParamFileBase(param);
40  const std::string relative_to_context = std::filesystem::absolute(base / value_path).c_str();
41  if (MooseUtils::checkFileReadable(relative_to_context, false, false, false))
42  {
43  _parent.paramInfo(param, "Data file '", value, "' found relative to the input file.");
44  return relative_to_context;
45  }
46 
47  // Isn't absolute and couldn't find relative to the input file, so search the data
48  return getDataFileNameByName(value, &param);
49 }
std::string getDataFileNameByName(const std::string &name, const std::string *param=nullptr) const
Returns the path of a data file for a given relative file path.
std::filesystem::path getParamFileBase(const std::string &param_name) const
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true, bool check_for_git_lfs_pointer=true)
Checks to see if a file is readable (exists and permissions)
Definition: MooseUtils.C:256
const InputParameters & parameters() const
Get the parameters of the object.
void paramInfo(const std::string &param, Args... args) const
Emits an informational message prefixed with the file and line number of the given param (from the in...

◆ getDataFileNameByName()

std::string DataFileInterface< MooseObject >::getDataFileNameByName ( const std::string &  name,
const std::string *  param = nullptr 
) const
inherited

Returns the path of a data file for a given relative file path.

This can be used for hardcoded datafile names and will search the same locations as getDataFileName. The optional param pointer can be used to turn the mooseErrors this function emits into paramErrors

  • relative to the running binary (assuming the application is installed)
  • relative to all registered data file directories

Definition at line 53 of file DataFileInterface.C.

55 {
57  const auto share_dir = MooseUtils::pathjoin(Moose::getExecutablePath(), "..", "share");
58  if (MooseUtils::pathIsDirectory(share_dir))
59  {
60  const auto dirs = MooseUtils::listDir(share_dir, false);
61  for (const auto & data_dir : dirs)
62  {
63  const auto path = MooseUtils::pathjoin(data_dir, "data", relative_path);
64  if (MooseUtils::checkFileReadable(path, false, false, false))
65  {
66  if (param)
68  *param, "Data file '", path, "' found in an installed app distribution.");
69  else
70  mooseInfo("Data file '", path, "' found in an installed app distribution.");
71  return path;
72  }
73  }
74  }
75 
77  for (const auto & data_dir : Registry::getRegistry().getDataFilePaths())
78  {
79  const auto path = MooseUtils::pathjoin(data_dir, relative_path);
80  if (MooseUtils::checkFileReadable(path, false, false, false))
81  {
82  if (param)
83  _parent.paramInfo(*param, "Data file '", path, "' found in a source repository.");
84  else
85  mooseInfo("Data file '", path, "' found in a source repository.");
86  return path;
87  }
88  }
89 
90  mooseException(param ? _parent.parameters().inputLocation(*param) : _parent.name(),
91  ": Unable to find data file '",
92  relative_path,
93  "' anywhere");
94 }
static Registry & getRegistry()
Get the global Registry singleton.
Definition: Registry.C:21
std::string getExecutablePath()
This function returns the PATH of the running executable.
bool pathIsDirectory(const std::string &path)
Definition: MooseUtils.C:247
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
void mooseInfo(Args &&... args)
Emit an informational message with the given stringified, concatenated args.
Definition: MooseError.h:366
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true, bool check_for_git_lfs_pointer=true)
Checks to see if a file is readable (exists and permissions)
Definition: MooseUtils.C:256
std::string inputLocation(const std::string &param) const
std::filesystem::path pathjoin(const std::filesystem::path &p)
Definition: MooseUtils.C:58
std::list< std::string > listDir(const std::string path, bool files_only=false)
Definition: MooseUtils.C:768
const InputParameters & parameters() const
Get the parameters of the object.
void paramInfo(const std::string &param, Args... args) const
Emits an informational message prefixed with the file and line number of the given param (from the in...

◆ getElementIDIndex()

unsigned int MooseMesh::getElementIDIndex ( const std::string &  id_name) const
inlineinherited

Return the accessing integer for an extra element integer with its name.

Definition at line 2092 of file MooseMesh.h.

Referenced by MooseMesh::areElemIDsIdentical().

2093 {
2094  if (!hasElementID(id_name))
2095  mooseError("Mesh does not have element ID for ", id_name);
2096  return getMesh().get_elem_integer_index(id_name);
2097 }
bool hasElementID(const std::string &id_name) const
Whether mesh has an extra element integer with a given name.
Definition: MooseMesh.h:2086
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getElemIDMapping()

std::unordered_map< dof_id_type, std::set< dof_id_type > > MooseMesh::getElemIDMapping ( const std::string &  from_id_name,
const std::string &  to_id_name 
) const
inherited

Definition at line 903 of file MooseMesh.C.

904 {
905  auto & mesh_base = getMesh();
906 
907  if (!mesh_base.has_elem_integer(from_id_name))
908  mooseError("Mesh does not have the element integer name '", from_id_name, "'");
909  if (!mesh_base.has_elem_integer(to_id_name))
910  mooseError("Mesh does not have the element integer name '", to_id_name, "'");
911 
912  const auto id1 = mesh_base.get_elem_integer_index(from_id_name);
913  const auto id2 = mesh_base.get_elem_integer_index(to_id_name);
914 
915  std::unordered_map<dof_id_type, std::set<dof_id_type>> id_map;
916  for (const auto id : getAllElemIDs(id1))
917  id_map[id] = std::set<dof_id_type>();
918 
919  for (const auto & elem : mesh_base.active_local_element_ptr_range())
920  id_map[elem->get_extra_integer(id1)].insert(elem->get_extra_integer(id2));
921 
922  for (auto & [id, ids] : id_map)
923  {
924  libmesh_ignore(id); // avoid overzealous gcc 9.4 unused var warning
925  comm().set_union(ids);
926  }
927 
928  return id_map;
929 }
const Parallel::Communicator & comm() const
void libmesh_ignore(const Args &...)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::set< dof_id_type > getAllElemIDs(unsigned int elem_id_index) const
Return all the unique element IDs for an extra element integer with its index.
Definition: MooseMesh.C:932
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
void set_union(T &data, const unsigned int root_id) const

◆ getElemIDsOnBlocks()

std::set< dof_id_type > MooseMesh::getElemIDsOnBlocks ( unsigned int  elem_id_index,
const std::set< SubdomainID > &  blks 
) const
inherited

Return all the unique element IDs for an extra element integer with its index on a set of subdomains.

Definition at line 942 of file MooseMesh.C.

943 {
944  std::set<dof_id_type> unique_ids;
945  for (auto & blk : blks)
946  {
947  auto it = _block_id_mapping[elem_id_index].find(blk);
948  if (it == _block_id_mapping[elem_id_index].end())
949  mooseError("Block ", blk, " is not available on the mesh");
950 
951  for (auto & mid : it->second)
952  unique_ids.insert(mid);
953  }
954  return unique_ids;
955 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::vector< std::unordered_map< SubdomainID, std::set< dof_id_type > > > _block_id_mapping
Unique element integer IDs for each subdomain and each extra element integers.
Definition: MooseMesh.h:1786

◆ getFileName()

virtual std::string MooseMesh::getFileName ( ) const
inlinevirtualinherited

Returns the name of the mesh file read to produce this mesh if any or an empty string otherwise.

Reimplemented in FileMesh, and TiledMesh.

Definition at line 1049 of file MooseMesh.h.

1049 { return ""; }

◆ getGeneralAxisymmetricCoordAxis()

const std::pair< Point, RealVectorValue > & MooseMesh::getGeneralAxisymmetricCoordAxis ( SubdomainID  subdomain_id) const
inherited

Gets the general axisymmetric coordinate axis for a block.

Parameters
[in]subdomain_idSubdomain ID for which to get axisymmetric coordinate axis

Definition at line 4013 of file MooseMesh.C.

4014 {
4015  auto it = _subdomain_id_to_rz_coord_axis.find(subdomain_id);
4016  if (it != _subdomain_id_to_rz_coord_axis.end())
4017  return (*it).second;
4018  else
4019  mooseError("Requested subdomain ", subdomain_id, " does not exist.");
4020 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::unordered_map< SubdomainID, std::pair< Point, RealVectorValue > > _subdomain_id_to_rz_coord_axis
Map of subdomain ID to general axisymmetric axis.
Definition: MooseMesh.h:1810

◆ getGhostedBoundaries()

const std::set< unsigned int > & MooseMesh::getGhostedBoundaries ( ) const
inherited

Return a writable reference to the set of ghosted boundary IDs.

Definition at line 2992 of file MooseMesh.C.

2993 {
2994  return _ghosted_boundaries;
2995 }
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1514

◆ getGhostedBoundaryInflation()

const std::vector< Real > & MooseMesh::getGhostedBoundaryInflation ( ) const
inherited

Return a writable reference to the _ghosted_boundaries_inflation vector.

Definition at line 2998 of file MooseMesh.C.

Referenced by NearestNodeLocator::findNodes(), and NearestNodeLocator::updatePatch().

2999 {
3001 }
std::vector< Real > _ghosted_boundaries_inflation
Definition: MooseMesh.h:1515

◆ getGhostingPatchSize()

unsigned int MooseMesh::getGhostingPatchSize ( ) const
inlineinherited

Getter for the ghosting_patch_size parameter.

Definition at line 611 of file MooseMesh.h.

Referenced by NearestNodeLocator::findNodes(), and NearestNodeLocator::updatePatch().

611 { return _ghosting_patch_size; }
unsigned int _ghosting_patch_size
The number of nearest neighbors to consider for ghosting purposes when iteration patch update strateg...
Definition: MooseMesh.h:1521

◆ getHigherDSide()

unsigned int MooseMesh::getHigherDSide ( const Elem *  elem) const
inherited

Returns the local side ID of the interior parent aligned with the lower dimensional element.

Definition at line 1495 of file MooseMesh.C.

1496 {
1497  auto it = _lower_d_elem_to_higher_d_elem_side.find(elem);
1498 
1499  if (it != _lower_d_elem_to_higher_d_elem_side.end())
1500  return it->second;
1501  else
1502  return libMesh::invalid_uint;
1503 }
const unsigned int invalid_uint
std::unordered_map< const Elem *, unsigned short int > _lower_d_elem_to_higher_d_elem_side
Definition: MooseMesh.h:1758
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getInflatedProcessorBoundingBox()

BoundingBox MooseMesh::getInflatedProcessorBoundingBox ( Real  inflation_multiplier = 0.01) const
inherited

Get a (slightly inflated) processor bounding box.

Parameters
inflation_multiplierThis amount will be multiplied by the length of the diagonal of the bounding box to find the amount to inflate the bounding box by in all directions.

Definition at line 3170 of file MooseMesh.C.

Referenced by PositionsFunctorValueSampler::execute(), PointVariableSamplerBase::execute(), CartesianGridDivision::initialize(), and RadialAverage::updateCommunicationLists().

3171 {
3172  // Grab a bounding box to speed things up. Note that
3173  // local_bounding_box is *not* equivalent to processor_bounding_box
3174  // with processor_id() except in serial.
3175  BoundingBox bbox = MeshTools::create_local_bounding_box(getMesh());
3176 
3177  // Inflate the bbox just a bit to deal with roundoff
3178  // Adding 1% of the diagonal size in each direction on each end
3179  Real inflation_amount = inflation_multiplier * (bbox.max() - bbox.min()).norm();
3180  Point inflation(inflation_amount, inflation_amount, inflation_amount);
3181 
3182  bbox.first -= inflation; // min
3183  bbox.second += inflation; // max
3184 
3185  return bbox;
3186 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
auto norm(const T &a) -> decltype(std::abs(a))
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ getInterfaceConnectedBlocks()

std::set< SubdomainID > MooseMesh::getInterfaceConnectedBlocks ( const BoundaryID  bid) const
inherited

Get the list of subdomains contacting the given boundary.

Parameters
bidThe boundary ID you want to get the subdomain IDs for.
Returns
All subdomain IDs contacting given boundary ID

Definition at line 3294 of file MooseMesh.C.

3295 {
3296  std::set<SubdomainID> subdomain_ids = getBoundaryConnectedBlocks(bid);
3297  for (const auto & it : _neighbor_subdomain_boundary_ids)
3298  if (it.second.find(bid) != it.second.end())
3299  subdomain_ids.insert(it.first);
3300 
3301  return subdomain_ids;
3302 }
std::unordered_map< SubdomainID, std::set< BoundaryID > > _neighbor_subdomain_boundary_ids
Holds a map from neighbor subomdain ids to the boundary ids that are attached to it.
Definition: MooseMesh.h:1753
std::set< SubdomainID > getBoundaryConnectedBlocks(const BoundaryID bid) const
Get the list of subdomains associated with the given boundary.
Definition: MooseMesh.C:3272

◆ getLocalNodeRange()

ConstNodeRange * MooseMesh::getLocalNodeRange ( )
inherited

Definition at line 1078 of file MooseMesh.C.

Referenced by NonlinearSystemBase::computeDamping(), NonlinearSystemBase::computeJacobianInternal(), AuxiliarySystem::computeNodalVarsHelper(), NonlinearSystemBase::computeResidualInternal(), FEProblemBase::computeUserObjectsInternal(), FEProblemBase::initialSetup(), and MooseMesh::meshChanged().

1079 {
1080  if (!_local_node_range)
1081  {
1082  TIME_SECTION("getLocalNodeRange", 5);
1083 
1084  _local_node_range = std::make_unique<ConstNodeRange>(
1085  getMesh().local_nodes_begin(), getMesh().local_nodes_end(), GRAIN_SIZE);
1086  }
1087 
1088  return _local_node_range.get();
1089 }
static const int GRAIN_SIZE
Definition: MooseMesh.C:64
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::unique_ptr< ConstNodeRange > _local_node_range
Definition: MooseMesh.h:1455

◆ getLowerDElem()

const Elem * MooseMesh::getLowerDElem ( const Elem *  elem,
unsigned short int  side 
) const
inherited

Returns a const pointer to a lower dimensional element that corresponds to a side of a higher dimensional element.

This relationship is established through an internal_parent; if there is no lowerDElem, nullptr is returned.

Definition at line 1484 of file MooseMesh.C.

Referenced by GhostLowerDElems::operator()(), DisplacedProblem::reinitElemNeighborAndLowerD(), and FEProblemBase::reinitElemNeighborAndLowerD().

1485 {
1486  auto it = _higher_d_elem_side_to_lower_d_elem.find(std::make_pair(elem, side));
1487 
1488  if (it != _higher_d_elem_side_to_lower_d_elem.end())
1489  return it->second;
1490  else
1491  return nullptr;
1492 }
std::unordered_map< std::pair< const Elem *, unsigned short int >, const Elem * > _higher_d_elem_side_to_lower_d_elem
Holds a map from a high-order element side to its corresponding lower-d element.
Definition: MooseMesh.h:1757
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getLowerDElemMap()

const std::unordered_map< std::pair< const Elem *, unsigned short int >, const Elem * > & MooseMesh::getLowerDElemMap ( ) const
inlineinherited

This function attempts to return the map from a high-order element side to its corresponding lower-d element.

Definition at line 2126 of file MooseMesh.h.

2127 {
2129 }
std::unordered_map< std::pair< const Elem *, unsigned short int >, const Elem * > _higher_d_elem_side_to_lower_d_elem
Holds a map from a high-order element side to its corresponding lower-d element.
Definition: MooseMesh.h:1757

◆ getMaxInDimension()

Real MooseMesh::getMaxInDimension ( unsigned int  component) const
virtualinherited

Reimplemented in AnnularMesh, and GeneratedMesh.

Definition at line 1965 of file MooseMesh.C.

Referenced by MooseMesh::dimensionWidth(), GeneratedMesh::getMaxInDimension(), AnnularMesh::getMaxInDimension(), and PropertyReadFile::PropertyReadFile().

1966 {
1967  mooseAssert(_mesh, "The MeshBase has not been constructed");
1968  mooseAssert(component < _bounds.size(), "Requested dimension out of bounds");
1969 
1970  return _bounds[component][MAX];
1971 }
std::vector< std::vector< Real > > _bounds
The bounds in each dimension of the mesh for regular orthogonal meshes.
Definition: MooseMesh.h:1536
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390

◆ getMaxLeafSize()

unsigned int MooseMesh::getMaxLeafSize ( ) const
inlineinherited

Getter for the maximum leaf size parameter.

Definition at line 616 of file MooseMesh.h.

Referenced by NearestNodeLocator::findNodes(), and NearestNodeLocator::updatePatch().

616 { return _max_leaf_size; }
unsigned int _max_leaf_size
Definition: MooseMesh.h:1524

◆ getMesh() [1/4]

MeshBase & MooseMesh::getMesh ( )
inherited

Accessor for the underlying libMesh Mesh object.

Definition at line 3199 of file MooseMesh.C.

Referenced by AddPeriodicBCAction::act(), MooseMesh::activeLocalElementsBegin(), MooseMesh::activeLocalElementsEnd(), Adaptivity::adaptMesh(), FEProblemBase::addAnyRedistributers(), MooseMesh::addQuadratureNode(), MooseMesh::addUniqueNode(), MultiAppConservativeTransfer::adjustTransferredSolution(), MultiAppConservativeTransfer::adjustTransferredSolutionNearestPoint(), NonlinearSystemBase::assembleScalingVector(), Assembly::Assembly(), AuxKernelTempl< Real >::AuxKernelTempl(), MooseMesh::buildActiveSideList(), MooseMesh::buildBndElemList(), MooseMesh::buildElemIDInfo(), MooseMesh::buildFiniteVolumeInfo(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildLowerDMesh(), TiledMesh::buildMesh(), FileMesh::buildMesh(), AnnularMesh::buildMesh(), ConcentricCircleMesh::buildMesh(), buildMesh(), SpiralAnnularMesh::buildMesh(), GeneratedMesh::buildMesh(), StitchedMesh::buildMesh(), PatternedMesh::buildMesh(), ImageMesh::buildMesh2D(), ImageMesh::buildMesh3D(), MooseMesh::buildNodeList(), MooseMesh::buildNodeListFromSideList(), MooseMesh::buildPeriodicNodeMap(), MooseMesh::buildPeriodicNodeSets(), MooseMesh::buildPRefinementAndCoarseningMaps(), MooseMesh::buildSideList(), MooseMesh::cacheChangedLists(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), MooseMesh::cacheInfo(), MooseMesh::changeBoundaryId(), MooseMesh::checkCoordinateSystems(), NonlinearSystemBase::constraintJacobians(), NonlinearSystemBase::constraintResiduals(), MortarData::createMortarInterface(), MooseMesh::detectOrthogonalDimRanges(), MooseMesh::detectPairedSidesets(), MooseMesh::dimension(), ExtraElementIntegerDivision::divisionIndex(), FunctorBinnedValuesDivision::divisionIndex(), SubdomainsDivision::divisionIndex(), DumpObjectsProblem::dumpVariableHelper(), ElementalVariableValue::ElementalVariableValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), MooseMesh::elemPtr(), ElemSideNeighborLayersTester::execute(), NodalNormalsCorner::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppUserObjectTransfer::execute(), NodalNormalsPreprocessor::execute(), ExtraElementIntegerDivision::ExtraElementIntegerDivision(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), QuadraturePointMultiApp::fillPositions(), CentroidMultiApp::fillPositions(), MultiAppGeometricInterpolationTransfer::fillSourceInterpolationPoints(), ElementSubdomainModifier::finalize(), ActivateElementsUserObjectBase::finalize(), MooseMesh::getActiveLocalElementRange(), MooseMesh::getActiveNodeRange(), MooseMesh::getBlocksMaxDimension(), MooseMesh::getBoundaryID(), MooseMesh::getBoundaryIDs(), MooseMesh::getBoundaryName(), MooseMesh::getElementIDIndex(), MooseMesh::getElemIDMapping(), FEProblemBase::getEvaluableElementRange(), MooseMesh::getInflatedProcessorBoundingBox(), MooseMesh::getLocalNodeRange(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), MooseMesh::getNodeList(), FEProblemBase::getNonlinearEvaluableElementRange(), MooseMesh::getPointLocator(), MooseMesh::getSubdomainID(), MooseMesh::getSubdomainIDs(), MooseMesh::getSubdomainName(), MooseMesh::ghostGhostedBoundaries(), MooseMesh::hasElementID(), UpdateDisplacedMeshThread::init(), MooseMesh::init(), VerifyElementUniqueID::initialize(), VerifyNodalUniqueID::initialize(), ExtraElementIntegerDivision::initialize(), ElementCentroidPositions::initialize(), ElementGroupCentroidPositions::initialize(), FunctorPositions::initialize(), FunctorTimes::initialize(), MultiAppDofCopyTransfer::initialSetup(), NodalVariableValue::initialSetup(), Exodus::initialSetup(), FEProblemBase::initialSetup(), OversampleOutput::initOversample(), MultiAppGeometricInterpolationTransfer::interpolateTargetPoints(), LinearNodalConstraint::LinearNodalConstraint(), MooseMesh::localNodesBegin(), MooseMesh::localNodesEnd(), Moose::Mortar::loopOverMortarSegments(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), MooseMesh::maxElemId(), MooseMesh::maxNodeId(), GeometryBase::meshChanged(), GhostingUserObject::meshChanged(), RadialAverage::meshChanged(), Nemesis::meshChanged(), MooseMesh::MooseMesh(), MooseMesh::nElem(), MooseMesh::nNodes(), NodalPatchRecovery::NodalPatchRecovery(), NodalVariableValue::NodalVariableValue(), MooseMesh::nodeToActiveSemilocalElemMap(), MooseMesh::nodeToElemMap(), ComputeNodalUserObjectsThread::onNode(), ProxyRelationshipManager::operator()(), MortarUserObjectThread::operator()(), ComputeMortarFunctor::operator()(), XDA::output(), ConsoleUtils::outputMeshInformation(), MooseMesh::prepare(), EqualValueEmbeddedConstraint::prepareSecondaryToPrimaryMap(), BoundaryPreservedMarker::preserveBoundary(), MooseMesh::printInfo(), ElementSubdomainModifier::pushBoundaryNodeInfo(), ElementSubdomainModifier::pushBoundarySideInfo(), MooseMesh::queryElemPtr(), MooseMesh::queryNodePtr(), FileMesh::read(), PropertyReadFile::readData(), RedistributeProperties::redistribute(), SubProblem::restrictionBoundaryCheckName(), SubProblem::restrictionSubdomainCheckName(), MooseMesh::setBoundaryName(), NonlinearSystemBase::setConstraintSecondaryValues(), XFEMInterface::setDisplacedMesh(), ActivateElementsUserObjectBase::setNewBoundayName(), MooseMesh::setPartitionerHelper(), MooseMesh::setSubdomainName(), MooseMesh::sideWithBoundaryID(), MultiAppDofCopyTransfer::transfer(), DisplacedProblem::undisplaceMesh(), MooseMesh::updateActiveSemiLocalNodeRange(), EqualValueBoundaryConstraint::updateConstrainedNodes(), Adaptivity::updateErrorVectors(), RandomData::updateGenerators(), DisplacedProblem::updateMesh(), and VariableCondensationPreconditioner::VariableCondensationPreconditioner().

3200 {
3201  mooseAssert(_mesh, "Mesh hasn't been created");
3202  return *_mesh;
3203 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390

◆ getMesh() [2/4]

MeshBase& MooseMesh::getMesh ( const std::string &  name)
inherited

◆ getMesh() [3/4]

const MeshBase & MooseMesh::getMesh ( ) const
inherited

Definition at line 3206 of file MooseMesh.C.

3207 {
3208  mooseAssert(_mesh, "Mesh hasn't been created");
3209  return *_mesh;
3210 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390

◆ getMesh() [4/4]

const MeshBase& MooseMesh::getMesh ( const std::string &  name) const
inherited

◆ getMeshPtr()

const MeshBase * MooseMesh::getMeshPtr ( ) const
inherited

Definition at line 3193 of file MooseMesh.C.

Referenced by MooseApp::attachRelationshipManagers(), MooseMesh::buildTypedMesh(), and RelationshipManager::init().

3194 {
3195  return _mesh.get();
3196 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390

◆ getMinInDimension()

Real MooseMesh::getMinInDimension ( unsigned int  component) const
virtualinherited

Returns the min or max of the requested dimension respectively.

Reimplemented in AnnularMesh, and GeneratedMesh.

Definition at line 1956 of file MooseMesh.C.

Referenced by MooseMesh::dimensionWidth(), GeneratedMesh::getMinInDimension(), AnnularMesh::getMinInDimension(), and PropertyReadFile::PropertyReadFile().

1957 {
1958  mooseAssert(_mesh, "The MeshBase has not been constructed");
1959  mooseAssert(component < _bounds.size(), "Requested dimension out of bounds");
1960 
1961  return _bounds[component][MIN];
1962 }
std::vector< std::vector< Real > > _bounds
The bounds in each dimension of the mesh for regular orthogonal meshes.
Definition: MooseMesh.h:1536
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390

◆ getMooseApp()

MooseApp& MooseBase::getMooseApp ( ) const
inlineinherited

◆ getNodeBlockIds()

const std::set< SubdomainID > & MooseMesh::getNodeBlockIds ( const Node &  node) const
inherited

Return list of blocks to which the given node belongs.

Definition at line 1281 of file MooseMesh.C.

Referenced by GeometryBase::meshChanged(), ComputeNodalUserObjectsThread::onNode(), ComputeNodalKernelsThread::onNode(), ComputeNodalKernelJacobiansThread::onNode(), and ComputeInitialConditionThread::operator()().

1282 {
1283  std::map<dof_id_type, std::set<SubdomainID>>::const_iterator it =
1284  _block_node_list.find(node.id());
1285 
1286  if (it == _block_node_list.end())
1287  mooseError("Unable to find node: ", node.id(), " in any block list.");
1288 
1289  return it->second;
1290 }
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
list of nodes that belongs to a specified block (domain)
Definition: MooseMesh.h:1509
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:623
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getNodeList()

const std::vector< dof_id_type > & MooseMesh::getNodeList ( boundary_id_type  nodeset_id) const
inherited

Return a writable reference to a vector of node IDs that belong to nodeset_id.

Definition at line 3221 of file MooseMesh.C.

Referenced by LinearNodalConstraint::LinearNodalConstraint(), GeometryBase::meshChanged(), NodalScalarKernel::NodalScalarKernel(), and EqualValueBoundaryConstraint::updateConstrainedNodes().

3222 {
3223  std::map<boundary_id_type, std::vector<dof_id_type>>::const_iterator it =
3224  _node_set_nodes.find(nodeset_id);
3225 
3226  if (it == _node_set_nodes.end())
3227  {
3228  // On a distributed mesh we might not know about a remote nodeset,
3229  // so we'll return an empty vector and hope the nodeset exists
3230  // elsewhere.
3231  if (!getMesh().is_serial())
3232  {
3233  static const std::vector<dof_id_type> empty_vec;
3234  return empty_vec;
3235  }
3236  // On a replicated mesh we should know about every nodeset and if
3237  // we're asked for one that doesn't exist then it must be a bug.
3238  else
3239  {
3240  mooseError("Unable to nodeset ID: ", nodeset_id, '.');
3241  }
3242  }
3243 
3244  return it->second;
3245 }
std::map< boundary_id_type, std::vector< dof_id_type > > _node_set_nodes
list of nodes that belongs to a specified nodeset: indexing [nodeset_id] -> [array of node ids] ...
Definition: MooseMesh.h:1512
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getNormalByBoundaryID()

const RealVectorValue & MooseMesh::getNormalByBoundaryID ( BoundaryID  id) const
inherited

Returns the normal vector associated with a given BoundaryID.

It's only valid to call this when AddAllSideSetsByNormals is active.

Definition at line 2560 of file MooseMesh.C.

2561 {
2562  mooseAssert(_boundary_to_normal_map.get() != nullptr, "Boundary To Normal Map not built!");
2563 
2564  // Note: Boundaries that are not in the map (existing boundaries) will default
2565  // construct a new RealVectorValue - (x,y,z)=(0, 0, 0)
2566  return (*_boundary_to_normal_map)[id];
2567 }
std::unique_ptr< std::map< BoundaryID, RealVectorValue > > _boundary_to_normal_map
The boundary to normal map - valid only when AddAllSideSetsByNormals is active.
Definition: MooseMesh.h:1486

◆ getPairedBoundaryMapping()

const std::pair< BoundaryID, BoundaryID > * MooseMesh::getPairedBoundaryMapping ( unsigned int  component)
inherited

This function attempts to return the paired boundary ids for the given component.

For example, in a generated 2D mesh, passing 0 for the "x" component will return (3, 1).

Parameters
component- An integer representing the desired component (dimension)
Returns
std::pair pointer - The matching boundary pairs for the passed component

Definition at line 2037 of file MooseMesh.C.

Referenced by MooseMesh::addPeriodicVariable(), and AddPeriodicBCAction::autoTranslationBoundaries().

2038 {
2040  mooseError("Trying to retrieve automatic paired mapping for a mesh that is not regular and "
2041  "orthogonal");
2042 
2043  mooseAssert(component < dimension(), "Requested dimension out of bounds");
2044 
2045  if (_paired_boundary.empty())
2047 
2048  if (component < _paired_boundary.size())
2049  return &_paired_boundary[component];
2050  else
2051  return nullptr;
2052 }
void detectPairedSidesets()
This routine detects paired sidesets of a regular orthogonal mesh (.i.e.
Definition: MooseMesh.C:1774
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2679
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::vector< std::pair< BoundaryID, BoundaryID > > _paired_boundary
A vector holding the paired boundaries for a regular orthogonal mesh.
Definition: MooseMesh.h:1539
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1533

◆ getParam() [1/2]

template<typename T >
const T & MooseBaseParameterInterface::getParam ( const std::string &  name) const
inherited

Retrieve a parameter for the object.

Parameters
nameThe name of the parameter
Returns
The value of the parameter

Definition at line 204 of file MooseBaseParameterInterface.h.

Referenced by CreateDisplacedProblemAction::act(), AddPeriodicBCAction::act(), ADNodalKernel::ADNodalKernel(), ArrayParsedAux::ArrayParsedAux(), AddPeriodicBCAction::autoTranslationBoundaries(), BicubicSplineFunction::BicubicSplineFunction(), PiecewiseTabularBase::buildFromJSON(), PhysicsBase::checkVectorParamsNoOverlap(), PhysicsBase::checkVectorParamsSameLength(), FEProblemBase::createTagSolutions(), AccumulateReporter::declareLateValues(), DerivativeParsedMaterialTempl< is_ad >::DerivativeParsedMaterialTempl(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), EigenKernel::EigenKernel(), FEProblemBase::FEProblemBase(), FEProblemSolve::FEProblemSolve(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FVInterfaceKernel::FVInterfaceKernel(), ExtraNodesetGenerator::generate(), FileMeshGenerator::generate(), BreakMeshByBlockGenerator::generate(), CoarsenBlockGenerator::generate(), GeneratedMeshGenerator::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), BlockDeletionGenerator::generate(), MeshExtruderGenerator::generate(), GenericConstantRankTwoTensorTempl< is_ad >::GenericConstantRankTwoTensorTempl(), MooseApp::getCheckpointDirectories(), ExecutorInterface::getExecutor(), GhostingUserObject::GhostingUserObject(), TimeSequenceStepper::init(), IterationAdaptiveDT::init(), AdvancedOutput::init(), AttribThread::initFrom(), AttribSysNum::initFrom(), AttribResidualObject::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), IterationAdaptiveDT::limitDTToPostprocessorValue(), MooseMesh::MooseMesh(), MooseVariableBase::MooseVariableBase(), NestedDivision::NestedDivision(), ConsoleUtils::outputExecutionInformation(), ParsedAux::ParsedAux(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedElementDeletionGenerator::ParsedElementDeletionGenerator(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedMaterialTempl< is_ad >::ParsedMaterialTempl(), ParsedNodeTransformGenerator::ParsedNodeTransformGenerator(), ParsedODEKernel::ParsedODEKernel(), ParsedPostprocessor::ParsedPostprocessor(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), PiecewiseConstantByBlockMaterialTempl< is_ad >::PiecewiseConstantByBlockMaterialTempl(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), Moose::FV::setInterpolationMethod(), SetupMeshAction::setupMesh(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), TimePeriod::TimePeriod(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), and VectorOfPostprocessors::VectorOfPostprocessors().

205 {
206  return InputParameters::getParamHelper(name, _pars, static_cast<T *>(0), &_moose_base);
207 }
const MooseBase & _moose_base
The MooseBase object that inherits this class.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type, const MooseBase *moose_base=nullptr)

◆ getParam() [2/2]

template<typename T1 , typename T2 >
std::vector< std::pair< T1, T2 > > MooseBaseParameterInterface::getParam ( const std::string &  param1,
const std::string &  param2 
) const
inherited

Retrieve two parameters and provide pair of parameters for the object.

Parameters
param1The name of first parameter
param2The name of second parameter
Returns
Vector of pairs of first and second parameters

Definition at line 261 of file MooseBaseParameterInterface.h.

262 {
263  return _pars.get<T1, T2>(param1, param2);
264 }
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.

◆ getPatchSize()

unsigned int MooseMesh::getPatchSize ( ) const
inherited

Getter for the patch_size parameter.

Definition at line 3152 of file MooseMesh.C.

Referenced by NearestNodeLocator::findNodes(), and NearestNodeLocator::updatePatch().

3153 {
3154  return _patch_size;
3155 }
unsigned int _patch_size
The number of nodes to consider in the NearestNode neighborhood.
Definition: MooseMesh.h:1518

◆ getPatchUpdateStrategy()

const Moose::PatchUpdateType & MooseMesh::getPatchUpdateStrategy ( ) const
inherited

Get the current patch update strategy.

Definition at line 3164 of file MooseMesh.C.

Referenced by FEProblemBase::possiblyRebuildGeomSearchPatches().

3165 {
3166  return _patch_update_strategy;
3167 }
Moose::PatchUpdateType _patch_update_strategy
The patch update strategy.
Definition: MooseMesh.h:1527

◆ getPCoarseningMap()

const std::vector< QpMap > & MooseMesh::getPCoarseningMap ( const Elem &  elem) const
inherited

Get the map describing for each volumetric quadrature point (qp) on the coarse level which qp on the previous finer level the coarse qp is closest to.

Definition at line 4136 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onElement().

4137 {
4139 }
const std::vector< QpMap > & getPCoarseningMapHelper(const Elem &elem, const std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4114
std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_map
Definition: MooseMesh.h:1732
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getPCoarseningSideMap()

const std::vector< QpMap > & MooseMesh::getPCoarseningSideMap ( const Elem &  elem) const
inherited

Get the map describing for each side quadrature point (qp) on the coarse level which qp on the previous finer level the coarse qp is closest to.

Definition at line 4142 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onBoundary().

4143 {
4145 }
const std::vector< QpMap > & getPCoarseningMapHelper(const Elem &elem, const std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4114
std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_side_map
Definition: MooseMesh.h:1734
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getPointLocator()

std::unique_ptr< PointLocatorBase > MooseMesh::getPointLocator ( ) const
virtualinherited

Proxy function to get a (sub)PointLocator from either the underlying libMesh mesh (default), or to allow derived meshes to return a custom point locator.

Definition at line 3480 of file MooseMesh.C.

Referenced by PointValue::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), ElementsAlongLine::execute(), IntersectionPointsAlongLine::execute(), FindValueOnLine::initialize(), PointSamplerBase::initialize(), PiecewiseConstantFromCSV::initialSetup(), ReporterPointMarker::markerSetup(), and EqualValueEmbeddedConstraint::prepareSecondaryToPrimaryMap().

3481 {
3482  return getMesh().sub_point_locator();
3483 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ getPRefinementMap()

const std::vector< QpMap > & MooseMesh::getPRefinementMap ( const Elem &  elem) const
inherited

Get the map describing for each volumetric quadrature point (qp) on the refined level which qp on the previous coarser level the fine qp is closest to.

Definition at line 4124 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onElement().

4125 {
4127 }
std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_map
Definition: MooseMesh.h:1707
const std::vector< QpMap > & getPRefinementMapHelper(const Elem &elem, const std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4101
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getPRefinementSideMap()

const std::vector< QpMap > & MooseMesh::getPRefinementSideMap ( const Elem &  elem) const
inherited

Get the map describing for each side quadrature point (qp) on the refined level which qp on the previous coarser level the fine qp is closest to.

Definition at line 4130 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onBoundary().

4131 {
4133 }
const std::vector< QpMap > & getPRefinementMapHelper(const Elem &elem, const std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4101
std::map< std::pair< ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_side_map
Definition: MooseMesh.h:1709
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getQuadratureNode()

Node * MooseMesh::getQuadratureNode ( const Elem *  elem,
const unsigned short int  side,
const unsigned int  qp 
)
inherited

Get a specified quadrature node.

Parameters
elemThe element the quadrature point is on
sideThe side the quadrature point is on
qpThe quadrature point number associated with the point

Definition at line 1445 of file MooseMesh.C.

Referenced by GapValueAux::computeValue(), NearestNodeDistanceAux::computeValue(), PenetrationAux::computeValue(), and GeometricSearchData::updateQuadratureNodes().

1448 {
1449  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes.find(elem->id()) !=
1451  "Elem has no quadrature nodes!");
1452  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes[elem->id()].find(side) !=
1454  "Side has no quadrature nodes!");
1455  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].find(qp) !=
1456  _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].end(),
1457  "qp not found on side!");
1458 
1459  return _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp];
1460 }
std::map< dof_id_type, std::map< unsigned int, std::map< dof_id_type, Node * > > > _elem_to_side_to_qp_to_quadrature_nodes
Definition: MooseMesh.h:1505
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ getRefinementMap()

const std::vector< std::vector< QpMap > > & MooseMesh::getRefinementMap ( const Elem &  elem,
int  parent_side,
int  child,
int  child_side 
)
inherited

Get the refinement map for a given element type.

This will tell you what quadrature points to copy from and to for stateful material properties on newly created elements from Adaptivity.

Parameters
elemThe element that represents the element type you need the refinement map for.
parent_sideThe side of the parent to map (-1 if not mapping parent sides)
childThe child number (-1 if not mapping child internal sides)
child_sideThe side number of the child (-1 if not mapping sides)

TODO: When running with parallel mesh + stateful adaptivty we will need to make sure that each processor has a complete map. This may require parallel communication. This is likely to happen when running on a mixed element mesh.

Definition at line 2263 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onBoundary(), ProjectMaterialProperties::onElement(), and ProjectMaterialProperties::onInternalSide().

2264 {
2265  if (child == -1) // Doing volume mapping or parent side mapping
2266  {
2267  mooseAssert(parent_side == child_side,
2268  "Parent side must match child_side if not passing a specific child!");
2269 
2270  std::pair<int, ElemType> the_pair(parent_side, elem.type());
2271 
2272  if (_elem_type_to_refinement_map.find(the_pair) == _elem_type_to_refinement_map.end())
2273  mooseError("Could not find a suitable qp refinement map!");
2274 
2275  return _elem_type_to_refinement_map[the_pair];
2276  }
2277  else // Need to map a child side to parent volume qps
2278  {
2279  std::pair<int, int> child_pair(child, child_side);
2280 
2281  if (_elem_type_to_child_side_refinement_map.find(elem.type()) ==
2283  _elem_type_to_child_side_refinement_map[elem.type()].find(child_pair) ==
2285  mooseError("Could not find a suitable qp refinement map!");
2286 
2287  return _elem_type_to_child_side_refinement_map[elem.type()][child_pair];
2288  }
2289 
2296 }
std::map< ElemType, std::map< std::pair< int, int >, std::vector< std::vector< QpMap > > > > _elem_type_to_child_side_refinement_map
Holds mappings for "internal" child sides to parent volume. The second key is (child, child_side).
Definition: MooseMesh.h:1713
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
std::map< std::pair< int, ElemType >, std::vector< std::vector< QpMap > > > _elem_type_to_refinement_map
Holds mappings for volume to volume and parent side to child side Map key:
Definition: MooseMesh.h:1705

◆ getRenamedParam()

template<typename T >
const T & MooseBaseParameterInterface::getRenamedParam ( const std::string &  old_name,
const std::string &  new_name 
) const
inherited

Retrieve a renamed parameter for the object.

This helper makes sure we check both names before erroring, and that only one parameter is passed to avoid silent errors

Parameters
old_namethe old name for the parameter
new_namethe new name for the parameter

Definition at line 211 of file MooseBaseParameterInterface.h.

213 {
214  // this enables having a default on the new parameter but bypassing it with the old one
215  // Most important: accept new parameter
216  if (isParamSetByUser(new_name) && !isParamValid(old_name))
217  return InputParameters::getParamHelper(new_name, _pars, static_cast<T *>(0), &_moose_base);
218  // Second most: accept old parameter
219  else if (isParamValid(old_name) && !isParamSetByUser(new_name))
220  return InputParameters::getParamHelper(old_name, _pars, static_cast<T *>(0), &_moose_base);
221  // Third most: accept default for new parameter
222  else if (isParamValid(new_name) && !isParamValid(old_name))
223  return InputParameters::getParamHelper(new_name, _pars, static_cast<T *>(0), &_moose_base);
224  // Refuse: no default, no value passed
225  else if (!isParamValid(old_name) && !isParamValid(new_name))
226  mooseError(_pars.blockFullpath() + ": parameter '" + new_name +
227  "' is being retrieved without being set.\n"
228  "Did you misspell it?");
229  // Refuse: both old and new parameters set by user
230  else
231  mooseError(_pars.blockFullpath() + ": parameter '" + new_name +
232  "' may not be provided alongside former parameter '" + old_name + "'");
233 }
const MooseBase & _moose_base
The MooseBase object that inherits this class.
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:299
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
bool isParamSetByUser(const std::string &nm) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
std::string blockFullpath() const
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type, const MooseBase *moose_base=nullptr)

◆ getRestartableData()

template<typename T , typename... Args>
const T & Restartable::getRestartableData ( const std::string &  data_name) const
protectedinherited

Declare a piece of data as "restartable" and initialize it Similar to declareRestartableData but returns a const reference to the object.

Forwarded arguments are not allowed in this case because we assume that the object is restarted and we won't need different constructors to initialize it.

NOTE: This returns a const reference! Make sure you store it in a const reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)

Definition at line 287 of file Restartable.h.

288 {
289  return declareRestartableDataHelper<T>(data_name, nullptr).get();
290 }

◆ getSubdomainBoundaryIds()

const std::set< BoundaryID > & MooseMesh::getSubdomainBoundaryIds ( const SubdomainID  subdomain_id) const
inherited

Get the list of boundary ids associated with the given subdomain id.

Parameters
subdomain_idThe subdomain ID you want to get the boundary ids for.
Returns
All boundary IDs connected to elements in the give

Definition at line 3248 of file MooseMesh.C.

Referenced by MooseMesh::getSubdomainInterfaceBoundaryIds(), and FEProblemBase::prepareMaterials().

3249 {
3250  const auto it = _sub_to_data.find(subdomain_id);
3251 
3252  if (it == _sub_to_data.end())
3253  mooseError("Unable to find subdomain ID: ", subdomain_id, '.');
3254 
3255  return it->second.boundary_ids;
3256 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1750

◆ getSubdomainID()

SubdomainID MooseMesh::getSubdomainID ( const SubdomainName &  subdomain_name) const
inherited

Get the associated subdomain ID for the subdomain name.

Parameters
subdomain_nameThe name of the subdomain
Returns
The subdomain id from the passed subdomain name.

Definition at line 1514 of file MooseMesh.C.

Referenced by SystemBase::addVariable(), FVInterfaceKernel::FVInterfaceKernel(), SolutionIC::initialSetup(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), PiecewiseConstantByBlockMaterialTempl< is_ad >::PiecewiseConstantByBlockMaterialTempl(), MooseMesh::setCoordSystem(), and MooseMesh::setGeneralAxisymmetricCoordAxes().

1515 {
1516  return MooseMeshUtils::getSubdomainID(subdomain_name, getMesh());
1517 }
SubdomainID getSubdomainID(const SubdomainName &subdomain_name, const MeshBase &mesh)
Gets the subdomain ID associated with the given SubdomainName.
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ getSubdomainIDs()

std::vector< SubdomainID > MooseMesh::getSubdomainIDs ( const std::vector< SubdomainName > &  subdomain_name) const
inherited

Get the associated subdomainIDs for the subdomain names that are passed in.

Parameters
subdomain_nameThe names of the subdomains
Returns
The subdomain ids from the passed subdomain names.

Definition at line 1520 of file MooseMesh.C.

Referenced by MultiAppUserObjectTransfer::execute(), MooseMesh::getBlocksMaxDimension(), BlockRestrictable::hasBlocks(), SubdomainsDivision::initialize(), BlockRestrictable::initializeBlockRestrictable(), MultiAppDofCopyTransfer::initialSetup(), MultiAppGeometricInterpolationTransfer::interpolateTargetPoints(), and LayeredBase::LayeredBase().

1521 {
1522  return MooseMeshUtils::getSubdomainIDs(getMesh(), subdomain_name);
1523 }
std::vector< subdomain_id_type > getSubdomainIDs(const libMesh::MeshBase &mesh, const std::vector< SubdomainName > &subdomain_name)
Get the associated subdomainIDs for the subdomain names that are passed in.
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ getSubdomainInterfaceBoundaryIds()

std::set< BoundaryID > MooseMesh::getSubdomainInterfaceBoundaryIds ( const SubdomainID  subdomain_id) const
inherited

Get the list of boundaries that contact the given subdomain.

Parameters
subdomain_idThe subdomain ID you want to get the boundary ids for.
Returns
All boundary IDs connected to elements in the given subdomain

Definition at line 3259 of file MooseMesh.C.

3260 {
3261  const auto & bnd_ids = getSubdomainBoundaryIds(subdomain_id);
3262  std::set<BoundaryID> boundary_ids(bnd_ids.begin(), bnd_ids.end());
3263  std::unordered_map<SubdomainID, std::set<BoundaryID>>::const_iterator it =
3264  _neighbor_subdomain_boundary_ids.find(subdomain_id);
3265 
3266  boundary_ids.insert(it->second.begin(), it->second.end());
3267 
3268  return boundary_ids;
3269 }
const std::set< BoundaryID > & getSubdomainBoundaryIds(const SubdomainID subdomain_id) const
Get the list of boundary ids associated with the given subdomain id.
Definition: MooseMesh.C:3248
std::unordered_map< SubdomainID, std::set< BoundaryID > > _neighbor_subdomain_boundary_ids
Holds a map from neighbor subomdain ids to the boundary ids that are attached to it.
Definition: MooseMesh.h:1753

◆ getSubdomainName()

const std::string & MooseMesh::getSubdomainName ( SubdomainID  subdomain_id) const
inherited

◆ getSubdomainNames()

std::vector< SubdomainName > MooseMesh::getSubdomainNames ( const std::vector< SubdomainID > &  subdomain_ids) const
inherited

Get the associated subdomainNames for the subdomain ids that are passed in.

Parameters
subdomain_idsThe ids of the subdomains
Returns
The subdomain names from the passed subdomain ids.

Definition at line 1544 of file MooseMesh.C.

Referenced by NonlinearSystemBase::checkKernelCoverage(), and SolutionIC::initialSetup().

1545 {
1546  std::vector<SubdomainName> names(subdomain_ids.size());
1547 
1548  for (unsigned int i = 0; i < subdomain_ids.size(); i++)
1549  names[i] = getSubdomainName(subdomain_ids[i]);
1550 
1551  return names;
1552 }
const std::string & getSubdomainName(SubdomainID subdomain_id) const
Return the name of a block given an id.
Definition: MooseMesh.C:1538

◆ getUniqueCoordSystem()

Moose::CoordinateSystemType MooseMesh::getUniqueCoordSystem ( ) const
inherited

Get the coordinate system from the mesh, it must be the same in all subdomains otherwise this will error.

Definition at line 3929 of file MooseMesh.C.

3930 {
3931  const auto unique_system = _coord_sys.find(*meshSubdomains().begin())->second;
3932  // Check that it is actually unique
3933  bool result = std::all_of(
3934  std::next(_coord_sys.begin()),
3935  _coord_sys.end(),
3936  [unique_system](
3937  typename std::unordered_map<SubdomainID, Moose::CoordinateSystemType>::const_reference
3938  item) { return (item.second == unique_system); });
3939  if (!result)
3940  mooseError("The unique coordinate system of the mesh was requested by the mesh contains "
3941  "multiple blocks with different coordinate systems");
3942 
3944  mooseError("General axisymmetric coordinate axes are being used, and it is currently "
3945  "conservatively assumed that in this case there is no unique coordinate system.");
3946 
3947  return unique_system;
3948 }
bool usingGeneralAxisymmetricCoordAxes() const
Returns true if general axisymmetric coordinate axes are being used.
Definition: MooseMesh.C:4023
std::map< SubdomainID, Moose::CoordinateSystemType > _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1804
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:2922

◆ ghostGhostedBoundaries()

void MooseMesh::ghostGhostedBoundaries ( )
inherited

Actually do the ghosting of boundaries that need to be ghosted to this processor.

Definition at line 3065 of file MooseMesh.C.

Referenced by FEProblemBase::ghostGhostedBoundaries().

3066 {
3067  // No need to do this if using a serial mesh
3068  // We do not need to ghost boundary elements when _need_ghost_ghosted_boundaries
3069  // is not true. _need_ghost_ghosted_boundaries can be set by a mesh generator
3070  // where boundaries are already ghosted accordingly
3072  return;
3073 
3074  TIME_SECTION("GhostGhostedBoundaries", 3);
3075 
3076  parallel_object_only();
3077 
3078  DistributedMesh & mesh = dynamic_cast<DistributedMesh &>(getMesh());
3079 
3080  // We clear ghosted elements that were added by previous invocations of this
3081  // method but leave ghosted elements that were added by other code, e.g.
3082  // OversampleOutput, untouched
3083  mesh.clear_extra_ghost_elems(_ghost_elems_from_ghost_boundaries);
3085 
3086  std::set<const Elem *, CompareElemsByLevel> boundary_elems_to_ghost;
3087  std::set<Node *> connected_nodes_to_ghost;
3088 
3089  std::vector<const Elem *> family_tree;
3090 
3091  for (const auto & t : mesh.get_boundary_info().build_side_list())
3092  {
3093  auto elem_id = std::get<0>(t);
3094  auto bc_id = std::get<2>(t);
3095 
3096  if (_ghosted_boundaries.find(bc_id) != _ghosted_boundaries.end())
3097  {
3098  Elem * elem = mesh.elem_ptr(elem_id);
3099 
3100 #ifdef LIBMESH_ENABLE_AMR
3101  elem->family_tree(family_tree);
3102  Elem * parent = elem->parent();
3103  while (parent)
3104  {
3105  family_tree.push_back(parent);
3106  parent = parent->parent();
3107  }
3108 #else
3109  family_tree.clear();
3110  family_tree.push_back(elem);
3111 #endif
3112  for (const auto & felem : family_tree)
3113  {
3114  boundary_elems_to_ghost.insert(felem);
3115 
3116  // The entries of connected_nodes_to_ghost need to be
3117  // non-constant, so that they will work in things like
3118  // UpdateDisplacedMeshThread. The container returned by
3119  // family_tree contains const Elems even when the Elem
3120  // it is called on is non-const, so once that interface
3121  // gets fixed we can remove this const_cast.
3122  for (unsigned int n = 0; n < felem->n_nodes(); ++n)
3123  connected_nodes_to_ghost.insert(const_cast<Node *>(felem->node_ptr(n)));
3124  }
3125  }
3126  }
3127 
3128  // We really do want to store this by value instead of by reference
3129  const auto prior_ghost_elems = mesh.extra_ghost_elems();
3130 
3131  mesh.comm().allgather_packed_range(&mesh,
3132  connected_nodes_to_ghost.begin(),
3133  connected_nodes_to_ghost.end(),
3134  extra_ghost_elem_inserter<Node>(mesh));
3135 
3136  mesh.comm().allgather_packed_range(&mesh,
3137  boundary_elems_to_ghost.begin(),
3138  boundary_elems_to_ghost.end(),
3139  extra_ghost_elem_inserter<Elem>(mesh));
3140 
3141  const auto & current_ghost_elems = mesh.extra_ghost_elems();
3142 
3143  std::set_difference(current_ghost_elems.begin(),
3144  current_ghost_elems.end(),
3145  prior_ghost_elems.begin(),
3146  prior_ghost_elems.end(),
3147  std::inserter(_ghost_elems_from_ghost_boundaries,
3149 }
bool _need_ghost_ghosted_boundaries
A parallel mesh generator such as DistributedRectilinearMeshGenerator already make everything ready...
Definition: MooseMesh.h:1783
MeshBase & mesh
std::set< Elem * > _ghost_elems_from_ghost_boundaries
Set of elements ghosted by ghostGhostedBoundaries.
Definition: MooseMesh.h:1777
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1385
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
void family_tree(T elem, std::vector< T > &family, bool reset=true)
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1514

◆ hasElementID()

bool MooseMesh::hasElementID ( const std::string &  id_name) const
inlineinherited

Whether mesh has an extra element integer with a given name.

Definition at line 2086 of file MooseMesh.h.

Referenced by MooseMesh::getElementIDIndex().

2087 {
2088  return getMesh().has_elem_integer(id_name);
2089 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ hasLowerD()

bool MooseMesh::hasLowerD ( ) const
inlineinherited
Returns
Whether there are any lower-dimensional blocks that are manifolds of higher-dimensional block faces

Definition at line 1366 of file MooseMesh.h.

Referenced by GhostLowerDElems::operator()().

1366 { return _has_lower_d; }
bool _has_lower_d
Whether there are any lower-dimensional blocks that are manifolds of higher-dimensional block faces...
Definition: MooseMesh.h:1762

◆ hasMeshBase()

bool MooseMesh::hasMeshBase ( ) const
inlineinherited

Whether mesh base object was constructed or not.

Definition at line 1082 of file MooseMesh.h.

Referenced by MeshGeneratorMesh::buildMesh().

1082 { return _mesh.get() != nullptr; }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390

◆ hasSecondOrderElements()

bool MooseMesh::hasSecondOrderElements ( )
inherited

check if the mesh has SECOND order elements

Definition at line 3458 of file MooseMesh.C.

Referenced by Assembly::adCurvatures(), Assembly::Assembly(), Assembly::havePRefinement(), and MultiAppGeneralFieldNearestLocationTransfer::initialSetup().

3459 {
3460  bool mesh_has_second_order_elements = false;
3461  for (auto it = activeLocalElementsBegin(), end = activeLocalElementsEnd(); it != end; ++it)
3462  if ((*it)->default_order() == SECOND)
3463  {
3464  mesh_has_second_order_elements = true;
3465  break;
3466  }
3467 
3468  // We checked our local elements, so take the max over all processors.
3469  comm().max(mesh_has_second_order_elements);
3470  return mesh_has_second_order_elements;
3471 }
const Parallel::Communicator & comm() const
SECOND
MeshBase::element_iterator activeLocalElementsBegin()
Calls active_local_nodes_begin/end() on the underlying libMesh mesh object.
Definition: MooseMesh.C:2802
void max(const T &r, T &o, Request &req) const
const MeshBase::element_iterator activeLocalElementsEnd()
Definition: MooseMesh.C:2808

◆ init()

void MooseMesh::init ( )
virtualinherited

Initialize the Mesh object.

Most of the time this will turn around and call build_mesh so the child class can build the Mesh object.

However, during Recovery this will read the CPA file...

If the mesh base hasn't been constructed by the time init is called, just do it here. This can happen if somebody builds a mesh outside of the normal Action system. Forcing developers to create, construct the MeshBase, and then init separately is a bit much for casual use but it gives us the ability to run MeshGenerators in-between.

Definition at line 2626 of file MooseMesh.C.

2627 {
2634  if (!_mesh)
2636 
2638  mooseError("You cannot use the mesh splitter capability with DistributedMesh!");
2639 
2640  TIME_SECTION("init", 2);
2641 
2643  {
2644  // Some partitioners are not idempotent. Some recovery data
2645  // files require partitioning to match mesh partitioning. This
2646  // means that, when recovering, we can't safely repartition.
2647  const bool skip_partitioning_later = getMesh().skip_partitioning();
2648  getMesh().skip_partitioning(true);
2649  const bool allow_renumbering_later = getMesh().allow_renumbering();
2650  getMesh().allow_renumbering(false);
2651 
2652  // For now, only read the recovery mesh on the Ultimate Master..
2653  // sub-apps need to just build their mesh like normal
2654  {
2655  TIME_SECTION("readRecoveredMesh", 2);
2657  }
2658 
2659  getMesh().allow_renumbering(allow_renumbering_later);
2660  getMesh().skip_partitioning(skip_partitioning_later);
2661  }
2662  else // Normally just build the mesh
2663  {
2664  // Don't allow partitioning during building
2665  if (_app.isSplitMesh())
2666  getMesh().skip_partitioning(true);
2667  buildMesh();
2668 
2669  // Re-enable partitioning so the splitter can partition!
2670  if (_app.isSplitMesh())
2671  getMesh().skip_partitioning(false);
2672 
2673  if (getParam<bool>("build_all_side_lowerd_mesh"))
2674  buildLowerDMesh();
2675  }
2676 }
static const std::string & checkpointSuffix()
The file suffix for the checkpoint mesh.
Definition: MooseApp.C:2390
bool isUltimateMaster() const
Whether or not this app is the ultimate master app.
Definition: MooseApp.h:805
void buildLowerDMesh()
Build lower-d mesh for all sides.
Definition: MooseMesh.C:506
virtual void buildMesh()=0
Must be overridden by child classes.
bool isSplitMesh() const
Whether or not this is a split mesh operation.
Definition: MooseApp.C:1173
bool _allow_recovery
Whether or not this Mesh is allowed to read a recovery file.
Definition: MooseMesh.h:1765
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1385
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
std::unique_ptr< MeshBase > buildMeshBaseObject(unsigned int dim=libMesh::invalid_uint)
Method to construct a libMesh::MeshBase object that is normally set and used by the MooseMesh object ...
Definition: MooseMesh.C:2604
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition: MooseApp.C:1161
std::string getRestartRecoverFileBase() const
The file_base for the recovery file.
Definition: MooseApp.h:486

◆ isBoundaryElem() [1/2]

bool MooseMesh::isBoundaryElem ( dof_id_type  elem_id) const
inherited

Returns true if the requested element is in the list of boundary elements, false otherwise.

Definition at line 3342 of file MooseMesh.C.

Referenced by BoundaryMarker::computeElementMarker().

3343 {
3344  bool found_elem = false;
3345  for (const auto & it : _bnd_elem_ids)
3346  {
3347  if (it.second.find(elem_id) != it.second.end())
3348  {
3349  found_elem = true;
3350  break;
3351  }
3352  }
3353  return found_elem;
3354 }
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
Map of set of elem IDs connected to each boundary.
Definition: MooseMesh.h:1501

◆ isBoundaryElem() [2/2]

bool MooseMesh::isBoundaryElem ( dof_id_type  elem_id,
BoundaryID  bnd_id 
) const
inherited

Returns true if the requested element is in the list of boundary elements for the specified boundary, false otherwise.

Definition at line 3357 of file MooseMesh.C.

3358 {
3359  bool found_elem = false;
3360  auto it = _bnd_elem_ids.find(bnd_id);
3361  if (it != _bnd_elem_ids.end())
3362  if (it->second.find(elem_id) != it->second.end())
3363  found_elem = true;
3364  return found_elem;
3365 }
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
Map of set of elem IDs connected to each boundary.
Definition: MooseMesh.h:1501

◆ isBoundaryFullyExternalToSubdomains()

bool MooseMesh::isBoundaryFullyExternalToSubdomains ( BoundaryID  bid,
const std::set< SubdomainID > &  blk_group 
) const
inherited

Returns whether a boundary (given by its id) is not crossing through a group of blocks, by which we mean that elements on both sides of the boundary are in those blocks.

Parameters
bidthe id of the boundary of interest
blk_groupthe group of blocks potentially traversed
Returns
whether the boundary does not cross between the subdomains in the group

Definition at line 1176 of file MooseMesh.C.

1178 {
1179  mooseAssert(_bnd_elem_range, "Boundary element range is not initialized");
1180 
1181  // Loop over all side elements of the mesh, select those on the boundary
1182  for (const auto & bnd_elem : *_bnd_elem_range)
1183  {
1184  const auto & [elem_ptr, elem_side, elem_bid] = *bnd_elem;
1185  if (elem_bid == bid)
1186  {
1187  // If an element is internal to the group of subdomain, check the neighbor
1188  if (blk_group.find(elem_ptr->subdomain_id()) != blk_group.end())
1189  {
1190  const auto * const neighbor = elem_ptr->neighbor_ptr(elem_side);
1191 
1192  // If we did not ghost the neighbor, we cannot decide
1193  if (neighbor == libMesh::remote_elem)
1194  mooseError("Insufficient level of geometrical ghosting to determine "
1195  "if a boundary is internal to the mesh");
1196  // If the neighbor does not exist, then we are on the edge of the mesh
1197  if (!neighbor)
1198  continue;
1199  // If the neighbor is also in the group of subdomain,
1200  // then the boundary cuts the subdomains
1201  if (blk_group.find(neighbor->subdomain_id()) != blk_group.end())
1202  return false;
1203  }
1204  }
1205  }
1206  return true;
1207 }
std::unique_ptr< StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:1458
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const RemoteElem * remote_elem

◆ isBoundaryNode() [1/2]

bool MooseMesh::isBoundaryNode ( dof_id_type  node_id) const
inherited

Returns true if the requested node is in the list of boundary nodes, false otherwise.

Definition at line 3316 of file MooseMesh.C.

Referenced by LowerBoundNodalKernel::computeQpJacobian(), UpperBoundNodalKernel::computeQpJacobian(), UpperBoundNodalKernel::computeQpOffDiagJacobian(), LowerBoundNodalKernel::computeQpOffDiagJacobian(), UpperBoundNodalKernel::computeQpResidual(), LowerBoundNodalKernel::computeQpResidual(), and NodalNormalsPreprocessor::execute().

3317 {
3318  bool found_node = false;
3319  for (const auto & it : _bnd_node_ids)
3320  {
3321  if (it.second.find(node_id) != it.second.end())
3322  {
3323  found_node = true;
3324  break;
3325  }
3326  }
3327  return found_node;
3328 }
std::map< boundary_id_type, std::set< dof_id_type > > _bnd_node_ids
Map of sets of node IDs in each boundary.
Definition: MooseMesh.h:1493

◆ isBoundaryNode() [2/2]

bool MooseMesh::isBoundaryNode ( dof_id_type  node_id,
BoundaryID  bnd_id 
) const
inherited

Returns true if the requested node is in the list of boundary nodes for the specified boundary, false otherwise.

Definition at line 3331 of file MooseMesh.C.

3332 {
3333  bool found_node = false;
3334  std::map<boundary_id_type, std::set<dof_id_type>>::const_iterator it = _bnd_node_ids.find(bnd_id);
3335  if (it != _bnd_node_ids.end())
3336  if (it->second.find(node_id) != it->second.end())
3337  found_node = true;
3338  return found_node;
3339 }
std::map< boundary_id_type, std::set< dof_id_type > > _bnd_node_ids
Map of sets of node IDs in each boundary.
Definition: MooseMesh.h:1493

◆ isCustomPartitionerRequested()

bool MooseMesh::isCustomPartitionerRequested ( ) const
inherited

Setter and getter for _custom_partitioner_requested.

Definition at line 3452 of file MooseMesh.C.

3453 {
3455 }
bool _custom_partitioner_requested
Definition: MooseMesh.h:1398

◆ isDisplaced() [1/2]

void MooseMesh::isDisplaced ( bool  is_displaced)
inlineinherited

Set whether this mesh is displaced.

Definition at line 1186 of file MooseMesh.h.

1186 { _is_displaced = is_displaced; }
bool _is_displaced
Whether this mesh is displaced.
Definition: MooseMesh.h:1795

◆ isDisplaced() [2/2]

bool MooseMesh::isDisplaced ( ) const
inlineinherited

whether this mesh is displaced

Definition at line 1191 of file MooseMesh.h.

1191 { return _is_displaced; }
bool _is_displaced
Whether this mesh is displaced.
Definition: MooseMesh.h:1795

◆ isDistributedMesh()

bool MooseMesh::isDistributedMesh ( ) const
inlineinherited

◆ isFiniteVolumeInfoDirty()

bool MooseMesh::isFiniteVolumeInfoDirty ( ) const
inlineinherited
Returns
whether the finite volume information is dirty

Definition at line 1282 of file MooseMesh.h.

Referenced by FEProblemBase::meshChangedHelper().

1282 { return _finite_volume_info_dirty; }
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1571

◆ isLowerD()

bool MooseMesh::isLowerD ( const SubdomainID  subdomain_id) const
inlineinherited
Returns
Whether the subdomain indicated by subdomain_id is a lower-dimensional manifold of some higher-dimensional subdomain, or in implementation speak, whether the elements of this subdomain have non-null interior parents

Definition at line 2132 of file MooseMesh.h.

Referenced by MooseVariableBase::MooseVariableBase().

2133 {
2134  return libmesh_map_find(_sub_to_data, subdomain_id).is_lower_d;
2135 }
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1750

◆ isParallelTypeForced()

bool MooseMesh::isParallelTypeForced ( ) const
inlineinherited

Tell the user if the distribution was overriden for any reason.

Definition at line 989 of file MooseMesh.h.

Referenced by ConsoleUtils::outputMeshInformation().

989 { return _parallel_type_overridden; }
bool _parallel_type_overridden
Definition: MooseMesh.h:1387

◆ isParamSetByUser()

bool MooseBaseParameterInterface::isParamSetByUser ( const std::string &  nm) const
inlineinherited

◆ isParamValid()

bool MooseBaseParameterInterface::isParamValid ( const std::string &  name) const
inlineinherited

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 111 of file MooseBaseParameterInterface.h.

Referenced by CopyNodalVarsAction::act(), SetupMeshAction::act(), ComposeTimeStepperAction::act(), SetupDebugAction::act(), CreateDisplacedProblemAction::act(), SetAdaptivityOptionsAction::act(), CommonOutputAction::act(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), DiffusionCG::addFEBCs(), DiffusionCG::addFEKernels(), DiffusionFV::addFVBCs(), DiffusionFV::addFVKernels(), DiffusionCG::addNonlinearVariables(), AdvectiveFluxAux::AdvectiveFluxAux(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), AddPeriodicBCAction::autoTranslationBoundaries(), BicubicSplineFunction::BicubicSplineFunction(), BlockDeletionGenerator::BlockDeletionGenerator(), PiecewiseTabularBase::buildFromFile(), PiecewiseTabularBase::buildFromJSON(), GeneratedMesh::buildMesh(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), PhysicsBase::checkParamsBothSetOrNotSet(), PhysicsBase::checkVectorParamsSameLength(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), CombinerGenerator::CombinerGenerator(), CSVReaderVectorPostprocessor::CSVReaderVectorPostprocessor(), CutMeshByPlaneGenerator::CutMeshByPlaneGenerator(), ConstantReporter::declareConstantReporterValues(), DGKernelBase::DGKernelBase(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), Eigenvalue::Eigenvalue(), ElementExtremeFunctorValueTempl< is_ad >::ElementExtremeFunctorValueTempl(), ElementExtremeValue::ElementExtremeValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), PIDTransientControl::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppUserObjectTransfer::execute(), Exodus::Exodus(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), FEProblemBase::FEProblemBase(), FEProblemSolve::FEProblemSolve(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FileOutput::FileOutput(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FunctionDT::FunctionDT(), FunctionValuePostprocessor::FunctionValuePostprocessor(), FVInterfaceKernel::FVInterfaceKernel(), FVMassMatrix::FVMassMatrix(), ExtraNodesetGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), SubdomainPerElementGenerator::generate(), AddMetaDataGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), FileMeshGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), BlockDeletionGenerator::generate(), MeshExtruderGenerator::generate(), XYDelaunayGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), DistributedRectilinearMeshGenerator::generate(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), MooseBaseParameterInterface::getRenamedParam(), MultiAppNearestNodeTransfer::getTargetLocalNodes(), Terminator::handleMessage(), HFEMDirichletBC::HFEMDirichletBC(), EigenExecutionerBase::init(), IterationAdaptiveDT::init(), Eigenvalue::init(), AdvancedOutput::initExecutionTypes(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), MultiAppCloneReporterTransfer::initialSetup(), MultiAppVariableValueSampleTransfer::initialSetup(), PiecewiseTabularBase::initialSetup(), SolutionScalarAux::initialSetup(), SolutionAux::initialSetup(), Console::initialSetup(), MooseParsedVectorFunction::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), MooseParsedGradFunction::initialSetup(), MooseParsedFunction::initialSetup(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), MassMatrix::MassMatrix(), MatCoupledForce::MatCoupledForce(), MatDiffusionBase< Real >::MatDiffusionBase(), MooseMesh::MooseMesh(), MoosePreconditioner::MoosePreconditioner(), MooseVariableBase::MooseVariableBase(), MooseVariableFV< Real >::MooseVariableFV(), MortarConstraintBase::MortarConstraintBase(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldNearestLocationTransfer::MultiAppGeneralFieldNearestLocationTransfer(), MultiAppGeneralFieldShapeEvaluationTransfer::MultiAppGeneralFieldShapeEvaluationTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppReporterTransfer::MultiAppReporterTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), NodalExtremeValue::NodalExtremeValue(), EigenExecutionerBase::normalizeSolution(), Output::Output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), ParsedCurveGenerator::ParsedCurveGenerator(), PetscOutput::PetscOutput(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), PicardSolve::PicardSolve(), PIDTransientControl::PIDTransientControl(), PiecewiseTabularBase::PiecewiseTabularBase(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), MooseMesh::prepare(), MultiApp::readCommandLineArguments(), SolutionUserObject::readExodusII(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), ReporterPointSource::ReporterPointSource(), MooseMesh::setCoordSystem(), FileOutput::setFileBase(), FileOutput::setFileBaseInternal(), Split::setup(), SideSetsGeneratorBase::setup(), SetupMeshAction::setupMesh(), SideDiffusiveFluxIntegralTempl< is_ad, Real >::SideDiffusiveFluxIntegralTempl(), SideExtremeValue::SideExtremeValue(), SideSetsGeneratorBase::SideSetsGeneratorBase(), SolutionUserObject::SolutionUserObject(), Terminator::Terminator(), TimeIntervalTimes::TimeIntervalTimes(), TimePeriod::TimePeriod(), MultiAppDofCopyTransfer::transfer(), TransformGenerator::TransformGenerator(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), and VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl().

111 { return _pars.isParamValid(name); }
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another, i.e.

◆ isPartitionerForced()

bool MooseMesh::isPartitionerForced ( ) const
inlineinherited

Tell the user if the partitioner was overriden for any reason.

Definition at line 1004 of file MooseMesh.h.

Referenced by ConsoleUtils::outputMeshInformation().

1004 { return _partitioner_overridden; }
bool _partitioner_overridden
Definition: MooseMesh.h:1394

◆ isRegularOrthogonal()

bool MooseMesh::isRegularOrthogonal ( )
inlineinherited

Getter to query if the mesh was detected to be regular and orthogonal.

Definition at line 1034 of file MooseMesh.h.

1034 { return _regular_orthogonal_mesh; }
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1533

◆ isSemiLocal()

bool MooseMesh::isSemiLocal ( Node *const  node) const
inherited

Returns true if the node is semi-local.

Parameters
nodeNode pointer
Returns
true is the node is semi-local, false otherwise

Definition at line 795 of file MooseMesh.C.

796 {
797  return _semilocal_node_list.find(node) != _semilocal_node_list.end();
798 }
std::set< Node * > _semilocal_node_list
Used for generating the semilocal node range.
Definition: MooseMesh.h:1445
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:623

◆ isSplit()

bool MooseMesh::isSplit ( ) const
inlineinherited
Returns
Whether or not this mesh comes from a split mesh

Definition at line 1305 of file MooseMesh.h.

Referenced by ConsoleUtils::outputMeshInformation().

1305 { return _is_split; }
const bool _is_split
Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)
Definition: MooseMesh.h:1542

◆ isTranslatedPeriodic()

bool MooseMesh::isTranslatedPeriodic ( unsigned int  nonlinear_var_num,
unsigned int  component 
) const
inherited

Returns whether this generated mesh is periodic in the given dimension for the given variable.

Parameters
nonlinear_var_num- The nonlinear variable number
component- An integer representing the desired component (dimension)

Definition at line 1995 of file MooseMesh.C.

Referenced by MooseMesh::minPeriodicVector().

1996 {
1997  mooseAssert(component < dimension(), "Requested dimension out of bounds");
1998 
1999  if (_periodic_dim.find(nonlinear_var_num) != _periodic_dim.end())
2000  return _periodic_dim.at(nonlinear_var_num)[component];
2001  else
2002  return false;
2003 }
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2679
std::map< unsigned int, std::vector< bool > > _periodic_dim
A map of vectors indicating which dimensions are periodic in a regular orthogonal mesh for the specif...
Definition: MooseMesh.h:1582

◆ lengthUnit()

const MooseUnits & MooseMesh::lengthUnit ( ) const
inherited
Returns
the length unit of this mesh provided through the coordinate transformation object

Definition at line 4074 of file MooseMesh.C.

4075 {
4076  mooseAssert(_coord_transform, "This must be non-null");
4077  return _coord_transform->lengthUnit();
4078 }
std::unique_ptr< MooseAppCoordTransform > _coord_transform
A coordinate transformation object that describes how to transform this problem&#39;s coordinate system i...
Definition: MooseMesh.h:1814

◆ localNodesBegin() [1/2]

MeshBase::node_iterator MooseMesh::localNodesBegin ( )
inherited

Calls local_nodes_begin/end() on the underlying libMesh mesh object.

Definition at line 2778 of file MooseMesh.C.

Referenced by OversampleOutput::updateOversample().

2779 {
2780  return getMesh().local_nodes_begin();
2781 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ localNodesBegin() [2/2]

MeshBase::const_node_iterator MooseMesh::localNodesBegin ( ) const
inherited

Definition at line 2790 of file MooseMesh.C.

2791 {
2792  return getMesh().local_nodes_begin();
2793 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ localNodesEnd() [1/2]

MeshBase::node_iterator MooseMesh::localNodesEnd ( )
inherited

Definition at line 2784 of file MooseMesh.C.

Referenced by OversampleOutput::updateOversample().

2785 {
2786  return getMesh().local_nodes_end();
2787 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ localNodesEnd() [2/2]

MeshBase::const_node_iterator MooseMesh::localNodesEnd ( ) const
inherited

Definition at line 2796 of file MooseMesh.C.

2797 {
2798  return getMesh().local_nodes_end();
2799 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ markFiniteVolumeInfoDirty()

void MooseMesh::markFiniteVolumeInfoDirty ( )
inlineinherited

Mark the finite volume information as dirty.

Definition at line 1277 of file MooseMesh.h.

1277 { _finite_volume_info_dirty = true; }
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1571

◆ maxElementID()

dof_id_type MooseMesh::maxElementID ( unsigned int  elem_id_index) const
inlineinherited

Return the maximum element ID for an extra element integer with its accessing index.

Definition at line 1097 of file MooseMesh.h.

1097 { return _max_ids[elem_id_index]; }
std::vector< dof_id_type > _max_ids
Maximum integer ID for each extra element integer.
Definition: MooseMesh.h:1788

◆ maxElemId()

dof_id_type MooseMesh::maxElemId ( ) const
virtualinherited

Definition at line 2844 of file MooseMesh.C.

Referenced by SolutionUserObject::pointValueGradientWrapper(), and SolutionUserObject::pointValueWrapper().

2845 {
2846  return getMesh().max_elem_id();
2847 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ maxNodeId()

dof_id_type MooseMesh::maxNodeId ( ) const
virtualinherited

Calls max_node/elem_id() on the underlying libMesh mesh object.

This may be larger than n_nodes/elem() in cases where the id numbering is not contiguous.

Definition at line 2838 of file MooseMesh.C.

2839 {
2840  return getMesh().max_node_id();
2841 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ meshBoundaryIds()

const std::set< BoundaryID > & MooseMesh::meshBoundaryIds ( ) const
inherited

Returns a read-only reference to the set of boundary IDs currently present in the Mesh.

Definition at line 2928 of file MooseMesh.C.

Referenced by BoundaryRestrictable::isBoundarySubset().

2929 {
2930  return _mesh_boundary_ids;
2931 }
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1480

◆ meshChanged()

void MooseMesh::meshChanged ( )
inherited

Declares that the MooseMesh has changed, invalidates cached data and rebuilds caches.

Sets a flag so that clients of the MooseMesh also know when it has changed.

Definition at line 685 of file MooseMesh.C.

Referenced by DisplacedProblem::init(), FEProblemBase::init(), DisplacedProblem::meshChanged(), and FEProblemBase::meshChangedHelper().

686 {
687  TIME_SECTION("meshChanged", 3, "Updating Because Mesh Changed");
688 
689  update();
690 
691  // Delete all of the cached ranges
692  _active_local_elem_range.reset();
693  _active_node_range.reset();
695  _local_node_range.reset();
696  _bnd_node_range.reset();
697  _bnd_elem_range.reset();
698 
699  // Rebuild the ranges
705 
706  // Call the callback function onMeshChanged
707  onMeshChanged();
708 }
ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:1041
virtual void onMeshChanged()
Declares a callback function that is executed at the conclusion of meshChanged(). ...
Definition: MooseMesh.C:711
ConstNodeRange * getLocalNodeRange()
Definition: MooseMesh.C:1078
std::unique_ptr< NodeRange > _active_node_range
Definition: MooseMesh.h:1454
std::unique_ptr< StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:1458
void update()
Calls buildNodeListFromSideList(), buildNodeList(), and buildBndElemList().
Definition: MooseMesh.C:484
std::unique_ptr< StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1456
NodeRange * getActiveNodeRange()
Definition: MooseMesh.C:1055
std::unique_ptr< ConstElemRange > _active_local_elem_range
A range for use with threading.
Definition: MooseMesh.h:1451
StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > * getBoundaryElementRange()
Definition: MooseMesh.C:1106
StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > * getBoundaryNodeRange()
Definition: MooseMesh.C:1092
std::unique_ptr< SemiLocalNodeRange > _active_semilocal_node_range
Definition: MooseMesh.h:1453
std::unique_ptr< ConstNodeRange > _local_node_range
Definition: MooseMesh.h:1455

◆ meshNodesetIds()

const std::set< BoundaryID > & MooseMesh::meshNodesetIds ( ) const
inherited

Returns a read-only reference to the set of nodesets currently present in the Mesh.

Definition at line 2940 of file MooseMesh.C.

Referenced by GeometricSearchData::GeometricSearchData(), and BoundaryRestrictable::initializeBoundaryRestrictable().

2941 {
2942  return _mesh_nodeset_ids;
2943 }
std::set< BoundaryID > _mesh_nodeset_ids
Definition: MooseMesh.h:1482

◆ meshSidesetIds()

const std::set< BoundaryID > & MooseMesh::meshSidesetIds ( ) const
inherited

Returns a read-only reference to the set of sidesets currently present in the Mesh.

Definition at line 2934 of file MooseMesh.C.

Referenced by DGKernelBase::DGKernelBase(), and BoundaryRestrictable::initializeBoundaryRestrictable().

2935 {
2936  return _mesh_sideset_ids;
2937 }
std::set< BoundaryID > _mesh_sideset_ids
Definition: MooseMesh.h:1481

◆ meshSubdomains()

const std::set< SubdomainID > & MooseMesh::meshSubdomains ( ) const
inherited

◆ minElementID()

dof_id_type MooseMesh::minElementID ( unsigned int  elem_id_index) const
inlineinherited

Return the minimum element ID for an extra element integer with its accessing index.

Definition at line 1102 of file MooseMesh.h.

1102 { return _min_ids[elem_id_index]; }
std::vector< dof_id_type > _min_ids
Minimum integer ID for each extra element integer.
Definition: MooseMesh.h:1790

◆ minPeriodicDistance()

Real MooseMesh::minPeriodicDistance ( unsigned int  nonlinear_var_num,
Point  p,
Point  q 
) const
inherited

This function returns the distance between two points on the mesh taking into account periodicity for the given variable number.

Parameters
nonlinear_var_num- The nonlinear variable number
p,q- The points for which to compute a minimum distance
Returns
Real - The L2 distance between p and q

Definition at line 2031 of file MooseMesh.C.

2032 {
2033  return minPeriodicVector(nonlinear_var_num, p, q).norm();
2034 }
auto norm() const -> decltype(std::norm(Real()))
RealVectorValue minPeriodicVector(unsigned int nonlinear_var_num, Point p, Point q) const
This function returns the minimum vector between two points on the mesh taking into account periodici...
Definition: MooseMesh.C:2006

◆ minPeriodicVector()

RealVectorValue MooseMesh::minPeriodicVector ( unsigned int  nonlinear_var_num,
Point  p,
Point  q 
) const
inherited

This function returns the minimum vector between two points on the mesh taking into account periodicity for the given variable number.

Parameters
nonlinear_var_num- The nonlinear variable number
p,q- The points between which to compute a minimum vector
Returns
RealVectorValue - The vector pointing from p to q

Definition at line 2006 of file MooseMesh.C.

Referenced by MooseMesh::minPeriodicDistance().

2007 {
2008  for (unsigned int i = 0; i < dimension(); ++i)
2009  {
2010  // check to see if we're closer in real or periodic space in x, y, and z
2011  if (isTranslatedPeriodic(nonlinear_var_num, i))
2012  {
2013  // Need to test order before differencing
2014  if (p(i) > q(i))
2015  {
2016  if (p(i) - q(i) > _half_range(i))
2017  p(i) -= _half_range(i) * 2;
2018  }
2019  else
2020  {
2021  if (q(i) - p(i) > _half_range(i))
2022  p(i) += _half_range(i) * 2;
2023  }
2024  }
2025  }
2026 
2027  return q - p;
2028 }
RealVectorValue _half_range
A convenience vector used to hold values in each dimension representing half of the range...
Definition: MooseMesh.h:1587
bool isTranslatedPeriodic(unsigned int nonlinear_var_num, unsigned int component) const
Returns whether this generated mesh is periodic in the given dimension for the given variable...
Definition: MooseMesh.C:1995
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2679

◆ mooseDeprecated()

template<typename... Args>
void MooseBaseErrorInterface::mooseDeprecated ( Args &&...  args) const
inlineinherited

Definition at line 91 of file MooseBaseErrorInterface.h.

Referenced by FEProblemBase::addAuxArrayVariable(), FEProblemBase::addAuxScalarVariable(), FEProblemBase::addAuxVariable(), FEProblemBase::advanceMultiApps(), MultiApp::appProblem(), Executioner::augmentedPicardConvergenceCheck(), MooseMesh::buildSideList(), ChangeOverTimestepPostprocessor::ChangeOverTimestepPostprocessor(), FEProblemBase::computeResidual(), AddVariableAction::determineType(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), MooseMesh::elem(), UserForcingFunction::f(), FaceFaceConstraint::FaceFaceConstraint(), FunctionDT::FunctionDT(), RandomICBase::generateRandom(), MooseMesh::getBoundariesToElems(), Control::getExecuteOptions(), FEProblemBase::getNonlinearSystem(), FEProblemBase::getUserObjects(), FEProblemBase::hasPostprocessor(), MatDiffusionBase< Real >::MatDiffusionBase(), MultiAppNearestNodeTransfer::MultiAppNearestNodeTransfer(), MultiAppShapeEvaluationTransfer::MultiAppShapeEvaluationTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), NodalScalarKernel::NodalScalarKernel(), MooseMesh::node(), FixedPointSolve::numPicardIts(), RelationshipManager::operator>=(), PercentChangePostprocessor::PercentChangePostprocessor(), Executioner::picardSolve(), ReferenceResidualProblem::ReferenceResidualProblem(), MooseMesh::setBoundaryToNormalMap(), Exodus::setOutputDimension(), and UserForcingFunction::UserForcingFunction().

92  {
93  moose::internal::mooseDeprecatedStream(_console, false, true, std::forward<Args>(args)...);
94  }
void mooseDeprecatedStream(S &oss, const bool expired, const bool print_title, Args &&... args)
Definition: MooseError.h:236
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ mooseDocumentedError()

template<typename... Args>
void MooseBaseErrorInterface::mooseDocumentedError ( const std::string &  repo_name,
const unsigned int  issue_num,
Args &&...  args 
) const
inlineinherited

Emits a documented error with object name and type.

Documented errors are errors that have an issue associated with them.

The repository name repo_name links a named repository to a URL and should be registered at the application level with registerRepository(). See Moose.C for an example of the "moose" repository registration.

Parameters
repo_nameThe repository name where the issue resides
issue_numThe number of the issue
argsThe error message to be combined

Definition at line 61 of file MooseBaseErrorInterface.h.

64  {
65  std::ostringstream oss;
66  moose::internal::mooseStreamAll(oss, std::forward<Args>(args)...);
67  const auto msg = moose::internal::formatMooseDocumentedError(repo_name, issue_num, oss.str());
68  _moose_base.callMooseError(msg, /* with_prefix = */ true);
69  }
void mooseStreamAll(std::ostringstream &ss)
All of the following are not meant to be called directly - they are called by the normal macros (moos...
Definition: MooseError.C:92
const MooseBase & _moose_base
The MooseBase class deriving from this interface.
void callMooseError(std::string msg, const bool with_prefix) const
Calls moose error with the message msg.
Definition: MooseBase.C:33
std::string formatMooseDocumentedError(const std::string &repo_name, const unsigned int issue_num, const std::string &msg)
Formats a documented error.
Definition: MooseError.C:97

◆ mooseError()

template<typename... Args>
void MooseBaseErrorInterface::mooseError ( Args &&...  args) const
inlineinherited

Emits an error prefixed with object name and type.

Definition at line 29 of file MooseBaseErrorInterface.h.

Referenced by HierarchicalGridPartitioner::_do_partition(), PetscExternalPartitioner::_do_partition(), MultiAppGeneralFieldTransfer::acceptPointInOriginMesh(), InitProblemAction::act(), CreateExecutionerAction::act(), CheckFVBCAction::act(), AddICAction::act(), AddFVICAction::act(), AutoCheckpointAction::act(), AddVectorPostprocessorAction::act(), AddBoundsVectorsAction::act(), SetupMeshCompleteAction::act(), AddMeshGeneratorAction::act(), CheckIntegrityAction::act(), CreateProblemDefaultAction::act(), CreateProblemAction::act(), SetupMeshAction::act(), SplitMeshAction::act(), AdaptivityAction::act(), DeprecatedBlockAction::act(), SetupTimeStepperAction::act(), SetupPredictorAction::act(), AddTimeStepperAction::act(), MaterialDerivativeTestAction::act(), SetAdaptivityOptionsAction::act(), CreateDisplacedProblemAction::act(), AddPeriodicBCAction::act(), MaterialOutputAction::act(), CommonOutputAction::act(), Action::Action(), FEProblemBase::adaptMesh(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), FEProblemBase::addBoundaryCondition(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), FEProblemBase::addDGKernel(), FEProblemBase::addDiracKernel(), DistributedRectilinearMeshGenerator::addElement(), FEProblemBase::addFunction(), SubProblem::addFunctor(), FEProblemBase::addFVInitialCondition(), ADDGKernel::ADDGKernel(), FEProblemBase::addInitialCondition(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addKernel(), FEProblem::addLineSearch(), FEProblemBase::addLineSearch(), MeshGenerator::addMeshSubgenerator(), FEProblemBase::addOutput(), SubProblem::addPiecewiseByBlockLambdaFunctor(), DiracKernelBase::addPoint(), DistributedRectilinearMeshGenerator::addPoint(), DiracKernelBase::addPointWithValidId(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), MooseMesh::addQuadratureNode(), Action::addRelationshipManager(), FEProblemBase::addReporter(), FEProblemBase::addScalarKernel(), AddVariableAction::addVariable(), FEProblemBase::addVectorPostprocessor(), SubProblem::addVectorTag(), MooseLinearVariableFV< Real >::adError(), ADInterfaceKernelTempl< T >::ADInterfaceKernelTempl(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), MooseVariableScalar::adUDot(), Output::advancedExecuteOn(), AdvectiveFluxAux::AdvectiveFluxAux(), MooseVariableBase::allDofIndices(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), ArrayConstantIC::ArrayConstantIC(), ArrayDGKernel::ArrayDGKernel(), ArrayDiffusion::ArrayDiffusion(), ArrayFunctionIC::ArrayFunctionIC(), ArrayParsedAux::ArrayParsedAux(), ArrayReaction::ArrayReaction(), ArrayTimeDerivative::ArrayTimeDerivative(), AddPeriodicBCAction::autoTranslationBoundaries(), AuxKernelTempl< Real >::AuxKernelTempl(), Function::average(), Axisymmetric2D3DSolutionFunction::Axisymmetric2D3DSolutionFunction(), BicubicSplineFunction::BicubicSplineFunction(), BlockDeletionGenerator::BlockDeletionGenerator(), BoundingValueElementDamper::BoundingValueElementDamper(), BoundingValueNodalDamper::BoundingValueNodalDamper(), BreakMeshByBlockGeneratorBase::BreakMeshByBlockGeneratorBase(), MooseMesh::buildCoarseningMap(), MultiApp::buildComm(), DistributedRectilinearMeshGenerator::buildCube(), PiecewiseTabularBase::buildFromFile(), PiecewiseTabularBase::buildFromJSON(), PiecewiseTabularBase::buildFromXY(), PiecewiseLinearBase::buildInterpolation(), MooseMesh::buildLowerDMesh(), TiledMesh::buildMesh(), GeneratedMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), MeshGeneratorMesh::buildMesh(), ImageMeshGenerator::buildMesh3D(), ImageMesh::buildMesh3D(), MooseMesh::buildRefinementMap(), MaterialBase::buildRequiredMaterials(), MooseMesh::buildSideList(), MooseMesh::buildTypedMesh(), MooseMesh::cacheFaceInfoVariableOwnership(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), UserObjectInterface::castUserObject(), ChangeOverFixedPointPostprocessor::ChangeOverFixedPointPostprocessor(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), EigenExecutionerBase::chebyshev(), SubProblem::checkBlockMatProps(), SubProblem::checkBoundaryMatProps(), MooseMesh::checkCoordinateSystems(), FEProblemBase::checkDependMaterialsHelper(), FEProblemBase::checkDisplacementOrders(), FEProblemBase::checkDuplicatePostprocessorVariableNames(), MooseMesh::checkDuplicateSubdomainNames(), FEProblemBase::checkExceptionAndStopSolve(), MaterialBase::checkExecutionStage(), MeshGenerator::checkGetMesh(), ReporterTransferInterface::checkHasReporterValue(), FEProblemBase::checkICRestartError(), Steady::checkIntegrity(), EigenExecutionerBase::checkIntegrity(), Eigenvalue::checkIntegrity(), ExplicitTimeIntegrator::checkLinearConvergence(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), PostprocessorInterface::checkParam(), FEProblemBase::checkProblemIntegrity(), Sampler::checkReinitStatus(), MultiAppPostprocessorToAuxScalarTransfer::checkSiblingsTransferSupported(), MultiAppScalarToAuxScalarTransfer::checkSiblingsTransferSupported(), MultiAppPostprocessorTransfer::checkSiblingsTransferSupported(), MultiAppReporterTransfer::checkSiblingsTransferSupported(), MultiAppCopyTransfer::checkSiblingsTransferSupported(), MultiAppTransfer::checkSiblingsTransferSupported(), MaterialBase::checkStatefulSanity(), FEProblemBase::checkUserObjects(), DomainUserObject::checkVariable(), MultiAppTransfer::checkVariable(), PhysicsBase::checkVectorParamsNoOverlap(), LibmeshPartitioner::clone(), MooseMesh::clone(), CombinerGenerator::CombinerGenerator(), ComparisonPostprocessor::comparisonIsTrue(), ElementSubdomainModifier::complementMovingBoundaryID(), ElementSubdomainModifier::complementMovingBoundaryName(), MooseVariableFieldBase::componentName(), CompositeFunction::CompositeFunction(), ElementH1ErrorFunctionAux::compute(), NodalPatchRecovery::compute(), FEProblemBase::computeBounds(), VariableCondensationPreconditioner::computeDInverseDiag(), CompositionDT::computeDT(), ArrayDGKernel::computeElemNeighJacobian(), ArrayDGKernel::computeElemNeighResidual(), InternalSideIntegralPostprocessor::computeFaceInfoIntegral(), SideIntegralPostprocessor::computeFaceInfoIntegral(), MooseVariableFieldBase::computeFaceValues(), TimeSequenceStepperBase::computeFailedDT(), IterationAdaptiveDT::computeFailedDT(), TimeStepper::computeFailedDT(), MooseMesh::computeFiniteVolumeCoords(), HistogramVectorPostprocessor::computeHistogram(), ArrayKernel::computeJacobian(), ArrayIntegratedBC::computeJacobian(), FVFluxKernel::computeJacobian(), NodalConstraint::computeJacobian(), FEProblemBase::computeJacobianTags(), LowerDIntegratedBC::computeLowerDOffDiagJacobian(), ArrayLowerDIntegratedBC::computeLowerDOffDiagJacobian(), EigenProblem::computeMatricesTags(), ArrayDGKernel::computeOffDiagElemNeighJacobian(), ArrayKernel::computeOffDiagJacobian(), ArrayIntegratedBC::computeOffDiagJacobian(), FVElementalKernel::computeOffDiagJacobian(), MortarScalarBase::computeOffDiagJacobianScalar(), DGLowerDKernel::computeOffDiagLowerDJacobian(), ArrayDGLowerDKernel::computeOffDiagLowerDJacobian(), MaterialBase::computeProperties(), ScalarKernel::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), NodalEqualValueConstraint::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), ScalarKernel::computeQpResidual(), NodalEqualValueConstraint::computeQpResidual(), KernelValue::computeQpResidual(), InterfaceQpValueUserObject::computeRealValue(), ArrayKernel::computeResidual(), ArrayIntegratedBC::computeResidual(), FVFluxBC::computeResidual(), FVFluxKernel::computeResidual(), NodalConstraint::computeResidual(), FVFluxKernel::computeResidualAndJacobian(), ResidualObject::computeResidualAndJacobian(), FEProblemBase::computeResidualAndJacobian(), FEProblemBase::computeResidualInternal(), FEProblemBase::computeResidualL2Norm(), FEProblemBase::computeResidualTag(), FEProblemBase::computeResidualTags(), FEProblemBase::computeResidualType(), KernelScalarBase::computeScalarOffDiagJacobian(), ADKernelScalarBase::computeScalarQpResidual(), ADMortarScalarBase::computeScalarQpResidual(), MortarScalarBase::computeScalarQpResidual(), KernelScalarBase::computeScalarQpResidual(), TimeStepper::computeStep(), ActuallyExplicitEuler::computeTimeDerivatives(), ExplicitEuler::computeTimeDerivatives(), ImplicitEuler::computeTimeDerivatives(), BDF2::computeTimeDerivatives(), NewmarkBeta::computeTimeDerivatives(), CentralDifference::computeTimeDerivatives(), CrankNicolson::computeTimeDerivatives(), LStableDirk2::computeTimeDerivatives(), LStableDirk3::computeTimeDerivatives(), ImplicitMidpoint::computeTimeDerivatives(), ExplicitTVDRK2::computeTimeDerivatives(), AStableDirk4::computeTimeDerivatives(), LStableDirk4::computeTimeDerivatives(), ExplicitRK2::computeTimeDerivatives(), MultiAppGeometricInterpolationTransfer::computeTransformation(), BuildArrayVariableAux::computeValue(), TagVectorArrayVariableAux::computeValue(), PenetrationAux::computeValue(), ConcentricCircleMesh::ConcentricCircleMesh(), ConditionalEnableControl::ConditionalEnableControl(), TimeStepper::constrainStep(), LibtorchNeuralNetControl::controlNeuralNet(), CoupledForceNodalKernel::CoupledForceNodalKernel(), MultiApp::createApp(), AddVariableAction::createInitialConditionAction(), Function::curl(), MooseVariableFV< Real >::curlPhi(), SidesetInfoVectorPostprocessor::dataHelper(), ReporterTransferInterface::declareClone(), MeshGenerator::declareMeshProperty(), ReporterTransferInterface::declareVectorClone(), FunctorRelationshipManager::delete_remote_elements(), MooseMesh::deleteRemoteElements(), BicubicSplineFunction::derivative(), DerivativeSumMaterialTempl< is_ad >::DerivativeSumMaterialTempl(), MooseMesh::detectPairedSidesets(), FEProblemBase::determineSolverSystem(), DGKernel::DGKernel(), MeshDiagnosticsGenerator::diagnosticsLog(), DistributedPositions::DistributedPositions(), Function::div(), FunctorBinnedValuesDivision::divisionIndex(), MooseVariableFV< Real >::divPhi(), FunctorRelationshipManager::dofmap_reinit(), EigenProblem::doFreeNonlinearPowerIterations(), FEProblemBase::duplicateVariableCheck(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), Eigenvalues::Eigenvalues(), ElementalVariableValue::ElementalVariableValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementIntegerAux::ElementIntegerAux(), ElementQualityAux::ElementQualityAux(), ElementUOAux::ElementUOAux(), DistributedRectilinearMeshGenerator::elemId(), ProjectionAux::elemOnNodeVariableIsDefinedOn(), MooseMesh::errorIfDistributedMesh(), SideIntegralPostprocessor::errorNoFaceInfo(), SideIntegralFunctorPostprocessorTempl< is_ad >::errorNoFaceInfo(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), MultiAppGeneralFieldTransfer::examineReceivedValueConflicts(), RestartableDataReporter::execute(), DiscreteElementUserObject::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), NodalValueSampler::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppPostprocessorTransfer::execute(), ElementQualityChecker::execute(), PositionsFunctorValueSampler::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), GreaterThanLessThanPostprocessor::execute(), PointValue::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), FindValueOnLine::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppCopyTransfer::execute(), MultiAppGeometricInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), InterfaceQpUserObjectBase::execute(), LeastSquaresFit::execute(), VectorPostprocessorComparison::execute(), LeastSquaresFitHistory::execute(), TimeExtremeValue::execute(), Eigenvalue::execute(), DomainUserObject::execute(), FEProblemBase::execute(), FEProblemBase::executeControls(), MultiAppVectorPostprocessorTransfer::executeFromMultiapp(), MultiAppVectorPostprocessorTransfer::executeToMultiapp(), Exodus::Exodus(), ExplicitSSPRungeKutta::ExplicitSSPRungeKutta(), MultiAppGeneralFieldTransfer::extractOutgoingPoints(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FileOutput::FileOutput(), QuadraturePointMultiApp::fillPositions(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), MultiAppGeometricInterpolationTransfer::fillSourceInterpolationPoints(), VerifyNodalUniqueID::finalize(), VerifyElementUniqueID::finalize(), DiscreteElementUserObject::finalize(), ElementQualityChecker::finalize(), MemoryUsage::finalize(), PointSamplerBase::finalize(), NearestPointAverage::finalize(), NearestPointIntegralVariablePostprocessor::finalize(), Transfer::find_sys(), BreakMeshByBlockGeneratorBase::findFreeBoundaryId(), FunctionDT::FunctionDT(), FunctionMaterialBase< is_ad >::FunctionMaterialBase(), FunctionScalarAux::FunctionScalarAux(), FunctionScalarIC::FunctionScalarIC(), MaterialOutputAction::functorMaterialOutputHelper(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), FVInitialConditionTempl< T >::FVInitialConditionTempl(), FVMassMatrix::FVMassMatrix(), FVMatAdvection::FVMatAdvection(), FVScalarLagrangeMultiplierInterface::FVScalarLagrangeMultiplierInterface(), GapValueAux::GapValueAux(), WorkBalance::gather(), FileMeshGenerator::generate(), ExtraNodesetGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), MoveNodeGenerator::generate(), PlaneIDMeshGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), SideSetsFromNormalsGenerator::generate(), SmoothMeshGenerator::generate(), SubdomainPerElementGenerator::generate(), TiledMeshGenerator::generate(), BlockToMeshConverterGenerator::generate(), MeshDiagnosticsGenerator::generate(), BreakMeshByBlockGenerator::generate(), CoarsenBlockGenerator::generate(), CutMeshByPlaneGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), MeshRepairGenerator::generate(), SideSetsFromPointsGenerator::generate(), AllSideSetsByNormalsGenerator::generate(), CombinerGenerator::generate(), MeshCollectionGenerator::generate(), SideSetsFromBoundingBoxGenerator::generate(), StackGenerator::generate(), StitchedMeshGenerator::generate(), MeshExtruderGenerator::generate(), SpiralAnnularMeshGenerator::generate(), XYDelaunayGenerator::generate(), XYMeshLineCutter::generate(), PatternedMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), DistributedRectilinearMeshGenerator::generate(), BoundingBoxNodeSetGenerator::generate(), MeshGenerator::generateData(), GeneratedMesh::GeneratedMesh(), GeneratedMeshGenerator::GeneratedMeshGenerator(), MeshGenerator::generateInternal(), CircularBoundaryCorrectionGenerator::generateRadialCorrectionFactor(), RandomICBase::generateRandom(), GenericConstantMaterialTempl< is_ad >::GenericConstantMaterialTempl(), GenericConstantVectorMaterialTempl< is_ad >::GenericConstantVectorMaterialTempl(), GenericFunctionMaterialTempl< is_ad >::GenericFunctionMaterialTempl(), GenericFunctionVectorMaterialTempl< is_ad >::GenericFunctionVectorMaterialTempl(), GenericFunctorGradientMaterialTempl< is_ad >::GenericFunctorGradientMaterialTempl(), GenericFunctorMaterialTempl< is_ad >::GenericFunctorMaterialTempl(), GenericVectorFunctorMaterialTempl< is_ad >::GenericVectorFunctorMaterialTempl(), DisplacedProblem::getActualFieldVariable(), FEProblemBase::getActualFieldVariable(), DisplacedProblem::getArrayVariable(), FEProblemBase::getArrayVariable(), MooseMesh::getAxisymmetricRadialCoord(), MooseMesh::getBlockConnectedBlocks(), VariableOldValueBounds::getBound(), MooseMesh::getBoundaryID(), MultiApp::getBoundingBox(), MooseMesh::getCoarseningMap(), MooseVariableBase::getContinuity(), Control::getControllableParameterByName(), MooseMesh::getCoordSystem(), PhysicsBase::getCoupledPhysics(), PropertyReadFile::getData(), TransfiniteMeshGenerator::getDiscreteEdge(), FEProblemBase::getDistribution(), MooseVariableBase::getDofIndices(), VariableCondensationPreconditioner::getDofToCondense(), TransfiniteMeshGenerator::getEdge(), GhostingUserObject::getElementalValue(), ElementUOProvider::getElementalValueLong(), ElementUOProvider::getElementalValueReal(), PropertyReadFile::getElementData(), MooseMesh::getElementIDIndex(), Material::getElementIDNeighbor(), Material::getElementIDNeighborByName(), MooseMesh::getElemIDMapping(), MooseMesh::getElemIDsOnBlocks(), MultiAppFieldTransfer::getEquationSystem(), MultiApp::getExecutioner(), MultiAppTransfer::getFromMultiApp(), MultiAppTransfer::getFromMultiAppInfo(), FEProblemBase::getFunction(), SubProblem::getFunctor(), MooseMesh::getGeneralAxisymmetricCoordAxis(), DistributedRectilinearMeshGenerator::getGhostNeighbors(), BatchMaterial< Tuple, Output, Input >::getIndex(), DistributedRectilinearMeshGenerator::getIndices(), SolutionUserObject::getLocalVarIndex(), Material::getMaterialByName(), FEProblemBase::getMaterialData(), SubProblem::getMatrixTagID(), AnnularMesh::getMaxInDimension(), GeneratedMesh::getMaxInDimension(), FEProblemBase::getMaxQps(), FEProblemBase::getMeshDivision(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), AnnularMesh::getMinInDimension(), GeneratedMesh::getMinInDimension(), MultiAppTransfer::getMultiApp(), DistributedRectilinearMeshGenerator::getNeighbors(), Times::getNextTime(), MooseMesh::getNodeBlockIds(), PropertyReadFile::getNodeData(), MooseMesh::getNodeList(), EigenProblem::getNonlinearEigenSystem(), FEProblemBase::getNonlinearSystem(), MooseMesh::getPairedBoundaryMapping(), ImageMeshGenerator::GetPixelInfo(), ImageMesh::GetPixelInfo(), PlaneIDMeshGenerator::getPlaneID(), Positions::getPosition(), Positions::getPositions(), FEProblemBase::getPositionsObject(), Positions::getPositionsVector2D(), Positions::getPositionsVector3D(), Positions::getPositionsVector4D(), PostprocessorInterface::getPostprocessorValueByNameInternal(), Times::getPreviousTime(), InterfaceQpUserObjectBase::getQpValue(), MooseMesh::getRefinementMap(), ReporterInterface::getReporterName(), Reporter::getReporterValueName(), FEProblemBase::getSampler(), JSONFileReader::getScalar(), DisplacedProblem::getScalarVariable(), FEProblemBase::getScalarVariable(), InterfaceQpUserObjectBase::getSideAverageValue(), DisplacedProblem::getStandardVariable(), FEProblemBase::getStandardVariable(), MooseMesh::getSubdomainBoundaryIds(), DisplacedProblem::getSystem(), FEProblemBase::getSystem(), Times::getTimeAtIndex(), FEProblemBase::getTimeFromStateArg(), Transient::getTimeIntegratorName(), Times::getTimes(), MultiAppTransfer::getToMultiApp(), MultiAppTransfer::getToMultiAppInfo(), MooseMesh::getUniqueCoordSystem(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), UserObjectInterface::getUserObjectBaseByName(), UserObjectInterface::getUserObjectName(), VectorPostprocessorComponent::getValue(), NumRelationshipManagers::getValue(), Residual::getValue(), SideAverageValue::getValue(), LineValueSampler::getValue(), FindValueOnLine::getValueAtPoint(), SubProblem::getVariableHelper(), JSONFileReader::getVector(), VectorPostprocessorInterface::getVectorPostprocessorName(), SubProblem::getVectorTag(), SubProblem::getVectorTagID(), DisplacedProblem::getVectorVariable(), FEProblemBase::getVectorVariable(), GhostingAux::GhostingAux(), MultiApp::globalAppToLocal(), MooseParsedVectorFunction::gradient(), Function::gradient(), FEProblemBase::handleException(), Terminator::handleMessage(), MooseVariableBase::hasDoFsOnNodes(), PostprocessorInterface::hasPostprocessor(), PostprocessorInterface::hasPostprocessorByName(), ReporterInterface::hasReporterValue(), ReporterInterface::hasReporterValueByName(), VectorPostprocessorInterface::hasVectorPostprocessor(), VectorPostprocessorInterface::hasVectorPostprocessorByName(), CrankNicolson::init(), CSVTimeSequenceStepper::init(), ExplicitTimeIntegrator::init(), EigenExecutionerBase::init(), IterationAdaptiveDT::init(), Transient::init(), AddAuxVariableAction::init(), Eigenvalue::init(), AddVariableAction::init(), MooseMesh::init(), Sampler::init(), MultiApp::init(), FEProblemBase::init(), FEProblemBase::initialAdaptMesh(), NestedDivision::initialize(), DistributedPositions::initialize(), ReporterPositions::initialize(), TransformedPositions::initialize(), ReporterTimes::initialize(), ElementGroupCentroidPositions::initialize(), FunctorPositions::initialize(), FunctorTimes::initialize(), MultiAppCloneReporterTransfer::initialSetup(), SolutionIC::initialSetup(), MultiAppConservativeTransfer::initialSetup(), IntegralPreservingFunctionIC::initialSetup(), PiecewiseLinearBase::initialSetup(), ReferenceResidualProblem::initialSetup(), FullSolveMultiApp::initialSetup(), PiecewiseLinear::initialSetup(), CoarsenedPiecewiseLinear::initialSetup(), LinearFVDiffusion::initialSetup(), LinearFVAdvection::initialSetup(), SolutionScalarAux::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), SolutionAux::initialSetup(), NodalVariableValue::initialSetup(), Axisymmetric2D3DSolutionFunction::initialSetup(), Exodus::initialSetup(), CSV::initialSetup(), MooseParsedFunction::initialSetup(), SolutionUserObject::initialSetup(), FEProblemBase::initialSetup(), SubProblem::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initShowHideLists(), Function::integral(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceIntegralVariableValuePostprocessor::InterfaceIntegralVariableValuePostprocessor(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), InterfaceTimeKernel::InterfaceTimeKernel(), MultiAppGeometricInterpolationTransfer::interpolateTargetPoints(), EigenExecutionerBase::inversePowerIteration(), InversePowerMethod::InversePowerMethod(), Sampler::isAdaptiveSamplingCompleted(), MooseMesh::isBoundaryFullyExternalToSubdomains(), MooseVariableBase::isNodal(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LinearCombinationPostprocessor::LinearCombinationPostprocessor(), LinearNodalConstraint::LinearNodalConstraint(), LineMaterialSamplerBase< Real >::LineMaterialSamplerBase(), LineSearch::lineSearch(), LineValueSampler::LineValueSampler(), MultiAppGeneralFieldTransfer::locatePointReceivers(), LowerBoundNodalKernel::LowerBoundNodalKernel(), MooseLinearVariableFV< Real >::lowerDError(), MooseVariableFV< Real >::lowerDError(), PNGOutput::makePNG(), ReporterPointMarker::markerSetup(), MassMatrix::MassMatrix(), Material::Material(), MaterialOutputAction::materialOutputHelper(), MaterialRealTensorValueAux::MaterialRealTensorValueAux(), MaterialRealVectorValueAuxTempl< is_ad >::MaterialRealVectorValueAuxTempl(), MaterialStdVectorRealGradientAux::MaterialStdVectorRealGradientAux(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), FunctorRelationshipManager::mesh_reinit(), SubProblem::meshChanged(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshRepairGenerator::MeshRepairGenerator(), SetupMeshAction::modifyParamsForUseSplit(), MeshMetaDataInterface::mooseErrorInternal(), MooseLinearVariableFV< Real >::MooseLinearVariableFV(), MooseMesh::MooseMesh(), MooseObject::MooseObject(), MooseVariableBase::MooseVariableBase(), MooseVariableConstMonomial::MooseVariableConstMonomial(), MoveNodeGenerator::MoveNodeGenerator(), ElementSubdomainModifier::movingBoundaryID(), ElementSubdomainModifier::movingBoundaryName(), MultiApp::MultiApp(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), NearestNodeDistanceAux::NearestNodeDistanceAux(), NearestNodeValueAux::NearestNodeValueAux(), FEProblemBase::needsPreviousNewtonIteration(), NewmarkBeta::NewmarkBeta(), NodalConstraint::NodalConstraint(), MooseVariableFV< Real >::nodalDofIndex(), MooseVariableFV< Real >::nodalDofIndexNeighbor(), MooseLinearVariableFV< Real >::nodalError(), MooseVariableFV< Real >::nodalMatrixTagValue(), NodalPatchRecoveryBase::nodalPatchRecovery(), NodalPatchRecoveryAuxBase::NodalPatchRecoveryAuxBase(), NodalScalarKernel::NodalScalarKernel(), MooseVariableFV< Real >::nodalValueArray(), MooseVariableFV< Real >::nodalValueOldArray(), MooseVariableFV< Real >::nodalValueOlderArray(), NodalVariableValue::NodalVariableValue(), MooseVariableFV< Real >::nodalVectorTagValue(), DistributedRectilinearMeshGenerator::nodeId(), PhysicsBase::nonlinearVariableExists(), MooseVariableFV< Real >::numberOfDofsNeighbor(), NumDOFs::NumDOFs(), NumFailedTimeSteps::NumFailedTimeSteps(), DistributedRectilinearMeshGenerator::numNeighbors(), NumNonlinearIterations::NumNonlinearIterations(), NumVars::NumVars(), Output::onInterval(), FunctorRelationshipManager::operator()(), RelationshipManager::operator==(), XDA::output(), SolutionHistory::output(), Exodus::output(), Output::Output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputReporters(), AdvancedOutput::outputScalarVariables(), Exodus::outputSetup(), AdvancedOutput::outputSystemInformation(), Console::outputVectorPostprocessors(), AdvancedOutput::outputVectorPostprocessors(), DistributedRectilinearMeshGenerator::paritionSquarely(), PiecewiseBilinear::parse(), ParsedAux::ParsedAux(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedPostprocessor::ParsedPostprocessor(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), MultiAppConservativeTransfer::performAdjustment(), ExplicitTimeIntegrator::performExplicitSolve(), PetscExternalPartitioner::PetscExternalPartitioner(), MooseVariableFV< Real >::phiLowerSize(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), Executioner::picardSolve(), PIDTransientControl::PIDTransientControl(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseMulticonstant::PiecewiseMulticonstant(), PiecewiseMultiInterpolation::PiecewiseMultiInterpolation(), PiecewiseTabularBase::PiecewiseTabularBase(), CutMeshByPlaneGenerator::pointPairPlaneInterception(), SolutionUserObject::pointValueGradientWrapper(), SolutionUserObject::pointValueWrapper(), ReporterInterface::possiblyCheckHasReporter(), VectorPostprocessorInterface::possiblyCheckHasVectorPostprocessorByName(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), ImplicitMidpoint::postResidual(), ExplicitTVDRK2::postResidual(), AStableDirk4::postResidual(), LStableDirk4::postResidual(), ExplicitRK2::postResidual(), EigenProblem::postScaleEigenVector(), VariableCondensationPreconditioner::preallocateCondensedJacobian(), ADKernelValueTempl< T >::precomputeQpJacobian(), Predictor::Predictor(), Transient::preExecute(), MooseMesh::prepare(), MooseMesh::prepared(), FixedPointSolve::printFixedPointConvergenceReason(), PseudoTimestep::PseudoTimestep(), MultiApp::readCommandLineArguments(), PropertyReadFile::readData(), SolutionUserObject::readExodusII(), SolutionUserObject::readXda(), CoarsenBlockGenerator::recursiveCoarsen(), FunctorRelationshipManager::redistribute(), ReferenceResidualProblem::ReferenceResidualProblem(), Sampler::reinit(), EqualValueEmbeddedConstraint::reinitConstraint(), RelativeSolutionDifferenceNorm::RelativeSolutionDifferenceNorm(), RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), PiecewiseMultiInterpolation::sample(), ScalarComponentIC::ScalarComponentIC(), MortarScalarBase::scalarVariable(), DistributedRectilinearMeshGenerator::scaleNodalPositions(), BicubicSplineFunction::secondDerivative(), MooseVariableFV< Real >::secondPhi(), MooseVariableFV< Real >::secondPhiFace(), MooseVariableFV< Real >::secondPhiFaceNeighbor(), MooseVariableFV< Real >::secondPhiNeighbor(), FunctorRelationshipManager::set_mesh(), MooseVariableBase::setActiveTags(), DistributedRectilinearMeshGenerator::setBoundaryNames(), MooseMesh::setCoordSystem(), FEProblemBase::setCoupling(), PiecewiseBase::setData(), FileOutput::setFileBaseInternal(), MooseMesh::setGeneralAxisymmetricCoordAxes(), FEProblemSolve::setInnerSolve(), MeshGenerator::setMeshProperty(), FVPointValueConstraint::setMyElem(), FEProblemBase::setNonlocalCouplingMatrix(), Sampler::setNumberOfCols(), Sampler::setNumberOfRandomSeeds(), Sampler::setNumberOfRows(), Exodus::setOutputDimensionInExodusWriter(), MultiAppGeneralFieldTransfer::setSolutionVectorValues(), Split::setup(), TransientMultiApp::setupApp(), SetupMeshAction::setupMesh(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), TimePeriodBase::setupTimes(), SideAdvectiveFluxIntegralTempl< is_ad >::SideAdvectiveFluxIntegralTempl(), SideDiffusiveFluxIntegralTempl< is_ad, Real >::SideDiffusiveFluxIntegralTempl(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), SolutionTimeAdaptiveDT::SolutionTimeAdaptiveDT(), SolutionUserObject::SolutionUserObject(), FullSolveMultiApp::solveStep(), SpatialAverageBase::SpatialAverageBase(), UserObject::spatialPoints(), NearestPointAverage::spatialValue(), NearestPointIntegralVariablePostprocessor::spatialValue(), MeshDivisionFunctorReductionVectorPostprocessor::spatialValue(), UserObject::spatialValue(), SpiralAnnularMesh::SpiralAnnularMesh(), SpiralAnnularMeshGenerator::SpiralAnnularMeshGenerator(), StitchedMesh::StitchedMesh(), MultiAppGeometricInterpolationTransfer::subdomainIDsNode(), Constraint::subdomainSetup(), GeneralUserObject::subdomainSetup(), NodalUserObject::subdomainSetup(), MaterialBase::subdomainSetup(), FEProblemBase::swapBackMaterialsNeighbor(), DisplacedProblem::systemBaseLinear(), Console::systemInfoFlags(), Terminator::Terminator(), CutMeshByPlaneGenerator::tet4ElemCutter(), ThreadedGeneralUserObject::threadJoin(), DiscreteElementUserObject::threadJoin(), GeneralUserObject::threadJoin(), Function::timeDerivative(), TimeExtremeValue::TimeExtremeValue(), MooseLinearVariableFV< Real >::timeIntegratorError(), TimeIntervalTimes::TimeIntervalTimes(), TimePeriodBase::TimePeriodBase(), VectorPostprocessorVisualizationAux::timestepSetup(), MultiAppDofCopyTransfer::transfer(), MultiAppShapeEvaluationTransfer::transferVariable(), TransformedPositions::TransformedPositions(), FEProblemBase::trustUserCouplingMatrix(), MooseVariableScalar::uDot(), MooseVariableScalar::uDotDot(), MooseVariableScalar::uDotDotOld(), FEProblemBase::uDotDotOldRequested(), MooseVariableScalar::uDotOld(), FEProblemBase::uDotOldRequested(), Positions::unrollMultiDPositions(), ScalarKernelBase::uOld(), AuxScalarKernel::uOld(), Checkpoint::updateCheckpointFiles(), EqualValueBoundaryConstraint::updateConstrainedNodes(), SolutionUserObject::updateExodusBracketingTimeIndices(), FEProblemBase::updateMaxQps(), UpperBoundNodalKernel::UpperBoundNodalKernel(), NearestPointAverage::userObjectValue(), NearestPointIntegralVariablePostprocessor::userObjectValue(), BoundingBoxIC::value(), PiecewiseConstantFromCSV::value(), IntegralPreservingFunctionIC::value(), Axisymmetric2D3DSolutionFunction::value(), Function::value(), ValueRangeMarker::ValueRangeMarker(), ValueThresholdMarker::ValueThresholdMarker(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), MultiAppTransfer::variableIntegrityCheck(), VariableTimeIntegrationAux::VariableTimeIntegrationAux(), AddVariableAction::variableType(), VariableValueVolumeHistogram::VariableValueVolumeHistogram(), VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl(), VectorNodalBC::VectorNodalBC(), SubProblem::vectorTagName(), SubProblem::vectorTagType(), MooseParsedGradFunction::vectorValue(), MooseParsedFunction::vectorValue(), Function::vectorValue(), SubProblem::verifyVectorTags(), VTKOutput::VTKOutput(), DOFMapOutput::writeStreamToFile(), and Console::writeStreamToFile().

30  {
31  std::ostringstream oss;
32  moose::internal::mooseStreamAll(oss, std::forward<Args>(args)...);
33  _moose_base.callMooseError(oss.str(), /* with_prefix = */ true);
34  }
void mooseStreamAll(std::ostringstream &ss)
All of the following are not meant to be called directly - they are called by the normal macros (moos...
Definition: MooseError.C:92
const MooseBase & _moose_base
The MooseBase class deriving from this interface.
void callMooseError(std::string msg, const bool with_prefix) const
Calls moose error with the message msg.
Definition: MooseBase.C:33

◆ mooseErrorNonPrefixed()

template<typename... Args>
void MooseBaseErrorInterface::mooseErrorNonPrefixed ( Args &&...  args) const
inlineinherited

Emits an error without the prefixing included in mooseError().

Definition at line 40 of file MooseBaseErrorInterface.h.

41  {
42  std::ostringstream oss;
43  moose::internal::mooseStreamAll(oss, std::forward<Args>(args)...);
44  _moose_base.callMooseError(oss.str(), /* with_prefix = */ false);
45  }
void mooseStreamAll(std::ostringstream &ss)
All of the following are not meant to be called directly - they are called by the normal macros (moos...
Definition: MooseError.C:92
const MooseBase & _moose_base
The MooseBase class deriving from this interface.
void callMooseError(std::string msg, const bool with_prefix) const
Calls moose error with the message msg.
Definition: MooseBase.C:33

◆ mooseInfo()

template<typename... Args>
void MooseBaseErrorInterface::mooseInfo ( Args &&...  args) const
inlineinherited

◆ mooseWarning()

template<typename... Args>
void MooseBaseErrorInterface::mooseWarning ( Args &&...  args) const
inlineinherited

Emits a warning prefixed with object name and type.

Definition at line 75 of file MooseBaseErrorInterface.h.

Referenced by AddKernelAction::act(), SetupMeshAction::act(), MeshOnlyAction::act(), AddFunctionAction::act(), MaterialOutputAction::act(), CommonOutputAction::act(), DiracKernelBase::addPoint(), BoundaryMarker::BoundaryMarker(), BoundsBase::BoundsBase(), DistributedRectilinearMeshGenerator::buildCube(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), CartesianMeshGenerator::CartesianMeshGenerator(), CheckOutputAction::checkConsoleOutput(), MultiAppTransfer::checkMultiAppExecuteOn(), PhysicsBase::checkRequiredTasks(), OversampleOutput::cloneMesh(), GapValueAux::computeValue(), MultiApp::createApp(), MeshDiagnosticsGenerator::diagnosticsLog(), CartesianGridDivision::divisionIndex(), CylindricalGridDivision::divisionIndex(), SphericalGridDivision::divisionIndex(), Postprocessor::evaluateDotWarning(), MeshDivisionFunctorReductionVectorPostprocessor::execute(), ElementQualityChecker::finalize(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FixedPointSolve::FixedPointSolve(), SubdomainPerElementGenerator::generate(), ParsedGenerateSideset::generate(), MultiAppTransfer::getAppInfo(), FunctorBinnedValuesDivision::getBinIndex(), PointSamplerBase::getLocalElemContainingPoint(), FEProblemBase::getMaterial(), Positions::getNearestPositionIndex(), LineValueSampler::getValue(), Terminator::handleMessage(), SphericalGridDivision::initialize(), ElementGroupCentroidPositions::initialize(), CartesianGridDivision::initialize(), CylindricalGridDivision::initialize(), ReferenceResidualProblem::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), MaterialBase::initStatefulProperties(), LeastSquaresFit::LeastSquaresFit(), IterationAdaptiveDT::limitDTToPostprocessorValue(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), FEProblemBase::mesh(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), NewmarkBeta::NewmarkBeta(), NodalPatchRecovery::NodalPatchRecovery(), NonlocalIntegratedBC::NonlocalIntegratedBC(), NonlocalKernel::NonlocalKernel(), Output::Output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), PiecewiseConstantFromCSV::PiecewiseConstantFromCSV(), Executioner::problem(), PropertyReadFile::readData(), TestSourceStepper::rejectStep(), MaterialBase::resetQpProperties(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), MooseMesh::setCoordSystem(), FEProblemBase::sizeZeroes(), TransientMultiApp::solveStep(), Tecplot::Tecplot(), TimeDerivativeAux::TimeDerivativeAux(), Checkpoint::updateCheckpointFiles(), PiecewiseConstantFromCSV::value(), and VariableCondensationPreconditioner::VariableCondensationPreconditioner().

76  {
78  _console, _moose_base.errorPrefix("warning"), std::forward<Args>(args)...);
79  }
std::string errorPrefix(const std::string &error_type) const
Definition: MooseBase.C:43
void mooseWarningStream(S &oss, Args &&... args)
Definition: MooseError.h:181
const MooseBase & _moose_base
The MooseBase class deriving from this interface.
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ mooseWarningNonPrefixed()

template<typename... Args>
void MooseBaseErrorInterface::mooseWarningNonPrefixed ( Args &&...  args) const
inlineinherited

Emits a warning without the prefixing included in mooseWarning().

Definition at line 85 of file MooseBaseErrorInterface.h.

86  {
87  moose::internal::mooseWarningStream(_console, std::forward<Args>(args)...);
88  }
void mooseWarningStream(S &oss, Args &&... args)
Definition: MooseError.h:181
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ name()

virtual const std::string& MooseBase::name ( ) const
inlinevirtualinherited

Get the name of the class.

Returns
The name of the class

Reimplemented in MooseVariableBase.

Definition at line 57 of file MooseBase.h.

Referenced by HierarchicalGridPartitioner::_do_partition(), CopyNodalVarsAction::act(), AddElementalFieldAction::act(), AdaptivityAction::act(), AddTimeStepperAction::act(), DeprecatedBlockAction::act(), DisplayGhostingAction::act(), AddVariableAction::act(), AddPeriodicBCAction::act(), MaterialOutputAction::act(), FEProblemBase::addAnyRedistributers(), Executioner::addAttributeReporter(), FEProblemBase::addAuxKernel(), FEProblemBase::addAuxScalarKernel(), DisplacedProblem::addAuxVariable(), FEProblemBase::addBoundaryCondition(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), FEProblemBase::addDGKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), MooseApp::addExecutor(), MooseApp::addExecutorParams(), FEProblemBase::addFunction(), SubProblem::addFunctor(), FEProblemBase::addFunctorMaterial(), FunctorMaterial::addFunctorProperty(), FunctorMaterial::addFunctorPropertyByBlocks(), FEProblemBase::addFVBC(), FEProblemBase::addFVInitialCondition(), FEProblemBase::addFVInterfaceKernel(), FEProblemBase::addFVKernel(), ADDGKernel::ADDGKernel(), FEProblemBase::addIndicator(), FEProblemBase::addInitialCondition(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), FEProblemBase::addKernel(), FEProblemBase::addLinearFVBC(), FEProblemBase::addLinearFVKernel(), FEProblemBase::addMarker(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMeshDivision(), MooseApp::addMeshGenerator(), MeshGenerator::addMeshSubgenerator(), FEProblemBase::addMultiApp(), FEProblemBase::addNodalKernel(), FEProblemBase::addObject(), SubProblem::addPiecewiseByBlockLambdaFunctor(), FEProblemBase::addPostprocessor(), InitialConditionBase::addPostprocessorDependencyHelper(), UserObject::addPostprocessorDependencyHelper(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), Action::addRelationshipManager(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), InitialConditionBase::addUserObjectDependencyHelper(), UserObject::addUserObjectDependencyHelper(), AuxKernelTempl< Real >::addUserObjectDependencyHelper(), DisplacedProblem::addVariable(), FEProblemBase::addVectorPostprocessor(), UserObject::addVectorPostprocessorDependencyHelper(), FVFluxKernel::adjustRMGhostLayers(), Output::advancedExecuteOn(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), MooseApp::appBinaryName(), MooseApp::appendMeshGenerator(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), ArrayDGKernel::ArrayDGKernel(), ArrayParsedAux::ArrayParsedAux(), AStableDirk4::AStableDirk4(), AuxKernelTempl< Real >::AuxKernelTempl(), Function::average(), MultiApp::backup(), Moose::Builder::build(), CoarsenedPiecewiseLinear::buildCoarsenedGrid(), PiecewiseTabularBase::buildFromFile(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), MooseBase::callMooseError(), ChangeOverFixedPointPostprocessor::ChangeOverFixedPointPostprocessor(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), FEProblemBase::checkDependMaterialsHelper(), ReporterTransferInterface::checkHasReporterValue(), FEProblemBase::checkICRestartError(), Material::checkMaterialProperty(), MooseApp::checkMetaDataIntegrity(), Damper::checkMinDamping(), FEProblemBase::checkNonlinearConvergence(), Coupleable::checkWritableVar(), CompositeFunction::CompositeFunction(), MaterialBase::computeProperties(), FEProblemBase::computeUserObjectByName(), VectorPostprocessorVisualizationAux::computeValue(), MooseBaseParameterInterface::connectControllableParams(), BatchMaterial< Tuple, Output, Input >::construct(), MultiApp::createApp(), MooseApp::createExecutors(), AddVariableAction::createInitialConditionAction(), MultiApp::createLocalApp(), MeshGeneratorSystem::createMeshGeneratorOrder(), MooseApp::createRecoverablePerfGraph(), MaterialBase::declareADProperty(), MeshGenerator::declareMeshesForSubByName(), MeshGenerator::declareNullMeshName(), MaterialBase::declareProperty(), DOFMapOutput::demangle(), DerivativeSumMaterialTempl< is_ad >::DerivativeSumMaterialTempl(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DomainUserObject::DomainUserObject(), DumpObjectsProblem::dumpObjectHelper(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementValueSampler::ElementValueSampler(), MooseMesh::errorIfDistributedMesh(), MooseBase::errorPrefix(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), RestartableDataReporter::execute(), PointValue::execute(), MultiAppNearestNodeTransfer::execute(), ActionWarehouse::executeActionsWithAction(), Exodus::Exodus(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), MultiApp::fillPositions(), PointSamplerBase::finalize(), FunctionDT::FunctionDT(), FVFunctionIC::functionName(), FunctionIC::functionName(), FunctorPositions::FunctorPositions(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), FVOneVarDiffusionInterface::FVOneVarDiffusionInterface(), MooseServer::gatherDocumentSymbols(), BoundaryDeletionGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), BreakMeshByBlockGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), StitchedMeshGenerator::generate(), XYDelaunayGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), MeshGenerator::generateInternal(), InterfaceMaterial::getADMaterialProperty(), Material::getADMaterialProperty(), MultiAppTransfer::getAppInfo(), MultiApp::getBoundingBox(), MooseApp::getCheckpointDirectories(), Control::getControllableParameterByName(), Control::getControllableValue(), Control::getControllableValueByName(), UserObject::getDependObjects(), DistributionInterface::getDistribution(), FEProblemBase::getDistribution(), DistributionInterface::getDistributionByName(), ElementUOProvider::getElementalValueLong(), ElementUOProvider::getElementalValueReal(), MultiApp::getExecutioner(), MooseApp::getExecutor(), FEProblemBase::getExecutor(), OutputWarehouse::getFileNumbers(), FEProblemBase::getFunction(), SubProblem::getFunctor(), NodalPatchRecovery::getGenericMaterialProperty(), InterfaceMaterial::getGenericMaterialProperty(), Material::getGenericMaterialProperty(), AuxKernelTempl< Real >::getGenericMaterialProperty(), InterfaceMaterial::getGenericNeighborMaterialProperty(), InterfaceMaterial::getGenericNeighborMaterialPropertyByName(), Material::getGenericOptionalMaterialProperty(), MaterialBase::getGenericZeroMaterialProperty(), BatchMaterial< Tuple, Output, Input >::getIndex(), SolutionUserObject::getLocalVarIndex(), Marker::getMarkerValue(), Material::getMaterial(), FEProblemBase::getMaterial(), Material::getMaterialByName(), NodalPatchRecovery::getMaterialProperty(), InterfaceMaterial::getMaterialProperty(), Material::getMaterialProperty(), AuxKernelTempl< Real >::getMaterialProperty(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), NodalPatchRecovery::getMaterialPropertyOld(), InterfaceMaterial::getMaterialPropertyOld(), Material::getMaterialPropertyOld(), AuxKernelTempl< Real >::getMaterialPropertyOld(), NodalPatchRecovery::getMaterialPropertyOlder(), InterfaceMaterial::getMaterialPropertyOlder(), Material::getMaterialPropertyOlder(), AuxKernelTempl< Real >::getMaterialPropertyOlder(), MeshGenerator::getMesh(), FEProblemBase::getMeshDivision(), MeshGenerator::getMeshesByName(), MooseApp::getMeshGenerator(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), ActionWarehouse::getMooseAppName(), MultiAppTransfer::getMultiApp(), InterfaceMaterial::getNeighborADMaterialProperty(), InterfaceMaterial::getNeighborMaterialProperty(), InterfaceMaterial::getNeighborMaterialPropertyOld(), InterfaceMaterial::getNeighborMaterialPropertyOlder(), MooseServer::getObjectParameters(), Material::getOptionalADMaterialProperty(), Material::getOptionalMaterialProperty(), Material::getOptionalMaterialPropertyOld(), Material::getOptionalMaterialPropertyOlder(), OutputWarehouse::getOutput(), MooseApp::getParam(), FEProblemBase::getPositionsObject(), FEProblemBase::getPostprocessorValueByName(), ReporterData::getReporterInfo(), MooseApp::getRestartableDataMap(), MooseApp::getRestartableDataMapName(), MooseApp::getRestartableMetaData(), FEProblemBase::getSampler(), Transient::getTimeStepperName(), ProjectedStatefulMaterialStorageAction::getTypeEnum(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), Terminator::handleMessage(), FEProblemBase::hasFunction(), SubProblem::hasFunctor(), SubProblem::hasFunctorWithType(), MooseApp::hasMeshGenerator(), AdvancedOutput::hasOutputHelper(), FEProblemBase::hasPostprocessor(), FEProblemBase::hasPostprocessorValueByName(), MooseApp::hasRelationshipManager(), MooseApp::hasRestartableDataMap(), MooseApp::hasRestartableMetaData(), FEProblemBase::hasUserObject(), IterationAdaptiveDT::init(), AdvancedOutput::init(), FEProblemBase::init(), AdvancedOutput::initExecutionTypes(), AttribName::initFrom(), NestedDivision::initialize(), TransformedPositions::initialize(), SolutionScalarAux::initialSetup(), MultiAppProjectionTransfer::initialSetup(), NodalVariableValue::initialSetup(), Console::initialSetup(), SolutionUserObject::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), MaterialBase::initStatefulProperties(), Function::integral(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), MeshGenerator::isChildMeshGenerator(), MeshGenerator::isNullMeshName(), MooseApp::isParamValid(), MeshGenerator::isParentMeshGenerator(), LinearCombinationFunction::LinearCombinationFunction(), FEProblemBase::logAdd(), Marker::Marker(), MatDiffusionBase< Real >::MatDiffusionBase(), Material::Material(), MaterialDerivativeTestKernelBase< Real >::MaterialDerivativeTestKernelBase(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), MemoryUsageReporter::MemoryUsageReporter(), MeshGenerator::meshPropertyPrefix(), MooseApp::MooseApp(), OutputWarehouse::mooseConsole(), MooseVariableInterface< Real >::MooseVariableInterface(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), NodalPatchRecoveryAuxBase::NodalPatchRecoveryAuxBase(), NodalValueSampler::NodalValueSampler(), PhysicsBase::nonlinearVariableExists(), Registry::objData(), MeshGenerator::Comparator::operator()(), ProgressOutput::output(), DOFMapOutput::output(), Output::Output(), AdvancedOutput::outputElementalVariables(), ConsoleUtils::outputExecutionInformation(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), Nemesis::outputPostprocessors(), Exodus::outputPostprocessors(), AdvancedOutput::outputPostprocessors(), TableOutput::outputReporter(), AdvancedOutput::outputReporters(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), AdvancedOutput::outputVectorPostprocessors(), ParsedAux::ParsedAux(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedGenerateSideset::ParsedGenerateSideset(), MooseServer::parseDocumentForDiagnostics(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), PointVariableSamplerBase::PointVariableSamplerBase(), MooseApp::possiblyLoadRestartableMetaData(), PhysicsBase::prefix(), PerfGraphLivePrint::printStats(), MultiApp::readCommandLineArguments(), Receiver::Receiver(), Executor::Result::record(), Registry::registerObjectsTo(), FEProblemBase::registerRandomInterface(), MooseApp::registerRestartableDataMapName(), MooseApp::registerRestartableNameWithFilter(), GlobalParamsAction::remove(), MaterialBase::resetQpProperties(), MultiApp::restore(), MooseApp::runInputFile(), ScalarComponentIC::ScalarComponentIC(), MultiApp::setAppOutputFileBase(), MooseMesh::setBoundaryName(), Control::setControllableValue(), Control::setControllableValueByName(), GlobalParamsAction::setDoubleIndexParam(), OutputWarehouse::setFileNumbers(), GlobalParamsAction::setParam(), FEProblemBase::setPostprocessorValueByName(), GlobalParamsAction::setScalarParam(), MooseMesh::setSubdomainName(), GlobalParamsAction::setTripleIndexParam(), Split::setup(), SideSetsGeneratorBase::setup(), TransientMultiApp::setupApp(), GlobalParamsAction::setVectorParam(), FullSolveMultiApp::showStatusMessage(), SideSetExtruderGenerator::SideSetExtruderGenerator(), SideValueSampler::SideValueSampler(), TransientMultiApp::solveStep(), UserObject::spatialValue(), StitchedMesh::StitchedMesh(), SubProblem::storeBoundaryDelayedCheckMatProp(), SubProblem::storeBoundaryMatPropName(), SubProblem::storeBoundaryZeroMatProp(), SubProblem::storeSubdomainDelayedCheckMatProp(), SubProblem::storeSubdomainMatPropName(), SubProblem::storeSubdomainZeroMatProp(), MaterialBase::subdomainSetup(), TaggingInterface::TaggingInterface(), VectorPostprocessorVisualizationAux::timestepSetup(), to_json(), MultiAppDofCopyTransfer::transfer(), TransientMultiApp::TransientMultiApp(), MooseServer::traverseParseTreeAndFillSymbols(), MooseBase::typeAndName(), MooseBaseParameterInterface::uniqueParameterName(), FVFluxBC::uOnGhost(), FVFluxBC::uOnUSub(), UserObject::UserObject(), UserObjectInterface::userObjectName(), MultiAppTransfer::variableIntegrityCheck(), VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl(), AdvancedOutput::wantOutput(), Coupleable::writableCoupledValue(), Coupleable::writableVariable(), Console::write(), and MooseApp::writeRestartableMetaData().

57 { return _name; }
const std::string _name
The name of this class.
Definition: MooseBase.h:90

◆ needGhostGhostedBoundaries()

void MooseMesh::needGhostGhostedBoundaries ( bool  needghost)
inlineinherited

Whether or not we want to ghost ghosted boundaries.

Definition at line 601 of file MooseMesh.h.

Referenced by DistributedRectilinearMeshGenerator::generate().

601 { _need_ghost_ghosted_boundaries = needghost; }
bool _need_ghost_ghosted_boundaries
A parallel mesh generator such as DistributedRectilinearMeshGenerator already make everything ready...
Definition: MooseMesh.h:1783

◆ needsPrepareForUse()

void MooseMesh::needsPrepareForUse ( )
inherited

If this method is called, we will call libMesh's prepare_for_use method when we call Moose's prepare method.

This should only be set when the mesh structure is changed by MeshGenerators (i.e. Element deletion).

Definition at line 2916 of file MooseMesh.C.

2917 {
2918  prepared(false);
2919 }
bool prepared() const
Setter/getter for whether the mesh is prepared.
Definition: MooseMesh.C:2888

◆ needsRemoteElemDeletion() [1/2]

void MooseMesh::needsRemoteElemDeletion ( bool  need_delete)
inlineinherited

Set whether we need to delete remote elements.

Definition at line 1057 of file MooseMesh.h.

1057 { _need_delete = need_delete; }
bool _need_delete
Whether we need to delete remote elements after init&#39;ing the EquationSystems.
Definition: MooseMesh.h:1771

◆ needsRemoteElemDeletion() [2/2]

bool MooseMesh::needsRemoteElemDeletion ( ) const
inlineinherited

Whether we need to delete remote elements.

Definition at line 1062 of file MooseMesh.h.

1062 { return _need_delete; }
bool _need_delete
Whether we need to delete remote elements after init&#39;ing the EquationSystems.
Definition: MooseMesh.h:1771

◆ nElem()

dof_id_type MooseMesh::nElem ( ) const
virtualinherited

Definition at line 2832 of file MooseMesh.C.

Referenced by PropertyReadFile::getElementData(), and PropertyReadFile::readData().

2833 {
2834  return getMesh().n_elem();
2835 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ nFace()

unsigned int MooseMesh::nFace ( ) const
inlineinherited

accessors for the FaceInfo objects

Definition at line 1125 of file MooseMesh.h.

1125 { return _face_info.size(); }
std::vector< const FaceInfo * > _face_info
Holds only those FaceInfo objects that have processor_id equal to this process&#39;s id, e.g.
Definition: MooseMesh.h:1564

◆ nNodes()

dof_id_type MooseMesh::nNodes ( ) const
virtualinherited

Calls n_nodes/elem() on the underlying libMesh mesh object.

Definition at line 2826 of file MooseMesh.C.

Referenced by PropertyReadFile::getNodeData(), and PropertyReadFile::readData().

2827 {
2828  return getMesh().n_nodes();
2829 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ node() [1/2]

const Node & MooseMesh::node ( const dof_id_type  i) const
virtualinherited

Various accessors (pointers/references) for Node "i".

If the requested node is a remote node on a distributed mesh, only the query accessors are valid to call, and they return NULL.

Definition at line 623 of file MooseMesh.C.

Referenced by MooseMesh::addUniqueNode(), GeneratedMesh::buildMesh(), MooseMesh::buildPeriodicNodeMap(), MooseMesh::cacheInfo(), MooseMesh::detectOrthogonalDimRanges(), MooseMesh::getNodeBlockIds(), MooseMesh::isSemiLocal(), and MooseMesh::updateActiveSemiLocalNodeRange().

624 {
625  mooseDeprecated("MooseMesh::node() is deprecated, please use MooseMesh::nodeRef() instead");
626  return nodeRef(i);
627 }
void mooseDeprecated(Args &&... args) const
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:637

◆ node() [2/2]

Node & MooseMesh::node ( const dof_id_type  i)
virtualinherited

Definition at line 630 of file MooseMesh.C.

631 {
632  mooseDeprecated("MooseMesh::node() is deprecated, please use MooseMesh::nodeRef() instead");
633  return nodeRef(i);
634 }
void mooseDeprecated(Args &&... args) const
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:637

◆ nodePtr() [1/2]

const Node * MooseMesh::nodePtr ( const dof_id_type  i) const
virtualinherited

Definition at line 651 of file MooseMesh.C.

652 {
653  return &nodeRef(i);
654 }
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:637

◆ nodePtr() [2/2]

Node * MooseMesh::nodePtr ( const dof_id_type  i)
virtualinherited

Definition at line 657 of file MooseMesh.C.

658 {
659  return &nodeRef(i);
660 }
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:637

◆ nodeRef() [1/2]

const Node & MooseMesh::nodeRef ( const dof_id_type  i) const
virtualinherited

◆ nodeRef() [2/2]

Node & MooseMesh::nodeRef ( const dof_id_type  i)
virtualinherited

Definition at line 645 of file MooseMesh.C.

646 {
647  return const_cast<Node &>(const_cast<const MooseMesh *>(this)->nodeRef(i));
648 }
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:637
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88

◆ nodeSetNodes()

const std::map< boundary_id_type, std::vector< dof_id_type > > & MooseMesh::nodeSetNodes ( ) const
inlineinherited
Returns
A map from nodeset ids to the vector of node ids in the nodeset

Definition at line 2120 of file MooseMesh.h.

2121 {
2122  return _node_set_nodes;
2123 }
std::map< boundary_id_type, std::vector< dof_id_type > > _node_set_nodes
list of nodes that belongs to a specified nodeset: indexing [nodeset_id] -> [array of node ids] ...
Definition: MooseMesh.h:1512

◆ nodeToActiveSemilocalElemMap()

const std::map< dof_id_type, std::vector< dof_id_type > > & MooseMesh::nodeToActiveSemilocalElemMap ( )
inherited

If not already created, creates a map from every node to all active semilocal elements to which they are connected.

Semilocal elements include local elements and elements that share at least one node with a local element.

Note
Extra ghosted elements are not included in this map!

Definition at line 1009 of file MooseMesh.C.

Referenced by FEProblemBase::initialSetup().

1010 {
1011  if (!_node_to_active_semilocal_elem_map_built) // Guard the creation with a double checked lock
1012  {
1013  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
1014 
1015  // This is allowing the timing to be run even with threads
1016  // This is safe because all threads will be waiting on this section when it runs
1017  // NOTE: Do not copy this construction to other places without thinking REALLY hard about it
1018  // The PerfGraph is NOT threadsafe and will cause all kinds of havok if care isn't taken
1019  auto in_threads = Threads::in_threads;
1020  Threads::in_threads = false;
1021  TIME_SECTION("nodeToActiveSemilocalElemMap", 5, "Building SemiLocalElemMap");
1022  Threads::in_threads = in_threads;
1023 
1025  {
1026  for (const auto & elem :
1027  as_range(getMesh().semilocal_elements_begin(), getMesh().semilocal_elements_end()))
1028  if (elem->active())
1029  for (unsigned int n = 0; n < elem->n_nodes(); n++)
1030  _node_to_active_semilocal_elem_map[elem->node_id(n)].push_back(elem->id());
1031 
1033  true; // MUST be set at the end for double-checked locking to work!
1034  }
1035  }
1036 
1038 }
bool _node_to_active_semilocal_elem_map_built
Definition: MooseMesh.h:1466
bool in_threads
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
A map of all of the current nodes to the active elements that they are connected to.
Definition: MooseMesh.h:1465

◆ nodeToElemMap()

const std::map< dof_id_type, std::vector< dof_id_type > > & MooseMesh::nodeToElemMap ( )
inherited

If not already created, creates a map from every node to all elements to which they are connected.

Definition at line 981 of file MooseMesh.C.

Referenced by NodalPatchRecovery::compute(), NodalPatchRecoveryAuxBase::computeValue(), ProjectionAux::computeValue(), PenetrationLocator::detectPenetration(), DMMooseGetEmbedding_Private(), ProjectionAux::elemOnNodeVariableIsDefinedOn(), NonlinearSystemBase::findImplicitGeometricCouplingEntries(), NearestNodeLocator::findNodes(), ActivateElementsUserObjectBase::isNewlyActivated(), LinearNodalConstraint::LinearNodalConstraint(), GhostHigherDLowerDPointNeighbors::operator()(), EqualValueBoundaryConstraint::updateConstrainedNodes(), RandomData::updateGenerators(), and NearestNodeLocator::updatePatch().

982 {
983  if (!_node_to_elem_map_built) // Guard the creation with a double checked lock
984  {
985  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
986 
988  {
989  // This is allowing the timing to be run even with threads
990  // This is safe because all threads will be waiting on this section when it runs
991  // NOTE: Do not copy this construction to other places without thinking REALLY hard about it
992  // The PerfGraph is NOT threadsafe and will cause all kinds of havok if care isn't taken
993  auto in_threads = Threads::in_threads;
994  Threads::in_threads = false;
995  TIME_SECTION("nodeToElemMap", 5, "Building Node To Elem Map");
996  Threads::in_threads = in_threads;
997 
998  for (const auto & elem : getMesh().active_element_ptr_range())
999  for (unsigned int n = 0; n < elem->n_nodes(); n++)
1000  _node_to_elem_map[elem->node_id(n)].push_back(elem->id());
1001 
1002  _node_to_elem_map_built = true; // MUST be set at the end for double-checked locking to work!
1003  }
1004  }
1005  return _node_to_elem_map;
1006 }
bool _node_to_elem_map_built
Definition: MooseMesh.h:1462
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
A map of all of the current nodes to the elements that they are connected to.
Definition: MooseMesh.h:1461
bool in_threads
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ onMeshChanged()

void MooseMesh::onMeshChanged ( )
virtualinherited

Declares a callback function that is executed at the conclusion of meshChanged().

Ther user can implement actions required after changing the mesh here.

Definition at line 711 of file MooseMesh.C.

Referenced by MooseMesh::meshChanged().

712 {
713 }

◆ operator const libMesh::MeshBase &()

MooseMesh::operator const libMesh::MeshBase & ( ) const
inherited

Definition at line 3190 of file MooseMesh.C.

3190 { return getMesh(); }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ operator libMesh::MeshBase &()

MooseMesh::operator libMesh::MeshBase & ( )
inherited

Implicit conversion operator from MooseMesh -> libMesh::MeshBase.

Definition at line 3188 of file MooseMesh.C.

3188 { return getMesh(); }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ operator=()

RinglebMesh& RinglebMesh::operator= ( const RinglebMesh other_mesh)
delete

◆ ownedElemInfoBegin()

MooseMesh::elem_info_iterator MooseMesh::ownedElemInfoBegin ( )
inherited

Iterators to owned faceInfo objects.

These faceInfo-s are required for the face loops and to filter out the faceInfo-s that are not owned by this processor in case we have a distributed mesh and we included FaceInfo objects that are on processor boundaries

Definition at line 1311 of file MooseMesh.C.

Referenced by LinearSystem::computeGradients(), LinearSystem::computeLinearSystemInternal(), and FEProblemBase::projectSolution().

1312 {
1313  return elem_info_iterator(_elem_info.begin(),
1314  _elem_info.end(),
1315  Predicates::NotNull<std::vector<const ElemInfo *>::iterator>());
1316 }
std::vector< const ElemInfo * > _elem_info
Holds only those ElemInfo objects that have processor_id equal to this process&#39;s id, e.g.
Definition: MooseMesh.h:1556

◆ ownedElemInfoEnd()

MooseMesh::elem_info_iterator MooseMesh::ownedElemInfoEnd ( )
inherited

Definition at line 1319 of file MooseMesh.C.

Referenced by LinearSystem::computeGradients(), LinearSystem::computeLinearSystemInternal(), and FEProblemBase::projectSolution().

1320 {
1321  return elem_info_iterator(_elem_info.end(),
1322  _elem_info.end(),
1323  Predicates::NotNull<std::vector<const ElemInfo *>::iterator>());
1324 }
std::vector< const ElemInfo * > _elem_info
Holds only those ElemInfo objects that have processor_id equal to this process&#39;s id, e.g.
Definition: MooseMesh.h:1556

◆ ownedFaceInfoBegin()

MooseMesh::face_info_iterator MooseMesh::ownedFaceInfoBegin ( )
inherited

Iterators to owned faceInfo objects.

These faceInfo-s are required for the face loops and to filter out the faceInfo-s that are not owned by this processor in case we have a distributed mesh and we included FaceInfo objects that are on processor boundaries

Definition at line 1293 of file MooseMesh.C.

Referenced by LinearSystem::computeGradients(), NonlinearSystemBase::computeJacobianInternal(), LinearSystem::computeLinearSystemInternal(), NonlinearSystemBase::computeResidualAndJacobianInternal(), and NonlinearSystemBase::computeResidualInternal().

1294 {
1295  return face_info_iterator(
1296  _face_info.begin(),
1297  _face_info.end(),
1299 }
std::vector< const FaceInfo * > _face_info
Holds only those FaceInfo objects that have processor_id equal to this process&#39;s id, e.g.
Definition: MooseMesh.h:1564
processor_id_type processor_id() const

◆ ownedFaceInfoEnd()

MooseMesh::face_info_iterator MooseMesh::ownedFaceInfoEnd ( )
inherited

Definition at line 1302 of file MooseMesh.C.

Referenced by LinearSystem::computeGradients(), NonlinearSystemBase::computeJacobianInternal(), LinearSystem::computeLinearSystemInternal(), NonlinearSystemBase::computeResidualAndJacobianInternal(), and NonlinearSystemBase::computeResidualInternal().

1303 {
1304  return face_info_iterator(
1305  _face_info.end(),
1306  _face_info.end(),
1308 }
std::vector< const FaceInfo * > _face_info
Holds only those FaceInfo objects that have processor_id equal to this process&#39;s id, e.g.
Definition: MooseMesh.h:1564
processor_id_type processor_id() const

◆ paramError()

template<typename... Args>
void MooseBaseParameterInterface::paramError ( const std::string &  param,
Args...  args 
) const
inherited

Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.

If this object's parameters were not created directly by the Parser, then this function falls back to the normal behavior of mooseError - only printing a message using the given args.

Definition at line 237 of file MooseBaseParameterInterface.h.

Referenced by HierarchicalGridPartitioner::_do_partition(), SetupDebugAction::act(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), DiffusionCG::addFEKernels(), DiffusionFV::addFVKernels(), ADDGKernel::ADDGKernel(), DiffusionCG::addNonlinearVariables(), ReporterPointSource::addPoints(), ADIntegratedBCTempl< T >::ADIntegratedBCTempl(), ADKernelTempl< T >::ADKernelTempl(), ADNodalKernel::ADNodalKernel(), ADPenaltyPeriodicSegmentalConstraint::ADPenaltyPeriodicSegmentalConstraint(), ADPeriodicSegmentalConstraint::ADPeriodicSegmentalConstraint(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), AdvectiveFluxAux::AdvectiveFluxAux(), ADVectorFunctionDirichletBC::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), ArrayBodyForce::ArrayBodyForce(), ArrayDGKernel::ArrayDGKernel(), ArrayDGLowerDKernel::ArrayDGLowerDKernel(), ArrayDirichletBC::ArrayDirichletBC(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), ArrayIntegratedBC::ArrayIntegratedBC(), ArrayKernel::ArrayKernel(), ArrayLowerDIntegratedBC::ArrayLowerDIntegratedBC(), ArrayParsedAux::ArrayParsedAux(), ArrayPenaltyDirichletBC::ArrayPenaltyDirichletBC(), ArrayVacuumBC::ArrayVacuumBC(), AuxKernelTempl< Real >::AuxKernelTempl(), BlockDeletionGenerator::BlockDeletionGenerator(), BlockWeightedPartitioner::BlockWeightedPartitioner(), BoundsBase::BoundsBase(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), BuildArrayVariableAux::BuildArrayVariableAux(), PiecewiseTabularBase::buildFromFile(), CartesianGridDivision::CartesianGridDivision(), UserObjectInterface::castUserObject(), checkComponent(), MeshGenerator::checkGetMesh(), PostprocessorInterface::checkParam(), PhysicsBase::checkParamsBothSetOrNotSet(), Checkpoint::Checkpoint(), PhysicsBase::checkSecondParamSetOnlyIfFirstOneTrue(), Coupleable::checkVar(), MultiAppTransfer::checkVariable(), PhysicsBase::checkVectorParamsSameLength(), CircularBoundaryCorrectionGenerator::CircularBoundaryCorrectionGenerator(), CircularBoundaryCorrectionGenerator::circularCenterCalculator(), MultiAppGeneralFieldTransfer::closestToPosition(), CoarsenBlockGenerator::CoarsenBlockGenerator(), CombinerGenerator::CombinerGenerator(), CompositionDT::CompositionDT(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), LibtorchNeuralNetControl::conditionalParameterError(), ConstantVectorPostprocessor::ConstantVectorPostprocessor(), ContainsPointAux::ContainsPointAux(), CopyValueAux::CopyValueAux(), Coupleable::Coupleable(), CoupledForceTempl< is_ad >::CoupledForceTempl(), CoupledValueFunctionMaterialTempl< is_ad >::CoupledValueFunctionMaterialTempl(), MultiApp::createApp(), MeshGeneratorSystem::createMeshGenerator(), CylindricalGridDivision::CylindricalGridDivision(), ConstantReporter::declareConstantReporterValues(), AccumulateReporter::declareLateValues(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DGLowerDKernel::DGLowerDKernel(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), ElementExtremeFunctorValueTempl< is_ad >::ElementExtremeFunctorValueTempl(), ElementExtremeValue::ElementExtremeValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementLengthAux::ElementLengthAux(), ElementLpNormAux::ElementLpNormAux(), ElementValueSampler::ElementValueSampler(), ElementVectorL2Error::ElementVectorL2Error(), ReporterPointSource::errorCheck(), MultiAppNearestNodeTransfer::execute(), MultiAppUserObjectTransfer::execute(), ExtraElementIDAux::ExtraElementIDAux(), ExtraElementIntegerDivision::ExtraElementIntegerDivision(), FEProblemSolve::FEProblemSolve(), FillBetweenCurvesGenerator::FillBetweenCurvesGenerator(), FillBetweenSidesetsGenerator::FillBetweenSidesetsGenerator(), ReporterPointSource::fillPoint(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), InternalSideIndicator::finalize(), FixedPointSolve::FixedPointSolve(), ForcingFunctionAux::ForcingFunctionAux(), FunctionArrayAux::FunctionArrayAux(), FunctionValuePostprocessor::FunctionValuePostprocessor(), FunctorADConverterTempl< T >::FunctorADConverterTempl(), FunctorAux::FunctorAux(), FunctorBinnedValuesDivision::FunctorBinnedValuesDivision(), FunctorElementalGradientAuxTempl< is_ad >::FunctorElementalGradientAuxTempl(), FunctorPositions::FunctorPositions(), FunctorVectorElementalAuxTempl< is_ad >::FunctorVectorElementalAuxTempl(), FVFluxBC::FVFluxBC(), FVInterfaceKernel::FVInterfaceKernel(), FVOneVarDiffusionInterface::FVOneVarDiffusionInterface(), FVTwoVarContinuityConstraint::FVTwoVarContinuityConstraint(), BoundaryDeletionGenerator::generate(), ElementsToTetrahedronsConverter::generate(), ExtraNodesetGenerator::generate(), FillBetweenSidesetsGenerator::generate(), PlaneIDMeshGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), AddMetaDataGenerator::generate(), FillBetweenCurvesGenerator::generate(), BlockToMeshConverterGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), CutMeshByPlaneGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), CoarsenBlockGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), BlockDeletionGenerator::generate(), BreakMeshByBlockGenerator::generate(), CombinerGenerator::generate(), MeshCollectionGenerator::generate(), MeshExtruderGenerator::generate(), ParsedCurveGenerator::generate(), StackGenerator::generate(), StitchedMeshGenerator::generate(), AdvancedExtruderGenerator::generate(), BreakMeshByElementGenerator::generate(), CircularBoundaryCorrectionGenerator::generate(), XYDelaunayGenerator::generate(), XYMeshLineCutter::generate(), PatternedMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), GenericFunctorGradientMaterialTempl< is_ad >::GenericFunctorGradientMaterialTempl(), GenericFunctorMaterialTempl< is_ad >::GenericFunctorMaterialTempl(), GenericVectorFunctorMaterialTempl< is_ad >::GenericVectorFunctorMaterialTempl(), PropertyReadFile::getBlockData(), PropertyReadFile::getData(), Sampler::getGlobalSamples(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), Sampler::getLocalSamples(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), Sampler::getNextLocalRow(), PostprocessorInterface::getPostprocessorNameInternal(), PostprocessorInterface::getPostprocessorValueInternal(), MultiAppNearestNodeTransfer::getTargetLocalNodes(), UserObjectInterface::getUserObjectBase(), UserObjectInterface::getUserObjectName(), HFEMDirichletBC::HFEMDirichletBC(), MultiApp::init(), DistributedPositions::initialize(), BlockWeightedPartitioner::initialize(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), PhysicsBase::initializePhysics(), MultiAppCloneReporterTransfer::initialSetup(), ReferenceResidualProblem::initialSetup(), MultiAppVariableValueSamplePostprocessorTransfer::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), MultiAppDofCopyTransfer::initialSetup(), HistogramVectorPostprocessor::initialSetup(), PiecewiseConstantFromCSV::initialSetup(), LibtorchControlValuePostprocessor::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), AddMetaDataGenerator::inputChecker(), IntegratedBC::IntegratedBC(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceValueUserObjectAux::InterfaceValueUserObjectAux(), InterpolatedStatefulMaterialTempl< T >::InterpolatedStatefulMaterialTempl(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), MultiApp::keepSolutionDuringRestore(), Kernel::Kernel(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LinearCombinationFunction::LinearCombinationFunction(), LowerDIntegratedBC::LowerDIntegratedBC(), PNGOutput::makeMeshFunc(), MatCoupledForce::MatCoupledForce(), MaterialADConverterTempl< T >::MaterialADConverterTempl(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), PatternedMeshGenerator::mergeSubdomainNameMaps(), MeshCollectionGenerator::MeshCollectionGenerator(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MeshDivisionAux::MeshDivisionAux(), MeshGenerator::MeshGenerator(), MooseLinearVariableFV< Real >::MooseLinearVariableFV(), MoosePreconditioner::MoosePreconditioner(), MooseVariableBase::MooseVariableBase(), MortarConstraintBase::MortarConstraintBase(), MortarNodalAuxKernelTempl< ComputeValueType >::MortarNodalAuxKernelTempl(), MultiApp::moveApp(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldNearestLocationTransfer::MultiAppGeneralFieldNearestLocationTransfer(), MultiAppGeneralFieldShapeEvaluationTransfer::MultiAppGeneralFieldShapeEvaluationTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppGeometricInterpolationTransfer::MultiAppGeometricInterpolationTransfer(), MultiAppNearestNodeTransfer::MultiAppNearestNodeTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorToAuxScalarTransfer::MultiAppPostprocessorToAuxScalarTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppProjectionTransfer::MultiAppProjectionTransfer(), MultiAppReporterTransfer::MultiAppReporterTransfer(), MultiAppScalarToAuxScalarTransfer::MultiAppScalarToAuxScalarTransfer(), MultiAppShapeEvaluationTransfer::MultiAppShapeEvaluationTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), MultiAppVectorPostprocessorTransfer::MultiAppVectorPostprocessorTransfer(), NestedDivision::NestedDivision(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalPatchRecoveryAux::NodalPatchRecoveryAux(), NodalValueSampler::NodalValueSampler(), Output::Output(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedElementDeletionGenerator::ParsedElementDeletionGenerator(), ParsedFunctorMaterialTempl< is_ad >::ParsedFunctorMaterialTempl(), ParsedNodeTransformGenerator::ParsedNodeTransformGenerator(), PatchMeshGenerator::PatchMeshGenerator(), PatternedMeshGenerator::PatternedMeshGenerator(), PenaltyPeriodicSegmentalConstraint::PenaltyPeriodicSegmentalConstraint(), PeriodicSegmentalConstraint::PeriodicSegmentalConstraint(), PIDTransientControl::PIDTransientControl(), PlaneDeletionGenerator::PlaneDeletionGenerator(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), PointwiseRenormalizeVector::PointwiseRenormalizeVector(), PolyLineMeshGenerator::PolyLineMeshGenerator(), ReporterInterface::possiblyCheckHasReporter(), VectorPostprocessorInterface::possiblyCheckHasVectorPostprocessor(), LibmeshPartitioner::prepareBlocksForSubdomainPartitioner(), ProjectedMaterialPropertyNodalPatchRecoveryAux::ProjectedMaterialPropertyNodalPatchRecoveryAux(), PropertyReadFile::PropertyReadFile(), RandomIC::RandomIC(), MultiApp::readCommandLineArguments(), PropertyReadFile::readData(), SolutionUserObject::readXda(), ReferenceResidualProblem::ReferenceResidualProblem(), RefineBlockGenerator::RefineBlockGenerator(), RefineSidesetGenerator::RefineSidesetGenerator(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), ReporterPointSource::ReporterPointSource(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), MooseMesh::setPartitioner(), SideSetsGeneratorBase::setup(), TimeSequenceStepperBase::setupSequence(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SingleRankPartitioner::SingleRankPartitioner(), SphericalGridDivision::SphericalGridDivision(), SymmetryTransformGenerator::SymmetryTransformGenerator(), Terminator::Terminator(), TimeDerivativeAux::TimeDerivativeAux(), Transfer::Transfer(), TransformGenerator::TransformGenerator(), TransientMultiApp::TransientMultiApp(), ParsedCurveGenerator::tSectionSpaceDefiner(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), UserObject::UserObject(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), VolumeAux::VolumeAux(), XYDelaunayGenerator::XYDelaunayGenerator(), and XYMeshLineCutter::XYMeshLineCutter().

238 {
239  Moose::show_trace = false;
240  _moose_base.callMooseError(paramErrorMsg(param, std::forward<Args>(args)...),
241  /* with_prefix = */ false);
242  Moose::show_trace = true;
243 }
bool show_trace
Set to true (the default) to print the stack trace with error and warning messages - false to omit it...
Definition: Moose.C:649
const MooseBase & _moose_base
The MooseBase object that inherits this class.
std::string paramErrorMsg(const std::string &param, Args... args) const
void callMooseError(std::string msg, const bool with_prefix) const
Calls moose error with the message msg.
Definition: MooseBase.C:33

◆ parameters()

const InputParameters& MooseBaseParameterInterface::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 62 of file MooseBaseParameterInterface.h.

Referenced by SetupDebugAction::act(), CommonOutputAction::act(), Action::Action(), FEProblemBase::addAnyRedistributers(), FEProblemBase::addAuxKernel(), FEProblemBase::addAuxScalarKernel(), DisplacedProblem::addAuxVariable(), FEProblemBase::addBoundaryCondition(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), FEProblemBase::addDGKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), FEProblemBase::addFunction(), FEProblemBase::addFunctorMaterial(), FEProblemBase::addFVBC(), FEProblemBase::addFVInitialCondition(), FEProblemBase::addFVInterfaceKernel(), FEProblemBase::addFVKernel(), FEProblemBase::addIndicator(), FEProblemBase::addInitialCondition(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), FEProblemBase::addKernel(), FEProblemBase::addLinearFVBC(), FEProblemBase::addLinearFVKernel(), FEProblem::addLineSearch(), FEProblemBase::addMarker(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMeshDivision(), FEProblemBase::addMultiApp(), FEProblemBase::addNodalKernel(), FEProblemBase::addObject(), FEProblemBase::addObjectParamsHelper(), FEProblemBase::addOutput(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), DisplacedProblem::addVariable(), FEProblemBase::addVectorPostprocessor(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), AdvancedOutput::AdvancedOutput(), ADVectorFunctionDirichletBC::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), assemble_l2(), Moose::assemble_matrix(), PhysicsBase::assertParamDefined(), Action::associateWithParameter(), AuxKernelTempl< Real >::AuxKernelTempl(), AuxScalarKernel::AuxScalarKernel(), BoundsBase::BoundsBase(), MooseMesh::buildTypedMesh(), UserObjectInterface::castUserObject(), PostprocessorInterface::checkParam(), PhysicsBase::checkSecondParamSetOnlyIfFirstOneTrue(), OversampleOutput::cloneMesh(), Moose::compute_bounds(), Moose::compute_jacobian(), Moose::compute_nearnullspace(), Moose::compute_nullspace(), Moose::compute_postcheck(), Moose::compute_transpose_nullspace(), LibtorchNeuralNetControl::conditionalParameterError(), Console::Console(), CommonOutputAction::create(), MultiApp::createApp(), Postprocessor::declareValue(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), Executor::Executor(), Exodus::Exodus(), FEProblem::FEProblem(), FEProblemBase::FEProblemBase(), FixedPointSolve::FixedPointSolve(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), GapValueAux::GapValueAux(), ParsedSubdomainMeshGenerator::generate(), MooseBaseParameterInterface::getCheckedPointerParam(), ActionWarehouse::getCurrentActionName(), ExecutorInterface::getExecutor(), Material::getMaterial(), ReporterInterface::getReporterName(), Reporter::getReporterValueName(), UserObjectInterface::getUserObjectName(), VectorPostprocessorInterface::getVectorPostprocessorName(), GhostingUserObject::GhostingUserObject(), AttribSystem::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), FullSolveMultiApp::initialSetup(), FEProblemBase::initNullSpaceVectors(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceIntegralVariableValuePostprocessor::InterfaceIntegralVariableValuePostprocessor(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), isValid(), IterationAdaptiveDT::IterationAdaptiveDT(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), MooseObject::MooseObject(), MooseVariableInterface< Real >::MooseVariableInterface(), MultiApp::MultiApp(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), NodeFaceConstraint::NodeFaceConstraint(), OverlayMeshGenerator::OverlayMeshGenerator(), PatchMeshGenerator::PatchMeshGenerator(), PenetrationAux::PenetrationAux(), PicardSolve::PicardSolve(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), ProjectedStatefulMaterialStorageAction::processProperty(), PropertyReadFile::PropertyReadFile(), PseudoTimestep::PseudoTimestep(), RandomIC::RandomIC(), InputParameterWarehouse::removeInputParameters(), OutputWarehouse::resetFileBase(), FEProblem::setInputParametersFEProblem(), FEProblemBase::setInputParametersFEProblem(), SideSetsGeneratorBase::setup(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SteffensenSolve::SteffensenSolve(), DumpObjectsProblem::stringifyParameters(), TaggingInterface::TaggingInterface(), Transfer::Transfer(), Transient::Transient(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), and VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl().

62 { return _pars; }
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.

◆ paramInfo()

template<typename... Args>
void MooseBaseParameterInterface::paramInfo ( const std::string &  param,
Args...  args 
) const
inherited

Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.

If this object's parameters were not created directly by the Parser, then this function falls back to the normal behavior of mooseInfo - only printing a message using the given args.

Definition at line 254 of file MooseBaseParameterInterface.h.

Referenced by TransientMultiApp::TransientMultiApp().

255 {
256  mooseInfo(paramErrorMsg(param, std::forward<Args>(args)...));
257 }
void mooseInfo(Args &&... args)
Emit an informational message with the given stringified, concatenated args.
Definition: MooseError.h:366
std::string paramErrorMsg(const std::string &param, Args... args) const

◆ paramWarning()

template<typename... Args>
void MooseBaseParameterInterface::paramWarning ( const std::string &  param,
Args...  args 
) const
inherited

Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.

If this object's parameters were not created directly by the Parser, then this function falls back to the normal behavior of mooseWarning - only printing a message using the given args.

Definition at line 247 of file MooseBaseParameterInterface.h.

Referenced by MultiAppNearestNodeTransfer::execute(), FEProblemSolve::FEProblemSolve(), UniqueExtraIDMeshGenerator::generate(), PlaneIDMeshGenerator::generate(), Terminator::initialSetup(), and MooseMesh::MooseMesh().

248 {
249  mooseWarning(paramErrorMsg(param, std::forward<Args>(args)...));
250 }
void mooseWarning(Args &&... args)
Emit a warning message with the given stringified, concatenated args.
Definition: MooseError.h:333
std::string paramErrorMsg(const std::string &param, Args... args) const

◆ partitionerName()

const MooseEnum& MooseMesh::partitionerName ( ) const
inlineinherited

Definition at line 999 of file MooseMesh.h.

Referenced by ConsoleUtils::outputMeshInformation().

999 { return _partitioner_name; }
MooseEnum _partitioner_name
The partitioner used on this mesh.
Definition: MooseMesh.h:1393

◆ partitioning()

MooseEnum MooseMesh::partitioning ( )
staticinherited

returns MooseMesh partitioning options so other classes can use it

Definition at line 3645 of file MooseMesh.C.

Referenced by MooseMesh::validParams().

3646 {
3647  MooseEnum partitioning("default=-3 metis=-2 parmetis=-1 linear=0 centroid hilbert_sfc morton_sfc",
3648  "default");
3649  return partitioning;
3650 }
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:31
static MooseEnum partitioning()
returns MooseMesh partitioning options so other classes can use it
Definition: MooseMesh.C:3645

◆ perfGraph()

PerfGraph & PerfGraphInterface::perfGraph ( )
inherited

Get the PerfGraph.

Definition at line 78 of file PerfGraphInterface.C.

Referenced by CommonOutputAction::act(), PerfGraphData::finalize(), and PerfGraphOutput::output().

79 {
80  return _pg_moose_app.perfGraph();
81 }
MooseApp & _pg_moose_app
The MooseApp that owns the PerfGraph.
PerfGraph & perfGraph()
Get the PerfGraph for this app.
Definition: MooseApp.h:133

◆ prepare()

bool MooseMesh::prepare ( const MeshBase *  mesh_to_clone)
inherited

Calls prepare_for_use() if the underlying MeshBase object isn't prepared, then communicates various boundary information on parallel meshes.

Also calls update() internally. Instead of calling prepare_for_use on the currently held MeshBase object, a mesh_to_clone can be provided. If it is provided (e.g. this method is given a non-null argument), then _mesh will be assigned a clone of the mesh_to_clone. The provided mesh_to_clone must already be prepared

Parameters
mesh_to_cloneIf nonnull, we will clone this mesh instead of preparing our current one
Returns
Whether the libMesh mesh was prepared. This should really only be relevant in MOOSE framework contexts where we need to make a decision about what to do with the displaced mesh. If the reference mesh base object has prepare_for_use called (e.g. this method returns true when called for the reference mesh), then we must pass the reference mesh base object into this method when we call this for the displaced mesh. This is because the displaced mesh must be an exact clone of the reference mesh. We have seen that prepare_for_use called on two previously identical meshes can result in two different meshes even with Metis partitioning

Definition at line 365 of file MooseMesh.C.

366 {
367  TIME_SECTION("prepare", 2, "Preparing Mesh", true);
368 
369  bool called_prepare_for_use = false;
370 
371  mooseAssert(_mesh, "The MeshBase has not been constructed");
372 
373  if (!dynamic_cast<DistributedMesh *>(&getMesh()) || _is_nemesis)
374  // For whatever reason we do not want to allow renumbering here nor ever in the future?
375  getMesh().allow_renumbering(false);
376 
377  if (mesh_to_clone)
378  {
379  mooseAssert(mesh_to_clone->is_prepared(),
380  "The mesh we wish to clone from must already be prepared");
381  _mesh = mesh_to_clone->clone();
382  _moose_mesh_prepared = false;
383  }
384  else if (!_mesh->is_prepared())
385  {
386  _mesh->prepare_for_use();
387  _moose_mesh_prepared = false;
388  called_prepare_for_use = true;
389  }
390 
392  return called_prepare_for_use;
393 
394  // Collect (local) subdomain IDs
395  _mesh_subdomains.clear();
396  for (const auto & elem : getMesh().element_ptr_range())
397  _mesh_subdomains.insert(elem->subdomain_id());
398 
399  // add explicitly requested subdomains
400  if (isParamValid("add_subdomain_ids"))
401  {
402  const auto add_subdomain_id = getParam<std::vector<SubdomainID>>("add_subdomain_ids");
403  _mesh_subdomains.insert(add_subdomain_id.begin(), add_subdomain_id.end());
404  }
405 
406  // Make sure nodesets have been generated
408 
409  // Collect (local) boundary IDs
410  const std::set<BoundaryID> & local_bids = getMesh().get_boundary_info().get_boundary_ids();
411  _mesh_boundary_ids.insert(local_bids.begin(), local_bids.end());
412 
413  const std::set<BoundaryID> & local_node_bids =
414  getMesh().get_boundary_info().get_node_boundary_ids();
415  _mesh_nodeset_ids.insert(local_node_bids.begin(), local_node_bids.end());
416 
417  const std::set<BoundaryID> & local_side_bids =
418  getMesh().get_boundary_info().get_side_boundary_ids();
419  _mesh_sideset_ids.insert(local_side_bids.begin(), local_side_bids.end());
420 
421  // Communicate subdomain and boundary IDs if this is a parallel mesh
422  if (!getMesh().is_serial())
423  {
428  }
429 
431  {
432  if (!_coord_system_set)
433  setCoordSystem(_provided_coord_blocks, getParam<MultiMooseEnum>("coord_type"));
434  else if (_pars.isParamSetByUser("coord_type"))
435  mooseError(
436  "Trying to set coordinate system type information based on the user input file, but "
437  "the coordinate system type information has already been set programmatically! "
438  "Either remove your coordinate system type information from the input file, or contact "
439  "your application developer");
440  }
441 
442  // Set general axisymmetric axes if provided
443  if (isParamValid("rz_coord_blocks") && isParamValid("rz_coord_origins") &&
444  isParamValid("rz_coord_directions"))
445  {
446  const auto rz_coord_blocks = getParam<std::vector<SubdomainName>>("rz_coord_blocks");
447  const auto rz_coord_origins = getParam<std::vector<Point>>("rz_coord_origins");
448  const auto rz_coord_directions = getParam<std::vector<RealVectorValue>>("rz_coord_directions");
449  if (rz_coord_origins.size() == rz_coord_blocks.size() &&
450  rz_coord_directions.size() == rz_coord_blocks.size())
451  {
452  std::vector<std::pair<Point, RealVectorValue>> rz_coord_axes;
453  for (unsigned int i = 0; i < rz_coord_origins.size(); ++i)
454  rz_coord_axes.push_back(std::make_pair(rz_coord_origins[i], rz_coord_directions[i]));
455 
456  setGeneralAxisymmetricCoordAxes(rz_coord_blocks, rz_coord_axes);
457 
458  if (isParamSetByUser("rz_coord_axis"))
459  mooseError("The parameter 'rz_coord_axis' may not be provided if 'rz_coord_blocks', "
460  "'rz_coord_origins', and 'rz_coord_directions' are provided.");
461  }
462  else
463  mooseError("The parameters 'rz_coord_blocks', 'rz_coord_origins', and "
464  "'rz_coord_directions' must all have the same size.");
465  }
466  else if (isParamValid("rz_coord_blocks") || isParamValid("rz_coord_origins") ||
467  isParamValid("rz_coord_directions"))
468  mooseError("If any of the parameters 'rz_coord_blocks', 'rz_coord_origins', and "
469  "'rz_coord_directions' are provided, then all must be provided.");
470 
472 
473  update();
474 
475  // Check if there is subdomain name duplication for the same subdomain ID
477 
478  _moose_mesh_prepared = true;
479 
480  return called_prepare_for_use;
481 }
bool _is_nemesis
True if a Nemesis Mesh was read in.
Definition: MooseMesh.h:1426
std::vector< SubdomainName > _provided_coord_blocks
Set for holding user-provided coordinate system type block names.
Definition: MooseMesh.h:1820
void checkDuplicateSubdomainNames()
Loop through all subdomain IDs and check if there is name duplication used for the subdomains with sa...
Definition: MooseMesh.C:4081
const Parallel::Communicator & _communicator
void buildNodeListFromSideList()
Calls BoundaryInfo::build_node_list_from_side_list().
Definition: MooseMesh.C:2734
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
bool _built_from_other_mesh
Whether or not this mesh was built from another mesh.
Definition: MooseMesh.h:1376
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
void update()
Calls buildNodeListFromSideList(), buildNodeList(), and buildBndElemList().
Definition: MooseMesh.C:484
std::set< BoundaryID > _mesh_nodeset_ids
Definition: MooseMesh.h:1482
void setCoordSystem(const std::vector< SubdomainName > &blocks, const MultiMooseEnum &coord_sys)
Set the coordinate system for the provided blocks to coord_sys.
Definition: MooseMesh.C:3851
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1480
bool _moose_mesh_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:1429
bool _coord_system_set
Whether the coordinate system has been set.
Definition: MooseMesh.h:1817
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was by the user.
bool isParamSetByUser(const std::string &nm) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
std::set< BoundaryID > _mesh_sideset_ids
Definition: MooseMesh.h:1481
void setGeneralAxisymmetricCoordAxes(const std::vector< SubdomainName > &blocks, const std::vector< std::pair< Point, RealVectorValue >> &axes)
Sets the general coordinate axes for axisymmetric blocks.
Definition: MooseMesh.C:3965
bool detectOrthogonalDimRanges(Real tol=1e-6)
This routine determines whether the Mesh is a regular orthogonal mesh (i.e.
Definition: MooseMesh.C:1700
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
std::set< SubdomainID > _mesh_subdomains
A set of subdomain IDs currently present in the mesh.
Definition: MooseMesh.h:1472
void set_union(T &data, const unsigned int root_id) const

◆ prepared() [1/2]

bool MooseMesh::prepared ( ) const
inherited

Setter/getter for whether the mesh is prepared.

Definition at line 2888 of file MooseMesh.C.

Referenced by MooseMesh::needsPrepareForUse(), AnnularMesh::prepared(), and GeneratedMesh::prepared().

2889 {
2890  return _mesh->is_prepared() && _moose_mesh_prepared;
2891 }
bool _moose_mesh_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:1429
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390

◆ prepared() [2/2]

void MooseMesh::prepared ( bool  state)
virtualinherited

If we are explicitly setting the mesh to not prepared, then we've likely modified the mesh and can no longer make assumptions about orthogonality. We really should recheck.

Reimplemented in AnnularMesh, and GeneratedMesh.

Definition at line 2894 of file MooseMesh.C.

2895 {
2896  if (state)
2897  mooseError("We don't have any right to tell the libmesh mesh that it *is* prepared. Only a "
2898  "call to prepare_for_use should tell us that");
2899 
2900  // Some people may call this even before we have a MeshBase object. This isn't dangerous really
2901  // because when the MeshBase object is born, it knows it's in an unprepared state
2902  if (_mesh)
2903  _mesh->set_isnt_prepared();
2904 
2905  // If the libMesh mesh isn't preparead, then our MooseMesh wrapper is also no longer prepared
2906  _moose_mesh_prepared = false;
2907 
2912  _regular_orthogonal_mesh = false;
2913 }
bool _moose_mesh_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:1429
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1533

◆ printInfo()

void MooseMesh::printInfo ( std::ostream &  os = libMesh::out,
const unsigned int  verbosity = 0 
) const
inherited

Calls print_info() on the underlying Mesh.

Definition at line 3213 of file MooseMesh.C.

Referenced by Adaptivity::adaptMesh().

3214 {
3215  os << '\n';
3216  getMesh().print_info(os, verbosity);
3217  os << std::flush;
3218 }
std::basic_ostream< charT, traits > * os
Definition: InfixIterator.h:33
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ queryElemPtr() [1/2]

Elem * MooseMesh::queryElemPtr ( const dof_id_type  i)
virtualinherited

◆ queryElemPtr() [2/2]

const Elem * MooseMesh::queryElemPtr ( const dof_id_type  i) const
virtualinherited

Definition at line 2882 of file MooseMesh.C.

2883 {
2884  return getMesh().query_elem_ptr(i);
2885 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ queryNodePtr() [1/2]

const Node * MooseMesh::queryNodePtr ( const dof_id_type  i) const
virtualinherited

Definition at line 663 of file MooseMesh.C.

Referenced by NonlinearSystemBase::findImplicitGeometricCouplingEntries(), MooseMesh::nodeRef(), MooseMesh::queryNodePtr(), and EqualValueBoundaryConstraint::updateConstrainedNodes().

664 {
665  if (i > getMesh().max_node_id())
666  {
667  auto it = _quadrature_nodes.find(i);
668  if (it == _quadrature_nodes.end())
669  return nullptr;
670  auto & node_ptr = it->second;
671  mooseAssert(node_ptr, "Uninitialized quadrature node");
672  return node_ptr;
673  }
674 
675  return getMesh().query_node_ptr(i);
676 }
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1503
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ queryNodePtr() [2/2]

Node * MooseMesh::queryNodePtr ( const dof_id_type  i)
virtualinherited

Definition at line 679 of file MooseMesh.C.

680 {
681  return const_cast<Node *>(const_cast<const MooseMesh *>(this)->queryNodePtr(i));
682 }
virtual const Node * queryNodePtr(const dof_id_type i) const
Definition: MooseMesh.C:663
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88

◆ refinedElementRange()

ConstElemPointerRange * MooseMesh::refinedElementRange ( ) const
inherited

Return a range that is suitable for threaded execution over elements that were just refined.

Returns
The Parent elements that are now set to be INACTIVE. Their children are the new elements.

Definition at line 734 of file MooseMesh.C.

Referenced by FEProblemBase::meshChangedHelper().

735 {
736  return _refined_elements.get();
737 }
std::unique_ptr< ConstElemPointerRange > _refined_elements
The elements that were just refined.
Definition: MooseMesh.h:1432

◆ registerTimedSection() [1/2]

PerfID PerfGraphInterface::registerTimedSection ( const std::string &  section_name,
const unsigned int  level 
) const
protectedinherited

Call to register a named section for timing.

Parameters
section_nameThe name of the code section to be timed
levelThe importance of the timer - lower is more important (0 will always come out)
Returns
The ID of the section - use when starting timing

Definition at line 53 of file PerfGraphInterface.C.

55 {
56  const auto timed_section_name = timedSectionName(section_name);
57  if (!moose::internal::getPerfGraphRegistry().sectionExists(timed_section_name))
58  return moose::internal::getPerfGraphRegistry().registerSection(timed_section_name, level);
59  else
60  return moose::internal::getPerfGraphRegistry().sectionID(timed_section_name);
61 }
PerfID registerSection(const std::string &section_name, const unsigned int level)
Call to register a named section for timing.
std::string timedSectionName(const std::string &section_name) const
PerfID sectionID(const std::string &section_name) const
Given a name return the PerfID The name of the section.
PerfGraphRegistry & getPerfGraphRegistry()
Get the global PerfGraphRegistry singleton.

◆ registerTimedSection() [2/2]

PerfID PerfGraphInterface::registerTimedSection ( const std::string &  section_name,
const unsigned int  level,
const std::string &  live_message,
const bool  print_dots = true 
) const
protectedinherited

Call to register a named section for timing.

Parameters
section_nameThe name of the code section to be timed
levelThe importance of the timer - lower is more important (0 will always come out)
live_messageThe message to be printed to the screen during execution
print_dotsWhether or not progress dots should be printed for this section
Returns
The ID of the section - use when starting timing

Definition at line 64 of file PerfGraphInterface.C.

68 {
69  const auto timed_section_name = timedSectionName(section_name);
70  if (!moose::internal::getPerfGraphRegistry().sectionExists(timed_section_name))
72  timedSectionName(section_name), level, live_message, print_dots);
73  else
74  return moose::internal::getPerfGraphRegistry().sectionID(timed_section_name);
75 }
PerfID registerSection(const std::string &section_name, const unsigned int level)
Call to register a named section for timing.
std::string timedSectionName(const std::string &section_name) const
PerfID sectionID(const std::string &section_name) const
Given a name return the PerfID The name of the section.
PerfGraphRegistry & getPerfGraphRegistry()
Get the global PerfGraphRegistry singleton.

◆ restartableName()

std::string Restartable::restartableName ( const std::string &  data_name) const
protectedinherited

Gets the name of a piece of restartable data given a data name, adding the system name and object name prefix.

This should only be used in this interface and in testing.

Definition at line 66 of file Restartable.C.

Referenced by Restartable::declareRecoverableData(), and Restartable::declareRestartableDataHelper().

67 {
68  return _restartable_system_name + "/" + _restartable_name + "/" + data_name;
69 }
std::string _restartable_name
The name of the object.
Definition: Restartable.h:243
const std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:230

◆ safeClone()

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

A safer version of the clone() method that hands back an allocated object wrapped in a smart pointer.

This makes it much less likely that the caller will leak the memory in question.

Implements MooseMesh.

Definition at line 67 of file RinglebMesh.C.

68 {
69  return _app.getFactory().copyConstruct(*this);
70 }
std::unique_ptr< T > copyConstruct(const T &object)
Copy constructs the object object.
Definition: Factory.h:310
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
Definition: MooseApp.h:396
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84

◆ setAxisymmetricCoordAxis()

void MooseMesh::setAxisymmetricCoordAxis ( const MooseEnum rz_coord_axis)
inherited

For axisymmetric simulations, set the symmetry coordinate axis.

For r in the x-direction, z in the y-direction the coordinate axis would be y

Definition at line 3957 of file MooseMesh.C.

Referenced by FEProblemBase::setAxisymmetricCoordAxis().

3958 {
3959  _rz_coord_axis = rz_coord_axis;
3960 
3962 }
void updateCoordTransform()
Update the coordinate transformation object based on our coordinate system data.
Definition: MooseMesh.C:4029
unsigned int _rz_coord_axis
Storage for RZ axis selection.
Definition: MooseMesh.h:1807

◆ setBoundaryName()

void MooseMesh::setBoundaryName ( BoundaryID  boundary_id,
BoundaryName  name 
)
inherited

This method sets the boundary name of the boundary based on the id parameter.

Definition at line 1555 of file MooseMesh.C.

Referenced by ActivateElementsUserObjectBase::setNewBoundayName().

1556 {
1557  BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1558 
1559  // We need to figure out if this boundary is a sideset or nodeset
1560  if (boundary_info.get_side_boundary_ids().count(boundary_id))
1561  boundary_info.sideset_name(boundary_id) = name;
1562  else
1563  boundary_info.nodeset_name(boundary_id) = name;
1564 }
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ setBoundaryToNormalMap() [1/2]

void MooseMesh::setBoundaryToNormalMap ( std::unique_ptr< std::map< BoundaryID, RealVectorValue >>  boundary_map)
inherited

Sets the mapping between BoundaryID and normal vector Is called by AddAllSideSetsByNormals.

Definition at line 2952 of file MooseMesh.C.

2954 {
2955  _boundary_to_normal_map = std::move(boundary_map);
2956 }
std::unique_ptr< std::map< BoundaryID, RealVectorValue > > _boundary_to_normal_map
The boundary to normal map - valid only when AddAllSideSetsByNormals is active.
Definition: MooseMesh.h:1486

◆ setBoundaryToNormalMap() [2/2]

void MooseMesh::setBoundaryToNormalMap ( std::map< BoundaryID, RealVectorValue > *  boundary_map)
inherited

Definition at line 2959 of file MooseMesh.C.

2960 {
2961  mooseDeprecated("setBoundaryToNormalMap(std::map<BoundaryID, RealVectorValue> * boundary_map) is "
2962  "deprecated, use the unique_ptr version instead");
2963  _boundary_to_normal_map.reset(boundary_map);
2964 }
void mooseDeprecated(Args &&... args) const
std::unique_ptr< std::map< BoundaryID, RealVectorValue > > _boundary_to_normal_map
The boundary to normal map - valid only when AddAllSideSetsByNormals is active.
Definition: MooseMesh.h:1486

◆ setCoordData()

void MooseMesh::setCoordData ( const MooseMesh other_mesh)
inherited

Set the coordinate system data to that of other_mesh.

Definition at line 4066 of file MooseMesh.C.

Referenced by DisplacedProblem::DisplacedProblem().

4067 {
4068  _coord_sys = other_mesh._coord_sys;
4069  _rz_coord_axis = other_mesh._rz_coord_axis;
4071 }
std::map< SubdomainID, Moose::CoordinateSystemType > _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1804
std::unordered_map< SubdomainID, std::pair< Point, RealVectorValue > > _subdomain_id_to_rz_coord_axis
Map of subdomain ID to general axisymmetric axis.
Definition: MooseMesh.h:1810
unsigned int _rz_coord_axis
Storage for RZ axis selection.
Definition: MooseMesh.h:1807

◆ setCoordSystem()

void MooseMesh::setCoordSystem ( const std::vector< SubdomainName > &  blocks,
const MultiMooseEnum coord_sys 
)
inherited

Set the coordinate system for the provided blocks to coord_sys.

Definition at line 3851 of file MooseMesh.C.

Referenced by MooseMesh::prepare(), and FEProblemBase::setCoordSystem().

3853 {
3854  TIME_SECTION("setCoordSystem", 5, "Setting Coordinate System");
3855  if (!_provided_coord_blocks.empty() && (_provided_coord_blocks != blocks))
3856  {
3857  const std::string param_name = isParamValid("coord_block") ? "coord_block" : "block";
3858  mooseWarning("Supplied blocks in the 'setCoordSystem' method do not match the value of the "
3859  "'Mesh/",
3860  param_name,
3861  "' parameter. Did you provide different parameter values for 'Mesh/",
3862  param_name,
3863  "' and 'Problem/block'?. We will honor the parameter value from 'Mesh/",
3864  param_name,
3865  "'");
3866  mooseAssert(_coord_system_set,
3867  "If we are arriving here due to a bad specification in the Problem block, then we "
3868  "should have already set our coordinate system subdomains from the Mesh block");
3869  return;
3870  }
3871  if (_pars.isParamSetByUser("coord_type") && getParam<MultiMooseEnum>("coord_type") != coord_sys)
3872  mooseError("Supplied coordinate systems in the 'setCoordSystem' method do not match the value "
3873  "of the 'Mesh/coord_type' parameter. Did you provide different parameter values for "
3874  "'coord_type' to 'Mesh' and 'Problem'?");
3875 
3876  auto subdomains = meshSubdomains();
3877  // It's possible that a user has called this API before the mesh is prepared and consequently we
3878  // don't yet have the subdomains in meshSubdomains()
3879  for (const auto & sub_name : blocks)
3880  {
3881  const auto sub_id = getSubdomainID(sub_name);
3882  subdomains.insert(sub_id);
3883  }
3884 
3885  if (coord_sys.size() <= 1)
3886  {
3887  // We will specify the same coordinate system for all blocks
3888  const auto coord_type = coord_sys.size() == 0
3890  : Moose::stringToEnum<Moose::CoordinateSystemType>(coord_sys[0]);
3891  for (const auto sid : subdomains)
3892  _coord_sys[sid] = coord_type;
3893  }
3894  else
3895  {
3896  if (blocks.size() != coord_sys.size())
3897  mooseError("Number of blocks and coordinate systems does not match.");
3898 
3899  for (const auto i : index_range(blocks))
3900  {
3901  SubdomainID sid = getSubdomainID(blocks[i]);
3902  Moose::CoordinateSystemType coord_type =
3903  Moose::stringToEnum<Moose::CoordinateSystemType>(coord_sys[i]);
3904  _coord_sys[sid] = coord_type;
3905  }
3906 
3907  for (const auto & sid : subdomains)
3908  if (_coord_sys.find(sid) == _coord_sys.end())
3909  mooseError("Subdomain '" + Moose::stringify(sid) +
3910  "' does not have a coordinate system specified.");
3911  }
3912 
3913  _coord_system_set = true;
3914 
3916 }
std::vector< SubdomainName > _provided_coord_blocks
Set for holding user-provided coordinate system type block names.
Definition: MooseMesh.h:1820
unsigned int size() const
Return the number of active items in the MultiMooseEnum.
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
void updateCoordTransform()
Update the coordinate transformation object based on our coordinate system data.
Definition: MooseMesh.C:4029
std::map< SubdomainID, Moose::CoordinateSystemType > _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1804
subdomain_id_type SubdomainID
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:62
bool _coord_system_set
Whether the coordinate system has been set.
Definition: MooseMesh.h:1817
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was by the user.
CoordinateSystemType
Definition: MooseTypes.h:722
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
auto index_range(const T &sizable)
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:2922
SubdomainID getSubdomainID(const SubdomainName &subdomain_name) const
Get the associated subdomain ID for the subdomain name.
Definition: MooseMesh.C:1514

◆ setCustomPartitioner()

void MooseMesh::setCustomPartitioner ( Partitioner *  partitioner)
inherited

Setter for custom partitioner.

Definition at line 3446 of file MooseMesh.C.

3447 {
3448  _custom_partitioner = partitioner->clone();
3449 }
std::unique_ptr< Partitioner > _custom_partitioner
The custom partitioner.
Definition: MooseMesh.h:1397

◆ setGeneralAxisymmetricCoordAxes()

void MooseMesh::setGeneralAxisymmetricCoordAxes ( const std::vector< SubdomainName > &  blocks,
const std::vector< std::pair< Point, RealVectorValue >> &  axes 
)
inherited

Sets the general coordinate axes for axisymmetric blocks.

This method must be used if any of the following are true:

  • There are multiple axisymmetric coordinate systems
  • Any axisymmetric coordinate system axis/direction is not the +X or +Y axis
  • Any axisymmetric coordinate system does not start at (0,0,0)
Parameters
[in]blocksSubdomain names
[in]axesPair of values defining the axisymmetric coordinate axis for each subdomain. The first value is the point on the axis corresponding to the origin. The second value is the direction vector of the axis (normalization not necessary).

Definition at line 3965 of file MooseMesh.C.

Referenced by MooseMesh::prepare().

3968 {
3969  // Set the axes for the given blocks
3970  mooseAssert(blocks.size() == axes.size(), "Blocks and axes vectors must be the same length.");
3971  for (const auto i : index_range(blocks))
3972  {
3973  const auto subdomain_id = getSubdomainID(blocks[i]);
3974  const auto it = _coord_sys.find(subdomain_id);
3975  if (it == _coord_sys.end())
3976  mooseError("The block '",
3977  blocks[i],
3978  "' has not set a coordinate system. Make sure to call setCoordSystem() before "
3979  "setGeneralAxisymmetricCoordAxes().");
3980  else
3981  {
3982  if (it->second == Moose::COORD_RZ)
3983  {
3984  const auto direction = axes[i].second;
3985  if (direction.is_zero())
3986  mooseError("Only nonzero vectors may be supplied for RZ directions.");
3987 
3988  _subdomain_id_to_rz_coord_axis[subdomain_id] =
3989  std::make_pair(axes[i].first, direction.unit());
3990  }
3991  else
3992  mooseError("The block '",
3993  blocks[i],
3994  "' was provided in setGeneralAxisymmetricCoordAxes(), but the coordinate system "
3995  "for this block is not 'RZ'.");
3996  }
3997  }
3998 
3999  // Make sure there are no RZ blocks that still do not have axes
4000  const auto all_subdomain_ids = meshSubdomains();
4001  for (const auto subdomain_id : all_subdomain_ids)
4002  if (getCoordSystem(subdomain_id) == Moose::COORD_RZ &&
4003  !_subdomain_id_to_rz_coord_axis.count(subdomain_id))
4004  mooseError("The block '",
4005  getSubdomainName(subdomain_id),
4006  "' was specified to use the 'RZ' coordinate system but was not given in "
4007  "setGeneralAxisymmetricCoordAxes().");
4008 
4010 }
const std::string & getSubdomainName(SubdomainID subdomain_id) const
Return the name of a block given an id.
Definition: MooseMesh.C:1538
void updateCoordTransform()
Update the coordinate transformation object based on our coordinate system data.
Definition: MooseMesh.C:4029
std::map< SubdomainID, Moose::CoordinateSystemType > _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1804
const std::map< SubdomainID, Moose::CoordinateSystemType > & getCoordSystem() const
Get the map from subdomain ID to coordinate system type, e.g.
Definition: MooseMesh.C:3951
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::unordered_map< SubdomainID, std::pair< Point, RealVectorValue > > _subdomain_id_to_rz_coord_axis
Map of subdomain ID to general axisymmetric axis.
Definition: MooseMesh.h:1810
auto index_range(const T &sizable)
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:2922
SubdomainID getSubdomainID(const SubdomainName &subdomain_name) const
Get the associated subdomain ID for the subdomain name.
Definition: MooseMesh.C:1514

◆ setGhostedBoundaryInflation()

void MooseMesh::setGhostedBoundaryInflation ( const std::vector< Real > &  inflation)
inherited

This sets the inflation amount for the bounding box for each partition for use in ghosting boundaries.

Definition at line 2986 of file MooseMesh.C.

2987 {
2988  _ghosted_boundaries_inflation = inflation;
2989 }
std::vector< Real > _ghosted_boundaries_inflation
Definition: MooseMesh.h:1515

◆ setIsCustomPartitionerRequested()

void MooseMesh::setIsCustomPartitionerRequested ( bool  cpr)
inherited

Definition at line 3474 of file MooseMesh.C.

3475 {
3477 }
bool _custom_partitioner_requested
Definition: MooseMesh.h:1398

◆ setMeshBase()

void MooseMesh::setMeshBase ( std::unique_ptr< MeshBase >  mesh_base)
inherited

Method to set the mesh_base object.

If this method is NOT called prior to calling init(), a MeshBase object will be automatically constructed and set.

Definition at line 2619 of file MooseMesh.C.

2620 {
2621  _mesh = std::move(mesh_base);
2622  _mesh->allow_remote_element_removal(_allow_remote_element_removal);
2623 }
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1774
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1390

◆ setMeshBoundaryIDs()

void MooseMesh::setMeshBoundaryIDs ( std::set< BoundaryID boundary_IDs)
inherited

Sets the set of BoundaryIDs Is called by AddAllSideSetsByNormals.

Definition at line 2946 of file MooseMesh.C.

2947 {
2948  _mesh_boundary_ids = boundary_IDs;
2949 }
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1480

◆ setParallelType()

void MooseMesh::setParallelType ( ParallelType  parallel_type)
inlineinherited

Allow to change parallel type.

Definition at line 2079 of file MooseMesh.h.

Referenced by MooseMesh::buildTypedMesh().

2080 {
2081  _parallel_type = parallel_type;
2083 }
ParallelType _parallel_type
Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.
Definition: MooseMesh.h:1380
void determineUseDistributedMesh()
Determine whether to use a distributed mesh.
Definition: MooseMesh.C:2576

◆ setPartitioner()

void MooseMesh::setPartitioner ( MeshBase &  mesh_base,
MooseEnum partitioner,
bool  use_distributed_mesh,
const InputParameters params,
MooseObject context_obj 
)
staticinherited

Method for setting the partitioner on the passed in mesh_base object.

Definition at line 3391 of file MooseMesh.C.

Referenced by MooseMesh::setPartitionerHelper().

3396 {
3397  // Set the partitioner based on partitioner name
3398  switch (partitioner)
3399  {
3400  case -3: // default
3401  // We'll use the default partitioner, but notify the user of which one is being used...
3402  if (use_distributed_mesh)
3403  partitioner = "parmetis";
3404  else
3405  partitioner = "metis";
3406  break;
3407 
3408  // No need to explicitily create the metis or parmetis partitioners,
3409  // They are the default for serial and parallel mesh respectively
3410  case -2: // metis
3411  case -1: // parmetis
3412  break;
3413 
3414  case 0: // linear
3415  mesh_base.partitioner().reset(new LinearPartitioner);
3416  break;
3417  case 1: // centroid
3418  {
3419  if (!params.isParamValid("centroid_partitioner_direction"))
3420  context_obj.paramError(
3421  "centroid_partitioner_direction",
3422  "If using the centroid partitioner you _must_ specify centroid_partitioner_direction!");
3423 
3424  MooseEnum direction = params.get<MooseEnum>("centroid_partitioner_direction");
3425 
3426  if (direction == "x")
3427  mesh_base.partitioner().reset(new CentroidPartitioner(CentroidPartitioner::X));
3428  else if (direction == "y")
3429  mesh_base.partitioner().reset(new CentroidPartitioner(CentroidPartitioner::Y));
3430  else if (direction == "z")
3431  mesh_base.partitioner().reset(new CentroidPartitioner(CentroidPartitioner::Z));
3432  else if (direction == "radial")
3433  mesh_base.partitioner().reset(new CentroidPartitioner(CentroidPartitioner::RADIAL));
3434  break;
3435  }
3436  case 2: // hilbert_sfc
3437  mesh_base.partitioner().reset(new HilbertSFCPartitioner);
3438  break;
3439  case 3: // morton_sfc
3440  mesh_base.partitioner().reset(new MortonSFCPartitioner);
3441  break;
3442  }
3443 }
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:31
void paramError(const std::string &param, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another, i.e.

◆ setPartitionerHelper()

void MooseMesh::setPartitionerHelper ( MeshBase *  mesh = nullptr)
protectedinherited

Definition at line 3379 of file MooseMesh.C.

Referenced by MooseMesh::buildTypedMesh().

3380 {
3381  if (_use_distributed_mesh && (_partitioner_name != "default" && _partitioner_name != "parmetis"))
3382  {
3383  _partitioner_name = "parmetis";
3384  _partitioner_overridden = true;
3385  }
3386 
3388 }
static void setPartitioner(MeshBase &mesh_base, MooseEnum &partitioner, bool use_distributed_mesh, const InputParameters &params, MooseObject &context_obj)
Method for setting the partitioner on the passed in mesh_base object.
Definition: MooseMesh.C:3391
MooseEnum _partitioner_name
The partitioner used on this mesh.
Definition: MooseMesh.h:1393
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1385
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
bool _partitioner_overridden
Definition: MooseMesh.h:1394
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.

◆ setPatchUpdateStrategy()

void MooseMesh::setPatchUpdateStrategy ( Moose::PatchUpdateType  patch_update_strategy)
inherited

Set the patch size update strategy.

Definition at line 3158 of file MooseMesh.C.

3159 {
3160  _patch_update_strategy = patch_update_strategy;
3161 }
Moose::PatchUpdateType _patch_update_strategy
The patch update strategy.
Definition: MooseMesh.h:1527

◆ setSubdomainName() [1/2]

void MooseMesh::setSubdomainName ( SubdomainID  subdomain_id,
const SubdomainName &  name 
)
inherited

This method sets the name for subdomain_id to name.

Definition at line 1526 of file MooseMesh.C.

Referenced by MooseMesh::MooseMesh().

1527 {
1528  getMesh().subdomain_name(subdomain_id) = name;
1529 }
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199

◆ setSubdomainName() [2/2]

void MooseMesh::setSubdomainName ( MeshBase &  mesh,
SubdomainID  subdomain_id,
const SubdomainName &  name 
)
staticinherited

This method sets the name for subdomain_id on the provided mesh to name.

Definition at line 1532 of file MooseMesh.C.

1533 {
1534  mesh.subdomain_name(subdomain_id) = name;
1535 }
MeshBase & mesh
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57

◆ setUniformRefineLevel()

void MooseMesh::setUniformRefineLevel ( unsigned int  level,
bool  deletion = true 
)
inherited

Set uniform refinement level.

Definition at line 2973 of file MooseMesh.C.

2974 {
2975  _uniform_refine_level = level;
2977 }
unsigned int _uniform_refine_level
The level of uniform refinement requested (set to zero if AMR is disabled)
Definition: MooseMesh.h:1414
bool _skip_deletion_repartition_after_refine
Whether or not skip remote deletion and repartition after uniform refinements.
Definition: MooseMesh.h:1420

◆ setupFiniteVolumeMeshData()

void MooseMesh::setupFiniteVolumeMeshData ( ) const
inherited

Sets up the additional data needed for finite volume computations.

This involves building FaceInfo and ElemInfo objects, caching variable associations and elemental DoF indices for FV variables.

Definition at line 3842 of file MooseMesh.C.

Referenced by DisplacedProblem::init(), FEProblemBase::init(), FEProblemBase::meshChangedHelper(), and DisplacedProblem::updateMesh().

3843 {
3848 }
void cacheFVElementalDoFs() const
Cache the DoF indices for FV variables on each element.
Definition: MooseMesh.C:3762
void cacheFaceInfoVariableOwnership() const
Cache if variables live on the elements connected by the FaceInfo objects.
Definition: MooseMesh.C:3688
void buildFiniteVolumeInfo() const
Builds the face and elem info vectors that store meta-data needed for looping over and doing calculat...
Definition: MooseMesh.C:3486
void computeFiniteVolumeCoords() const
Compute the face coordinate value for all FaceInfo and ElemInfo objects.
Definition: MooseMesh.C:3624

◆ sideWithBoundaryID()

unsigned int MooseMesh::sideWithBoundaryID ( const Elem *const  elem,
const BoundaryID  boundary_id 
) const
inherited

Calls BoundaryInfo::side_with_boundary_id().

Definition at line 2772 of file MooseMesh.C.

2773 {
2774  return getMesh().get_boundary_info().side_with_boundary_id(elem, boundary_id);
2775 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850

◆ skipDeletionRepartitionAfterRefine()

bool MooseMesh::skipDeletionRepartitionAfterRefine ( ) const
inlineinherited

Return a flag indicating whether or not we should skip remote deletion and repartition after uniform refinements.

If the flag is true, uniform refinements will run more efficiently, but at the same time, there might be extra ghosting elements. The number of layers of additional ghosting elements depends on the number of uniform refinement levels. This flag should be used only when you have a "fine enough" coarse mesh and want to refine the mesh by a few levels. Otherwise, it might introduce an unbalanced workload and too large ghosting domain.

Definition at line 2073 of file MooseMesh.h.

2074 {
2076 }
bool _skip_deletion_repartition_after_refine
Whether or not skip remote deletion and repartition after uniform refinements.
Definition: MooseMesh.h:1420

◆ skipRefineWhenUseSplit()

bool MooseMesh::skipRefineWhenUseSplit ( ) const
inlineinherited

Whether or not skip uniform refinements when using a pre-split mesh.

Definition at line 570 of file MooseMesh.h.

570 { return _skip_refine_when_use_split; }
bool _skip_refine_when_use_split
Whether or not to skip uniform refinements when using a pre-split mesh.
Definition: MooseMesh.h:1417

◆ timedSectionName()

std::string PerfGraphInterface::timedSectionName ( const std::string &  section_name) const
protectedinherited
Returns
The name of the timed section with the name section_name.

Optionally adds a prefix if one is defined.

Definition at line 47 of file PerfGraphInterface.C.

Referenced by PerfGraphInterface::registerTimedSection().

48 {
49  return _prefix.empty() ? "" : (_prefix + "::") + section_name;
50 }
const std::string _prefix
A prefix to use for all sections.

◆ type()

const std::string& MooseBase::type ( ) const
inlineinherited

Get the type of this class.

Returns
the name of the type of this class

Definition at line 51 of file MooseBase.h.

Referenced by CreateProblemDefaultAction::act(), SetupDebugAction::act(), MaterialDerivativeTestAction::act(), MaterialOutputAction::act(), FEProblemBase::addAuxArrayVariable(), FEProblemBase::addAuxScalarVariable(), FEProblemBase::addAuxVariable(), FEProblemBase::addDistribution(), MooseApp::addExecutor(), MooseApp::addExecutorParams(), FEProblemBase::addFunction(), FEProblemBase::addMeshDivision(), MooseApp::addMeshGenerator(), MeshGenerator::addMeshSubgenerator(), FEProblemBase::addObject(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addTimeIntegrator(), MooseServer::addValuesToList(), DisplacedProblem::addVectorTag(), SubProblem::addVectorTag(), FEProblemBase::advanceMultiApps(), MooseApp::appendMeshGenerator(), PhysicsBase::assertParamDefined(), AuxKernelTempl< Real >::AuxKernelTempl(), FEProblemBase::backupMultiApps(), BoundaryPreservedMarker::BoundaryPreservedMarker(), DistributedRectilinearMeshGenerator::buildCube(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildPRefinementAndCoarseningMaps(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), PhysicsBase::checkRequiredTasks(), FEProblemBase::computeAuxiliaryKernels(), ADDGKernel::computeElemNeighJacobian(), DGKernel::computeElemNeighJacobian(), ElemElemConstraint::computeElemNeighJacobian(), ArrayDGKernel::computeElemNeighJacobian(), ADDGKernel::computeElemNeighResidual(), DGKernel::computeElemNeighResidual(), ElemElemConstraint::computeElemNeighResidual(), ArrayDGKernel::computeElemNeighResidual(), LowerDIntegratedBC::computeLowerDJacobian(), ArrayLowerDIntegratedBC::computeLowerDJacobian(), DGLowerDKernel::computeLowerDJacobian(), ArrayDGLowerDKernel::computeLowerDJacobian(), LowerDIntegratedBC::computeLowerDOffDiagJacobian(), ArrayLowerDIntegratedBC::computeLowerDOffDiagJacobian(), ArrayHFEMDirichletBC::computeLowerDQpJacobian(), ArrayHFEMDiffusion::computeLowerDQpJacobian(), HFEMDirichletBC::computeLowerDQpJacobian(), HFEMDiffusion::computeLowerDQpJacobian(), ArrayHFEMDirichletBC::computeLowerDQpOffDiagJacobian(), HFEMDirichletBC::computeLowerDQpOffDiagJacobian(), ArrayLowerDIntegratedBC::computeLowerDQpOffDiagJacobian(), ArrayDGLowerDKernel::computeLowerDQpOffDiagJacobian(), FEProblemBase::computeMultiAppsDT(), ADDGKernel::computeOffDiagElemNeighJacobian(), DGKernel::computeOffDiagElemNeighJacobian(), ArrayDGKernel::computeOffDiagElemNeighJacobian(), DGLowerDKernel::computeOffDiagLowerDJacobian(), ArrayDGLowerDKernel::computeOffDiagLowerDJacobian(), DGConvection::computeQpJacobian(), ScalarKernel::computeQpJacobian(), InterfaceDiffusion::computeQpJacobian(), InterfaceReaction::computeQpJacobian(), ArrayDGDiffusion::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), DGDiffusion::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), HFEMTestJump::computeQpOffDiagJacobian(), HFEMTrialJump::computeQpOffDiagJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), ArrayDGKernel::computeQpOffDiagJacobian(), ArrayHFEMDiffusion::computeQpResidual(), DGConvection::computeQpResidual(), HFEMDiffusion::computeQpResidual(), ScalarKernel::computeQpResidual(), InterfaceDiffusion::computeQpResidual(), InterfaceReaction::computeQpResidual(), ADDGAdvection::computeQpResidual(), ArrayDGDiffusion::computeQpResidual(), CoupledTiedValueConstraint::computeQpResidual(), TiedValueConstraint::computeQpResidual(), LinearNodalConstraint::computeQpResidual(), DGDiffusion::computeQpResidual(), ADDGDiffusion::computeQpResidual(), EqualValueBoundaryConstraint::computeQpResidual(), HFEMTestJump::computeQpResidual(), HFEMTrialJump::computeQpResidual(), EqualValueEmbeddedConstraint::computeQpResidual(), FEProblemBase::computeUserObjectByName(), FEProblemBase::computeUserObjects(), FEProblemBase::computeUserObjectsInternal(), BatchMaterial< Tuple, Output, Input >::construct(), DisplacedProblem::createQRules(), FEProblemBase::createQRules(), MooseApp::createRecoverablePerfGraph(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), FEProblemBase::duplicateVariableCheck(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), MooseBase::errorPrefix(), AB2PredictorCorrector::estimateTimeError(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), FEProblemBase::execTransfers(), ActionWarehouse::executeActionsWithAction(), FEProblemBase::finishMultiAppStep(), FVScalarLagrangeMultiplierInterface::FVScalarLagrangeMultiplierInterface(), SubdomainPerElementGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), PatternedMeshGenerator::generate(), MeshGenerator::generateInternal(), MultiAppTransfer::getAppInfo(), TransfiniteMeshGenerator::getEdge(), ElementGenerator::getElemType(), MooseServer::getInputLookupDefinitionNodes(), FEProblemBase::getMaterial(), FEProblemBase::getMaterialData(), MaterialOutputAction::getParams(), ReporterData::getReporterInfo(), Transient::getTimeIntegratorName(), FEProblemBase::getTransfers(), DisplacedProblem::getVectorTags(), SubProblem::getVectorTags(), CommonOutputAction::hasConsole(), FEProblemBase::hasMultiApps(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), AdvancedOutput::initAvailableLists(), FunctorPositions::initialize(), FunctorTimes::initialize(), MultiAppConservativeTransfer::initialSetup(), LinearFVDiffusion::initialSetup(), LinearFVAdvection::initialSetup(), ArrayDGDiffusion::initQpResidual(), AdvancedOutput::initShowHideLists(), RelationshipManager::isType(), FEProblemBase::logAdd(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), MooseObject::MooseObject(), DisplacedProblem::numVectorTags(), SubProblem::numVectorTags(), Console::output(), AdvancedOutput::output(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), MooseServer::parseDocumentForDiagnostics(), ProjectedStatefulMaterialStorageAction::processProperty(), MooseApp::recursivelyCreateExecutors(), SolutionInvalidInterface::registerInvalidSolutionInternal(), FEProblemBase::restoreMultiApps(), MeshRepairGenerator::separateSubdomainsByElementType(), FEProblemBase::setCoupling(), MooseApp::setupOptions(), MooseBase::typeAndName(), ScalarKernelBase::uOld(), AuxScalarKernel::uOld(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), UserObjectInterface::userObjectType(), and AdvancedOutput::wantOutput().

51 { return _type; }
const std::string _type
The type of this class.
Definition: MooseBase.h:87

◆ typeAndName()

std::string MooseBase::typeAndName ( ) const
inherited

Get the class's combined type and name; useful in error handling.

Returns
The type and name of this class in the form '<type()> "<name()>"'.

Definition at line 27 of file MooseBase.C.

Referenced by MaterialPropertyStorage::addProperty(), MeshGeneratorSystem::dataDrivenError(), ReporterContext< std::vector< T > >::finalize(), and ReporterData::getReporterInfo().

28 {
29  return type() + std::string(" \"") + name() + std::string("\"");
30 }
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:51

◆ uniformRefineLevel()

unsigned int MooseMesh::uniformRefineLevel ( ) const
inherited

Returns the level of uniform refinement requested (zero if AMR is disabled).

Definition at line 2967 of file MooseMesh.C.

Referenced by FEProblemBase::initialSetup(), and Adaptivity::uniformRefineWithProjection().

2968 {
2969  return _uniform_refine_level;
2970 }
unsigned int _uniform_refine_level
The level of uniform refinement requested (set to zero if AMR is disabled)
Definition: MooseMesh.h:1414

◆ uniqueName()

MooseObjectName MooseBaseParameterInterface::uniqueName ( ) const
inlineinherited

The unique name for accessing input parameters of this object in the InputParameterWarehouse.

Definition at line 67 of file MooseBaseParameterInterface.h.

Referenced by MooseBaseParameterInterface::connectControllableParams(), and Action::uniqueActionName().

68  {
69  return MooseObjectName(_pars.get<std::string>("_unique_name"));
70  }
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
A class for storing the names of MooseObject by tag and object name.

◆ uniqueParameterName()

MooseObjectParameterName MooseBaseParameterInterface::uniqueParameterName ( const std::string &  parameter_name) const
inlineinherited

The unique parameter name of a valid parameter of this object for accessing parameter controls.

Definition at line 52 of file MooseBaseParameterInterface.h.

53  {
55  _pars.get<std::string>("_moose_base"), _moose_base.name(), parameter_name);
56  }
const MooseBase & _moose_base
The MooseBase object that inherits this class.
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
A class for storing an input parameter name.

◆ update()

void MooseMesh::update ( )
inherited

Calls buildNodeListFromSideList(), buildNodeList(), and buildBndElemList().

Definition at line 484 of file MooseMesh.C.

Referenced by MooseMesh::meshChanged(), MooseMesh::prepare(), and EqualValueBoundaryConstraint::updateConstrainedNodes().

485 {
486  TIME_SECTION("update", 3, "Updating Mesh", true);
487 
488  // Rebuild the boundary conditions
490 
491  // Update the node to elem map
492  _node_to_elem_map.clear();
493  _node_to_elem_map_built = false;
496 
497  buildNodeList();
499  cacheInfo();
500  buildElemIDInfo();
501 
503 }
bool _node_to_elem_map_built
Definition: MooseMesh.h:1462
void buildElemIDInfo()
Build extra data for faster access to the information of extra element integers.
Definition: MooseMesh.C:862
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1571
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
A map of all of the current nodes to the elements that they are connected to.
Definition: MooseMesh.h:1461
bool _node_to_active_semilocal_elem_map_built
Definition: MooseMesh.h:1466
void cacheInfo()
Definition: MooseMesh.C:1210
void buildNodeListFromSideList()
Calls BoundaryInfo::build_node_list_from_side_list().
Definition: MooseMesh.C:2734
void buildBndElemList()
Definition: MooseMesh.C:958
void buildNodeList()
Calls BoundaryInfo::build_node_list()/build_side_list() and makes separate copies of Nodes/Elems in t...
Definition: MooseMesh.C:828
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
A map of all of the current nodes to the active elements that they are connected to.
Definition: MooseMesh.h:1465

◆ updateActiveSemiLocalNodeRange()

void MooseMesh::updateActiveSemiLocalNodeRange ( std::set< dof_id_type > &  ghosted_elems)
inherited

Clears the "semi-local" node list and rebuilds it.

Semi-local nodes consist of all nodes that belong to local and ghost elements.

Definition at line 754 of file MooseMesh.C.

Referenced by FEProblemBase::initialSetup(), FEProblemBase::meshChangedHelper(), and FEProblemBase::possiblyRebuildGeomSearchPatches().

755 {
756  TIME_SECTION("updateActiveSemiLocalNodeRange", 5, "Updating ActiveSemiLocalNode Range");
757 
758  _semilocal_node_list.clear();
759 
760  // First add the nodes connected to local elems
761  ConstElemRange * active_local_elems = getActiveLocalElementRange();
762  for (const auto & elem : *active_local_elems)
763  {
764  for (unsigned int n = 0; n < elem->n_nodes(); ++n)
765  {
766  // Since elem is const here but we require a non-const Node * to
767  // store in the _semilocal_node_list (otherwise things like
768  // UpdateDisplacedMeshThread don't work), we are using a
769  // const_cast. A more long-term fix would be to have
770  // getActiveLocalElementRange return a non-const ElemRange.
771  Node * node = const_cast<Node *>(elem->node_ptr(n));
772 
773  _semilocal_node_list.insert(node);
774  }
775  }
776 
777  // Now add the nodes connected to ghosted_elems
778  for (const auto & ghost_elem_id : ghosted_elems)
779  {
780  Elem * elem = getMesh().elem_ptr(ghost_elem_id);
781  for (unsigned int n = 0; n < elem->n_nodes(); n++)
782  {
783  Node * node = elem->node_ptr(n);
784 
785  _semilocal_node_list.insert(node);
786  }
787  }
788 
789  // Now create the actual range
790  _active_semilocal_node_range = std::make_unique<SemiLocalNodeRange>(_semilocal_node_list.begin(),
791  _semilocal_node_list.end());
792 }
std::set< Node * > _semilocal_node_list
Used for generating the semilocal node range.
Definition: MooseMesh.h:1445
ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:1041
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:623
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2850
std::unique_ptr< SemiLocalNodeRange > _active_semilocal_node_range
Definition: MooseMesh.h:1453

◆ usingGeneralAxisymmetricCoordAxes()

bool MooseMesh::usingGeneralAxisymmetricCoordAxes ( ) const
inherited

Returns true if general axisymmetric coordinate axes are being used.

Definition at line 4023 of file MooseMesh.C.

Referenced by MooseMesh::getAxisymmetricRadialCoord(), and MooseMesh::getUniqueCoordSystem().

4024 {
4025  return _subdomain_id_to_rz_coord_axis.size() > 0;
4026 }
std::unordered_map< SubdomainID, std::pair< Point, RealVectorValue > > _subdomain_id_to_rz_coord_axis
Map of subdomain ID to general axisymmetric axis.
Definition: MooseMesh.h:1810

◆ validParams()

InputParameters RinglebMesh::validParams ( )
static

Definition at line 21 of file RinglebMesh.C.

22 {
24  params.addRequiredParam<Real>("gamma", "Gamma parameter");
25  params.addRequiredParam<Real>("kmax", "Value of k on the inner wall.");
26  params.addRequiredParam<Real>("kmin", "Value of k on the outer wall.");
27  params.addRequiredParam<int>("num_q_pts",
28  "How many points to discretize the range q = (0.5, k) into.");
29  params.addRequiredParam<int>("n_extra_q_pts",
30  "How many 'extra' points should be inserted in the final element"
31  " *in addition to* the equispaced q points.");
32  params.addRequiredParam<int>("num_k_pts", "How many points in the range k=(kmin, kmax).");
33  params.addParam<boundary_id_type>("inflow_bid", 1, "The boundary id to use for the inflow");
34  params.addParam<boundary_id_type>(
35  "inner_wall_bid", 2, "The boundary id to use for the inner wall");
36  params.addParam<boundary_id_type>("outflow_bid", 3, "The boundary id to use for the outflow");
37  params.addParam<boundary_id_type>(
38  "outer_wall_bid", 4, "The boundary id to use for the outer wall");
39  params.addParam<bool>(
40  "triangles", false, "If true, all the quadrilateral elements will be split into triangles");
41  params.addClassDescription("Creates a mesh for the Ringleb problem.");
42 
43  return params;
44 }
static InputParameters validParams()
Typical "Moose-style" constructor and copy constructor.
Definition: MooseMesh.C:79
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
void addRequiredParam(const std::string &name, const std::string &doc_string)
This method adds a parameter and documentation string to the InputParameters object that will be extr...
int8_t boundary_id_type
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an option parameter and a documentation string to the InputParameters object...

Member Data Documentation

◆ _action_factory

ActionFactory& MooseBaseParameterInterface::_action_factory
protectedinherited

◆ _active_local_elem_range

std::unique_ptr<ConstElemRange> MooseMesh::_active_local_elem_range
protectedinherited

A range for use with threading.

We do this so that it doesn't have to get rebuilt all the time (which takes time).

Definition at line 1451 of file MooseMesh.h.

Referenced by MooseMesh::getActiveLocalElementRange(), and MooseMesh::meshChanged().

◆ _active_node_range

std::unique_ptr<NodeRange> MooseMesh::_active_node_range
protectedinherited

Definition at line 1454 of file MooseMesh.h.

Referenced by MooseMesh::getActiveNodeRange(), and MooseMesh::meshChanged().

◆ _active_semilocal_node_range

std::unique_ptr<SemiLocalNodeRange> MooseMesh::_active_semilocal_node_range
protectedinherited

◆ _app

MooseApp& MooseBase::_app
protectedinherited

The MOOSE application this is associated with.

Definition at line 84 of file MooseBase.h.

◆ _block_node_list

std::map<dof_id_type, std::set<SubdomainID> > MooseMesh::_block_node_list
protectedinherited

list of nodes that belongs to a specified block (domain)

Definition at line 1509 of file MooseMesh.h.

Referenced by MooseMesh::cacheInfo(), and MooseMesh::getNodeBlockIds().

◆ _bnd_elem_ids

std::unordered_map<boundary_id_type, std::unordered_set<dof_id_type> > MooseMesh::_bnd_elem_ids
protectedinherited

◆ _bnd_elem_range

std::unique_ptr<StoredRange<MooseMesh::const_bnd_elem_iterator, const BndElement *> > MooseMesh::_bnd_elem_range
protectedinherited

◆ _bnd_elems

std::vector<BndElement *> MooseMesh::_bnd_elems
protectedinherited

◆ _bnd_node_ids

std::map<boundary_id_type, std::set<dof_id_type> > MooseMesh::_bnd_node_ids
protectedinherited

Map of sets of node IDs in each boundary.

Definition at line 1493 of file MooseMesh.h.

Referenced by MooseMesh::addQuadratureNode(), MooseMesh::buildNodeList(), MooseMesh::freeBndNodes(), and MooseMesh::isBoundaryNode().

◆ _bnd_node_range

std::unique_ptr<StoredRange<MooseMesh::const_bnd_node_iterator, const BndNode *> > MooseMesh::_bnd_node_range
protectedinherited

◆ _bnd_nodes

std::vector<BndNode *> MooseMesh::_bnd_nodes
protectedinherited

◆ _boundary_to_normal_map

std::unique_ptr<std::map<BoundaryID, RealVectorValue> > MooseMesh::_boundary_to_normal_map
protectedinherited

The boundary to normal map - valid only when AddAllSideSetsByNormals is active.

Definition at line 1486 of file MooseMesh.h.

Referenced by MooseMesh::getNormalByBoundaryID(), and MooseMesh::setBoundaryToNormalMap().

◆ _bounds

std::vector<std::vector<Real> > MooseMesh::_bounds
protectedinherited

The bounds in each dimension of the mesh for regular orthogonal meshes.

Definition at line 1536 of file MooseMesh.h.

Referenced by MooseMesh::detectOrthogonalDimRanges(), MooseMesh::getMaxInDimension(), MooseMesh::getMinInDimension(), and MooseMesh::MooseMesh().

◆ _built_from_other_mesh

bool MooseMesh::_built_from_other_mesh = false
protectedinherited

Whether or not this mesh was built from another mesh.

Definition at line 1376 of file MooseMesh.h.

Referenced by MooseMesh::prepare().

◆ _coarsened_element_children

std::map<const Elem *, std::vector<const Elem *> > MooseMesh::_coarsened_element_children
protectedinherited

Map of Parent elements to child elements for elements that were just coarsened.

NOTE: the child element pointers ARE PROBABLY INVALID. Only use them for indexing!

Definition at line 1442 of file MooseMesh.h.

Referenced by MooseMesh::cacheChangedLists(), and MooseMesh::coarsenedElementChildren().

◆ _coarsened_elements

std::unique_ptr<ConstElemPointerRange> MooseMesh::_coarsened_elements
protectedinherited

The elements that were just coarsened.

Definition at line 1435 of file MooseMesh.h.

Referenced by MooseMesh::cacheChangedLists(), and MooseMesh::coarsenedElementRange().

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

An instance of helper class to write streams to the Console objects.

Definition at line 31 of file ConsoleStreamInterface.h.

Referenced by IterationAdaptiveDT::acceptStep(), MeshOnlyAction::act(), SetupDebugAction::act(), MaterialOutputAction::act(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), PerfGraph::addToExecutionList(), SimplePredictor::apply(), SystemBase::applyScalingFactors(), MultiApp::backup(), FEProblemBase::backupMultiApps(), CoarsenedPiecewiseLinear::buildCoarsenedGrid(), MeshDiagnosticsGenerator::checkElementOverlap(), MeshDiagnosticsGenerator::checkElementTypes(), MeshDiagnosticsGenerator::checkElementVolumes(), FEProblemBase::checkExceptionAndStopSolve(), SolverSystem::checkInvalidSolution(), MeshDiagnosticsGenerator::checkLocalJacobians(), MeshDiagnosticsGenerator::checkNonConformalMesh(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), MeshDiagnosticsGenerator::checkNonPlanarSides(), FEProblemBase::checkProblemIntegrity(), ReferenceResidualProblem::checkRelativeConvergence(), MeshDiagnosticsGenerator::checkSidesetsOrientation(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), FixedPointSolve::computeCustomConvergencePostprocessor(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInitialDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeLinearSystemTags(), NonlinearSystemBase::computeScaling(), Problem::console(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), MultiApp::createApp(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MessageFromInput::execute(), Steady::execute(), Eigenvalue::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), ElementQualityChecker::finalize(), FEProblemBase::finishMultiAppStep(), MeshRepairGenerator::fixOverlappingNodes(), CoarsenBlockGenerator::generate(), MeshGenerator::generateInternal(), VariableCondensationPreconditioner::getDofToCondense(), InversePowerMethod::init(), NonlinearEigen::init(), FEProblemBase::initialAdaptMesh(), EigenExecutionerBase::inversePowerIteration(), FEProblemBase::joinAndFinalize(), Transient::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), FEProblemBase::logAdd(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseBaseErrorInterface::mooseDeprecated(), MooseBaseErrorInterface::mooseInfo(), MooseBaseErrorInterface::mooseWarning(), MooseBaseErrorInterface::mooseWarningNonPrefixed(), ReferenceResidualProblem::nonlinearConvergenceSetup(), ReporterDebugOutput::output(), PerfGraphOutput::output(), MaterialPropertyDebugOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), PseudoTimestep::outputPseudoTimestep(), Console::outputReporters(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), SolutionInvalidity::printDebug(), EigenExecutionerBase::printEigenvalue(), SteffensenSolve::printFixedPointConvergenceHistory(), SecantSolve::printFixedPointConvergenceHistory(), PicardSolve::printFixedPointConvergenceHistory(), FixedPointSolve::printFixedPointConvergenceReason(), PerfGraphLivePrint::printLiveMessage(), MaterialPropertyDebugOutput::printMaterialMap(), PerfGraphLivePrint::printStats(), AutomaticMortarGeneration::projectPrimaryNodesSinglePair(), AutomaticMortarGeneration::projectSecondaryNodesSinglePair(), CoarsenBlockGenerator::recursiveCoarsen(), SolutionTimeAdaptiveDT::rejectStep(), MultiApp::restore(), FEProblemBase::restoreMultiApps(), SimplePredictor::shouldApply(), Checkpoint::shouldOutput(), SubProblem::showFunctorRequestors(), SubProblem::showFunctors(), FullSolveMultiApp::showStatusMessage(), FEProblemSolve::solve(), FixedPointSolve::solve(), NonlinearSystem::solve(), EigenProblem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), AStableDirk4::solve(), LStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), FixedPointSolve::solveStep(), PerfGraphLivePrint::start(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), Transient::takeStep(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _custom_partitioner

std::unique_ptr<Partitioner> MooseMesh::_custom_partitioner
protectedinherited

The custom partitioner.

Definition at line 1397 of file MooseMesh.h.

Referenced by MooseMesh::buildTypedMesh(), and MooseMesh::setCustomPartitioner().

◆ _custom_partitioner_requested

bool MooseMesh::_custom_partitioner_requested
protectedinherited

◆ _distribution_overridden

bool MooseMesh::_distribution_overridden
protectedinherited

Definition at line 1386 of file MooseMesh.h.

◆ _elem_to_side_to_qp_to_quadrature_nodes

std::map<dof_id_type, std::map<unsigned int, std::map<dof_id_type, Node *> > > MooseMesh::_elem_to_side_to_qp_to_quadrature_nodes
protectedinherited

◆ _enabled

const bool& MooseObject::_enabled
protectedinherited

Reference to the "enable" InputParameters, used by Controls for toggling on/off MooseObjects.

Definition at line 53 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _extra_bnd_nodes

std::vector<BndNode> MooseMesh::_extra_bnd_nodes
protectedinherited

◆ _factory

Factory& MooseBaseParameterInterface::_factory
protectedinherited

◆ _gamma

const Real& RinglebMesh::_gamma
protected

Gamma.

Definition at line 45 of file RinglebMesh.h.

Referenced by buildMesh().

◆ _ghosted_boundaries

std::set<unsigned int> MooseMesh::_ghosted_boundaries
protectedinherited

◆ _ghosted_boundaries_inflation

std::vector<Real> MooseMesh::_ghosted_boundaries_inflation
protectedinherited

◆ _ghosting_functors

std::vector<std::unique_ptr<GhostingFunctor> > MooseMesh::_ghosting_functors
protectedinherited

Deprecated (DO NOT USE)

Definition at line 1370 of file MooseMesh.h.

◆ _ghosting_patch_size

unsigned int MooseMesh::_ghosting_patch_size
protectedinherited

The number of nearest neighbors to consider for ghosting purposes when iteration patch update strategy is used.

Definition at line 1521 of file MooseMesh.h.

Referenced by MooseMesh::getGhostingPatchSize().

◆ _inflow_bid

const boundary_id_type RinglebMesh::_inflow_bid
protected

The boundary ids to use for the ringleb mesh.

Definition at line 66 of file RinglebMesh.h.

Referenced by buildMesh().

◆ _inner_wall_bid

const boundary_id_type RinglebMesh::_inner_wall_bid
protected

Definition at line 66 of file RinglebMesh.h.

Referenced by buildMesh().

◆ _is_changed

bool MooseMesh::_is_changed
protectedinherited

true if mesh is changed (i.e. after adaptivity step)

Definition at line 1423 of file MooseMesh.h.

◆ _is_nemesis

bool MooseMesh::_is_nemesis
protectedinherited

True if a Nemesis Mesh was read in.

Definition at line 1426 of file MooseMesh.h.

Referenced by FileMesh::buildMesh(), MooseMesh::determineUseDistributedMesh(), MooseMesh::prepare(), and FileMesh::read().

◆ _is_split

const bool MooseMesh::_is_split
protectedinherited

Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)

Definition at line 1542 of file MooseMesh.h.

Referenced by MooseMesh::determineUseDistributedMesh(), and MooseMesh::isSplit().

◆ _kmax

const Real& RinglebMesh::_kmax
protected

k is a streamline parameter, i.e.

k=constant on each streamline. kmax corresponds to the "inner" wall. Choosing a larger kmax leads to a more "bullet"-shaped inner wall, a smaller kmax corresponds to a more "parabolic" inner wall. A possible kmax value is 1.5.

Definition at line 51 of file RinglebMesh.h.

Referenced by buildMesh(), and RinglebMesh().

◆ _kmin

const Real& RinglebMesh::_kmin
protected

kmin corresponds to the outer wall

Definition at line 54 of file RinglebMesh.h.

Referenced by buildMesh(), and RinglebMesh().

◆ _local_node_range

std::unique_ptr<ConstNodeRange> MooseMesh::_local_node_range
protectedinherited

Definition at line 1455 of file MooseMesh.h.

Referenced by MooseMesh::getLocalNodeRange(), and MooseMesh::meshChanged().

◆ _max_leaf_size

unsigned int MooseMesh::_max_leaf_size
protectedinherited

Definition at line 1524 of file MooseMesh.h.

Referenced by MooseMesh::getMaxLeafSize().

◆ _mesh

std::unique_ptr<libMesh::MeshBase> MooseMesh::_mesh
protectedinherited

◆ _mesh_boundary_ids

std::set<BoundaryID> MooseMesh::_mesh_boundary_ids
protectedinherited

A set of boundary IDs currently present in the mesh.

In serial, this is equivalent to the values returned by _mesh.get_boundary_info().get_boundary_ids(). In parallel, it will contain off-processor boundary IDs as well.

Definition at line 1480 of file MooseMesh.h.

Referenced by MooseMesh::getBoundaryIDs(), MooseMesh::meshBoundaryIds(), MooseMesh::prepare(), and MooseMesh::setMeshBoundaryIDs().

◆ _mesh_nodeset_ids

std::set<BoundaryID> MooseMesh::_mesh_nodeset_ids
protectedinherited

Definition at line 1482 of file MooseMesh.h.

Referenced by MooseMesh::meshNodesetIds(), and MooseMesh::prepare().

◆ _mesh_sideset_ids

std::set<BoundaryID> MooseMesh::_mesh_sideset_ids
protectedinherited

Definition at line 1481 of file MooseMesh.h.

Referenced by MooseMesh::meshSidesetIds(), and MooseMesh::prepare().

◆ _mesh_subdomains

std::set<SubdomainID> MooseMesh::_mesh_subdomains
protectedinherited

A set of subdomain IDs currently present in the mesh.

For parallel meshes, includes subdomains defined on other processors as well.

Definition at line 1472 of file MooseMesh.h.

Referenced by MooseMesh::buildLowerDMesh(), MooseMesh::cacheInfo(), MooseMesh::checkDuplicateSubdomainNames(), MooseMesh::meshSubdomains(), and MooseMesh::prepare().

◆ _moose_mesh_prepared

bool MooseMesh::_moose_mesh_prepared = false
protectedinherited

True if prepare has been called on the mesh.

Definition at line 1429 of file MooseMesh.h.

Referenced by MooseMesh::prepare(), and MooseMesh::prepared().

◆ _n_extra_q_pts

const int& RinglebMesh::_n_extra_q_pts
protected

how many "extra" points should be inserted in the nearest element from the horizontal in additi /// on to the equispaced q points.

Definition at line 60 of file RinglebMesh.h.

Referenced by buildMesh().

◆ _name

const std::string MooseBase::_name
protectedinherited

The name of this class.

Definition at line 90 of file MooseBase.h.

Referenced by AddBCAction::act(), AddDamperAction::act(), AddIndicatorAction::act(), AddInitialConditionAction::act(), AddScalarKernelAction::act(), AddInterfaceKernelAction::act(), AddTransferAction::act(), AddKernelAction::act(), AddUserObjectAction::act(), AddVectorPostprocessorAction::act(), AddFunctorMaterialAction::act(), PartitionerAction::act(), ReadExecutorParamsAction::act(), AddMarkerAction::act(), AddMaterialAction::act(), AddConstraintAction::act(), AddDGKernelAction::act(), AddMeshGeneratorAction::act(), AddFVInitialConditionAction::act(), AddMultiAppAction::act(), AddNodalKernelAction::act(), AddDiracKernelAction::act(), AddFVInterfaceKernelAction::act(), AddPostprocessorAction::act(), AddReporterAction::act(), AddFieldSplitAction::act(), AddTimesAction::act(), AddPositionsAction::act(), AddFVBCAction::act(), AddFVKernelAction::act(), AddTimeStepperAction::act(), AddDistributionAction::act(), SetupPreconditionerAction::act(), SetupTimeIntegratorAction::act(), AddFunctionAction::act(), AddMeshDivisionAction::act(), AddLinearFVBCAction::act(), AddLinearFVKernelAction::act(), AddSamplerAction::act(), AddOutputAction::act(), AddPeriodicBCAction::act(), AddControlAction::act(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), PiecewiseTabularBase::buildFromFile(), PiecewiseTabularBase::buildFromXY(), PiecewiseLinearBase::buildInterpolation(), CombinerGenerator::CombinerGenerator(), Executor::Executor(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), QuadraturePointMultiApp::fillPositions(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), FunctionDT::FunctionDT(), FillBetweenCurvesGenerator::generate(), FillBetweenPointVectorsGenerator::generate(), FillBetweenSidesetsGenerator::generate(), NearestPointBase< LayeredSideDiffusiveFluxAverage, SideIntegralVariableUserObject >::name(), ParsedFunctorMaterialTempl< is_ad >::ParsedFunctorMaterialTempl(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseBase::setData(), and Split::setup().

◆ _node_map

std::vector<Node *> MooseMesh::_node_map
protectedinherited

Vector of all the Nodes in the mesh for determining when to add a new point.

Definition at line 1530 of file MooseMesh.h.

Referenced by MooseMesh::addUniqueNode().

◆ _node_set_nodes

std::map<boundary_id_type, std::vector<dof_id_type> > MooseMesh::_node_set_nodes
protectedinherited

list of nodes that belongs to a specified nodeset: indexing [nodeset_id] -> [array of node ids]

Definition at line 1512 of file MooseMesh.h.

Referenced by MooseMesh::buildNodeList(), MooseMesh::freeBndNodes(), MooseMesh::getNodeList(), and MooseMesh::nodeSetNodes().

◆ _node_to_active_semilocal_elem_map

std::map<dof_id_type, std::vector<dof_id_type> > MooseMesh::_node_to_active_semilocal_elem_map
protectedinherited

A map of all of the current nodes to the active elements that they are connected to.

Definition at line 1465 of file MooseMesh.h.

Referenced by MooseMesh::addQuadratureNode(), MooseMesh::nodeToActiveSemilocalElemMap(), and MooseMesh::update().

◆ _node_to_active_semilocal_elem_map_built

bool MooseMesh::_node_to_active_semilocal_elem_map_built
protectedinherited

Definition at line 1466 of file MooseMesh.h.

Referenced by MooseMesh::nodeToActiveSemilocalElemMap(), and MooseMesh::update().

◆ _node_to_elem_map

std::map<dof_id_type, std::vector<dof_id_type> > MooseMesh::_node_to_elem_map
protectedinherited

A map of all of the current nodes to the elements that they are connected to.

Definition at line 1461 of file MooseMesh.h.

Referenced by MooseMesh::addQuadratureNode(), MooseMesh::nodeToElemMap(), and MooseMesh::update().

◆ _node_to_elem_map_built

bool MooseMesh::_node_to_elem_map_built
protectedinherited

Definition at line 1462 of file MooseMesh.h.

Referenced by MooseMesh::nodeToElemMap(), and MooseMesh::update().

◆ _num_k_pts

const int& RinglebMesh::_num_k_pts
protected

how many points in the range k=(kmin, kmax).

Definition at line 63 of file RinglebMesh.h.

Referenced by buildMesh().

◆ _num_q_pts

const int& RinglebMesh::_num_q_pts
protected

How many points to discretize the range q = (0.5, k) into.

Definition at line 57 of file RinglebMesh.h.

Referenced by buildMesh().

◆ _outer_wall_bid

const boundary_id_type RinglebMesh::_outer_wall_bid
protected

Definition at line 66 of file RinglebMesh.h.

Referenced by buildMesh().

◆ _outflow_bid

const boundary_id_type RinglebMesh::_outflow_bid
protected

Definition at line 66 of file RinglebMesh.h.

Referenced by buildMesh().

◆ _paired_boundary

std::vector<std::pair<BoundaryID, BoundaryID> > MooseMesh::_paired_boundary
protectedinherited

A vector holding the paired boundaries for a regular orthogonal mesh.

Definition at line 1539 of file MooseMesh.h.

Referenced by MooseMesh::detectPairedSidesets(), and MooseMesh::getPairedBoundaryMapping().

◆ _parallel_type

ParallelType MooseMesh::_parallel_type
protectedinherited

Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.

Determines whether the underlying libMesh mesh is a ReplicatedMesh or DistributedMesh.

Definition at line 1380 of file MooseMesh.h.

Referenced by MooseMesh::determineUseDistributedMesh(), and MooseMesh::setParallelType().

◆ _parallel_type_overridden

bool MooseMesh::_parallel_type_overridden
protectedinherited

◆ _pars

const InputParameters& MooseBaseParameterInterface::_pars
protectedinherited

Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.

Definition at line 162 of file MooseBaseParameterInterface.h.

Referenced by AddFVICAction::act(), AddICAction::act(), CreateProblemAction::act(), CreateProblemDefaultAction::act(), SetupMeshAction::act(), ComposeTimeStepperAction::act(), SetupDebugAction::act(), AddAuxKernelAction::act(), AddVariableAction::act(), AddPeriodicBCAction::act(), CommonOutputAction::act(), FunctorMaterial::addFunctorPropertyByBlocks(), FVFluxKernel::adjustRMGhostLayers(), BreakMeshByBlockGeneratorBase::BreakMeshByBlockGeneratorBase(), PiecewiseTabularBase::buildFromFile(), PNGOutput::calculateRescalingValues(), MooseBaseParameterInterface::connectControllableParams(), Console::Console(), AddVariableAction::createInitialConditionAction(), MaterialBase::declareADProperty(), MaterialBase::declareProperty(), FEProblemSolve::FEProblemSolve(), FunctionMaterialBase< is_ad >::FunctionMaterialBase(), FVAdvection::FVAdvection(), FVAnisotropicDiffusion::FVAnisotropicDiffusion(), FVDiffusion::FVDiffusion(), FileMeshGenerator::generate(), MaterialBase::getGenericZeroMaterialProperty(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), MooseBaseParameterInterface::getParam(), MooseBaseParameterInterface::getRenamedParam(), MeshGenerator::hasGenerateData(), AddVariableAction::init(), AdvancedOutput::initExecutionTypes(), Console::initialSetup(), MooseBaseParameterInterface::isParamSetByUser(), MooseBaseParameterInterface::isParamValid(), MultiApp::keepSolutionDuringRestore(), MooseBaseParameterInterface::MooseBaseParameterInterface(), MooseBaseParameterInterface::paramErrorMsg(), GlobalParamsAction::parameters(), MooseBaseParameterInterface::parameters(), MooseMesh::prepare(), Eigenvalue::prepareSolverOptions(), MooseMesh::setCoordSystem(), MooseMesh::setPartitionerHelper(), SetupMeshAction::setupMesh(), Transient::setupTimeIntegrator(), MooseBaseParameterInterface::uniqueName(), and MooseBaseParameterInterface::uniqueParameterName().

◆ _partitioner_name

MooseEnum MooseMesh::_partitioner_name
protectedinherited

The partitioner used on this mesh.

Definition at line 1393 of file MooseMesh.h.

Referenced by MooseMesh::partitionerName(), and MooseMesh::setPartitionerHelper().

◆ _partitioner_overridden

bool MooseMesh::_partitioner_overridden
protectedinherited

◆ _patch_size

unsigned int MooseMesh::_patch_size
protectedinherited

The number of nodes to consider in the NearestNode neighborhood.

Definition at line 1518 of file MooseMesh.h.

Referenced by MooseMesh::getPatchSize().

◆ _patch_update_strategy

Moose::PatchUpdateType MooseMesh::_patch_update_strategy
protectedinherited

The patch update strategy.

Definition at line 1527 of file MooseMesh.h.

Referenced by MooseMesh::getPatchUpdateStrategy(), MooseMesh::MooseMesh(), and MooseMesh::setPatchUpdateStrategy().

◆ _pg_moose_app

MooseApp& PerfGraphInterface::_pg_moose_app
protectedinherited

The MooseApp that owns the PerfGraph.

Definition at line 124 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::perfGraph().

◆ _prefix

const std::string PerfGraphInterface::_prefix
protectedinherited

A prefix to use for all sections.

Definition at line 127 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::timedSectionName().

◆ _quadrature_nodes

std::map<dof_id_type, Node *> MooseMesh::_quadrature_nodes
protectedinherited

◆ _refined_elements

std::unique_ptr<ConstElemPointerRange> MooseMesh::_refined_elements
protectedinherited

The elements that were just refined.

Definition at line 1432 of file MooseMesh.h.

Referenced by MooseMesh::cacheChangedLists(), and MooseMesh::refinedElementRange().

◆ _regular_orthogonal_mesh

bool MooseMesh::_regular_orthogonal_mesh
protectedinherited

Boolean indicating whether this mesh was detected to be regular and orthogonal.

Definition at line 1533 of file MooseMesh.h.

Referenced by MooseMesh::addPeriodicVariable(), MooseMesh::detectOrthogonalDimRanges(), GeneratedMesh::GeneratedMesh(), MooseMesh::getPairedBoundaryMapping(), MooseMesh::isRegularOrthogonal(), and MooseMesh::prepared().

◆ _relationship_managers

std::vector<std::shared_ptr<RelationshipManager> > MooseMesh::_relationship_managers
protectedinherited

The list of active geometric relationship managers (bound to the underlying MeshBase object).

Definition at line 1373 of file MooseMesh.h.

◆ _restartable_app

MooseApp& Restartable::_restartable_app
protectedinherited

Reference to the application.

Definition at line 227 of file Restartable.h.

Referenced by Restartable::registerRestartableDataOnApp(), and Restartable::registerRestartableNameWithFilterOnApp().

◆ _restartable_read_only

const bool Restartable::_restartable_read_only
protectedinherited

Flag for toggling read only status (see ReporterData)

Definition at line 236 of file Restartable.h.

Referenced by Restartable::registerRestartableDataOnApp().

◆ _restartable_system_name

const std::string Restartable::_restartable_system_name
protectedinherited

The system name this object is in.

Definition at line 230 of file Restartable.h.

Referenced by Restartable::restartableName().

◆ _restartable_tid

const THREAD_ID Restartable::_restartable_tid
protectedinherited

The thread ID for this object.

Definition at line 233 of file Restartable.h.

Referenced by Restartable::declareRestartableDataHelper().

◆ _semilocal_node_list

std::set<Node *> MooseMesh::_semilocal_node_list
protectedinherited

Used for generating the semilocal node range.

Definition at line 1445 of file MooseMesh.h.

Referenced by MooseMesh::isSemiLocal(), and MooseMesh::updateActiveSemiLocalNodeRange().

◆ _skip_deletion_repartition_after_refine

bool MooseMesh::_skip_deletion_repartition_after_refine
protectedinherited

Whether or not skip remote deletion and repartition after uniform refinements.

Definition at line 1420 of file MooseMesh.h.

Referenced by MooseMesh::setUniformRefineLevel(), and MooseMesh::skipDeletionRepartitionAfterRefine().

◆ _skip_refine_when_use_split

bool MooseMesh::_skip_refine_when_use_split
protectedinherited

Whether or not to skip uniform refinements when using a pre-split mesh.

Definition at line 1417 of file MooseMesh.h.

Referenced by MooseMesh::skipRefineWhenUseSplit().

◆ _triangles

const bool& RinglebMesh::_triangles
protected

This parameter, if true, allows to split the quadrilateral elements into triangular elements.

Definition at line 69 of file RinglebMesh.h.

Referenced by buildMesh().

◆ _type

const std::string MooseBase::_type
protectedinherited

◆ _uniform_refine_level

unsigned int MooseMesh::_uniform_refine_level
protectedinherited

The level of uniform refinement requested (set to zero if AMR is disabled)

Definition at line 1414 of file MooseMesh.h.

Referenced by MooseMesh::setUniformRefineLevel(), and MooseMesh::uniformRefineLevel().

◆ _use_distributed_mesh

bool MooseMesh::_use_distributed_mesh
protectedinherited

False by default.

Final value is determined by several factors including the 'distribution' setting in the input file, and whether or not the Mesh file is a Nemesis file.

Definition at line 1385 of file MooseMesh.h.

Referenced by MooseMesh::buildMeshBaseObject(), MooseMesh::buildTypedMesh(), MooseMesh::detectPairedSidesets(), MooseMesh::determineUseDistributedMesh(), MooseMesh::errorIfDistributedMesh(), MooseMesh::ghostGhostedBoundaries(), MooseMesh::init(), MooseMesh::isDistributedMesh(), and MooseMesh::setPartitionerHelper().


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