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

#include <FileMesh.h>

Inheritance diagram for FileMesh:
[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

 FileMesh (const InputParameters &parameters)
 
 FileMesh (const FileMesh &other_mesh)
 
virtual ~FileMesh ()
 
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...
 
void read (const std::string &file_name)
 
void setFileName (const std::string &file_name)
 
virtual std::string getFileName () const override
 Returns the name of the mesh file read to produce this mesh if any or an empty string otherwise. More...
 
virtual MooseMeshclone () const
 Clone method. More...
 
void determineUseDistributedMesh ()
 Determine whether to use a distributed mesh. More...
 
std::unique_ptr< MeshBasebuildMeshBaseObject (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 spatialDimension () const
 Returns MeshBase::spatial_dimension. 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...
 
std::vector< std::vector< BoundaryID > > getBoundaryIDs (const Elem *const elem) const
 Returns a vector of vector of boundary IDs for the requested element on each of its sides. 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 ElemgetLowerDElem (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::unordered_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...
 
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...
 
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildSideList ()
 Calls BoundaryInfo::build_side_list(), returns a std::vector of (elem-id, side-id, bc-id) tuples. 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 nLocalNodes () const
 
virtual dof_id_type nActiveElem () const
 
virtual dof_id_type nActiveLocalElem () const
 
virtual SubdomainID nSubdomains () const
 
virtual unsigned int nPartitions () const
 
virtual bool skipPartitioning () const
 
virtual bool skipNoncriticalPartitioning () const
 
virtual dof_id_type maxNodeId () const
 Calls max_node/elem_id() on the underlying libMesh mesh object. More...
 
virtual dof_id_type maxElemId () const
 
virtual const Nodenode (const dof_id_type i) const
 Various accessors (pointers/references) for Node "i". More...
 
virtual Nodenode (const dof_id_type i)
 
virtual const NodenodeRef (const dof_id_type i) const
 
virtual NodenodeRef (const dof_id_type i)
 
virtual const NodenodePtr (const dof_id_type i) const
 
virtual NodenodePtr (const dof_id_type i)
 
virtual const NodequeryNodePtr (const dof_id_type i) const
 
virtual NodequeryNodePtr (const dof_id_type i)
 
virtual Elemelem (const dof_id_type i)
 Various accessors (pointers/references) for Elem "i". More...
 
virtual const Elemelem (const dof_id_type i) const
 
virtual ElemelemPtr (const dof_id_type i)
 
virtual const ElemelemPtr (const dof_id_type i) const
 
virtual ElemqueryElemPtr (const dof_id_type i)
 
virtual const ElemqueryElemPtr (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...
 
libMesh::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
 
MeshBasegetMesh ()
 Accessor for the underlying libMesh Mesh object. More...
 
MeshBase & getMesh (const std::string &name)
 
const MeshBasegetMesh () const
 
const MeshBase & getMesh (const std::string &name) const
 
const MeshBasegetMeshPtr () const
 
Moose::Kokkos::MeshgetKokkosMesh ()
 Accessor for Kokkos mesh object. More...
 
const Moose::Kokkos::MeshgetKokkosMesh () 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 NodeaddUniqueNode (const Point &p, Real tol=1e-6)
 Add a new node to the mesh. More...
 
NodeaddQuadratureNode (const Elem *elem, const unsigned short int side, const unsigned int qp, BoundaryID bid, const Point &point)
 Adds a fictitious "QuadratureNode". More...
 
NodegetQuadratureNode (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_names) const
 Get the associated subdomainIDs for the subdomain names that are passed in. More...
 
std::set< SubdomainIDgetSubdomainIDs (const std::set< SubdomainName > &subdomain_names) const
 
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 (const BoundaryID boundary_id) const
 Return the name of the boundary given the id. More...
 
std::string getBoundaryString (const BoundaryID boundary_id) const
 Return the name of the boundary given the id, if it exists. More...
 
void buildPeriodicNodeMap (std::multimap< dof_id_type, dof_id_type > &periodic_node_map, unsigned int var_number, libMesh::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, libMesh::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 (const unsigned int sys_num, const unsigned int var_num, const BoundaryID primary, const 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...
 
const std::array< bool, 3 > & queryPeriodicDimensions (const unsigned int sys_num, const unsigned int var_num) const
 Query the translated periodic dimension flags for the given variable on the given system. More...
 
const std::array< bool, 3 > & queryPeriodicDimensions (const MooseVariableBase &var) const
 Query the translated periodic dimension flags for the given variable. More...
 
bool isTranslatedPeriodic (const unsigned int sys_num, const unsigned int var_num, const unsigned int component) const
 Returns whether this generated mesh is periodic in the given dimension for the given variable on the given system. More...
 
bool isTranslatedPeriodic (const MooseVariableBase &var, const unsigned int component) const
 Returns whether this generated mesh is periodic in the given dimension for the given variable. More...
 
bool isTranslatedPeriodic (const unsigned int var_num, const unsigned int component) const
 Returns whether this generated mesh is periodic in the given dimension for the given variable. More...
 
RealVectorValue minPeriodicVector (const unsigned int sys_num, const unsigned int var_num, Point p, Point q) const
 Returns the minimum vector between two points on the mesh taking into account periodicity for the given variable on the given system. More...
 
RealVectorValue minPeriodicVector (const MooseVariableBase &var, const Point &p, const Point &q) const
 Returns the minimum vector between two points on the mesh taking into account periodicity for the given variable. More...
 
RealVectorValue minPeriodicVector (const unsigned int var_num, const Point &p, const Point &q) const
 Returns the minimum vector between two points on the mesh taking into account periodicity for the given variable on the given system. More...
 
Real minPeriodicDistance (const unsigned int sys_num, const unsigned int var_num, const Point &p, const Point &q) const
 Returns the distance between two points on the mesh taking into account periodicity for the given variable on the given system. More...
 
Real minPeriodicDistance (const MooseVariableBase &var, const Point &p, const Point &q) const
 Returns the distance between two points on the mesh taking into account periodicity for the given variable. More...
 
Real minPeriodicDistance (const unsigned int var_num, const Point &p, const Point &q) const
 Returns the distance between two points on the mesh taking into account periodicity for the given variable. More...
 
void detectPairedSidesets ()
 This routine detects paired sidesets of a regular orthogonal mesh (.i.e. More...
 
bool hasDetectedPairedSidesets () const
 Whether or not detectedPairedSidesets() has been called. More...
 
const std::pair< BoundaryID, BoundaryID > * getPairedBoundaryMapping (unsigned int component) const
 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...
 
virtual 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...
 
ParallelType getParallelType () const
 
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 (libMesh::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< libMesh::PointLocatorBasegetPointLocator () 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...
 
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...
 
unsigned int getMaxSidesPerElem () const
 Get the maximum number of sides per element. More...
 
unsigned int getMaxNodesPerElem () const
 Get the maximum number of nodes per element. More...
 
unsigned int getMaxNodesPerSide () const
 Get the maximum number of nodes per side. 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 a displaced mesh. More...
 
bool isDisplaced () const
 whether this mesh is a displaced mesh 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 includes p-refinement. More...
 
bool doingPRefinement () const
 Query whether the kind of adaptivity we're doing includes p-refinement. More...
 
unsigned int maxPLevel () const
 Returns the maximum p-refinement level of all elements. More...
 
unsigned int maxHLevel () const
 Returns the maximum h-refinement level of all elements. 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 hasLowerD () const
 
const std::set< SubdomainID > & interiorLowerDBlocks () const
 
const std::set< SubdomainID > & boundaryLowerDBlocks () const
 
bool getConstructNodeListFromSideList ()
 Return construct node list from side list boolean. More...
 
bool getDisplaceNodeListBySideList ()
 Return displace node list by side list boolean. More...
 
bool possiblyRebuildNodeToElemMap ()
 rebuild the node to element map if it's been requsted previously More...
 
virtual bool enabled () const
 Return the enabled status of the object. More...
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 Get another shared pointer to this object that has the same ownership group. More...
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 Get whether this object is a Kokkos functor The parameter MooseBase::kokkos_object_param is set by the Kokkos base classes. More...
 
MooseAppgetMooseApp () const
 Get the MooseApp this class is associated with. More...
 
const std::string & type () const
 Get the type of this class. More...
 
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...
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
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 * queryParam (const std::string &name) const
 Query a parameter 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...
 
template<typename T >
bool haveParameter (const std::string &name) const
 Test if a parameter of the given name and type exists. More...
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid. More...
 
bool isParamSetByUser (const std::string &name) const
 Test if the supplied parameter is set by a user, as opposed to not set or set to default. 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 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 paramWarning (const std::string &param, Args... args) const
 
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...
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 Deprecated message prefix; the error type is no longer used. More...
 
template<typename... Args>
void mooseError (Args &&... args) const
 Emits an error prefixed with object name and type and optionally a file path to the top-level block parameter if available. More...
 
template<typename... Args>
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
template<typename... Args>
void mooseErrorNonPrefixed (Args &&... args) const
 Emits an error without the prefixing included in mooseError(). More...
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 Emits a warning prefixed with object name and type. More...
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 Emits a warning without the prefixing included in mooseWarning(). More...
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 Emits a deprecation warning prefixed with the object name and type, and a stack trace. More...
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseDeprecatedNoTrace (Args &&... args) const
 Emits a deprecation warning prefixed with the object name and type, and no stack trace. More...
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 External method for calling moose error with added object context. More...
 
const Parallel::Communicatorcomm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
std::string getDataFileName (const std::string &param) const
 Deprecated method. More...
 
std::string getDataFileNameByName (const std::string &relative_path) const
 Deprecated method. More...
 
std::string getDataFilePath (const std::string &relative_path) const
 Returns the path of a data file for a given relative file path. More...
 
PerfGraphperfGraph ()
 Get the PerfGraph. More...
 
libMesh::ConstElemRangegetActiveLocalElementRange ()
 Return pointers to range objects for various types of ranges (local nodes, boundary elems, etc.). More...
 
libMesh::NodeRangegetActiveNodeRange ()
 
SemiLocalNodeRangegetActiveSemiLocalNodeRange () const
 
libMesh::ConstNodeRangegetLocalNodeRange ()
 
libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > * getBoundaryNodeRange ()
 
libMesh::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...
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 External method for calling moose error with added object context. More...
 

Public Attributes

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

Static Public Attributes

static const std::array< bool, 3 > periodic_dim_default {false, false, false}
 Default value for the automatically detected paired boundaries for each unit dimension, in which the value for each unit dimension is false (not detected). More...
 
static const std::string type_param = "_type"
 The name of the parameter that contains the object type. More...
 
static const std::string name_param = "_object_name"
 The name of the parameter that contains the object name. More...
 
static const std::string unique_name_param = "_unique_name"
 The name of the parameter that contains the unique object name. More...
 
static const std::string app_param = "_moose_app"
 The name of the parameter that contains the MooseApp. More...
 
static const std::string moose_base_param = "_moose_base"
 The name of the parameter that contains the moose system base. More...
 
static const std::string kokkos_object_param = "_kokkos_object"
 The name of the parameter that indicates an object is a Kokkos functor. 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<bool warning>
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 Set solution invalid mark for the given solution ID. More...
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
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

std::string _file_name
 the file_name from whence this mesh came More...
 
std::unique_ptr< libMesh::ExodusII_IO_exreader
 Auxiliary object for restart. More...
 
std::vector< std::unique_ptr< libMesh::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...
 
std::unique_ptr< Moose::Kokkos::Mesh_kokkos_mesh
 Pointer to Kokkos mesh object. More...
 
MooseEnum _partitioner_name
 The partitioner used on this mesh. More...
 
bool _partitioner_overridden
 
std::unique_ptr< libMesh::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< libMesh::ConstElemRange_active_local_elem_range
 A range for use with threading. More...
 
std::unique_ptr< SemiLocalNodeRange_active_semilocal_node_range
 
std::unique_ptr< libMesh::NodeRange_active_node_range
 
std::unique_ptr< libMesh::ConstNodeRange_local_node_range
 
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
 
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
 
std::unordered_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 = false
 Whether _node_to_elem_map has been built. More...
 
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::optional< 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...
 
Factory_factory
 The Factory associated with the MooseApp. More...
 
ActionFactory_action_factory
 Builds Actions. More...
 
const std::string & _type
 The type of this class. More...
 
const std::string & _name
 The name of this class. More...
 
const InputParameters_pars
 The object's parameters. 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

Definition at line 14 of file FileMesh.h.

Member Typedef Documentation

◆ bnd_elem_iterator_imp

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

Definition at line 1692 of file MooseMesh.h.

◆ bnd_node_iterator_imp

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

Definition at line 1685 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 1693 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 1686 of file MooseMesh.h.

◆ DataFileParameterType

using DataFileInterface::DataFileParameterType = DataFileName
inherited

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

Definition at line 27 of file DataFileInterface.h.

◆ PeriodicNodeInfo

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

Helper type for building periodic node maps.

Definition at line 1204 of file MooseMesh.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited

Convenience enums.

Enumerator

Definition at line 1597 of file MooseMesh.h.

1598  {
1599  X = 0,
1600  Y,
1601  Z
1602  };

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
MIN 
MAX 

Definition at line 1603 of file MooseMesh.h.

1604  {
1605  MIN = 0,
1606  MAX
1607  };

◆ ParallelType

enum MooseMesh::ParallelType
stronginherited
Enumerator
DEFAULT 
REPLICATED 
DISTRIBUTED 

Definition at line 116 of file MooseMesh.h.

117  {
118  DEFAULT,
119  REPLICATED,
120  DISTRIBUTED
121  };

Constructor & Destructor Documentation

◆ FileMesh() [1/2]

FileMesh::FileMesh ( const InputParameters parameters)

Definition at line 55 of file FileMesh.C.

56  : MooseMesh(parameters), _file_name(getParam<MeshFileName>("file"))
57 {
58  // Detect nemesis files from the extension or the parameter (deprecated)
59  if (isParamSetByUser("nemesis"))
60  _is_nemesis = getParam<bool>("nemesis");
61  else
62  _is_nemesis = (MooseUtils::hasExtension(_file_name, "n", /*strip_exodus_ext =*/true) ||
63  MooseUtils::hasExtension(_file_name, "nem", true));
64 
65  // We may have determined this is a nemesis file from the extension, which MooseMesh cannot do
67 }
bool _is_nemesis
True if a Nemesis Mesh was read in.
Definition: MooseMesh.h:1622
MooseMesh()=delete
std::string _file_name
the file_name from whence this mesh came
Definition: FileMesh.h:35
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
void determineUseDistributedMesh()
Determine whether to use a distributed mesh.
Definition: MooseMesh.C:2889
bool hasExtension(const std::string &filename, std::string ext, bool strip_exodus_ext)
Definition: MooseUtils.C:387
bool isParamSetByUser(const std::string &name) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
Definition: MooseBase.h:215

◆ FileMesh() [2/2]

FileMesh::FileMesh ( const FileMesh other_mesh)

Definition at line 69 of file FileMesh.C.

70  : MooseMesh(other_mesh), _file_name(other_mesh._file_name)
71 {
72 }
MooseMesh()=delete
std::string _file_name
the file_name from whence this mesh came
Definition: FileMesh.h:35

◆ ~FileMesh()

FileMesh::~FileMesh ( )
virtual

Definition at line 74 of file FileMesh.C.

74 {}

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 3151 of file MooseMesh.C.

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

3152 {
3153  return getMesh().active_local_elements_begin();
3154 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ activeLocalElementsBegin() [2/2]

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

Definition at line 3163 of file MooseMesh.C.

3164 {
3165  return getMesh().active_local_elements_begin();
3166 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ activeLocalElementsEnd() [1/2]

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

Definition at line 3157 of file MooseMesh.C.

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

3158 {
3159  return getMesh().active_local_elements_end();
3160 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ activeLocalElementsEnd() [2/2]

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

Definition at line 3169 of file MooseMesh.C.

3170 {
3171  return getMesh().active_local_elements_end();
3172 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ addGhostedBoundary()

void MooseMesh::addGhostedBoundary ( BoundaryID  boundary_id)
inherited

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

Definition at line 3329 of file MooseMesh.C.

Referenced by FEProblemBase::addGhostedBoundary().

3330 {
3331  _ghosted_boundaries.insert(boundary_id);
3332 }
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1709

◆ addPeriodicVariable()

void MooseMesh::addPeriodicVariable ( const unsigned int  sys_num,
const unsigned int  var_num,
const BoundaryID  primary,
const 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 2202 of file MooseMesh.C.

Referenced by AddPeriodicBCAction::onSetupPeriodicBoundary().

2206 {
2208  return;
2209 
2210  const auto key = std::make_pair(sys_num, var_num);
2211  auto & entry = _periodic_dim.try_emplace(key, periodic_dim_default).first->second;
2212 
2213  _half_range = Point(dimensionWidth(0) / 2.0, dimensionWidth(1) / 2.0, dimensionWidth(2) / 2.0);
2214 
2215  bool component_found = false;
2216  for (const auto component : make_range(dimension()))
2217  {
2218  const std::pair<BoundaryID, BoundaryID> * boundary_ids = getPairedBoundaryMapping(component);
2219 
2220  if (boundary_ids && ((boundary_ids->first == primary && boundary_ids->second == secondary) ||
2221  (boundary_ids->first == secondary && boundary_ids->second == primary)))
2222  {
2223  entry[component] = true;
2224  component_found = true;
2225  }
2226  }
2227 
2228  if (!component_found)
2229  mooseWarning("Could not find a match between boundary '",
2230  getBoundaryName(primary),
2231  "' and '",
2232  getBoundaryName(secondary),
2233  "' to set periodic boundary conditions for variable (index:",
2234  var_num,
2235  ") in either the X, Y or Z direction. The periodic dimension of the mesh for this "
2236  "variable will not be stored.");
2237 }
RealVectorValue _half_range
A convenience vector used to hold values in each dimension representing half of the range...
Definition: MooseMesh.h:1790
const std::string & getBoundaryName(const BoundaryID boundary_id) const
Return the name of the boundary given the id.
Definition: MooseMesh.C:1787
void mooseWarning(Args &&... args) const
static const std::array< bool, 3 > periodic_dim_default
Default value for the automatically detected paired boundaries for each unit dimension, in which the value for each unit dimension is false (not detected).
Definition: MooseMesh.h:106
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2985
std::map< std::pair< unsigned int, unsigned int >, std::array< bool, 3 > > _periodic_dim
A map from (system number, vector number) to which dimensions are periodic in a regular orthogonal me...
Definition: MooseMesh.h:1785
const std::pair< BoundaryID, BoundaryID > * getPairedBoundaryMapping(unsigned int component) const
This function attempts to return the paired boundary ids for the given component. ...
Definition: MooseMesh.C:2350
Real dimensionWidth(unsigned int component) const
Returns the width of the requested dimension.
Definition: MooseMesh.C:2178
IntRange< T > make_range(T beg, T end)
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1728

◆ 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 1606 of file MooseMesh.C.

Referenced by GeometricSearchData::generateQuadratureNodes().

1611 {
1612  Node * qnode;
1613 
1614  if (_elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].find(qp) ==
1616  {
1617  // Create a new node id starting from the max node id and counting down. This will be the least
1618  // likely to collide with an existing node id.
1619  // Note that we are using numeric_limits<unsigned>::max even
1620  // though max_id is stored as a dof_id_type. I tried this with
1621  // numeric_limits<dof_id_type>::max and it broke several tests in
1622  // MOOSE. So, this is some kind of a magic number that we will
1623  // just continue to use...
1625  dof_id_type new_id = max_id - _quadrature_nodes.size();
1626 
1627  if (new_id <= getMesh().max_node_id())
1628  mooseError("Quadrature node id collides with existing node id!");
1629 
1630  qnode = new Node(point, new_id);
1631 
1632  // Keep track of this new node in two different ways for easy lookup
1633  _quadrature_nodes[new_id] = qnode;
1634  _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp] = qnode;
1635 
1636  if (elem->active())
1637  internalNodeToElemMap()[new_id].push_back(elem->id());
1638  }
1639  else
1640  qnode = _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp];
1641 
1642  BndNode * bnode = new BndNode(qnode, bid);
1643  _bnd_nodes.push_back(bnode);
1644  _bnd_node_ids[bid].insert(qnode->id());
1645 
1646  _extra_bnd_nodes.push_back(*bnode);
1647 
1648  // Do this so the range will be regenerated next time it is accessed
1649  _bnd_node_range.reset();
1650 
1651  return qnode;
1652 }
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1698
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:1688
auto max(const L &left, const R &right)
dof_id_type id() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1684
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1701
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:1700
std::unordered_map< dof_id_type, std::vector< dof_id_type > > & internalNodeToElemMap()
If not already created, creates a map from every node to all elements to which they are connected...
Definition: MooseMesh.C:1205
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
bool active() const
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1653
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 1572 of file MooseMesh.C.

1573 {
1578  if (getMesh().n_nodes() != _node_map.size())
1579  {
1580  _node_map.clear();
1581  _node_map.reserve(getMesh().n_nodes());
1582  for (const auto & node : getMesh().node_ptr_range())
1583  _node_map.push_back(node);
1584  }
1585 
1586  Node * node = nullptr;
1587  for (unsigned int i = 0; i < _node_map.size(); ++i)
1588  {
1589  if (p.relative_fuzzy_equals(*_node_map[i], tol))
1590  {
1591  node = _node_map[i];
1592  break;
1593  }
1594  }
1595  if (node == nullptr)
1596  {
1597  node = getMesh().add_node(new Node(p));
1598  _node_map.push_back(node);
1599  }
1600 
1601  mooseAssert(node != nullptr, "Node is NULL");
1602  return node;
1603 }
const dof_id_type n_nodes
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::vector< Node * > _node_map
Vector of all the Nodes in the mesh for determining when to add a new point.
Definition: MooseMesh.h:1725
virtual Node * add_node(Node *n)=0
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:824
bool relative_fuzzy_equals(const TypeVector< Real > &rhs, Real tol=TOLERANCE) const

◆ allFaceInfo()

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

Accessor for all FaceInfo objects.

Definition at line 2340 of file MooseMesh.h.

2341 {
2342  return _all_face_info;
2343 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1761

◆ allowRecovery()

void MooseMesh::allowRecovery ( bool  allow)
inlineinherited

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

Definition at line 1161 of file MooseMesh.h.

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

◆ allowRemoteElementRemoval() [1/2]

void MooseMesh::allowRemoteElementRemoval ( bool  allow_removal)
inherited

Set whether to allow remote element removal.

Definition at line 4035 of file MooseMesh.C.

Referenced by XYTriangleBoundaryLayerGenerator::generate().

4036 {
4037  _allow_remote_element_removal = allow_remote_element_removal;
4038  if (_mesh)
4039  _mesh->allow_remote_element_removal(allow_remote_element_removal);
4040 
4041  if (!allow_remote_element_removal)
4042  // If we're not allowing remote element removal now, then we will need deletion later after
4043  // late geoemetric ghosting functors have been added (late geometric ghosting functor addition
4044  // happens when algebraic ghosting functors are added)
4045  _need_delete = true;
4046 }
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1977
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581
bool _need_delete
Whether we need to delete remote elements after init&#39;ing the EquationSystems.
Definition: MooseMesh.h:1974

◆ allowRemoteElementRemoval() [2/2]

bool MooseMesh::allowRemoteElementRemoval ( ) const
inlineinherited

Whether we are allow remote element removal.

Definition at line 1224 of file MooseMesh.h.

Referenced by MooseMesh::MooseMesh().

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

◆ 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 2326 of file MooseMesh.h.

2327 {
2328  auto id1 = getElementIDIndex(id_name1);
2329  auto id2 = getElementIDIndex(id_name2);
2330  return _id_identical_flag[id1][id2];
2331 }
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:1995
unsigned int getElementIDIndex(const std::string &id_name) const
Return the accessing integer for an extra element integer with its name.
Definition: MooseMesh.h:2318

◆ bndElemsBegin()

MooseMesh::bnd_elem_iterator MooseMesh::bndElemsBegin ( )
virtualinherited

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

Definition at line 1557 of file MooseMesh.C.

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

1558 {
1560  return bnd_elem_iterator(_bnd_elems.begin(), _bnd_elems.end(), p);
1561 }
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1691

◆ bndElemsEnd()

MooseMesh::bnd_elem_iterator MooseMesh::bndElemsEnd ( )
virtualinherited

Definition at line 1565 of file MooseMesh.C.

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

1566 {
1568  return bnd_elem_iterator(_bnd_elems.end(), _bnd_elems.end(), p);
1569 }
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1691

◆ bndNodesBegin()

MooseMesh::bnd_node_iterator MooseMesh::bndNodesBegin ( )
virtualinherited

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

Definition at line 1541 of file MooseMesh.C.

Referenced by MooseMesh::getBoundaryNodeRange().

1542 {
1544  return bnd_node_iterator(_bnd_nodes.begin(), _bnd_nodes.end(), p);
1545 }
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1684

◆ bndNodesEnd()

MooseMesh::bnd_node_iterator MooseMesh::bndNodesEnd ( )
virtualinherited

Definition at line 1549 of file MooseMesh.C.

Referenced by MooseMesh::getBoundaryNodeRange().

1550 {
1552  return bnd_node_iterator(_bnd_nodes.end(), _bnd_nodes.end(), p);
1553 }
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1684

◆ boundaryLowerDBlocks()

const std::set<SubdomainID>& MooseMesh::boundaryLowerDBlocks ( ) const
inlineinherited
Returns
The set of lower-dimensional blocks for boundary sides

Definition at line 1544 of file MooseMesh.h.

Referenced by FEProblemBase::adaptMesh(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), ArrayLowerDIntegratedBC::ArrayLowerDIntegratedBC(), NonlinearSystemBase::checkKernelCoverage(), HFEMDirichletBC::HFEMDirichletBC(), FEProblemBase::initialAdaptMesh(), and LowerDIntegratedBC::LowerDIntegratedBC().

1544 { return _lower_d_boundary_blocks; }
std::set< SubdomainID > _lower_d_boundary_blocks
Mesh blocks for boundary lower-d elements in different types.
Definition: MooseMesh.h:1957

◆ 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 3115 of file MooseMesh.C.

Referenced by MooseMesh::buildFiniteVolumeInfo().

3116 {
3118 }
std::vector< BCTuple > build_active_side_list() const
const BoundaryInfo & get_boundary_info() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ buildBndElemList()

void MooseMesh::buildBndElemList ( )
inherited

Definition at line 1182 of file MooseMesh.C.

Referenced by MooseMesh::update().

1183 {
1184  TIME_SECTION("buildBndElemList", 5, "Building Boundary Elements List");
1185 
1186  freeBndElems();
1187 
1188  auto bc_tuples = getMesh().get_boundary_info().build_active_side_list();
1189 
1190  int n = bc_tuples.size();
1191  _bnd_elems.clear();
1192  _bnd_elems.reserve(n);
1193  for (const auto & t : bc_tuples)
1194  {
1195  auto elem_id = std::get<0>(t);
1196  auto side_id = std::get<1>(t);
1197  auto bc_id = std::get<2>(t);
1198 
1199  _bnd_elems.push_back(new BndElement(getMesh().elem_ptr(elem_id), side_id, bc_id));
1200  _bnd_elem_ids[bc_id].insert(elem_id);
1201  }
1202 }
std::vector< BCTuple > build_active_side_list() const
void freeBndElems()
Definition: MooseMesh.C:371
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:1696
const boundary_id_type side_id
const BoundaryInfo & get_boundary_info() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1691

◆ 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 3843 of file MooseMesh.C.

Referenced by MooseMesh::setupFiniteVolumeMeshData().

3844 {
3845  mooseAssert(!Threads::in_threads,
3846  "This routine has not been implemented for threads. Please query this routine before "
3847  "a threaded region or contact a MOOSE developer to discuss.");
3848  _finite_volume_info_dirty = false;
3849 
3850  using Keytype = std::pair<const Elem *, unsigned short int>;
3851 
3852  // create a map from elem/side --> boundary ids
3853  std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>> side_list =
3855  std::map<Keytype, std::set<boundary_id_type>> side_map;
3856  for (auto & [elem_id, side, bc_id] : side_list)
3857  {
3858  const Elem * elem = _mesh->elem_ptr(elem_id);
3859  Keytype key(elem, side);
3860  auto & bc_set = side_map[key];
3861  bc_set.insert(bc_id);
3862  }
3863 
3864  _face_info.clear();
3865  _all_face_info.clear();
3866  _elem_side_to_face_info.clear();
3867 
3868  _elem_to_elem_info.clear();
3869  _elem_info.clear();
3870 
3871  // by performing the element ID comparison check in the below loop, we are ensuring that we never
3872  // double count face contributions. If a face lies along a process boundary, the only process that
3873  // will contribute to both sides of the face residuals/Jacobians will be the process that owns the
3874  // element with the lower ID.
3875  auto begin = getMesh().active_elements_begin();
3876  auto end = getMesh().active_elements_end();
3877 
3878  // We prepare a map connecting the Elem* and the corresponding ElemInfo
3879  // for the active elements.
3881  unsigned int num_sides = 0;
3882  for (const Elem * elem : as_range(begin, end))
3883  {
3884  _elem_to_elem_info.emplace(elem->id(), elem);
3885  num_sides += elem->n_sides();
3886  }
3887 
3888  // Used to speed up FaceInfo creation:
3889  // - element side builder that caches per type of element
3890  libMesh::ElemSideBuilder side_builder;
3891 
3892  _all_face_info.reserve(num_sides / 2);
3893  dof_id_type face_index = 0;
3894  for (const Elem * elem : as_range(begin, end))
3895  {
3896  for (unsigned int side = 0; side < elem->n_sides(); ++side)
3897  {
3898  // get the neighbor element
3899  const Elem * neighbor = elem->neighbor_ptr(side);
3900 
3901  // Check if the FaceInfo shall belong to the element. If yes,
3902  // create and initialize the FaceInfo. We need this to ensure that
3903  // we do not duplicate FaceInfo-s.
3904  if (Moose::FV::elemHasFaceInfo(*elem, neighbor))
3905  {
3906  mooseAssert(!neighbor || (neighbor->level() < elem->level() ? neighbor->active() : true),
3907  "If the neighbor is coarser than the element, we expect that the neighbor must "
3908  "be active.");
3909 
3910  // We construct the faceInfo using the elementinfo and side index
3911  mooseAssert(elem->default_order() < 4, "Did not expect such high element orders in FV");
3912  _all_face_info.emplace_back(
3913  &_elem_to_elem_info[elem->id()], side, face_index++, side_builder);
3914 
3915  auto & fi = _all_face_info.back();
3916 
3917  // get all the sidesets that this face is contained in and cache them
3918  // in the face info.
3919  std::set<boundary_id_type> & boundary_ids = fi.boundaryIDs();
3920  boundary_ids.clear();
3921 
3922  // We initialize the weights/other information in faceInfo. If the neighbor does not exist
3923  // or is remote (so when we are on some sort of mesh boundary), we initialize the ghost
3924  // cell and use it to compute the weights corresponding to the faceInfo.
3925  if (!neighbor || neighbor == libMesh::remote_elem)
3926  fi.computeBoundaryCoefficients();
3927  else
3928  fi.computeInternalCoefficients(&_elem_to_elem_info[neighbor->id()]);
3929 
3930  auto lit = side_map.find(Keytype(&fi.elem(), fi.elemSideID()));
3931  if (lit != side_map.end())
3932  boundary_ids.insert(lit->second.begin(), lit->second.end());
3933 
3934  if (fi.neighborPtr())
3935  {
3936  auto rit = side_map.find(Keytype(fi.neighborPtr(), fi.neighborSideID()));
3937  if (rit != side_map.end())
3938  boundary_ids.insert(rit->second.begin(), rit->second.end());
3939  }
3940  }
3941  }
3942  }
3943 
3944  // Build the local face info and elem_side to face info maps. We need to do this after
3945  // _all_face_info is finished being constructed because emplace_back invalidates all iterators and
3946  // references if ever the new size exceeds capacity
3947  _elem_side_to_face_info.reserve(_all_face_info.size());
3948  // heuristic to avoid resizing too much
3949  _face_info.reserve(_all_face_info.size());
3950  for (auto & fi : _all_face_info)
3951  {
3952  const Elem * const elem = &fi.elem();
3953  const auto side = fi.elemSideID();
3954 
3955 #ifndef NDEBUG
3956  auto pair_it =
3957 #endif
3958  _elem_side_to_face_info.emplace(std::make_pair(elem, side), &fi);
3959  mooseAssert(pair_it.second, "We should be adding unique FaceInfo objects.");
3960 
3961  // We will add the faces on processor boundaries to the list of face infos on each
3962  // associated processor.
3963  if (fi.elem().processor_id() == this->processor_id() ||
3964  (fi.neighborPtr() && (fi.neighborPtr()->processor_id() == this->processor_id())))
3965  _face_info.push_back(&fi);
3966  }
3967 
3968  _elem_info.reserve(nActiveLocalElem());
3969  for (auto & ei : _elem_to_elem_info)
3970  if (ei.second.elem()->processor_id() == this->processor_id())
3971  _elem_info.push_back(&ei.second);
3972 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1761
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:1765
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:1772
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildActiveSideList() const
Calls BoundaryInfo::build_active_side_list.
Definition: MooseMesh.C:3115
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:1757
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:1769
dof_id_type id() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
virtual dof_id_type nActiveLocalElem() const
Definition: MooseMesh.h:326
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:1753
virtual unsigned int n_sides() const=0
const Elem * neighbor_ptr(unsigned int i) const
unsigned int level() const
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
processor_id_type processor_id() const
virtual Order default_order() const=0
bool active() const
uint8_t dof_id_type
const RemoteElem * remote_elem

◆ buildMesh()

void FileMesh::buildMesh ( )
overridevirtual

Must be overridden by child classes.

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

Implements MooseMesh.

Reimplemented in MFEMMesh.

Definition at line 83 of file FileMesh.C.

84 {
85  TIME_SECTION("buildMesh", 2, "Reading Mesh");
86 
87  // This dimension should get overridden if the mesh reader can determine the dimension
88  getMesh().set_mesh_dimension(getParam<MooseEnum>("dim"));
89 
90  if (_is_nemesis)
91  {
92  // Nemesis_IO only takes a reference to DistributedMesh, so we can't be quite so short here.
93  DistributedMesh & pmesh = cast_ref<DistributedMesh &>(getMesh());
94  Nemesis_IO(pmesh).read(_file_name);
95 
96  getMesh().allow_renumbering(false);
97 
98  // Even if we want repartitioning when load balancing later, we'll
99  // begin with the default partitioning defined by the Nemesis
100  // file.
101  bool skip_partitioning_later = getMesh().skip_partitioning();
102  getMesh().skip_partitioning(true);
103  getMesh().prepare_for_use();
104  getMesh().skip_partitioning(skip_partitioning_later);
105  }
106  else // not reading Nemesis files
107  {
108  // See if the user has requested reading a solution from the file. If so, we'll need to read
109  // the mesh with the exodus reader instead of using mesh.read(). This will read the mesh on
110  // every processor
111 
112  if (_app.getExodusFileRestart() && (_file_name.rfind(".exo") < _file_name.size() ||
113  _file_name.rfind(".e") < _file_name.size()))
114  {
116 
117  auto exreader = std::make_shared<ExodusII_IO>(getMesh());
118  _app.setExReaderForRestart(std::move(exreader));
119  exreader->read(_file_name);
120 
121  getMesh().allow_renumbering(false);
122  getMesh().prepare_for_use();
123  }
124  else
125  {
127 
128  // If we are reading a mesh while restarting, then we might have
129  // a solution file that relies on that mesh partitioning and/or
130  // numbering. In that case, we need to turn off repartitioning
131  // and renumbering, at least at first.
132  bool restarting = _file_name.rfind(".cpa.gz") < _file_name.size();
133 
134  const bool skip_partitioning_later = restarting && getMesh().skip_partitioning();
135  const bool allow_renumbering_later = restarting && getMesh().allow_renumbering();
136 
137  if (restarting)
138  {
139  getMesh().skip_partitioning(true);
140  getMesh().allow_renumbering(false);
141  }
142 
144  getMesh().read(_file_name);
145 
146  if (getParam<bool>("clear_spline_nodes"))
148 
150 
151  if (restarting)
152  {
153  getMesh().allow_renumbering(allow_renumbering_later);
154  getMesh().skip_partitioning(skip_partitioning_later);
155  }
156  }
157  }
158 }
bool _is_nemesis
True if a Nemesis Mesh was read in.
Definition: MooseMesh.h:1622
virtual void read(const std::string &base_filename) override
static const RestartableDataMapName MESH_META_DATA
Definition: MooseApp.h:135
std::string _file_name
the file_name from whence this mesh came
Definition: FileMesh.h:35
void clear_spline_nodes(MeshBase &)
bool getExodusFileRestart() const
Whether or not we need to use a separate Exodus reader to read the mesh BEFORE we create the mesh...
Definition: MooseApp.h:435
void possiblyLoadRestartableMetaData(const RestartableDataMapName &name, const std::filesystem::path &folder_base)
Loads the restartable meta data for name if it is available with the folder base folder_base.
Definition: MooseApp.C:2301
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
static std::string deduceCheckpointPath(const MooseObject &object, const std::string &file_name)
Helper for deducing a checkpoint file given the path.
bool checkFileReadable(const std::string &filename, bool check_line_endings, bool throw_on_unreadable, bool check_for_git_lfs_pointer)
Definition: MooseUtils.C:254
void setExReaderForRestart(std::shared_ptr< libMesh::ExodusII_IO > &&exreader)
Set the Exodus reader to restart variables from an Exodus mesh file.
Definition: MooseApp.h:440

◆ 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 2917 of file MooseMesh.C.

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

2918 {
2919  std::unique_ptr<MeshBase> mesh;
2921  mesh = buildTypedMesh<DistributedMesh>(dim);
2922  else
2923  mesh = buildTypedMesh<ReplicatedMesh>(dim);
2924 
2925  return mesh;
2926 }
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:164
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1576

◆ 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 1029 of file MooseMesh.C.

Referenced by MooseMesh::update().

1030 {
1031  TIME_SECTION("buildNodeList", 5, "Building Node List");
1032 
1033  freeBndNodes();
1034 
1035  auto bc_tuples = getMesh().get_boundary_info().build_node_list();
1036 
1037  int n = bc_tuples.size();
1038  _bnd_nodes.clear();
1039  _bnd_nodes.reserve(n);
1040  for (const auto & t : bc_tuples)
1041  {
1042  auto node_id = std::get<0>(t);
1043  auto bc_id = std::get<1>(t);
1044 
1045  _bnd_nodes.push_back(new BndNode(getMesh().node_ptr(node_id), bc_id));
1046  _node_set_nodes[bc_id].push_back(node_id);
1047  _bnd_node_ids[bc_id].insert(node_id);
1048  }
1049 
1050  _bnd_nodes.reserve(_bnd_nodes.size() + _extra_bnd_nodes.size());
1051  for (unsigned int i = 0; i < _extra_bnd_nodes.size(); i++)
1052  {
1053  BndNode * bnode = new BndNode(_extra_bnd_nodes[i]._node, _extra_bnd_nodes[i]._bnd_id);
1054  _bnd_nodes.push_back(bnode);
1055  _bnd_node_ids[std::get<1>(bc_tuples[i])].insert(_extra_bnd_nodes[i]._node->id());
1056  }
1057 
1058  // This sort is here so that boundary conditions are always applied in the same order
1059  std::sort(_bnd_nodes.begin(), _bnd_nodes.end(), BndNodeCompare());
1060 }
Helper class for sorting Boundary Nodes so that we always get the same order of application for bound...
Definition: MooseMesh.C:1005
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:1688
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:1707
const BoundaryInfo & get_boundary_info() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1684
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1701
void freeBndNodes()
Definition: MooseMesh.C:352
std::vector< NodeBCTuple > build_node_list(NodeBCTupleSortBy sort_by=NodeBCTupleSortBy::NODE_ID) const

◆ buildNodeListFromSideList()

void MooseMesh::buildNodeListFromSideList ( )
inherited

Calls BoundaryInfo::build_node_list_from_side_list().

Definition at line 3048 of file MooseMesh.C.

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

3049 {
3050  auto & boundary_info = getMesh().get_boundary_info();
3051 
3053  {
3054  const std::set<boundary_id_type> & side_bcids = boundary_info.get_side_boundary_ids();
3055 
3057  {
3058  // Don't want to use auto here - the rbegin trick relies on a
3059  // sorted set and we want the compiler to scream if libMesh ever
3060  // switches type
3061  const std::set<boundary_id_type> & node_bcids = boundary_info.get_node_boundary_ids();
3062 
3063  // If we've got a reasonable largest BC id, we can just use the
3064  // subsequent unused ones
3065  boundary_id_type next_bcid = 0;
3066  if (!node_bcids.empty())
3067  next_bcid = std::max(next_bcid, cast_int<boundary_id_type>(*node_bcids.rbegin() + 1));
3068  if (!side_bcids.empty())
3069  next_bcid = std::max(next_bcid, cast_int<boundary_id_type>(*side_bcids.rbegin() + 1));
3070 
3071  // We need all processors to agree on the id to use, even when
3072  // each only sees the bcids on their own portions of a
3073  // distributed mesh.
3074  _communicator.max(next_bcid);
3075 
3076  // If we've got an unreasonably high largest BC id, we should
3077  // probably just search for unused ones with moderate values, so we
3078  // don't risk wrapping.
3079  if (next_bcid > 1000 || next_bcid <= 0)
3080  next_bcid = 1000;
3081 
3082  // If any side bcid is already a node bcid with a different name,
3083  // that's a different boundary condition that we need to reassign
3084  // rather than overwrite or merge to.
3085  for (auto bcid : side_bcids)
3086  if (node_bcids.count(bcid) &&
3087  (boundary_info.get_sideset_name(bcid) != boundary_info.get_nodeset_name(bcid)))
3088  {
3089  boundary_info.renumber_node_id(bcid, next_bcid);
3090  do
3091  {
3092  ++next_bcid;
3093  } while (node_bcids.count(next_bcid) || side_bcids.count(next_bcid));
3094  }
3095  }
3096 
3097  // For any side bcid that has a name, make sure that our new node
3098  // bcid is given the same name. We need to iterate over the
3099  // actual name map (which is global) here, not over side_bcids
3100  // (which only includes local ids on a distributed mesh).
3101  for (auto & [id, name] : boundary_info.get_sideset_name_map())
3102  boundary_info.nodeset_name(id) = name;
3103 
3104  boundary_info.build_node_list_from_side_list();
3105  }
3106 }
const std::set< boundary_id_type > & get_side_boundary_ids() const
const Parallel::Communicator & _communicator
const BoundaryInfo & get_boundary_info() const
auto max(const L &left, const R &right)
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
int8_t boundary_id_type
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
bool _construct_node_list_from_side_list
Whether or not to allow generation of nodesets from sidesets.
Definition: MooseMesh.h:1967
bool _displace_node_list_by_side_list
Whether or not to displace unrelated nodesets by nodesets constructed from sidesets.
Definition: MooseMesh.h:1971
void max(const T &r, T &o, Request &req) const

◆ buildPeriodicNodeMap()

void MooseMesh::buildPeriodicNodeMap ( std::multimap< dof_id_type, dof_id_type > &  periodic_node_map,
unsigned int  var_number,
libMesh::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 1815 of file MooseMesh.C.

1818 {
1819  TIME_SECTION("buildPeriodicNodeMap", 5);
1820 
1821  // clear existing map
1822  periodic_node_map.clear();
1823 
1824  // get periodic nodes
1825  std::vector<PeriodicNodeInfo> periodic_nodes;
1826  for (const auto & t : getMesh().get_boundary_info().build_node_list())
1827  {
1828  // unfortunately libMesh does not give us a pointer, so we have to look it up ourselves
1829  auto node = _mesh->node_ptr(std::get<0>(t));
1830  mooseAssert(node != nullptr,
1831  "libMesh::BoundaryInfo::build_node_list() returned an ID for a non-existing node");
1832  auto bc_id = std::get<1>(t);
1833  periodic_nodes.emplace_back(node, bc_id);
1834  }
1835 
1836  // sort by boundary id
1837  std::sort(periodic_nodes.begin(),
1838  periodic_nodes.end(),
1839  [](const PeriodicNodeInfo & a, const PeriodicNodeInfo & b) -> bool
1840  { return a.second > b.second; });
1841 
1842  // build kd-tree
1843  using KDTreeType = nanoflann::KDTreeSingleIndexAdaptor<
1844  nanoflann::L2_Simple_Adaptor<Real, PointListAdaptor<PeriodicNodeInfo>, Real, std::size_t>,
1846  LIBMESH_DIM,
1847  std::size_t>;
1848  const unsigned int max_leaf_size = 20; // slightly affects runtime
1849  auto point_list =
1850  PointListAdaptor<PeriodicNodeInfo>(periodic_nodes.begin(), periodic_nodes.end());
1851  auto kd_tree = std::make_unique<KDTreeType>(
1852  LIBMESH_DIM, point_list, nanoflann::KDTreeSingleIndexAdaptorParams(max_leaf_size));
1853  mooseAssert(kd_tree != nullptr, "KDTree was not properly initialized.");
1854  kd_tree->buildIndex();
1855 
1856  // data structures for kd-tree search
1857  nanoflann::SearchParameters search_params;
1858  std::vector<nanoflann::ResultItem<std::size_t, Real>> ret_matches;
1859 
1860  // iterate over periodic nodes (boundary ids are in contiguous blocks)
1861  libMesh::PeriodicBoundaryBase * periodic = nullptr;
1862  BoundaryID current_bc_id = BoundaryInfo::invalid_id;
1863  for (auto & pair : periodic_nodes)
1864  {
1865  // entering a new block of boundary IDs
1866  if (pair.second != current_bc_id)
1867  {
1868  current_bc_id = pair.second;
1869  periodic = pbs->boundary(current_bc_id);
1870  if (periodic && !periodic->is_my_variable(var_number))
1871  periodic = nullptr;
1872  }
1873 
1874  // variable is not periodic at this node, skip
1875  if (!periodic)
1876  continue;
1877 
1878  // clear result buffer
1879  ret_matches.clear();
1880 
1881  // id of the current node
1882  const auto id = pair.first->id();
1883 
1884  // position where we expect a periodic partner for the current node and boundary
1885  Point search_point = periodic->get_corresponding_pos(*pair.first);
1886 
1887  // search at the expected point
1888  kd_tree->radiusSearch(&(search_point)(0), libMesh::TOLERANCE, ret_matches, search_params);
1889  for (auto & match_pair : ret_matches)
1890  {
1891  const auto & match = periodic_nodes[match_pair.first];
1892  // add matched node if the boundary id is the corresponding id in the periodic pair
1893  if (match.second == periodic->pairedboundary)
1894  periodic_node_map.emplace(id, match.first->id());
1895  }
1896  }
1897 }
static constexpr Real TOLERANCE
boundary_id_type pairedboundary
PeriodicBoundaryBase * boundary(boundary_id_type id)
virtual Point get_corresponding_pos(const Point &pt) const=0
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::pair< const Node *, BoundaryID > PeriodicNodeInfo
Helper type for building periodic node maps.
Definition: MooseMesh.h:1204
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:1581
bool is_my_variable(unsigned int var_num) const
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:824
SearchParams SearchParameters

◆ buildPeriodicNodeSets()

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

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

Definition at line 1900 of file MooseMesh.C.

1903 {
1904  TIME_SECTION("buildPeriodicNodeSets", 5);
1905 
1906  periodic_node_sets.clear();
1907 
1908  // Loop over all the boundary nodes adding the periodic nodes to the appropriate set
1909  for (const auto & t : getMesh().get_boundary_info().build_node_list())
1910  {
1911  auto node_id = std::get<0>(t);
1912  auto bc_id = std::get<1>(t);
1913 
1914  // Is this current node on a known periodic boundary?
1915  if (periodic_node_sets.find(bc_id) != periodic_node_sets.end())
1916  periodic_node_sets[bc_id].insert(node_id);
1917  else // This still might be a periodic node but we just haven't seen this boundary_id yet
1918  {
1919  const libMesh::PeriodicBoundaryBase * periodic = pbs->boundary(bc_id);
1920  if (periodic && periodic->is_my_variable(var_number))
1921  periodic_node_sets[bc_id].insert(node_id);
1922  }
1923  }
1924 }
PeriodicBoundaryBase * boundary(boundary_id_type id)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
bool is_my_variable(unsigned int var_num) const

◆ buildPRefinementAndCoarseningMaps()

void MooseMesh::buildPRefinementAndCoarseningMaps ( Assembly assembly)
inherited

Definition at line 2426 of file MooseMesh.C.

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

2427 {
2432 
2433  std::map<ElemType, std::pair<Elem *, unsigned int>> elems_and_max_p_level;
2434 
2435  for (const auto & elem : getMesh().active_element_ptr_range())
2436  {
2437  const auto type = elem->type();
2438  auto & [picked_elem, max_p_level] = elems_and_max_p_level[type];
2439  if (!picked_elem)
2440  picked_elem = elem;
2441  max_p_level = std::max(max_p_level, elem->p_level());
2442  }
2443 
2444  // The only requirement on the FEType is that it can be arbitrarily p-refined
2445  const FEType p_refinable_fe_type(CONSTANT, libMesh::MONOMIAL);
2446  std::vector<Point> volume_ref_points_coarse, volume_ref_points_fine, face_ref_points_coarse,
2447  face_ref_points_fine;
2448  std::vector<unsigned int> p_levels;
2449 
2450  for (auto & [elem_type, elem_p_level_pair] : elems_and_max_p_level)
2451  {
2452  auto & [moose_elem, max_p_level] = elem_p_level_pair;
2453  const auto dim = moose_elem->dim();
2454  // Need to do this just once to get the right qrules put in place
2455  assembly->setCurrentSubdomainID(moose_elem->subdomain_id());
2456  assembly->reinit(moose_elem);
2457  assembly->reinit(moose_elem, 0);
2458  auto & qrule = assembly->writeableQRule();
2459  auto & qrule_face = assembly->writeableQRuleFace();
2460 
2461  libMesh::Parallel::Communicator self_comm{};
2462  ReplicatedMesh mesh(self_comm);
2464  for (const auto & nd : moose_elem->node_ref_range())
2465  mesh.add_point(nd);
2466 
2467  Elem * const elem = mesh.add_elem(Elem::build(elem_type).release());
2468  for (const auto i : elem->node_index_range())
2469  elem->set_node(i, mesh.node_ptr(i));
2470 
2471  std::unique_ptr<FEBase> fe_face(FEBase::build(dim, p_refinable_fe_type));
2472  fe_face->get_phi();
2473  const auto & face_phys_points = fe_face->get_xyz();
2474  fe_face->attach_quadrature_rule(qrule_face);
2475 
2476  qrule->init(*elem);
2477  volume_ref_points_coarse = qrule->get_points();
2478  fe_face->reinit(elem, (unsigned int)0);
2479  libMesh::FEMap::inverse_map(dim, elem, face_phys_points, face_ref_points_coarse);
2480 
2481  p_levels.resize(max_p_level + 1);
2482  std::iota(p_levels.begin(), p_levels.end(), 0);
2483  libMesh::MeshRefinement mesh_refinement(mesh);
2484 
2485  for (const auto p_level : p_levels)
2486  {
2487  mesh_refinement.uniformly_p_refine(1);
2488  qrule->init(*elem);
2489  volume_ref_points_fine = qrule->get_points();
2490  fe_face->reinit(elem, (unsigned int)0);
2491  libMesh::FEMap::inverse_map(dim, elem, face_phys_points, face_ref_points_fine);
2492 
2493  const auto map_key = std::make_pair(elem_type, p_level);
2494  auto & volume_refine_map = _elem_type_to_p_refinement_map[map_key];
2495  auto & face_refine_map = _elem_type_to_p_refinement_side_map[map_key];
2496  auto & volume_coarsen_map = _elem_type_to_p_coarsening_map[map_key];
2497  auto & face_coarsen_map = _elem_type_to_p_coarsening_side_map[map_key];
2498 
2499  auto fill_maps = [this](const auto & coarse_ref_points,
2500  const auto & fine_ref_points,
2501  auto & coarsen_map,
2502  auto & refine_map)
2503  {
2504  mapPoints(fine_ref_points, coarse_ref_points, refine_map);
2505  mapPoints(coarse_ref_points, fine_ref_points, coarsen_map);
2506  };
2507 
2508  fill_maps(
2509  volume_ref_points_coarse, volume_ref_points_fine, volume_coarsen_map, volume_refine_map);
2510  fill_maps(face_ref_points_coarse, face_ref_points_fine, face_coarsen_map, face_refine_map);
2511 
2512  // With this level's maps filled our fine points now become our coarse points
2513  volume_ref_points_fine.swap(volume_ref_points_coarse);
2514  face_ref_points_fine.swap(face_ref_points_coarse);
2515  }
2516  }
2517 }
std::unique_ptr< FEGenericBase< Real > > build(const unsigned int dim, const FEType &fet)
virtual Node *& set_node(const unsigned int i)
libMesh::QBase *const & writeableQRule()
Returns the reference to the current quadrature being used.
Definition: Assembly.h:241
static Point inverse_map(const unsigned int dim, const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true, const bool extra_checks=true)
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:164
unsigned int p_level() const
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_side_map
Definition: MooseMesh.h:1936
virtual Node * add_point(const Point &p, const dof_id_type id=DofObject::invalid_id, const processor_id_type proc_id=DofObject::invalid_processor_id)=0
void reinit(const Elem *elem)
Reinitialize objects (JxW, q_points, ...) for an elements.
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:2648
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual Elem * add_elem(Elem *e)=0
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:93
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_side_map
Definition: MooseMesh.h:1910
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_map
Definition: MooseMesh.h:1934
void set_mesh_dimension(unsigned char d)
void setCurrentSubdomainID(SubdomainID i)
set the current subdomain ID
Definition: Assembly.h:424
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_map
Definition: MooseMesh.h:1908
IntRange< unsigned short > node_index_range() const
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
virtual const Node * node_ptr(const dof_id_type i) const=0
virtual ElemType type() const=0
libMesh::QBase *const & writeableQRuleFace()
Returns the reference to the current quadrature being used on a current face.
Definition: Assembly.h:328

◆ 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 2520 of file MooseMesh.C.

Referenced by FEProblemBase::initialSetup().

2521 {
2522  TIME_SECTION("buildRefinementAndCoarseningMaps", 5, "Building Refinement And Coarsening Maps");
2523  if (doingPRefinement())
2525  else
2527 }
void buildHRefinementAndCoarseningMaps(Assembly *assembly)
Definition: MooseMesh.C:2369
bool doingPRefinement() const
Query whether the kind of adaptivity we&#39;re doing includes p-refinement.
Definition: MooseMesh.h:1497
void buildPRefinementAndCoarseningMaps(Assembly *assembly)
Definition: MooseMesh.C:2426

◆ buildSideList()

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

Calls BoundaryInfo::build_side_list(), returns a std::vector of (elem-id, side-id, bc-id) tuples.

Definition at line 3109 of file MooseMesh.C.

Referenced by InterfaceQpUserObjectBase::initialSetup().

3110 {
3112 }
const BoundaryInfo & get_boundary_info() const
std::vector< BCTuple > build_side_list(BCTupleSortBy sort_by=BCTupleSortBy::ELEM_ID) const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ 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 2251 of file MooseMesh.h.

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

2252 {
2253  // If the requested mesh type to build doesn't match our current value for _use_distributed_mesh,
2254  // then we need to make sure to make our state consistent because other objects, like the periodic
2255  // boundary condition action, will be querying isDistributedMesh()
2256  if (_use_distributed_mesh != std::is_same<T, libMesh::DistributedMesh>::value)
2257  {
2258  if (getMeshPtr())
2259  mooseError("A MooseMesh object is being asked to build a libMesh mesh that is a different "
2260  "parallel type than the libMesh mesh that it wraps. This is not allowed. Please "
2261  "create another MooseMesh object to wrap the new libMesh mesh");
2262  setParallelType(MeshType<T>::value);
2263  }
2264 
2265  if (dim == libMesh::invalid_uint)
2266  {
2267  if (isParamValid("dim"))
2268  dim = getParam<MooseEnum>("dim");
2269  else
2270  // Legacy selection of the default for the 'dim' parameter
2271  dim = 1;
2272  }
2273 
2274  auto mesh = std::make_unique<T>(_communicator, dim);
2275 
2276  if (!getParam<bool>("allow_renumbering"))
2277  mesh->allow_renumbering(false);
2278 
2279  mesh->allow_remote_element_removal(_allow_remote_element_removal);
2280  _app.attachRelationshipManagers(*mesh, *this);
2281 
2283  {
2284  // Check of partitioner is supplied (not allowed if custom partitioner is used)
2285  if (!parameters().isParamSetByAddParam("partitioner"))
2286  mooseError("If partitioner block is provided, partitioner keyword cannot be used!");
2287  // Set custom partitioner
2288  if (!_custom_partitioner.get())
2289  mooseError("Custom partitioner requested but not set!");
2290  mesh->partitioner() = _custom_partitioner->clone();
2291  }
2292  else
2293  setPartitionerHelper(mesh.get());
2294 
2295  return mesh;
2296 }
const unsigned int invalid_uint
void setParallelType(ParallelType parallel_type)
Allow to change parallel type.
Definition: MooseMesh.h:2305
bool _custom_partitioner_requested
Definition: MooseMesh.h:1594
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:164
const Parallel::Communicator & _communicator
void setPartitionerHelper(MeshBase *mesh=nullptr)
Definition: MooseMesh.C:3728
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:2975
const MeshBase * getMeshPtr() const
Definition: MooseMesh.C:3542
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1576
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1977
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseBase.h:209
std::unique_ptr< libMesh::Partitioner > _custom_partitioner
The custom partitioner.
Definition: MooseMesh.h:1593

◆ cacheChangedLists()

void MooseMesh::cacheChangedLists ( )
inherited

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

Definition at line 917 of file MooseMesh.C.

Referenced by FEProblemBase::meshChanged().

918 {
919  TIME_SECTION("cacheChangedLists", 5, "Caching Changed Lists");
920 
921  ConstElemRange elem_range(getMesh().local_elements_begin(), getMesh().local_elements_end(), 1);
922  CacheChangedListsThread cclt(*this);
923  Threads::parallel_reduce(elem_range, cclt);
924 
926 
927  _refined_elements = std::make_unique<ConstElemPointerRange>(cclt._refined_elements.begin(),
928  cclt._refined_elements.end());
929  _coarsened_elements = std::make_unique<ConstElemPointerRange>(cclt._coarsened_elements.begin(),
930  cclt._coarsened_elements.end());
931  _coarsened_element_children = cclt._coarsened_element_children;
932 }
void parallel_reduce(const Range &range, Body &body, const Partitioner &, unsigned int n_threads=libMesh::n_threads())
std::unique_ptr< ConstElemPointerRange > _refined_elements
The elements that were just refined.
Definition: MooseMesh.h:1628
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::unique_ptr< ConstElemPointerRange > _coarsened_elements
The elements that were just coarsened.
Definition: MooseMesh.h:1631
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:1638

◆ 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 4061 of file MooseMesh.C.

Referenced by MooseMesh::setupFiniteVolumeMeshData().

4062 {
4063  mooseAssert(
4064  !Threads::in_threads,
4065  "Performing writes to faceInfo variable association maps. This must be done unthreaded!");
4066 
4067  const unsigned int num_eqs = _app.feProblem().es().n_systems();
4068 
4069  auto face_lambda = [this](const SubdomainID elem_subdomain_id,
4070  const SubdomainID neighbor_subdomain_id,
4071  SystemBase & sys,
4072  std::vector<std::vector<FaceInfo::VarFaceNeighbors>> & face_type_vector)
4073  {
4074  face_type_vector[sys.number()].resize(sys.nVariables(), FaceInfo::VarFaceNeighbors::NEITHER);
4075  const auto & variables = sys.getVariables(0);
4076 
4077  for (const auto & var : variables)
4078  {
4079  const unsigned int var_num = var->number();
4080  const unsigned int sys_num = var->sys().number();
4081  std::set<SubdomainID> var_subdomains = var->blockIDs();
4091  bool var_defined_elem = var_subdomains.find(elem_subdomain_id) != var_subdomains.end();
4092  bool var_defined_neighbor =
4093  var_subdomains.find(neighbor_subdomain_id) != var_subdomains.end();
4094  if (var_defined_elem && var_defined_neighbor)
4095  face_type_vector[sys_num][var_num] = FaceInfo::VarFaceNeighbors::BOTH;
4096  else if (!var_defined_elem && !var_defined_neighbor)
4097  face_type_vector[sys_num][var_num] = FaceInfo::VarFaceNeighbors::NEITHER;
4098  else
4099  {
4100  // this is a boundary face for this variable, set elem or neighbor
4101  if (var_defined_elem)
4102  face_type_vector[sys_num][var_num] = FaceInfo::VarFaceNeighbors::ELEM;
4103  else if (var_defined_neighbor)
4104  face_type_vector[sys_num][var_num] = FaceInfo::VarFaceNeighbors::NEIGHBOR;
4105  else
4106  mooseError("Should never get here");
4107  }
4108  }
4109  };
4110 
4111  // We loop through the faces and check if they are internal, boundary or external to
4112  // the variables in the problem
4113  for (FaceInfo & face : _all_face_info)
4114  {
4115  const SubdomainID elem_subdomain_id = face.elemSubdomainID();
4116  const SubdomainID neighbor_subdomain_id = face.neighborSubdomainID();
4117 
4118  auto & face_type_vector = face.faceType();
4119 
4120  face_type_vector.clear();
4121  face_type_vector.resize(num_eqs);
4122 
4123  // First, we check the variables in the solver systems (linear/nonlinear)
4124  for (const auto i : make_range(_app.feProblem().numSolverSystems()))
4125  face_lambda(elem_subdomain_id,
4126  neighbor_subdomain_id,
4128  face_type_vector);
4129 
4130  // Then we check the variables in the auxiliary system
4131  face_lambda(elem_subdomain_id,
4132  neighbor_subdomain_id,
4134  face_type_vector);
4135  }
4136 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1761
unsigned int n_systems() const
Base class for a system (of equations)
Definition: SystemBase.h:85
FEProblemBase & feProblem() const
Definition: MooseApp.C:1658
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition: FaceInfo.h:37
virtual libMesh::EquationSystems & es() override
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
AuxiliarySystem & getAuxiliarySystem()
IntRange< T > make_range(T beg, T end)
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
SolverSystem & getSolverSystem(unsigned int sys_num)
Get non-constant reference to a solver system.
virtual std::size_t numSolverSystems() const override

◆ 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 4139 of file MooseMesh.C.

Referenced by MooseMesh::setupFiniteVolumeMeshData().

4140 {
4141  mooseAssert(!Threads::in_threads,
4142  "Performing writes to elemInfo dof indices. This must be done unthreaded!");
4143 
4144  auto elem_lambda = [](const ElemInfo & elem_info,
4145  SystemBase & sys,
4146  std::vector<std::vector<dof_id_type>> & dof_vector)
4147  {
4148  if (sys.nFVVariables())
4149  {
4150  dof_vector[sys.number()].resize(sys.nVariables(), libMesh::DofObject::invalid_id);
4151  const auto & variables = sys.getVariables(0);
4152 
4153  for (const auto & var : variables)
4154  if (var->isFV())
4155  {
4156  const auto & var_subdomains = var->blockIDs();
4157 
4158  // We will only cache for FV variables and if they live on the current subdomain
4159  if (var_subdomains.find(elem_info.subdomain_id()) != var_subdomains.end())
4160  {
4161  std::vector<dof_id_type> indices;
4162  var->dofMap().dof_indices(elem_info.elem(), indices, var->number());
4163  mooseAssert(indices.size() == 1, "We expect to have only one dof per element!");
4164  dof_vector[sys.number()][var->number()] = indices[0];
4165  }
4166  }
4167  }
4168  };
4169 
4170  const unsigned int num_eqs = _app.feProblem().es().n_systems();
4171 
4172  // We loop through the elements in the mesh and cache the dof indices
4173  // for the corresponding variables.
4174  for (auto & ei_pair : _elem_to_elem_info)
4175  {
4176  auto & elem_info = ei_pair.second;
4177  auto & dof_vector = elem_info.dofIndices();
4178 
4179  dof_vector.clear();
4180  dof_vector.resize(num_eqs);
4181 
4182  // First, we cache the dof indices for the variables in the solver systems (linear, nonlinear)
4183  for (const auto i : make_range(_app.feProblem().numSolverSystems()))
4184  elem_lambda(elem_info, _app.feProblem().getSolverSystem(i), dof_vector);
4185 
4186  // Then we cache the dof indices for the auxvariables
4187  elem_lambda(elem_info, _app.feProblem().getAuxiliarySystem(), dof_vector);
4188  }
4189 }
unsigned int n_systems() const
const Elem * elem() const
Definition: ElemInfo.h:34
Base class for a system (of equations)
Definition: SystemBase.h:85
FEProblemBase & feProblem() const
Definition: MooseApp.C:1658
static constexpr dof_id_type invalid_id
virtual libMesh::EquationSystems & es() override
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
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:1753
const std::vector< std::vector< dof_id_type > > & dofIndices() const
Definition: ElemInfo.h:39
IntRange< T > make_range(T beg, T end)
SolverSystem & getSolverSystem(unsigned int sys_num)
Get non-constant reference to a solver system.
Class used for caching additional information for elements such as the volume and centroid...
Definition: ElemInfo.h:25
virtual std::size_t numSolverSystems() const override
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 1407 of file MooseMesh.C.

Referenced by MooseMesh::update().

1408 {
1409  TIME_SECTION("cacheInfo", 3);
1410 
1411  _sub_to_data.clear();
1413  _block_node_list.clear();
1416  _lower_d_interior_blocks.clear();
1417  _lower_d_boundary_blocks.clear();
1418 
1419  const auto & mesh = getMesh();
1420 
1421  // Cache higher and lowerD element information
1422  for (const auto & elem : mesh.element_ptr_range())
1423  {
1424  const Elem * ip_elem = elem->interior_parent();
1425 
1426  if (ip_elem)
1427  {
1428  unsigned int ip_side = ip_elem->which_side_am_i(elem);
1429 
1430  // For some grid sequencing tests: ip_side == libMesh::invalid_uint
1431  if (ip_side != libMesh::invalid_uint)
1432  {
1433  auto pair = std::make_pair(ip_elem, ip_side);
1435  std::pair<std::pair<const Elem *, unsigned short int>, const Elem *>(pair, elem));
1437  std::pair<const Elem *, unsigned short int>(elem, ip_side));
1438 
1439  auto id = elem->subdomain_id();
1440  if (ip_elem->neighbor_ptr(ip_side))
1441  {
1442  if (mesh.subdomain_name(id).find("INTERNAL_SIDE_LOWERD_SUBDOMAIN_") != std::string::npos)
1443  _lower_d_interior_blocks.insert(id);
1444  }
1445  else
1446  {
1447  if (mesh.subdomain_name(id).find("BOUNDARY_SIDE_LOWERD_SUBDOMAIN_") != std::string::npos)
1448  _lower_d_boundary_blocks.insert(id);
1449  }
1450  }
1451  }
1452 
1453  for (unsigned int nd = 0; nd < elem->n_nodes(); ++nd)
1454  {
1455  const Node & node = *elem->node_ptr(nd);
1456  _block_node_list[node.id()].insert(elem->subdomain_id());
1457  }
1458  }
1461 
1462  // Cache the boundaries next to each subdomain
1463  for (const auto & elem : mesh.active_local_element_ptr_range())
1464  {
1465  SubdomainID subdomain_id = elem->subdomain_id();
1466  auto & sub_data = _sub_to_data[subdomain_id];
1467  const auto elem_boundary_ids = getBoundaryIDs(elem);
1468  for (unsigned int side = 0; side < elem->n_sides(); side++)
1469  {
1470  const auto & boundary_ids = elem_boundary_ids[side];
1471  sub_data.boundary_ids.insert(boundary_ids.begin(), boundary_ids.end());
1472 
1473  const Elem * neig = elem->neighbor_ptr(side);
1474  if (neig)
1475  {
1476  _neighbor_subdomain_boundary_ids[neig->subdomain_id()].insert(boundary_ids.begin(),
1477  boundary_ids.end());
1478  SubdomainID neighbor_subdomain_id = neig->subdomain_id();
1479  if (neighbor_subdomain_id != subdomain_id)
1480  sub_data.neighbor_subs.insert(neighbor_subdomain_id);
1481  }
1482  }
1483  }
1484 
1485  for (const auto blk_id : _mesh_subdomains)
1486  {
1487  auto & sub_data = _sub_to_data[blk_id];
1488  _communicator.set_union(sub_data.neighbor_subs);
1489  _communicator.set_union(sub_data.boundary_ids);
1491  }
1492 }
const std::set< BoundaryID > & getBoundaryIDs() const
Returns a const reference to a set of all user-specified boundary IDs.
Definition: MooseMesh.C:3042
const unsigned int invalid_uint
const Elem * interior_parent() const
std::unordered_map< const Elem *, unsigned short int > _lower_d_elem_to_higher_d_elem_side
Definition: MooseMesh.h:1961
unsigned int which_side_am_i(const Elem *e) const
MeshBase & mesh
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:1960
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
list of nodes that belongs to a specified block (domain)
Definition: MooseMesh.h:1704
const Parallel::Communicator & _communicator
std::set< SubdomainID > _lower_d_boundary_blocks
Mesh blocks for boundary lower-d elements in different types.
Definition: MooseMesh.h:1957
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:1952
std::set< SubdomainID > _lower_d_interior_blocks
Mesh blocks for interior lower-d elements in different types.
Definition: MooseMesh.h:1955
dof_id_type id() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual unsigned int n_nodes() const=0
std::string & subdomain_name(subdomain_id_type id)
virtual unsigned int n_sides() const=0
const Elem * neighbor_ptr(unsigned int i) const
subdomain_id_type subdomain_id() const
const Node * node_ptr(const unsigned int i) const
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:824
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
std::set< SubdomainID > _mesh_subdomains
A set of subdomain IDs currently present in the mesh.
Definition: MooseMesh.h:1667
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1949
void set_union(T &data, const unsigned int root_id) const

◆ callMooseError() [1/2]

void MooseBase::callMooseError ( std::string  msg,
const bool  with_prefix,
const hit::Node *  node = nullptr,
const bool  show_trace = true 
) const
inherited

External method for calling moose error with added object context.

Parameters
msgThe message
with_prefixIf true, add the prefix from messagePrefix(), which is the object information (type, name, etc)
nodeOptional hit node to add file path context as a prefix
show_traceWhether or not to show a stack trace, defaults to true

Definition at line 105 of file MooseBase.C.

Referenced by InputParameters::callMooseError(), MooseBase::mooseDocumentedError(), MooseBase::mooseError(), and MooseBase::mooseErrorNonPrefixed().

109 {
110  callMooseError(&_app, _pars, msg, with_prefix, node, show_trace);
111 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
void callMooseError(std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
External method for calling moose error with added object context.
Definition: MooseBase.C:105

◆ callMooseError() [2/2]

void MooseBase::callMooseError ( MooseApp *const  app,
const InputParameters params,
std::string  msg,
const bool  with_prefix,
const hit::Node *  node,
const bool  show_trace = true 
)
staticinherited

External method for calling moose error with added object context.

Needed so that objects without the MooseBase context (InputParameters) can call errors with context

Parameters
appThe app pointer (if available); adds multiapp context and clears the console
paramsThe parameters, needed to obtain object information
msgThe message
with_prefixIf true, add the prefix from messagePrefix(), which is the object information (type, name, etc)
nodeOptional hit node to add file path context as a prefix
show_traceWhether or not to show a stack trace, defaults to true

Definition at line 114 of file MooseBase.C.

120 {
121  if (!node)
122  node = MooseBase::getHitNode(params);
123 
124  std::string multiapp_prefix = "";
125  if (app)
126  {
127  if (!app->isUltimateMaster())
128  multiapp_prefix = app->name();
130  }
131 
132  if (with_prefix)
133  // False here because the hit context will get processed by the node
134  msg = messagePrefix(params, false) + msg;
135 
136  moose::internal::mooseErrorRaw(msg, multiapp_prefix, node, show_trace);
137 }
bool isUltimateMaster() const
Whether or not this app is the ultimate master app.
Definition: MooseApp.h:840
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
void mooseErrorRaw(std::string msg, const std::string &prefix="", const hit::Node *node=nullptr, const bool show_trace=true)
Main callback for emitting a moose error.
Definition: MooseError.C:53
void mooseConsole()
Send current output buffer to Console output objects.
const hit::Node * getHitNode() const
Definition: MooseBase.h:136
OutputWarehouse & getOutputWarehouse()
Get the OutputWarehouse objects.
Definition: MooseApp.C:2180
std::string messagePrefix(const bool hit_prefix=true) const
Definition: MooseBase.h:266

◆ 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 2820 of file MooseMesh.C.

2823 {
2824  TIME_SECTION("changeBoundaryId", 6);
2825  changeBoundaryId(getMesh(), old_id, new_id, delete_prev);
2826 }
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:2820
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ changeBoundaryId() [2/2]

static 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.

◆ 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 4427 of file MooseMesh.C.

Referenced by FEProblemBase::checkCoordinateSystems().

4428 {
4429  for (const auto & elem : getMesh().element_ptr_range())
4430  {
4431  SubdomainID sid = elem->subdomain_id();
4432  if (_coord_sys[sid] == Moose::COORD_RZ && elem->dim() == 3)
4433  mooseError("An RZ coordinate system was requested for subdomain " + Moose::stringify(sid) +
4434  " which contains 3D elements.");
4435  if (_coord_sys[sid] == Moose::COORD_RSPHERICAL && elem->dim() > 1)
4436  mooseError("An RSPHERICAL coordinate system was requested for subdomain " +
4437  Moose::stringify(sid) + " which contains 2D or 3D elements.");
4438  }
4439 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:2019
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
subdomain_id_type subdomain_id() const
virtual unsigned short dim() const=0
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ clearQuadratureNodes()

void MooseMesh::clearQuadratureNodes ( )
inherited

Clear out any existing quadrature nodes.

Most likely called before re-adding them.

Definition at line 1673 of file MooseMesh.C.

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

1674 {
1675  // Delete all the quadrature nodes
1676  for (auto & it : _quadrature_nodes)
1677  delete it.second;
1678 
1679  _quadrature_nodes.clear();
1681  _extra_bnd_nodes.clear();
1682 
1683  // NOTE: this does not clear them from the nodeToElem map
1684 }
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1698
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1701
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:1700

◆ clone()

MooseMesh & MooseMesh::clone ( ) const
virtualinherited

Clone method.

Allocates memory you are responsible to clean up.

Definition at line 2883 of file MooseMesh.C.

Referenced by TiledMesh::buildMesh().

2884 {
2885  mooseError("MooseMesh::clone() is no longer supported, use MooseMesh::safeClone() instead.");
2886 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ 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 947 of file MooseMesh.C.

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

948 {
949  auto elem_to_child_pair = _coarsened_element_children.find(elem);
950  mooseAssert(elem_to_child_pair != _coarsened_element_children.end(), "Missing element in map");
951  return elem_to_child_pair->second;
952 }
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
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:1638

◆ 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 941 of file MooseMesh.C.

Referenced by FEProblemBase::meshChanged().

942 {
943  return _coarsened_elements.get();
944 }
std::unique_ptr< ConstElemPointerRange > _coarsened_elements
The elements that were just coarsened.
Definition: MooseMesh.h:1631

◆ 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 3997 of file MooseMesh.C.

Referenced by MooseMesh::setupFiniteVolumeMeshData().

3998 {
4000  mooseError("Trying to compute face- and elem-info coords when the information is dirty");
4001 
4002  for (auto & fi : _all_face_info)
4003  {
4004  // get elem & neighbor elements, and set subdomain ids
4005  const SubdomainID elem_subdomain_id = fi.elemSubdomainID();
4006  const SubdomainID neighbor_subdomain_id = fi.neighborSubdomainID();
4007 
4009  *this, elem_subdomain_id, fi.faceCentroid(), fi.faceCoord(), neighbor_subdomain_id);
4010  }
4011 
4012  for (auto & ei : _elem_to_elem_info)
4014  *this, ei.second.subdomain_id(), ei.second.centroid(), ei.second.coordFactor());
4015 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1761
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1772
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:41
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:1753
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ connectControllableParams()

void MooseBase::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 77 of file MooseBase.C.

81 {
82  auto & factory = _app.getFactory();
83  auto & ip_warehouse = _app.getInputParameterWarehouse();
84 
85  MooseObjectParameterName primary_name(uniqueName(), parameter);
86  const auto base_type = factory.getValidParams(object_type).getBase();
87  MooseObjectParameterName secondary_name(base_type, object_name, object_parameter);
88  ip_warehouse.addControllableParameterConnection(primary_name, secondary_name);
89 
90  const auto & tags = _pars.get<std::vector<std::string>>("control_tags");
91  for (const auto & tag : tags)
92  {
93  if (!tag.empty())
94  {
95  // Only adds the parameter with the different control tags if the derived class
96  // properly registers the parameter to its own syntax
97  MooseObjectParameterName tagged_name(tag, name(), parameter);
98  ip_warehouse.addControllableParameterConnection(
99  tagged_name, secondary_name, /*error_on_empty=*/false);
100  }
101  }
102 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
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:2638
MooseObjectName uniqueName() const
Definition: MooseBase.C:69
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
Definition: MooseApp.h:406
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
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 2049 of file MooseMesh.h.

Referenced by FEProblemBase::checkProblemIntegrity(), and FEProblemBase::coordTransform().

2050 {
2051  mooseAssert(_coord_transform, "The coordinate transformation object is null.");
2052  return *_coord_transform;
2053 }
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:2029

◆ 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 283 of file Restartable.h.

286 {
287  auto & data_ptr =
288  declareRestartableDataHelper<T>(data_name, context, std::forward<Args>(args)...);
289  return Restartable::ManagedValue<T>(data_ptr);
290 }
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 358 of file Restartable.h.

359 {
360  const auto full_name = restartableName(data_name);
361 
363 
364  return declareRestartableDataWithContext<T>(data_name, nullptr, std::forward<Args>(args)...);
365 }
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:78
void registerRestartableNameWithFilterOnApp(const std::string &name, Moose::RESTARTABLE_FILTER filter)
Helper function for actually registering the restartable data.
Definition: Restartable.C:71

◆ 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 276 of file Restartable.h.

277 {
278  return declareRestartableDataWithContext<T>(data_name, nullptr, std::forward<Args>(args)...);
279 }

◆ 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 301 of file Restartable.h.

304 {
305  return declareRestartableDataHelper<T>(data_name, context, std::forward<Args>(args)...).set();
306 }

◆ 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 330 of file Restartable.h.

333 {
334  return declareRestartableDataWithObjectNameWithContext<T>(
335  data_name, object_name, nullptr, std::forward<Args>(args)...);
336 }

◆ 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 340 of file Restartable.h.

344 {
345  std::string old_name = _restartable_name;
346 
347  _restartable_name = object_name;
348 
349  T & value = declareRestartableDataWithContext<T>(data_name, context, std::forward<Args>(args)...);
350 
351  _restartable_name = old_name;
352 
353  return value;
354 }
std::string _restartable_name
The name of the object.
Definition: Restartable.h:250
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

◆ deleteRemoteElements()

void MooseMesh::deleteRemoteElements ( )
inherited

Delete remote elements.

Definition at line 4049 of file MooseMesh.C.

4050 {
4052  if (!_mesh)
4053  mooseError("Cannot delete remote elements because we have not yet attached a MeshBase");
4054 
4055  _mesh->allow_remote_element_removal(true);
4056 
4057  _mesh->delete_remote_elements();
4058 }
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1977
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ 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 1927 of file MooseMesh.C.

Referenced by MooseMesh::prepare().

1928 {
1929  TIME_SECTION("detectOrthogonalDimRanges", 5);
1930 
1932  return true;
1933 
1934  std::vector<Real> min(3, std::numeric_limits<Real>::max());
1935  std::vector<Real> max(3, std::numeric_limits<Real>::min());
1936  unsigned int dim = getMesh().mesh_dimension();
1937 
1938  // Find the bounding box of our mesh
1939  for (const auto & node : getMesh().node_ptr_range())
1940  // Check all coordinates, we don't know if this mesh might be lying in a higher dim even if the
1941  // mesh dimension is lower.
1942  for (const auto i : make_range(Moose::dim))
1943  {
1944  if ((*node)(i) < min[i])
1945  min[i] = (*node)(i);
1946  if ((*node)(i) > max[i])
1947  max[i] = (*node)(i);
1948  }
1949 
1950  this->comm().max(max);
1951  this->comm().min(min);
1952 
1953  _extreme_nodes.resize(8); // 2^LIBMESH_DIM
1954  // Now make sure that there are actual nodes at all of the extremes
1955  std::vector<bool> extreme_matches(8, false);
1956  std::vector<unsigned int> comp_map(3);
1957  for (const auto & node : getMesh().node_ptr_range())
1958  {
1959  // See if the current node is located at one of the extremes
1960  unsigned int coord_match = 0;
1961 
1962  for (const auto i : make_range(Moose::dim))
1963  {
1964  if (std::abs((*node)(i)-min[i]) < tol)
1965  {
1966  comp_map[i] = MIN;
1967  ++coord_match;
1968  }
1969  else if (std::abs((*node)(i)-max[i]) < tol)
1970  {
1971  comp_map[i] = MAX;
1972  ++coord_match;
1973  }
1974  }
1975 
1976  if (coord_match == LIBMESH_DIM) // Found a coordinate at one of the extremes
1977  {
1978  _extreme_nodes[comp_map[X] * 4 + comp_map[Y] * 2 + comp_map[Z]] = node;
1979  extreme_matches[comp_map[X] * 4 + comp_map[Y] * 2 + comp_map[Z]] = true;
1980  }
1981  }
1982 
1983  // See if we matched all of the extremes for the mesh dimension
1984  this->comm().max(extreme_matches);
1985  if (std::count(extreme_matches.begin(), extreme_matches.end(), true) == (1 << dim))
1986  _regular_orthogonal_mesh = true;
1987 
1988  // Set the bounds
1989  _bounds.resize(LIBMESH_DIM);
1990  for (const auto i : make_range(Moose::dim))
1991  {
1992  _bounds[i].resize(2);
1993  _bounds[i][MIN] = min[i];
1994  _bounds[i][MAX] = max[i];
1995  }
1996 
1997  return _regular_orthogonal_mesh;
1998 }
std::vector< std::vector< Real > > _bounds
The bounds in each dimension of the mesh for regular orthogonal meshes.
Definition: MooseMesh.h:1731
MetaPhysicL::DualNumber< V, D, asd > abs(const MetaPhysicL::DualNumber< V, D, asd > &a)
Definition: EigenADReal.h:50
std::vector< Node * > _extreme_nodes
A vector containing the nodes at the corners of a regular orthogonal mesh.
Definition: MooseMesh.h:1793
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:164
const Parallel::Communicator & comm() const
auto max(const L &left, const R &right)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
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:824
unsigned int mesh_dimension() const
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:1728

◆ detectPairedSidesets()

void MooseMesh::detectPairedSidesets ( )
inherited

This routine detects paired sidesets of a regular orthogonal mesh (.i.e.

parallel sidesets "across" from one and other).

The _paired_boundary datastructure is populated with this information.

Definition at line 2001 of file MooseMesh.C.

Referenced by Moose::PeriodicBCHelper::setupPeriodicBoundaries().

2002 {
2003  TIME_SECTION("detectPairedSidesets", 5);
2004 
2005  _paired_boundary = std::vector<std::pair<BoundaryID, BoundaryID>>();
2006 
2007  // Loop over level-0 elements (since boundary condition information
2008  // is only directly stored for them) and find sidesets with normals
2009  // that point in the -x, +x, -y, +y, and -z, +z direction. If there
2010  // is a unique sideset id for each direction, then the paired
2011  // sidesets consist of (-x,+x), (-y,+y), (-z,+z). If there are
2012  // multiple sideset ids for a given direction, then we can't pick a
2013  // single pair for that direction. In that case, we'll just return
2014  // as was done in the original algorithm.
2015 
2016  // we need to test all element dimensions from dim down to 1
2017  const unsigned int mesh_dim = getMesh().mesh_dimension();
2018 
2019  // Helper for iterating through unit dimensions (0=x, 1=y, 2=z)
2020  static constexpr std::array<std::size_t, 3> unit_dims{0, 1, 2};
2021  // Helper for mapping from unit dim -> name
2022  static const std::array<std::string, 3> unit_dim_names{"x", "y", "z"};
2023 
2024  // Boundary id sets for elements of different dimensions
2025  // First index: side dimension; 0=1D, 1=2D, 2=3D
2026  // Second index: unit dimension; 0=x, 1=y, 2=z
2027  // Third index: false for minus, true for plus
2028  std::array<std::array<std::array<std::set<BoundaryID>, 2>, 3>, 3> ids{};
2029 
2030  // Build quadrature needed to evaluate side normals
2031  std::array<std::unique_ptr<FEBase>, 3> fe_faces{};
2032  std::array<std::unique_ptr<libMesh::QGauss>, 3> qfaces{};
2033  for (const auto side_dim : make_range(mesh_dim))
2034  {
2035  // Face is assumed to be flat, therefore normal is assumed to be
2036  // constant over the face, therefore only compute it at 1 qp.
2037  qfaces[side_dim] = std::unique_ptr<libMesh::QGauss>(new libMesh::QGauss(side_dim, CONSTANT));
2038 
2039  // A first-order Lagrange FE for the face.
2040  fe_faces[side_dim] = FEBase::build(side_dim + 1, FEType(FIRST, libMesh::LAGRANGE));
2041  fe_faces[side_dim]->attach_quadrature_rule(qfaces[side_dim].get());
2042  fe_faces[side_dim]->get_normals();
2043  }
2044 
2045  // Get boundary IDs for each dimension that are in the unit normal
2046  const auto & boundary_info = getMesh().get_boundary_info();
2047  // Temporary for evaluating boundary_ids
2048  std::vector<boundary_id_type> face_ids;
2049  // The side dimensions we've come across, so that we only report
2050  // warnings for side dimensions that we have
2051  std::set<unsigned int> side_dims;
2052  // Normal dimensions that we found that were nonzero; lets us
2053  // skip warnings for dimensions that we don't have
2054  std::array<bool, 3> nonzero_dims = periodic_dim_default;
2055  for (auto & elem : as_range(getMesh().level_elements_begin(0), getMesh().level_elements_end(0)))
2056  {
2057  // If not on the boundary, nothing to do
2058  if (!elem->on_boundary())
2059  continue;
2060 
2061  const auto side_dim = elem->dim() - 1;
2062  side_dims.insert(side_dim);
2063 
2064  // Check for unit normals on each boundary side
2065  for (const auto s : elem->side_index_range())
2066  if (!elem->neighbor_ptr(s))
2067  {
2068  // Reinit to get the normal
2069  fe_faces[side_dim]->reinit(elem, s);
2070  const auto & normal = fe_faces[side_dim]->get_normals()[0];
2071 
2072  // Get the boundary ID(s) for this side. If there is more
2073  // than 1 boundary id, then we already can't determine a
2074  // unique pairing of sides in this direction, but we'll just
2075  // keep going to keep the logic simple.
2076  boundary_info.boundary_ids(elem, s, face_ids);
2077 
2078  bool found = false;
2079  for (const auto unit_dim : unit_dims)
2080  {
2081  if (libMesh::absolute_fuzzy_equals(normal(unit_dim), 0.0))
2082  continue;
2083  nonzero_dims[unit_dim] = true;
2084  if (!found)
2085  for (const auto plus : {false, true})
2086  {
2087  if (libMesh::absolute_fuzzy_equals(normal(unit_dim), plus ? 1.0 : -1.0))
2088  {
2089  ids[side_dim][unit_dim][plus].insert(face_ids.begin(), face_ids.end());
2090  found = true;
2091  break;
2092  }
2093  }
2094  }
2095  }
2096  }
2097 
2098  // For a distributed mesh, boundaries may be distributed as well. We therefore collect information
2099  // from everyone. If the mesh is already serial, then there is no need to do an allgather. Note
2100  // that this is just going to gather information about what the periodic bc ids are. We are not
2101  // gathering any remote elements or anything like that. It's just that the GhostPointNeighbors
2102  // ghosting functor currently relies on the fact that every process agrees on whether we have
2103  // periodic boundaries; every process that thinks there are periodic boundaries will call
2104  // MeshBase::sub_point_locator which makes a parallel_object_only() assertion (right or wrong). So
2105  // we all need to go there (or not go there)
2106  if (_use_distributed_mesh && !_mesh->is_serial())
2107  {
2108  // Communicate id data by packing as [side dim, unit dim, plus (as a char), boundary id]
2109  std::vector<std::tuple<unsigned int, unsigned int, unsigned char, boundary_id_type>> id_data;
2110  for (const auto side_dim : side_dims)
2111  for (const auto unit_dim : unit_dims)
2112  for (const auto plus : {false, true})
2113  for (const auto bd : ids[side_dim][unit_dim][plus])
2114  id_data.emplace_back(side_dim, unit_dim, plus, bd);
2115  _communicator.allgather(id_data, false);
2116  for (const auto & [side_dim, unit_dim, plus_char, bd] : id_data)
2117  ids[side_dim][unit_dim][bool(plus_char)].insert(bd);
2118 
2119  // Gather true-ness of nonzero_dims
2120  for (auto & entry : nonzero_dims)
2121  _communicator.max(entry);
2122 
2123  // Gather found side dimensions
2124  _communicator.set_union(side_dims);
2125  } // end if (_use_distributed_mesh && !_need_ghost_ghosted_boundaries)
2126 
2127  // Find pairings that have exactly one boundary on each side
2128  std::ostringstream oss_found, oss_missing;
2129  for (const auto side_dim : side_dims)
2130  {
2131  for (const auto unit_dim : unit_dims)
2132  if (nonzero_dims[unit_dim])
2133  {
2134  const auto & unit_name = unit_dim_names[unit_dim];
2135  const auto & minus = ids[side_dim][unit_dim][false];
2136  const auto & plus = ids[side_dim][unit_dim][true];
2137 
2138  if (minus.size() == 1 && plus.size() == 1)
2139  {
2140  const auto get_boundary_name = [this](const auto id)
2141  {
2142  const auto & name = getBoundaryName(id);
2143  return name.size() ? name : std::to_string(id);
2144  };
2145 
2146  oss_found << "\n " << side_dim + 1 << "D " << unit_name
2147  << "-direction: " << get_boundary_name(*minus.begin()) << " <-> "
2148  << get_boundary_name(*plus.begin());
2149  _paired_boundary->emplace_back(std::make_pair(*minus.begin(), *plus.begin()));
2150  }
2151  else
2152  oss_missing << "\n " << side_dim + 1 << "D -" << unit_name << "/+" << unit_name
2153  << ": Found " << minus.size() << " -" << unit_name << " boundaries and "
2154  << plus.size() << " +" << unit_name << " boundaries";
2155  }
2156  }
2157 
2158  std::ostringstream oss;
2159  const auto found = oss_found.str();
2160  const auto missing = oss_missing.str();
2161  if (found.size())
2162  oss << "The following paired boundaries were automatically detected for periodicity:\n"
2163  << found << "\n";
2164  if (missing.size())
2165  {
2166  if (found.size())
2167  oss << "\n";
2168  oss << "Paired boundaries were not automatically detected for the following:\n"
2169  << missing
2170  << "\n\nAutomatic detection requires that exactly one boundary is found in each unit "
2171  "direction.\n";
2172  }
2173 
2174  mooseInfoRepeated(oss.str());
2175 }
std::unique_ptr< FEGenericBase< Real > > build(const unsigned int dim, const FEType &fet)
void allgather(const T &send_data, std::vector< T, A > &recv_data) const
IntRange< unsigned short > side_index_range() const
const std::string & getBoundaryName(const BoundaryID boundary_id) const
Return the name of the boundary given the id.
Definition: MooseMesh.C:1787
void mooseInfoRepeated(Args &&... args)
Emit an informational message with the given stringified, concatenated args.
Definition: MooseError.h:409
const Parallel::Communicator & _communicator
const BoundaryInfo & get_boundary_info() const
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1576
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
static const std::array< bool, 3 > periodic_dim_default
Default value for the automatically detected paired boundaries for each unit dimension, in which the value for each unit dimension is false (not detected).
Definition: MooseMesh.h:106
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
bool on_boundary() const
const Elem * neighbor_ptr(unsigned int i) const
bool absolute_fuzzy_equals(const T &var1, const T2 &var2, const Real tol=TOLERANCE *TOLERANCE)
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581
void max(const T &r, T &o, Request &req) const
virtual unsigned short dim() const=0
std::optional< std::vector< std::pair< BoundaryID, BoundaryID > > > _paired_boundary
A vector holding the paired boundaries for a regular orthogonal mesh.
Definition: MooseMesh.h:1734
IntRange< T > make_range(T beg, T end)
unsigned int mesh_dimension() const
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
void set_union(T &data, const unsigned int root_id) const

◆ determineUseDistributedMesh()

void MooseMesh::determineUseDistributedMesh ( )
inherited

Determine whether to use a distributed mesh.

Should be called during construction

Definition at line 2889 of file MooseMesh.C.

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

2890 {
2891  switch (_parallel_type)
2892  {
2893  case ParallelType::DEFAULT:
2894  // The user did not specify 'parallel_type = XYZ' in the input file,
2895  // so we allow the --distributed-mesh command line arg to possibly turn
2896  // on DistributedMesh. If the command line arg is not present, we pick ReplicatedMesh.
2898  _use_distributed_mesh = true;
2899  break;
2903  _use_distributed_mesh = false;
2904  break;
2906  _use_distributed_mesh = true;
2907  break;
2908  }
2909 
2910  // If the user specifies 'nemesis = true' in the Mesh block, or they are using --use-split,
2911  // we must use DistributedMesh.
2912  if (_is_nemesis || _is_split)
2913  _use_distributed_mesh = true;
2914 }
ParallelType _parallel_type
Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.
Definition: MooseMesh.h:1571
bool _is_nemesis
True if a Nemesis Mesh was read in.
Definition: MooseMesh.h:1622
bool getDistributedMeshOnCommandLine() const
Returns true if the user specified –distributed-mesh (or –parallel-mesh, for backwards compatibilit...
Definition: MooseApp.h:465
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1576
const bool _is_split
Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)
Definition: MooseMesh.h:1737
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
bool _parallel_type_overridden
Definition: MooseMesh.h:1578

◆ 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 2178 of file MooseMesh.C.

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

2179 {
2180  return getMaxInDimension(component) - getMinInDimension(component);
2181 }
virtual Real getMaxInDimension(unsigned int component) const
Definition: MooseMesh.C:2193
virtual Real getMinInDimension(unsigned int component) const
Returns the min or max of the requested dimension respectively.
Definition: MooseMesh.C:2184

◆ doingPRefinement() [1/2]

void MooseMesh::doingPRefinement ( bool  doing_p_refinement)
inlineinherited

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

Definition at line 1492 of file MooseMesh.h.

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

1492 { _doing_p_refinement = doing_p_refinement; }
bool _doing_p_refinement
Whether we have p-refinement (whether exclusively p- or hp-refinement)
Definition: MooseMesh.h:2038

◆ doingPRefinement() [2/2]

bool MooseMesh::doingPRefinement ( ) const
inlineinherited

Query whether the kind of adaptivity we're doing includes p-refinement.

Definition at line 1497 of file MooseMesh.h.

Referenced by MooseMesh::buildRefinementAndCoarseningMaps().

1497 { return _doing_p_refinement; }
bool _doing_p_refinement
Whether we have p-refinement (whether exclusively p- or hp-refinement)
Definition: MooseMesh.h:2038

◆ 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 2991 of file MooseMesh.C.

2992 {
2993  const Real abs_zero = 1e-12;
2994 
2995  // See if the mesh is completely containd in the z and y planes to calculate effective spatial
2996  // dim
2997  for (unsigned int dim = LIBMESH_DIM; dim >= 1; --dim)
2998  if (dimensionWidth(dim - 1) >= abs_zero)
2999  return dim;
3000 
3001  // If we get here, we have a 1D mesh on the x-axis.
3002  return 1;
3003 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:164
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:2178

◆ 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 3199 of file MooseMesh.C.

Referenced by MooseMesh::addQuadratureNode(), MooseMesh::buildCoarseningMap(), MooseMesh::buildElemIDInfo(), MooseMesh::buildFiniteVolumeInfo(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildLowerDMesh(), SpiralAnnularMesh::buildMesh(), ConcentricCircleMesh::buildMesh(), AnnularMesh::buildMesh(), RinglebMesh::buildMesh(), MooseMesh::buildPRefinementAndCoarseningMaps(), MooseMesh::buildRefinementMap(), MooseMesh::cacheInfo(), MooseMesh::checkCoordinateSystems(), MooseMesh::coarsenedElementChildren(), MooseMesh::computeMaxPerElemAndSide(), MooseMesh::detectPairedSidesets(), MooseMesh::findAdaptivityQpMaps(), MooseMesh::getBlocksMaxDimension(), 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::internalNodeToElemMap(), MooseMesh::prepare(), MooseMesh::sideWithBoundaryID(), MooseMesh::update(), and MooseMesh::updateActiveSemiLocalNodeRange().

3200 {
3201  mooseDeprecated("MooseMesh::elem() is deprecated, please use MooseMesh::elemPtr() instead");
3202  return elemPtr(i);
3203 }
virtual Elem * elemPtr(const dof_id_type i)
Definition: MooseMesh.C:3213
void mooseDeprecated(Args &&... args) const

◆ elem() [2/2]

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

Definition at line 3206 of file MooseMesh.C.

3207 {
3208  mooseDeprecated("MooseMesh::elem() is deprecated, please use MooseMesh::elemPtr() instead");
3209  return elemPtr(i);
3210 }
virtual Elem * elemPtr(const dof_id_type i)
Definition: MooseMesh.C:3213
void mooseDeprecated(Args &&... args) const

◆ 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 3991 of file MooseMesh.C.

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

3992 {
3993  return libmesh_map_find(_elem_to_elem_info, id);
3994 }
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:1753

◆ elemInfoVector()

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

Accessor for the element info objects owned by this process.

Definition at line 1326 of file MooseMesh.h.

1326 { 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:1757

◆ elemPtr() [1/2]

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

Definition at line 3213 of file MooseMesh.C.

Referenced by Adaptivity::adaptMesh(), FEProblemBase::addGhostedElem(), SystemBase::augmentSendList(), NodalPatchRecoveryAuxBase::blockRestrictElements(), NodalPatchRecovery::compute(), BoundaryMarker::computeElementMarker(), NodalPatchRecoveryAuxBase::computeValue(), ProjectionAux::computeValue(), MooseMesh::elem(), ProjectionAux::elemOnNodeVariableIsDefinedOn(), ActivateElementsUserObjectBase::execute(), NonlinearSystemBase::findImplicitGeometricCouplingEntries(), NearestNodeLocator::findNodes(), ElementSubdomainModifierBase::findReinitializedElemsAndNodes(), ElementSubdomainModifierBase::gatherMovingBoundaryChanges(), ElementSubdomainModifierBase::gatherPatchElements(), NodalPatchRecoveryBase::gatherRequestList(), NodalPatchRecoveryBase::getCoefficients(), NodeElemConstraint::getConnectedDofIndices(), NodeFaceConstraint::getConnectedDofIndices(), FEProblemBase::getDiracElements(), PenetrationThread::getInfoForFacesWithCommonNodes(), ActivateElementsUserObjectBase::getNewlyActivatedElementRange(), ActivateElementsUserObjectBase::getNewlyActivatedNodeRange(), DiracKernelBase::hasPointsOnElem(), AuxKernelBase::initialSetup(), ActivateElementsUserObjectBase::isNewlyActivated(), Moose::Mortar::loopOverMortarSegments(), ElementSubdomainModifierBase::nodeIsNewlyReinitialized(), SecondaryNeighborhoodThread::operator()(), PenetrationThread::operator()(), FEProblemBase::prepareFace(), FEProblemBase::reinitDirac(), FEProblemBase::reinitElem(), FEProblemBase::reinitElemFaceRef(), FEProblemBase::reinitElemNeighborAndLowerD(), ElementSubdomainModifierBase::reinitializedElemRange(), FEProblemBase::reinitLowerDElem(), FEProblemBase::reinitNeighbor(), FEProblemBase::reinitNeighborFaceRef(), NonlinearSystemBase::reinitNodeFace(), FEProblemBase::setCurrentLowerDElem(), ElementSubdomainModifierBase::storeOverriddenDofValues(), and NearestNodeLocator::updatePatch().

3214 {
3215  return getMesh().elem_ptr(i);
3216 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual const Elem * elem_ptr(const dof_id_type i) const=0

◆ elemPtr() [2/2]

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

Definition at line 3219 of file MooseMesh.C.

3220 {
3221  return getMesh().elem_ptr(i);
3222 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual const Elem * elem_ptr(const dof_id_type i) const=0

◆ elemTypes()

MooseEnum MooseMesh::elemTypes ( )
staticinherited

returns MooseMesh element type options

Definition at line 4026 of file MooseMesh.C.

Referenced by SphereMeshGenerator::validParams().

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

◆ 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(), BlockRestrictionDebugOutput::printBlockRestrictionGroups(), BlockRestrictionDebugOutput::printBoundaryRestrictionGroups(), and NodeFaceConstraint::validParams().

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

◆ 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 3717 of file MooseMesh.C.

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

3718 {
3720  mooseError("Cannot use ",
3721  name,
3722  " with DistributedMesh!\n",
3723  "Consider specifying parallel_type = 'replicated' in your input file\n",
3724  "to prevent it from being run with DistributedMesh.");
3725 }
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1576
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ errorPrefix()

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

Deprecated message prefix; the error type is no longer used.

Definition at line 274 of file MooseBase.h.

274 { return messagePrefix(); }
std::string messagePrefix(const bool hit_prefix=true) const
Definition: MooseBase.h:266

◆ faceInfo() [1/2]

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

◆ 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.

◆ flagInvalidSolutionInternal()

template<bool warning>
template void SolutionInvalidInterface::flagInvalidSolutionInternal< false > ( const InvalidSolutionID  invalid_solution_id) const
protectedinherited

Set solution invalid mark for the given solution ID.

Definition at line 41 of file SolutionInvalidInterface.C.

43 {
44  mooseAssert(
45  warning == moose::internal::getSolutionInvalidityRegistry().item(invalid_solution_id).warning,
46  "Inconsistent warning flag");
47  auto & solution_invalidity = _si_moose_base.getMooseApp().solutionInvalidity();
48  if constexpr (!warning)
50  solution_invalidity.printDebug(invalid_solution_id);
51  return solution_invalidity.flagInvalidSolutionInternal(invalid_solution_id);
52 }
const FEProblemBase * _si_problem
A pointer to FEProblem base.
void printDebug(InvalidSolutionID _invalid_solution_id) const
Immediately print the section and message for debug purpose.
MooseApp & getMooseApp() const
Get the MooseApp this class is associated with.
Definition: MooseBase.h:87
SolutionInvalidity & solutionInvalidity()
Get the SolutionInvalidity for this app.
Definition: MooseApp.h:184
SolutionInvalidityRegistry & getSolutionInvalidityRegistry()
Get the global SolutionInvalidityRegistry singleton.
bool immediatelyPrintInvalidSolution() const
Whether or not the solution invalid warnings are printed out immediately.
const MooseBase & _si_moose_base
The MooseBase that owns this interface.

◆ freeBndElems()

void MooseMesh::freeBndElems ( )
protectedinherited

Definition at line 371 of file MooseMesh.C.

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

372 {
373  // free memory
374  for (auto & belem : _bnd_elems)
375  delete belem;
376 
377  for (auto & it : _bnd_elem_ids)
378  it.second.clear();
379 
380  _bnd_elem_ids.clear();
381  _bnd_elem_range.reset();
382 }
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:1655
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:1696
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1691

◆ freeBndNodes()

void MooseMesh::freeBndNodes ( )
protectedinherited

Definition at line 352 of file MooseMesh.C.

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

353 {
354  // free memory
355  for (auto & bnode : _bnd_nodes)
356  delete bnode;
357 
358  for (auto & it : _node_set_nodes)
359  it.second.clear();
360 
361  _node_set_nodes.clear();
362 
363  for (auto & it : _bnd_node_ids)
364  it.second.clear();
365 
366  _bnd_node_ids.clear();
367  _bnd_node_range.reset();
368 }
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:1688
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:1707
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1684
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1653

◆ getActiveLocalElementRange()

ConstElemRange * MooseMesh::getActiveLocalElementRange ( )
inherited

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

Definition at line 1240 of file MooseMesh.C.

Referenced by AuxiliarySystem::computeElementalVarsHelper(), PointwiseRenormalizeVector::execute(), ElementSubdomainModifierBase::gatherPatchElements(), FEProblemBase::getCurrentAlgebraicElementRange(), MooseMesh::meshChanged(), DOFMapOutput::output(), MeshInfo::possiblyAddSubdomainInfo(), SystemBase::setVariableGlobalDoFs(), FixedPointSolve::solve(), TransientMultiApp::solveStep(), ElementSubdomainModifierBase::storeOverriddenDofValues(), MooseMesh::updateActiveSemiLocalNodeRange(), Adaptivity::updateErrorVectors(), and SystemBase::zeroVariables().

1241 {
1243  {
1244  TIME_SECTION("getActiveLocalElementRange", 5);
1245 
1246  _active_local_elem_range = std::make_unique<ConstElemRange>(
1247  getMesh().active_local_elements_begin(), getMesh().active_local_elements_end());
1248  }
1249 
1250  return _active_local_elem_range.get();
1251 }
std::unique_ptr< libMesh::ConstElemRange > _active_local_elem_range
A range for use with threading.
Definition: MooseMesh.h:1647
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ getActiveNodeRange()

NodeRange * MooseMesh::getActiveNodeRange ( )
inherited

Definition at line 1254 of file MooseMesh.C.

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

1255 {
1256  if (!_active_node_range)
1257  {
1258  TIME_SECTION("getActiveNodeRange", 5);
1259 
1261  std::make_unique<NodeRange>(getMesh().active_nodes_begin(), getMesh().active_nodes_end());
1262  }
1263 
1264  return _active_node_range.get();
1265 }
std::unique_ptr< libMesh::NodeRange > _active_node_range
Definition: MooseMesh.h:1650
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ getActiveSemiLocalNodeRange()

SemiLocalNodeRange * MooseMesh::getActiveSemiLocalNodeRange ( ) const
inherited

Definition at line 1268 of file MooseMesh.C.

1269 {
1270  mooseAssert(_active_semilocal_node_range,
1271  "_active_semilocal_node_range has not been created yet!");
1272 
1273  return _active_semilocal_node_range.get();
1274 }
std::unique_ptr< SemiLocalNodeRange > _active_semilocal_node_range
Definition: MooseMesh.h:1649

◆ 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 1156 of file MooseMesh.C.

Referenced by MooseMesh::getElemIDMapping().

1157 {
1158  std::set<dof_id_type> unique_ids;
1159  for (auto & pair : _block_id_mapping[elem_id_index])
1160  for (auto & id : pair.second)
1161  unique_ids.insert(id);
1162  return unique_ids;
1163 }
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:1989

◆ 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 4414 of file MooseMesh.C.

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

4415 {
4417  mooseError("getAxisymmetricRadialCoord() should not be called if "
4418  "setGeneralAxisymmetricCoordAxes() has been called.");
4419 
4420  if (_rz_coord_axis == 0)
4421  return 1; // if the rotation axis is x (0), then the radial direction is y (1)
4422  else
4423  return 0; // otherwise the radial direction is assumed to be x, i.e., the rotation axis is y
4424 }
bool usingGeneralAxisymmetricCoordAxes() const
Returns true if general axisymmetric coordinate axes are being used.
Definition: MooseMesh.C:4399
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
unsigned int _rz_coord_axis
Storage for RZ axis selection.
Definition: MooseMesh.h:2022

◆ getBase()

const std::string& MooseBase::getBase ( ) const
inlineinherited
Returns
The registered base for this object (set via InputParameters::registerBase())

Definition at line 147 of file MooseBase.h.

Referenced by Factory::copyConstruct(), and MooseBase::uniqueParameterName().

147 { return _pars.getBase(); }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
const std::string & getBase() const

◆ 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 3654 of file MooseMesh.C.

3655 {
3656  const auto it = _sub_to_data.find(subdomain_id);
3657 
3658  if (it == _sub_to_data.end())
3659  mooseError("Unable to find subdomain ID: ", subdomain_id, '.');
3660 
3661  return it->second.neighbor_subs;
3662 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1949

◆ getBlocksMaxDimension()

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

Returns the maximum element dimension on the given blocks.

Definition at line 3006 of file MooseMesh.C.

Referenced by BlockRestrictable::initializeBlockRestrictable().

3007 {
3008  const auto & mesh = getMesh();
3009 
3010  // Take a shortcut if possible
3011  if (const auto & elem_dims = mesh.elem_dimensions(); mesh.is_prepared() && elem_dims.size() == 1)
3012  return *elem_dims.begin();
3013 
3014  unsigned short dim = 0;
3015  const auto subdomain_ids = getSubdomainIDs(blocks);
3016  const std::set<SubdomainID> subdomain_ids_set(subdomain_ids.begin(), subdomain_ids.end());
3017  for (const auto & elem : mesh.active_subdomain_set_elements_ptr_range(subdomain_ids_set))
3018  dim = std::max(dim, elem->dim());
3019 
3020  // Get the maximumal globally
3022  return dim;
3023 }
bool is_prepared() const
char ** blocks
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:164
const Parallel::Communicator & _communicator
std::vector< SubdomainID > getSubdomainIDs(const std::vector< SubdomainName > &subdomain_names) const
Get the associated subdomainIDs for the subdomain names that are passed in.
Definition: MooseMesh.C:1732
auto max(const L &left, const R &right)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
const std::set< unsigned char > & elem_dimensions() const
void max(const T &r, T &o, Request &req) const
virtual unsigned short dim() const=0
virtual SimpleRange< element_iterator > active_subdomain_set_elements_ptr_range(std::set< subdomain_id_type > ss)=0
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ 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 1325 of file MooseMesh.C.

Referenced by MooseMesh::getBoundariesToElems().

1326 {
1327  return _bnd_elem_ids;
1328 }
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:1696

◆ 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 1317 of file MooseMesh.C.

1318 {
1319  mooseDeprecated("MooseMesh::getBoundariesToElems is deprecated, "
1320  "use MooseMesh::getBoundariesToActiveSemiLocalElemIds");
1322 }
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:1325

◆ 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 1342 of file MooseMesh.C.

1343 {
1344  // Vector of boundary elems is updated every mesh update
1345  std::unordered_set<dof_id_type> neighbor_elems;
1346  for (const auto & bnd_elem : _bnd_elems)
1347  {
1348  const auto & [elem_ptr, elem_side, elem_bid] = *bnd_elem;
1349  if (elem_bid == bid)
1350  {
1351  const auto * neighbor = elem_ptr->neighbor_ptr(elem_side);
1352  // Dont add fully remote elements, ghosted is fine
1353  if (neighbor && neighbor != libMesh::remote_elem)
1354  {
1355  // handle mesh refinement, only return active elements near the boundary
1356  if (neighbor->active())
1357  neighbor_elems.insert(neighbor->id());
1358  else
1359  {
1360  std::vector<const Elem *> family;
1361  neighbor->active_family_tree_by_neighbor(family, elem_ptr);
1362  for (const auto & child_neighbor : family)
1363  neighbor_elems.insert(child_neighbor->id());
1364  }
1365  }
1366  }
1367  }
1368 
1369  return neighbor_elems;
1370 }
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1691
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 1331 of file MooseMesh.C.

1332 {
1333  // The boundary to element map is computed on every mesh update
1334  const auto it = _bnd_elem_ids.find(bid);
1335  if (it == _bnd_elem_ids.end())
1336  // Boundary is not local to this domain, return an empty set
1337  return std::unordered_set<dof_id_type>{};
1338  return it->second;
1339 }
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:1696

◆ 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 3621 of file MooseMesh.C.

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

3622 {
3623  std::set<SubdomainID> subdomain_ids;
3624  for (const auto & [sub_id, data] : _sub_to_data)
3625  if (data.boundary_ids.find(bid) != data.boundary_ids.end())
3626  subdomain_ids.insert(sub_id);
3627 
3628  return subdomain_ids;
3629 }
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1949

◆ 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 3632 of file MooseMesh.C.

Referenced by DomainUserObject::DomainUserObject().

3633 {
3634  std::set<SubdomainID> subdomain_ids;
3635  for (const auto & it : _neighbor_subdomain_boundary_ids)
3636  if (it.second.find(bid) != it.second.end())
3637  subdomain_ids.insert(it.first);
3638 
3639  return subdomain_ids;
3640 }
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:1952

◆ getBoundaryElementRange()

ConstBndElemRange * MooseMesh::getBoundaryElementRange ( )
inherited

Definition at line 1304 of file MooseMesh.C.

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

1305 {
1306  if (!_bnd_elem_range)
1307  {
1308  TIME_SECTION("getBoundaryElementRange", 5);
1309 
1310  _bnd_elem_range = std::make_unique<ConstBndElemRange>(bndElemsBegin(), bndElemsEnd());
1311  }
1312 
1313  return _bnd_elem_range.get();
1314 }
virtual bnd_elem_iterator bndElemsEnd()
Definition: MooseMesh.C:1565
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:1655
virtual bnd_elem_iterator bndElemsBegin()
Return iterators to the beginning/end of the boundary elements list.
Definition: MooseMesh.C:1557

◆ getBoundaryID()

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

Get the associated BoundaryID for the boundary name.

Parameters
boundary_nameThe name of the boundary.
Returns
the boundary id from the passed boundary name.

Definition at line 1687 of file MooseMesh.C.

Referenced by TiledMesh::buildMesh(), StitchedMesh::buildMesh(), PatternedMesh::buildMesh(), DMSetUp_Moose_Pre(), GeometricSearchData::getNearestNodeLocator(), GeometricSearchData::getPenetrationLocator(), GeometricSearchData::getQuadratureNearestNodeLocator(), GeometricSearchData::getQuadraturePenetrationLocator(), LinearNodalConstraint::LinearNodalConstraint(), LowerBoundNodalKernel::LowerBoundNodalKernel(), NodalScalarKernel::NodalScalarKernel(), GhostPrimaryFace::operator()(), EqualValueBoundaryConstraint::populateSecondaryNodes(), MooseMesh::prepare(), and UpperBoundNodalKernel::UpperBoundNodalKernel().

1688 {
1689  if (boundary_name == "ANY_BOUNDARY_ID")
1690  mooseError("Please use getBoundaryIDs() when passing \"ANY_BOUNDARY_ID\"");
1691 
1692  return MooseMeshUtils::getBoundaryID(boundary_name, getMesh());
1693 }
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:3548
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ getBoundaryIDs() [1/4]

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

◆ getBoundaryIDs() [2/4]

std::vector<std::vector<BoundaryID> > MooseMesh::getBoundaryIDs ( const Elem *const  elem) const
inherited

Returns a vector of vector of boundary IDs for the requested element on each of its sides.

◆ getBoundaryIDs() [3/4]

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 3042 of file MooseMesh.C.

Referenced by MooseMesh::cacheInfo().

3043 {
3045 }
const BoundaryInfo & get_boundary_info() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
const std::set< boundary_id_type > & get_boundary_ids() const

◆ getBoundaryIDs() [4/4]

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.

Parameters
boundary_nameThe names of the boundaries.
Returns
the boundary ids from the passed boundary names.

Definition at line 1718 of file MooseMesh.C.

1720 {
1722  getMesh(), boundary_name, generate_unknown, _mesh_boundary_ids);
1723 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
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:1675

◆ getBoundaryName()

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

Return the name of the boundary given the id.

Definition at line 1787 of file MooseMesh.C.

Referenced by MooseMesh::addPeriodicVariable(), BoundaryLinearFVFluxIntegral::computeFaceInfoIntegral(), MooseMesh::detectPairedSidesets(), MooseMesh::getBoundaryString(), BoundaryLinearFVFluxIntegral::initialSetup(), FEProblemBase::initialSetup(), BoundaryNodeIntegrityCheckThread::onNode(), and NonlinearThread::printBoundaryExecutionInformation().

1788 {
1789  const BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1790 
1791  // We need to figure out if this boundary is a sideset or nodeset
1792  if (boundary_info.get_side_boundary_ids().count(boundary_id))
1793  return boundary_info.get_sideset_name(boundary_id);
1794  else
1795  return boundary_info.get_nodeset_name(boundary_id);
1796 }
const std::set< boundary_id_type > & get_side_boundary_ids() const
const BoundaryInfo & get_boundary_info() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
const std::string & get_nodeset_name(boundary_id_type id) const
const std::string & get_sideset_name(boundary_id_type id) const

◆ getBoundaryNodeRange()

ConstBndNodeRange * MooseMesh::getBoundaryNodeRange ( )
inherited

Definition at line 1291 of file MooseMesh.C.

Referenced by AuxiliarySystem::computeMortarNodalVars(), AuxiliarySystem::computeNodalVarsHelper(), DMMooseGetEmbedding_Private(), NearestNodeLocator::findNodes(), FEProblemBase::getCurrentAlgebraicBndNodeRange(), ActivateElementsUserObjectBase::getNewlyActivatedBndNodeRange(), EqualValueBoundaryConstraint::getPrimaryNodeIDByCoord(), MooseMesh::meshChanged(), ElementSubdomainModifierBase::reinitializedBndNodeRange(), and NearestNodeLocator::updatePatch().

1292 {
1293  if (!_bnd_node_range)
1294  {
1295  TIME_SECTION("getBoundaryNodeRange", 5);
1296 
1297  _bnd_node_range = std::make_unique<ConstBndNodeRange>(bndNodesBegin(), bndNodesEnd());
1298  }
1299 
1300  return _bnd_node_range.get();
1301 }
virtual bnd_node_iterator bndNodesEnd()
Definition: MooseMesh.C:1549
virtual bnd_node_iterator bndNodesBegin()
Return iterators to the beginning/end of the boundary nodes list.
Definition: MooseMesh.C:1541
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1653

◆ getBoundaryString()

std::string MooseMesh::getBoundaryString ( const BoundaryID  boundary_id) const
inherited

Return the name of the boundary given the id, if it exists.

Otherwise, return the id as a string.

Definition at line 1799 of file MooseMesh.C.

1800 {
1801  const auto name = getBoundaryName(boundary_id);
1802  return name.size() ? name : std::to_string(boundary_id);
1803 }
const std::string & getBoundaryName(const BoundaryID boundary_id) const
Return the name of the boundary given the id.
Definition: MooseMesh.C:1787
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103

◆ getCheckedPointerParam()

template<typename T >
T MooseBase::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 460 of file MooseBase.h.

461 {
462  return _pars.getCheckedPointerParam<T>(name, error_string);
463 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
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 std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103

◆ 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 2637 of file MooseMesh.C.

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

2638 {
2639  std::pair<int, ElemType> the_pair(input_side, elem.type());
2640 
2641  if (_elem_type_to_coarsening_map.find(the_pair) == _elem_type_to_coarsening_map.end())
2642  mooseError("Could not find a suitable qp refinement map!");
2643 
2644  return _elem_type_to_coarsening_map[the_pair];
2645 }
std::map< std::pair< int, libMesh::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:1931
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
virtual ElemType type() const=0

◆ getConstructNodeListFromSideList()

bool MooseMesh::getConstructNodeListFromSideList ( )
inlineinherited

Return construct node list from side list boolean.

Definition at line 1547 of file MooseMesh.h.

Referenced by SidesetAroundSubdomainUpdater::SidesetAroundSubdomainUpdater().

bool _construct_node_list_from_side_list
Whether or not to allow generation of nodesets from sidesets.
Definition: MooseMesh.h:1967

◆ 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 4295 of file MooseMesh.C.

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

4296 {
4297  auto it = _coord_sys.find(sid);
4298  if (it != _coord_sys.end())
4299  return (*it).second;
4300  else
4301  mooseError("Requested subdomain ", sid, " does not exist.");
4302 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:2019
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ 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 4327 of file MooseMesh.C.

Referenced by MooseMesh::setGeneralAxisymmetricCoordAxes().

4328 {
4329  return _coord_sys;
4330 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:2019

◆ getDataFileName()

std::string DataFileInterface::getDataFileName ( const std::string &  param) const
inherited

Deprecated method.

The data file paths are now automatically set within the InputParameters object, so using getParam<DataFileName>("param_name") is now sufficient.

Definition at line 21 of file DataFileInterface.C.

22 {
23  _parent.mooseDeprecated("getDataFileName() is deprecated. The file path is now directly set "
24  "within the InputParameters.\nUse getParam<DataFileName>(\"",
25  param,
26  "\") instead.");
27  return _parent.getParam<DataFileName>(param);
28 }
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: MooseBase.h:416
void mooseDeprecated(Args &&... args) const
Emits a deprecation warning prefixed with the object name and type, and a stack trace.
Definition: MooseBase.h:327
const ParallelParamObject & _parent

◆ getDataFileNameByName()

std::string DataFileInterface::getDataFileNameByName ( const std::string &  relative_path) const
inherited

Deprecated method.

Use getDataFilePath() instead.

Definition at line 31 of file DataFileInterface.C.

32 {
33  _parent.mooseDeprecated("getDataFileNameByName() is deprecated. Use getDataFilePath(\"",
34  relative_path,
35  "\") instead.");
36  return getDataFilePath(relative_path);
37 }
std::string getDataFilePath(const std::string &relative_path) const
Returns the path of a data file for a given relative file path.
void mooseDeprecated(Args &&... args) const
Emits a deprecation warning prefixed with the object name and type, and a stack trace.
Definition: MooseBase.h:327
const ParallelParamObject & _parent

◆ getDataFilePath()

std::string DataFileInterface::getDataFilePath ( const std::string &  relative_path) 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

Definition at line 40 of file DataFileInterface.C.

Referenced by DataFileInterface::getDataFileNameByName().

41 {
42  // This should only ever be used with relative paths. There is no point to
43  // use this search path with an absolute path.
44  if (std::filesystem::path(relative_path).is_absolute())
45  _parent.mooseWarning("While using getDataFilePath(\"",
46  relative_path,
47  "\"): This API should not be used for absolute paths.");
48 
49  // This will search the data paths for this relative path
50  std::optional<std::string> error;
51  Moose::DataFileUtils::Path found_path;
52  {
53  // Throw on error so that if getPath() fails, we can throw an error
54  // with the context of _parent.mooseError()
55  Moose::ScopedThrowOnError scoped_throw_on_error;
56 
57  try
58  {
59  found_path = Moose::DataFileUtils::getPath(relative_path);
60  }
61  catch (std::exception & e)
62  {
63  error = e.what();
64  }
65  }
66 
67  if (error)
68  _parent.mooseError(*error);
69 
70  mooseAssert(found_path.context == Moose::DataFileUtils::Context::DATA,
71  "Should only ever obtain data");
72  mooseAssert(found_path.data_name, "Should be set");
73 
74  const std::string msg =
75  "Using data file '" + found_path.path + "' from " + *found_path.data_name + " data";
76  _parent.mooseInfo(msg);
77 
78  return found_path.path;
79 }
void mooseInfo(Args &&... args) const
Definition: MooseBase.h:344
Context context
Context for the file (where it came from)
Definition: DataFileUtils.h:52
From installed/in-tree data.
Path getPath(std::string path, const GetPathOptions &options={})
Get the data path for a given path, searching the registered data.
Definition: DataFileUtils.C:22
Representation of a data file path.
Definition: DataFileUtils.h:40
std::optional< std::string > data_name
The name of the data registry the file came from (with context == DATA)
Definition: DataFileUtils.h:54
Scoped helper for setting Moose::_throw_on_error during this scope.
Definition: Moose.h:296
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
Definition: MooseBase.h:309
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
const ParallelParamObject & _parent

◆ getDisplaceNodeListBySideList()

bool MooseMesh::getDisplaceNodeListBySideList ( )
inlineinherited

Return displace node list by side list boolean.

Definition at line 1550 of file MooseMesh.h.

bool _displace_node_list_by_side_list
Whether or not to displace unrelated nodesets by nodesets constructed from sidesets.
Definition: MooseMesh.h:1971

◆ 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 2318 of file MooseMesh.h.

Referenced by MooseMesh::areElemIDsIdentical().

2319 {
2320  if (!hasElementID(id_name))
2321  mooseError("Mesh does not have element ID for ", id_name);
2322  return getMesh().get_elem_integer_index(id_name);
2323 }
bool hasElementID(const std::string &id_name) const
Whether mesh has an extra element integer with a given name.
Definition: MooseMesh.h:2312
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ 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 1127 of file MooseMesh.C.

1128 {
1129  auto & mesh_base = getMesh();
1130 
1131  if (!mesh_base.has_elem_integer(from_id_name))
1132  mooseError("Mesh does not have the element integer name '", from_id_name, "'");
1133  if (!mesh_base.has_elem_integer(to_id_name))
1134  mooseError("Mesh does not have the element integer name '", to_id_name, "'");
1135 
1136  const auto id1 = mesh_base.get_elem_integer_index(from_id_name);
1137  const auto id2 = mesh_base.get_elem_integer_index(to_id_name);
1138 
1139  std::unordered_map<dof_id_type, std::set<dof_id_type>> id_map;
1140  for (const auto id : getAllElemIDs(id1))
1141  id_map[id] = std::set<dof_id_type>();
1142 
1143  for (const auto & elem : mesh_base.active_local_element_ptr_range())
1144  id_map[elem->get_extra_integer(id1)].insert(elem->get_extra_integer(id2));
1145 
1146  for (auto & [id, ids] : id_map)
1147  {
1148  libmesh_ignore(id); // avoid overzealous gcc 9.4 unused var warning
1149  comm().set_union(ids);
1150  }
1151 
1152  return id_map;
1153 }
const Parallel::Communicator & comm() const
void libmesh_ignore(const Args &...)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
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:1156
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
dof_id_type get_extra_integer(const unsigned int index) const
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 1166 of file MooseMesh.C.

1167 {
1168  std::set<dof_id_type> unique_ids;
1169  for (auto & blk : blks)
1170  {
1171  auto it = _block_id_mapping[elem_id_index].find(blk);
1172  if (it == _block_id_mapping[elem_id_index].end())
1173  mooseError("Block ", blk, " is not available on the mesh");
1174 
1175  for (auto & mid : it->second)
1176  unique_ids.insert(mid);
1177  }
1178  return unique_ids;
1179 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
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:1989

◆ getFileName()

virtual std::string FileMesh::getFileName ( ) const
inlineoverridevirtual

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

Reimplemented from MooseMesh.

Definition at line 31 of file FileMesh.h.

Referenced by MFEMMesh::buildMesh().

31 { return _file_name; }
std::string _file_name
the file_name from whence this mesh came
Definition: FileMesh.h:35

◆ 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 4389 of file MooseMesh.C.

4390 {
4391  auto it = _subdomain_id_to_rz_coord_axis.find(subdomain_id);
4392  if (it != _subdomain_id_to_rz_coord_axis.end())
4393  return (*it).second;
4394  else
4395  mooseError("Requested subdomain ", subdomain_id, " does not exist.");
4396 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
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:2025

◆ getGhostedBoundaries()

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

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

Definition at line 3341 of file MooseMesh.C.

3342 {
3343  return _ghosted_boundaries;
3344 }
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1709

◆ getGhostedBoundaryInflation()

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

Return a writable reference to the _ghosted_boundaries_inflation vector.

Definition at line 3347 of file MooseMesh.C.

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

3348 {
3350 }
std::vector< Real > _ghosted_boundaries_inflation
Definition: MooseMesh.h:1710

◆ getGhostingPatchSize()

unsigned int MooseMesh::getGhostingPatchSize ( ) const
inlineinherited

Getter for the ghosting_patch_size parameter.

Definition at line 628 of file MooseMesh.h.

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

628 { 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:1716

◆ 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 1707 of file MooseMesh.C.

1708 {
1709  auto it = _lower_d_elem_to_higher_d_elem_side.find(elem);
1710 
1711  if (it != _lower_d_elem_to_higher_d_elem_side.end())
1712  return it->second;
1713  else
1714  return libMesh::invalid_uint;
1715 }
const unsigned int invalid_uint
std::unordered_map< const Elem *, unsigned short int > _lower_d_elem_to_higher_d_elem_side
Definition: MooseMesh.h:1961
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ getHitNode()

const hit::Node* MooseBase::getHitNode ( ) const
inlineinherited
Returns
The block-level hit node for this object, if any

Definition at line 136 of file MooseBase.h.

Referenced by FEProblemBase::addAnyRedistributers(), MooseBase::callMooseError(), MooseBase::getHitNode(), and MooseBase::messagePrefix().

136 { return getHitNode(_pars); }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
const hit::Node * getHitNode() const
Definition: MooseBase.h:136

◆ 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 3519 of file MooseMesh.C.

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

3520 {
3521  // Grab a bounding box to speed things up. Note that
3522  // local_bounding_box is *not* equivalent to processor_bounding_box
3523  // with processor_id() except in serial.
3525 
3526  // Inflate the bbox just a bit to deal with roundoff
3527  // Adding 1% of the diagonal size in each direction on each end
3528  Real inflation_amount = inflation_multiplier * (bbox.max() - bbox.min()).norm();
3529  Point inflation(inflation_amount, inflation_amount, inflation_amount);
3530 
3531  bbox.first -= inflation; // min
3532  bbox.second += inflation; // max
3533 
3534  return bbox;
3535 }
libMesh::BoundingBox create_local_bounding_box(const MeshBase &mesh)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
const Point & min() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
auto norm(const T &a)
const Point & max() const

◆ 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 3643 of file MooseMesh.C.

3644 {
3645  std::set<SubdomainID> subdomain_ids = getBoundaryConnectedBlocks(bid);
3646  for (const auto & it : _neighbor_subdomain_boundary_ids)
3647  if (it.second.find(bid) != it.second.end())
3648  subdomain_ids.insert(it.first);
3649 
3650  return subdomain_ids;
3651 }
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:1952
std::set< SubdomainID > getBoundaryConnectedBlocks(const BoundaryID bid) const
Get the list of subdomains associated with the given boundary.
Definition: MooseMesh.C:3621

◆ getKokkosMesh() [1/2]

Moose::Kokkos::Mesh* MooseMesh::getKokkosMesh ( )
inlineinherited

Accessor for Kokkos mesh object.

Definition at line 672 of file MooseMesh.h.

672 { return _kokkos_mesh.get(); }
std::unique_ptr< Moose::Kokkos::Mesh > _kokkos_mesh
Pointer to Kokkos mesh object.
Definition: MooseMesh.h:1585

◆ getKokkosMesh() [2/2]

const Moose::Kokkos::Mesh* MooseMesh::getKokkosMesh ( ) const
inlineinherited

Definition at line 673 of file MooseMesh.h.

673 { return _kokkos_mesh.get(); }
std::unique_ptr< Moose::Kokkos::Mesh > _kokkos_mesh
Pointer to Kokkos mesh object.
Definition: MooseMesh.h:1585

◆ getLocalNodeRange()

ConstNodeRange * MooseMesh::getLocalNodeRange ( )
inherited

Definition at line 1277 of file MooseMesh.C.

Referenced by AuxiliarySystem::computeNodalVarsHelper(), FEProblemBase::getCurrentAlgebraicNodeRange(), and MooseMesh::meshChanged().

1278 {
1279  if (!_local_node_range)
1280  {
1281  TIME_SECTION("getLocalNodeRange", 5);
1282 
1283  _local_node_range = std::make_unique<ConstNodeRange>(getMesh().local_nodes_begin(),
1284  getMesh().local_nodes_end());
1285  }
1286 
1287  return _local_node_range.get();
1288 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::unique_ptr< libMesh::ConstNodeRange > _local_node_range
Definition: MooseMesh.h:1651

◆ getLowerDElem()

const Elem * MooseMesh::getLowerDElem ( const Elem ,
unsigned short  int 
) 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 1696 of file MooseMesh.C.

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

1697 {
1698  auto it = _higher_d_elem_side_to_lower_d_elem.find(std::make_pair(elem, side));
1699 
1700  if (it != _higher_d_elem_side_to_lower_d_elem.end())
1701  return it->second;
1702  else
1703  return nullptr;
1704 }
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:1960
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ 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 2352 of file MooseMesh.h.

2353 {
2355 }
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:1960

◆ getMaxInDimension()

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

Reimplemented in AnnularMesh, and GeneratedMesh.

Definition at line 2193 of file MooseMesh.C.

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

2194 {
2195  mooseAssert(_mesh, "The MeshBase has not been constructed");
2196  mooseAssert(component < _bounds.size(), "Requested dimension out of bounds");
2197 
2198  return _bounds[component][MAX];
2199 }
std::vector< std::vector< Real > > _bounds
The bounds in each dimension of the mesh for regular orthogonal meshes.
Definition: MooseMesh.h:1731
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ getMaxLeafSize()

unsigned int MooseMesh::getMaxLeafSize ( ) const
inlineinherited

Getter for the maximum leaf size parameter.

Definition at line 633 of file MooseMesh.h.

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

633 { return _max_leaf_size; }
unsigned int _max_leaf_size
Definition: MooseMesh.h:1719

◆ getMaxNodesPerElem()

unsigned int MooseMesh::getMaxNodesPerElem ( ) const
inlineinherited

Get the maximum number of nodes per element.

Definition at line 1281 of file MooseMesh.h.

1281 { return _max_nodes_per_elem; }
unsigned int _max_nodes_per_elem
The maximum number of nodes per element.
Definition: MooseMesh.h:2001

◆ getMaxNodesPerSide()

unsigned int MooseMesh::getMaxNodesPerSide ( ) const
inlineinherited

Get the maximum number of nodes per side.

Definition at line 1286 of file MooseMesh.h.

1286 { return _max_nodes_per_side; }
unsigned int _max_nodes_per_side
The maximum number of nodes per side.
Definition: MooseMesh.h:2004

◆ getMaxSidesPerElem()

unsigned int MooseMesh::getMaxSidesPerElem ( ) const
inlineinherited

Get the maximum number of sides per element.

Definition at line 1276 of file MooseMesh.h.

1276 { return _max_sides_per_elem; }
unsigned int _max_sides_per_elem
The maximum number of sides per element.
Definition: MooseMesh.h:1998

◆ getMesh() [1/4]

MeshBase & MooseMesh::getMesh ( )
inherited

Accessor for the underlying libMesh Mesh object.

Definition at line 3548 of file MooseMesh.C.

Referenced by CopyMeshPartitioner::_do_partition(), MooseMesh::activeLocalElementsBegin(), MooseMesh::activeLocalElementsEnd(), Adaptivity::adaptMesh(), FEProblemBase::addAnyRedistributers(), MooseMesh::addQuadratureNode(), MooseMesh::addUniqueNode(), MultiAppConservativeTransfer::adjustTransferredSolution(), MultiAppConservativeTransfer::adjustTransferredSolutionNearestPoint(), NonlinearSystemBase::assembleScalingVector(), Assembly::Assembly(), MooseMesh::buildActiveSideList(), MooseMesh::buildBndElemList(), MFEMMesh::buildDummyMooseMesh(), MooseMesh::buildElemIDInfo(), MooseMesh::buildFiniteVolumeInfo(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildLowerDMesh(), TiledMesh::buildMesh(), buildMesh(), RinglebMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), AnnularMesh::buildMesh(), ConcentricCircleMesh::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(), MooseMesh::computeMaxPerElemAndSide(), NonlinearSystemBase::constraintJacobians(), NonlinearSystemBase::constraintResiduals(), PenetrationThread::createInfoForElem(), MortarInterfaceWarehouse::createMortarInterface(), MooseMesh::detectOrthogonalDimRanges(), MooseMesh::detectPairedSidesets(), MooseMesh::dimension(), ExtraElementIntegerDivision::divisionIndex(), FunctorBinnedValuesDivision::divisionIndex(), SubdomainsDivision::divisionIndex(), DumpObjectsProblem::dumpVariableHelper(), ElementalVariableValue::ElementalVariableValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementMaterialSampler::ElementMaterialSampler(), MooseMesh::elemPtr(), ElemSideNeighborLayersTester::execute(), NodalNormalsCorner::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppUserObjectTransfer::execute(), NodalNormalsPreprocessor::execute(), MultiAppMFEMTolibMeshShapeEvaluationTransfer::extractlibMeshNodePositions(), ExtraElementIntegerDivision::ExtraElementIntegerDivision(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), QuadraturePointMultiApp::fillPositions(), CentroidMultiApp::fillPositions(), MultiAppGeometricInterpolationTransfer::fillSourceInterpolationPoints(), SidesetAroundSubdomainUpdater::finalize(), ActivateElementsUserObjectBase::finalize(), ElementSubdomainModifierBase::gatherMovingBoundaryChanges(), ElementSubdomainModifierBase::gatherMovingBoundaryChangesHelper(), 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(), EqualValueBoundaryConstraint::ghostPrimary(), Exodus::handleExodusIOMeshRenumbering(), MooseMesh::hasElementID(), MooseMesh::hasLowerD(), MooseMesh::init(), DisplacedProblem::UpdateDisplacedMeshThread::init(), VerifyElementUniqueID::initialize(), VerifyNodalUniqueID::initialize(), ExtraElementIntegerDivision::initialize(), ElementGroupCentroidPositions::initialize(), FunctorPositions::initialize(), ElementCentroidPositions::initialize(), FunctorTimes::initialize(), NodePositions::initialize(), QuadraturePointsPositions::initialize(), FunctorExtremaPositions::initialize(), ParsedDownSelectionPositions::initialize(), MultiAppDofCopyTransfer::initialSetup(), NodalVariableValue::initialSetup(), AuxKernelBase::initialSetup(), SampledOutput::initSample(), MooseMesh::internalNodeToElemMap(), MultiAppGeometricInterpolationTransfer::interpolateTargetPoints(), LinearNodalConstraint::LinearNodalConstraint(), MooseMesh::localNodesBegin(), MooseMesh::localNodesEnd(), Moose::Mortar::loopOverMortarSegments(), MooseMesh::maxElemId(), MooseMesh::maxNodeId(), GhostingUserObject::meshChanged(), RadialAverage::meshChanged(), DisplacedProblem::meshChanged(), FEProblemBase::meshChanged(), NearestNodeLocator::nearestNode(), MooseMesh::nElem(), MooseMesh::nNodes(), NodalPatchRecovery::NodalPatchRecovery(), NodalVariableValue::NodalVariableValue(), ComputeNodalUserObjectsThread::onNode(), ProxyRelationshipManager::operator()(), MortarUserObjectThread::operator()(), PenetrationThread::operator()(), ComputeMortarFunctor::operator()(), XDA::output(), Exodus::outputEmptyTimestep(), Exodus::outputNodalVariables(), Nemesis::outputSetup(), MooseMesh::prepare(), BoundaryPreservedMarker::preserveBoundary(), MooseMesh::printInfo(), MultiAppMFEMTolibMeshShapeEvaluationTransfer::projectlibMeshNodalValues(), MooseMesh::queryElemPtr(), MooseMesh::queryNodePtr(), read(), PropertyReadFile::readData(), RedistributeProperties::redistribute(), SubProblem::restrictionBoundaryCheckName(), SubProblem::restrictionSubdomainCheckName(), MooseMesh::setBoundaryName(), NonlinearSystemBase::setConstraintSecondaryValues(), XFEMInterface::setDisplacedMesh(), ActivateElementsUserObjectBase::setNewBoundayName(), MooseMesh::setPartitionerHelper(), MooseMesh::setSubdomainName(), Moose::PeriodicBCHelper::setupPeriodicBoundaries(), SidesetAroundSubdomainUpdater::SidesetAroundSubdomainUpdater(), MooseMesh::sideWithBoundaryID(), MoveNodesToGeometryModifierBase::snapNodes(), MultiAppDofCopyTransfer::transfer(), MultiAppMFEMTolibMeshShapeEvaluationTransfer::transferVariables(), DisplacedProblem::undisplaceMesh(), MooseMesh::update(), MooseMesh::updateActiveSemiLocalNodeRange(), Adaptivity::updateErrorVectors(), RandomData::updateGenerators(), DisplacedProblem::updateMesh(), SampledOutput::updateSample(), and VariableCondensationPreconditioner::VariableCondensationPreconditioner().

3549 {
3550  mooseAssert(_mesh, "Mesh hasn't been created");
3551  return *_mesh;
3552 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ getMesh() [2/4]

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

◆ getMesh() [3/4]

const MeshBase & MooseMesh::getMesh ( ) const
inherited

Definition at line 3555 of file MooseMesh.C.

3556 {
3557  mooseAssert(_mesh, "Mesh hasn't been created");
3558  return *_mesh;
3559 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ getMesh() [4/4]

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

◆ getMeshPtr()

const MeshBase * MooseMesh::getMeshPtr ( ) const
inherited

Definition at line 3542 of file MooseMesh.C.

Referenced by MooseMesh::buildTypedMesh(), RelationshipManager::init(), GhostPrimaryFace::operator()(), and GhostBoundary::operator()().

3543 {
3544  return _mesh.get();
3545 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ 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 2184 of file MooseMesh.C.

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

2185 {
2186  mooseAssert(_mesh, "The MeshBase has not been constructed");
2187  mooseAssert(component < _bounds.size(), "Requested dimension out of bounds");
2188 
2189  return _bounds[component][MIN];
2190 }
std::vector< std::vector< Real > > _bounds
The bounds in each dimension of the mesh for regular orthogonal meshes.
Definition: MooseMesh.h:1731
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ getMooseApp()

MooseApp& MooseBase::getMooseApp ( ) const
inlineinherited

Get the MooseApp this class is associated with.

Definition at line 87 of file MooseBase.h.

Referenced by ChainControlSetupAction::act(), AddDefaultConvergenceAction::addDefaultMultiAppFixedPointConvergence(), AddDefaultConvergenceAction::addDefaultNonlinearConvergence(), AddDefaultConvergenceAction::addDefaultSteadyStateConvergence(), FEProblemBase::advanceState(), ParsedChainControl::buildFunction(), ReporterTransferInterface::checkHasReporterValue(), AddDefaultConvergenceAction::checkUnusedMultiAppFixedPointConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedNonlinearConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedSteadyStateConvergenceParameters(), Coupleable::checkWritableVar(), ComponentPhysicsInterface::ComponentPhysicsInterface(), Coupleable::Coupleable(), MortarInterfaceWarehouse::createMortarInterface(), EigenProblem::doFreeNonlinearPowerIterations(), Terminator::execute(), FEProblemSolve::FEProblemSolve(), SolutionInvalidInterface::flagInvalidSolutionInternal(), ChainControl::getChainControlDataSystem(), FEProblemBase::getDistribution(), FEProblemBase::getFunction(), FEProblemBase::getFVInterpolationMethod(), FEProblemBase::getMultiApp(), FEProblemBase::getSampler(), DefaultConvergenceBase::getSharedExecutionerParam(), FEProblemBase::getUserObjectBase(), FEProblemBase::getVectorPostprocessorObjectByName(), ChainControlDataPostprocessor::initialSetup(), MaterialPropertyInterface::MaterialPropertyInterface(), MooseVariableDataFV< OutputType >::MooseVariableDataFV(), ProgressOutput::output(), PetscOutputInterface::petscLinearOutput(), PetscOutputInterface::petscNonlinearOutput(), PetscOutputInterface::PetscOutputInterface(), PostprocessorInterface::postprocessorsAdded(), MultiApp::preTransfer(), Reporter::Reporter(), ReporterInterface::reportersAdded(), MultiApp::restore(), and VectorPostprocessorInterface::vectorPostprocessorsAdded().

87 { return _app; }
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385

◆ 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 1495 of file MooseMesh.C.

Referenced by ComputeNodalUserObjectsThread::onNode(), ComputeNodalKernelsThread::onNode(), ComputeNodalKernelJacobiansThread::onNode(), ComputeInitialConditionThread::operator()(), and MoveNodesToGeometryModifierBase::snapNodes().

1496 {
1497  auto it = _block_node_list.find(node.id());
1498 
1499  if (it == _block_node_list.end())
1500  mooseError("Unable to find node: ", node.id(), " in any block list.");
1501 
1502  return it->second;
1503 }
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
list of nodes that belongs to a specified block (domain)
Definition: MooseMesh.h:1704
dof_id_type id() const
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:824
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ 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 3570 of file MooseMesh.C.

Referenced by LinearNodalConstraint::LinearNodalConstraint(), NodalScalarKernel::NodalScalarKernel(), EqualValueBoundaryConstraint::populateSecondaryNodes(), and MoveNodesToGeometryModifierBase::snapNodes().

3571 {
3572  std::map<boundary_id_type, std::vector<dof_id_type>>::const_iterator it =
3573  _node_set_nodes.find(nodeset_id);
3574 
3575  if (it == _node_set_nodes.end())
3576  {
3577  // On a distributed mesh we might not know about a remote nodeset,
3578  // so we'll return an empty vector and hope the nodeset exists
3579  // elsewhere.
3580  if (!getMesh().is_serial())
3581  {
3582  static const std::vector<dof_id_type> empty_vec;
3583  return empty_vec;
3584  }
3585  // On a replicated mesh we should know about every nodeset and if
3586  // we're asked for one that doesn't exist then it must be a bug.
3587  else
3588  {
3589  mooseError("Unable to nodeset ID: ", nodeset_id, '.');
3590  }
3591  }
3592 
3593  return it->second;
3594 }
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:1707
virtual bool is_serial() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ 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 2873 of file MooseMesh.C.

2874 {
2875  mooseAssert(_boundary_to_normal_map.get() != nullptr, "Boundary To Normal Map not built!");
2876 
2877  // Note: Boundaries that are not in the map (existing boundaries) will default
2878  // construct a new RealVectorValue - (x,y,z)=(0, 0, 0)
2879  return (*_boundary_to_normal_map)[id];
2880 }
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:1681

◆ getPairedBoundaryMapping()

const std::pair< BoundaryID, BoundaryID > * MooseMesh::getPairedBoundaryMapping ( unsigned int  component) const
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).

Must have called detectPairedSidesets() prior to using.

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

Definition at line 2350 of file MooseMesh.C.

Referenced by MooseMesh::addPeriodicVariable().

2351 {
2353  mooseError("Trying to retrieve automatic paired mapping for a mesh that is not regular and "
2354  "orthogonal");
2355 
2356  mooseAssert(component < dimension(), "Requested dimension out of bounds");
2357 
2359  mooseError("MooseMesh::getPairedBoundaryMapping(): Paired boundaries not built; must call "
2360  "detectPairedSidesets() first");
2361 
2362  if (component < _paired_boundary->size())
2363  return &(*_paired_boundary)[component];
2364  else
2365  return nullptr;
2366 }
bool hasDetectedPairedSidesets() const
Whether or not detectedPairedSidesets() has been called.
Definition: MooseMesh.h:990
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2985
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1728

◆ getParallelType()

ParallelType MooseMesh::getParallelType ( ) const
inlineinherited
Returns
The parallel type

Definition at line 1146 of file MooseMesh.h.

Referenced by MultiAppDofCopyTransfer::initialSetup().

1146 { return _parallel_type; }
ParallelType _parallel_type
Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.
Definition: MooseMesh.h:1571

◆ getParam() [1/2]

template<typename T >
const T & MooseBase::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 416 of file MooseBase.h.

Referenced by CreateDisplacedProblemAction::act(), CommonOutputAction::act(), CylinderComponent::addMeshGenerators(), FEProblemBase::addOutput(), DiffusionPhysicsBase::addPostprocessors(), ArrayParsedAux::ArrayParsedAux(), BicubicSplineFunction::BicubicSplineFunction(), ComponentPhysicsInterface::ComponentPhysicsInterface(), Console::Console(), FEProblemBase::createTagSolutions(), CutMeshByLevelSetGenerator::CutMeshByLevelSetGenerator(), DebugResidualAux::DebugResidualAux(), AccumulateReporter::declareLateValues(), DerivativeParsedMaterialTempl< is_ad >::DerivativeParsedMaterialTempl(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), EigenKernel::EigenKernel(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), MFEMEigenvaluesPostprocessor::execute(), FEProblemSolve::FEProblemSolve(), ParsedVectorReporter::finalize(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FixedPointSolve::FixedPointSolve(), ParsedSubdomainGeneratorBase::functionInitialize(), FVInterfaceKernel::FVInterfaceKernel(), BoundaryLayerSubdomainGenerator::generate(), ExtraNodesetGenerator::generate(), FileMeshGenerator::generate(), OrientSurfaceMeshGenerator::generate(), GeneratedMeshGenerator::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), SubdomainsFromPartitionerGenerator::generate(), BreakMeshByBlockGenerator::generate(), BlockDeletionGenerator::generate(), CoarsenBlockGenerator::generate(), MeshExtruderGenerator::generate(), XYDelaunayGenerator::generate(), GenericConstantRankTwoTensorTempl< is_ad >::GenericConstantRankTwoTensorTempl(), GenericConstantSymmetricRankTwoTensorTempl< is_ad >::GenericConstantSymmetricRankTwoTensorTempl(), GeometricSearchInterface::GeometricSearchInterface(), MooseApp::getCheckpointDirectories(), DataFileInterface::getDataFileName(), ExecutorInterface::getExecutor(), MFEMExecutedObject::getRequestedItems(), GhostingUserObject::GhostingUserObject(), FixedPointIterationAdaptiveDT::init(), TimeSequenceStepper::init(), IterationAdaptiveDT::init(), AdvancedOutput::init(), AdvancedOutput::initAvailableLists(), AttribThread::initFrom(), AttribSysNum::initFrom(), AttribResidualObject::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), SampledOutput::initSample(), IterationAdaptiveDT::limitDTToPostprocessorValue(), MooseMesh::MooseMesh(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MultiPostprocessorConvergence::MultiPostprocessorConvergence(), MultiSystemSolveObject::MultiSystemSolveObject(), NEML2ModelExecutor::NEML2ModelExecutor(), NestedDivision::NestedDivision(), PerfGraphOutput::output(), Console::outputSystemInformation(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedElementDeletionGenerator::ParsedElementDeletionGenerator(), ParsedGenerateNodeset::ParsedGenerateNodeset(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedMaterialTempl< is_ad >::ParsedMaterialTempl(), ParsedNodeTransformGenerator::ParsedNodeTransformGenerator(), ParsedODEKernel::ParsedODEKernel(), ParsedPostprocessor::ParsedPostprocessor(), ParsedReporterBase::ParsedReporterBase(), ParsedVectorReporter::ParsedVectorReporter(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), PiecewiseConstantByBlockMaterialTempl< is_ad >::PiecewiseConstantByBlockMaterialTempl(), ProjectSideSetOntoLevelSetGenerator::ProjectSideSetOntoLevelSetGenerator(), ReferenceResidualInterface::ReferenceResidualInterface(), RenameBlockGenerator::RenameBlockGenerator(), Moose::FV::setInterpolationMethod(), SetupMeshAction::setupMesh(), Output::setWallTimeIntervalFromCommandLineParam(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), TimePeriod::TimePeriod(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), FunctorIC::value(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), and VectorOfPostprocessors::VectorOfPostprocessors().

417 {
418  return InputParameters::getParamHelper<T>(name, _pars);
419 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103

◆ getParam() [2/2]

template<typename T1 , typename T2 >
std::vector< std::pair< T1, T2 > > MooseBase::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 453 of file MooseBase.h.

454 {
455  return _pars.get<T1, T2>(param1, param2);
456 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
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.

◆ getPatchSize()

unsigned int MooseMesh::getPatchSize ( ) const
inherited

Getter for the patch_size parameter.

Definition at line 3501 of file MooseMesh.C.

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

3502 {
3503  return _patch_size;
3504 }
unsigned int _patch_size
The number of nodes to consider in the NearestNode neighborhood.
Definition: MooseMesh.h:1713

◆ getPatchUpdateStrategy()

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

Get the current patch update strategy.

Definition at line 3513 of file MooseMesh.C.

Referenced by FEProblemBase::possiblyRebuildGeomSearchPatches().

3514 {
3515  return _patch_update_strategy;
3516 }
Moose::PatchUpdateType _patch_update_strategy
The patch update strategy.
Definition: MooseMesh.h:1722

◆ 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 4510 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onElement().

4511 {
4513 }
const std::vector< QpMap > & getPCoarseningMapHelper(const Elem &elem, const std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4488
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_map
Definition: MooseMesh.h:1934
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ 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 4516 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onBoundary().

4517 {
4519 }
const std::vector< QpMap > & getPCoarseningMapHelper(const Elem &elem, const std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4488
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_side_map
Definition: MooseMesh.h:1936
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ getPointLocator()

std::unique_ptr< libMesh::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 3837 of file MooseMesh.C.

Referenced by CopyMeshPartitioner::_do_partition(), PenetrationLocator::detectPenetration(), MultiAppVariableValueSampleTransfer::execute(), PointValue::execute(), IntersectionPointsAlongLine::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), ElementsAlongLine::execute(), FindValueOnLine::initialize(), PointSamplerBase::initialize(), PiecewiseConstantFromCSV::initialSetup(), ReporterPointMarker::markerSetup(), and PenetrationThread::operator()().

3838 {
3839  return getMesh().sub_point_locator();
3840 }
std::unique_ptr< PointLocatorBase > sub_point_locator() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ 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 4498 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onElement().

4499 {
4501 }
const std::vector< QpMap > & getPRefinementMapHelper(const Elem &elem, const std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4477
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_map
Definition: MooseMesh.h:1908
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ 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 4504 of file MooseMesh.C.

Referenced by ProjectMaterialProperties::onBoundary().

4505 {
4507 }
const std::vector< QpMap > & getPRefinementMapHelper(const Elem &elem, const std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4477
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_side_map
Definition: MooseMesh.h:1910
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ 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 1655 of file MooseMesh.C.

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

1658 {
1659  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes.find(elem->id()) !=
1661  "Elem has no quadrature nodes!");
1662  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes[elem->id()].find(side) !=
1664  "Side has no quadrature nodes!");
1665  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].find(qp) !=
1667  "qp not found on side!");
1668 
1669  return _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp];
1670 }
dof_id_type id() const
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:1700
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ 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 2573 of file MooseMesh.C.

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

2574 {
2575  if (child == -1) // Doing volume mapping or parent side mapping
2576  {
2577  mooseAssert(parent_side == child_side,
2578  "Parent side must match child_side if not passing a specific child!");
2579 
2580  std::pair<int, ElemType> the_pair(parent_side, elem.type());
2581 
2582  if (_elem_type_to_refinement_map.find(the_pair) == _elem_type_to_refinement_map.end())
2583  mooseError("Could not find a suitable qp refinement map!");
2584 
2585  return _elem_type_to_refinement_map[the_pair];
2586  }
2587  else // Need to map a child side to parent volume qps
2588  {
2589  std::pair<int, int> child_pair(child, child_side);
2590 
2593  _elem_type_to_child_side_refinement_map[elem.type()].find(child_pair) ==
2595  mooseError("Could not find a suitable qp refinement map!");
2596 
2597  return _elem_type_to_child_side_refinement_map[elem.type()][child_pair];
2598  }
2599 
2606 }
std::map< libMesh::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:1914
std::map< std::pair< int, libMesh::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:1905
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
virtual ElemType type() const=0

◆ getRenamedParam()

template<typename T >
const T & MooseBase::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 430 of file MooseBase.h.

431 {
432  // Most important: accept new parameter
433  if (isParamSetByUser(new_name) && !isParamValid(old_name))
434  return getParam<T>(new_name);
435  // Second most: accept old parameter
436  if (isParamValid(old_name) && !isParamSetByUser(new_name))
437  return getParam<T>(old_name);
438  // Third most: accept default for new parameter
439  if (isParamValid(new_name) && !isParamValid(old_name))
440  return getParam<T>(new_name);
441  // Refuse: no default, no value passed
442  if (!isParamValid(old_name) && !isParamValid(new_name))
443  mooseError("parameter '" + new_name +
444  "' is being retrieved without being set.\nDid you misspell it?");
445  // Refuse: both old and new parameters set by user
446  else
447  mooseError("Parameter '" + new_name + "' may not be provided alongside former parameter '" +
448  old_name + "'");
449 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseBase.h:209
bool isParamSetByUser(const std::string &name) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
Definition: MooseBase.h:215

◆ 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 294 of file Restartable.h.

295 {
296  return declareRestartableDataHelper<T>(data_name, nullptr).get();
297 }

◆ getSharedPtr() [1/2]

std::shared_ptr< MooseObject > MooseObject::getSharedPtr ( )
inherited

Get another shared pointer to this object that has the same ownership group.

Wrapper around shared_from_this().

Definition at line 70 of file MooseObject.C.

Referenced by MFEMProblem::addImagComponentToBC(), MFEMProblem::addImagComponentToKernel(), MFEMProblem::addRealComponentToBC(), MFEMProblem::addRealComponentToKernel(), and WebServerControl::addServerAction().

71 {
72  try
73  {
74  return shared_from_this();
75  }
76  catch (std::bad_weak_ptr &)
77  {
78  mooseError(not_shared_error);
79  }
80 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ getSharedPtr() [2/2]

std::shared_ptr< const MooseObject > MooseObject::getSharedPtr ( ) const
inherited

Definition at line 83 of file MooseObject.C.

84 {
85  try
86  {
87  return shared_from_this();
88  }
89  catch (std::bad_weak_ptr &)
90  {
91  mooseError(not_shared_error);
92  }
93 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ 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 3597 of file MooseMesh.C.

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

3598 {
3599  const auto it = _sub_to_data.find(subdomain_id);
3600 
3601  if (it == _sub_to_data.end())
3602  mooseError("Unable to find subdomain ID: ", subdomain_id, '.');
3603 
3604  return it->second.boundary_ids;
3605 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1949

◆ 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 1726 of file MooseMesh.C.

Referenced by SystemBase::addVariable(), FEProblemBase::checkProblemIntegrity(), FVInterfaceKernel::FVInterfaceKernel(), TimedSubdomainModifier::getSubdomainIDAndCheck(), SolutionIC::initialSetup(), ElementSubdomainModifierBase::initialSetup(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), PiecewiseConstantByBlockMaterialTempl< is_ad >::PiecewiseConstantByBlockMaterialTempl(), MooseMesh::prepare(), MooseMesh::setCoordSystem(), and MooseMesh::setGeneralAxisymmetricCoordAxes().

1727 {
1728  return MooseMeshUtils::getSubdomainID(subdomain_name, getMesh());
1729 }
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:3548

◆ getSubdomainIDs() [1/2]

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

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

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

Definition at line 1732 of file MooseMesh.C.

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

1733 {
1734  return MooseMeshUtils::getSubdomainIDs(getMesh(), subdomain_name);
1735 }
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:3548

◆ getSubdomainIDs() [2/2]

std::set< SubdomainID > MooseMesh::getSubdomainIDs ( const std::set< SubdomainName > &  subdomain_names) const
inherited

Definition at line 1738 of file MooseMesh.C.

1739 {
1740  return MooseMeshUtils::getSubdomainIDs(getMesh(), subdomain_name);
1741 }
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:3548

◆ 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 3608 of file MooseMesh.C.

3609 {
3610  const auto & bnd_ids = getSubdomainBoundaryIds(subdomain_id);
3611  std::set<BoundaryID> boundary_ids(bnd_ids.begin(), bnd_ids.end());
3612  std::unordered_map<SubdomainID, std::set<BoundaryID>>::const_iterator it =
3613  _neighbor_subdomain_boundary_ids.find(subdomain_id);
3614 
3615  boundary_ids.insert(it->second.begin(), it->second.end());
3616 
3617  return boundary_ids;
3618 }
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:3597
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:1952

◆ 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 1764 of file MooseMesh.C.

Referenced by NonlinearSystemBase::checkKernelCoverage(), FEProblemBase::checkProblemIntegrity(), SampledOutput::cloneMesh(), BlockRestrictable::initializeBlockRestrictable(), and SolutionIC::initialSetup().

1765 {
1766  std::vector<SubdomainName> names(subdomain_ids.size());
1767 
1768  for (unsigned int i = 0; i < subdomain_ids.size(); i++)
1769  names[i] = getSubdomainName(subdomain_ids[i]);
1770 
1771  return names;
1772 }
const std::string & getSubdomainName(SubdomainID subdomain_id) const
Return the name of a block given an id.
Definition: MooseMesh.C:1758

◆ 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 4305 of file MooseMesh.C.

Referenced by HDGKernel::HDGKernel().

4306 {
4307  const auto unique_system = _coord_sys.find(*meshSubdomains().begin())->second;
4308  // Check that it is actually unique
4309  bool result = std::all_of(
4310  std::next(_coord_sys.begin()),
4311  _coord_sys.end(),
4312  [unique_system](
4313  typename std::unordered_map<SubdomainID, Moose::CoordinateSystemType>::const_reference
4314  item) { return (item.second == unique_system); });
4315  if (!result)
4316  mooseError("The unique coordinate system of the mesh was requested by the mesh contains "
4317  "multiple blocks with different coordinate systems");
4318 
4320  mooseError("General axisymmetric coordinate axes are being used, and it is currently "
4321  "conservatively assumed that in this case there is no unique coordinate system.");
4322 
4323  return unique_system;
4324 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:2019
bool usingGeneralAxisymmetricCoordAxes() const
Returns true if general axisymmetric coordinate axes are being used.
Definition: MooseMesh.C:4399
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:3271

◆ ghostGhostedBoundaries()

void MooseMesh::ghostGhostedBoundaries ( )
inherited

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

Definition at line 3414 of file MooseMesh.C.

Referenced by FEProblemBase::ghostGhostedBoundaries().

3415 {
3416  // No need to do this if using a serial mesh
3417  // We do not need to ghost boundary elements when _need_ghost_ghosted_boundaries
3418  // is not true. _need_ghost_ghosted_boundaries can be set by a mesh generator
3419  // where boundaries are already ghosted accordingly
3421  return;
3422 
3423  TIME_SECTION("GhostGhostedBoundaries", 3);
3424 
3425  parallel_object_only();
3426 
3427  DistributedMesh & mesh = dynamic_cast<DistributedMesh &>(getMesh());
3428 
3429  // We clear ghosted elements that were added by previous invocations of this
3430  // method but leave ghosted elements that were added by other code, e.g.
3431  // OversampleOutput, untouched
3432  mesh.clear_extra_ghost_elems(_ghost_elems_from_ghost_boundaries);
3434 
3435  std::set<const Elem *, CompareElemsByLevel> boundary_elems_to_ghost;
3436  std::set<Node *> connected_nodes_to_ghost;
3437 
3438  std::vector<const Elem *> family_tree;
3439 
3440  for (const auto & t : mesh.get_boundary_info().build_side_list())
3441  {
3442  auto elem_id = std::get<0>(t);
3443  auto bc_id = std::get<2>(t);
3444 
3445  if (_ghosted_boundaries.find(bc_id) != _ghosted_boundaries.end())
3446  {
3447  Elem * elem = mesh.elem_ptr(elem_id);
3448 
3449 #ifdef LIBMESH_ENABLE_AMR
3450  elem->family_tree(family_tree);
3451  Elem * parent = elem->parent();
3452  while (parent)
3453  {
3454  family_tree.push_back(parent);
3455  parent = parent->parent();
3456  }
3457 #else
3458  family_tree.clear();
3459  family_tree.push_back(elem);
3460 #endif
3461  for (const auto & felem : family_tree)
3462  {
3463  boundary_elems_to_ghost.insert(felem);
3464 
3465  // The entries of connected_nodes_to_ghost need to be
3466  // non-constant, so that they will work in things like
3467  // UpdateDisplacedMeshThread. The container returned by
3468  // family_tree contains const Elems even when the Elem
3469  // it is called on is non-const, so once that interface
3470  // gets fixed we can remove this const_cast.
3471  for (unsigned int n = 0; n < felem->n_nodes(); ++n)
3472  connected_nodes_to_ghost.insert(const_cast<Node *>(felem->node_ptr(n)));
3473  }
3474  }
3475  }
3476 
3477  // We really do want to store this by value instead of by reference
3478  const auto prior_ghost_elems = mesh.extra_ghost_elems();
3479 
3481  connected_nodes_to_ghost.begin(),
3482  connected_nodes_to_ghost.end(),
3483  extra_ghost_elem_inserter<Node>(mesh));
3484 
3486  boundary_elems_to_ghost.begin(),
3487  boundary_elems_to_ghost.end(),
3488  extra_ghost_elem_inserter<Elem>(mesh));
3489 
3490  const auto & current_ghost_elems = mesh.extra_ghost_elems();
3491 
3492  std::set_difference(current_ghost_elems.begin(),
3493  current_ghost_elems.end(),
3494  prior_ghost_elems.begin(),
3495  prior_ghost_elems.end(),
3496  std::inserter(_ghost_elems_from_ghost_boundaries,
3498 }
const Elem * parent() const
bool _need_ghost_ghosted_boundaries
A parallel mesh generator such as DistributedRectilinearMeshGenerator already make everything ready...
Definition: MooseMesh.h:1986
void family_tree(std::vector< const Elem * > &family, bool reset=true) const
MeshBase & mesh
const Parallel::Communicator & comm() const
void allgather_packed_range(Context *context, Iter range_begin, const Iter range_end, OutputIter out, std::size_t approx_buffer_size=1000000) const
const BoundaryInfo & get_boundary_info() const
std::set< Elem * > _ghost_elems_from_ghost_boundaries
Set of elements ghosted by ghostGhostedBoundaries.
Definition: MooseMesh.h:1980
std::vector< BCTuple > build_side_list(BCTupleSortBy sort_by=BCTupleSortBy::ELEM_ID) const
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1576
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
void family_tree(T elem, std::vector< T > &family, bool reset=true)
virtual const Elem * elem_ptr(const dof_id_type i) const=0
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1709

◆ hasBase()

bool MooseBase::hasBase ( ) const
inlineinherited
Returns
Whether or not this object has a registered base (set via InputParameters::registerBase())

Definition at line 142 of file MooseBase.h.

142 { return _pars.hasBase(); }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
bool hasBase() const

◆ hasDetectedPairedSidesets()

bool MooseMesh::hasDetectedPairedSidesets ( ) const
inlineinherited

Whether or not detectedPairedSidesets() has been called.

Definition at line 990 of file MooseMesh.h.

Referenced by MooseMesh::getPairedBoundaryMapping(), and Moose::PeriodicBCHelper::setupPeriodicBoundaries().

990 { return _paired_boundary.has_value(); }
std::optional< std::vector< std::pair< BoundaryID, BoundaryID > > > _paired_boundary
A vector holding the paired boundaries for a regular orthogonal mesh.
Definition: MooseMesh.h:1734

◆ 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 2312 of file MooseMesh.h.

Referenced by MooseMesh::getElementIDIndex().

2313 {
2314  return getMesh().has_elem_integer(id_name);
2315 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ hasLowerD()

bool MooseMesh::hasLowerD ( ) const
inlineinherited
Returns
Whether there are any lower-dimensional blocks

Definition at line 1535 of file MooseMesh.h.

Referenced by GhostLowerDElems::operator()().

1535 { return getMesh().elem_dimensions().size() > 1; }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ hasMeshBase()

bool MooseMesh::hasMeshBase ( ) const
inlineinherited

Whether mesh base object was constructed or not.

Definition at line 1234 of file MooseMesh.h.

Referenced by MeshGeneratorMesh::buildMesh().

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

◆ hasSecondOrderElements()

bool MooseMesh::hasSecondOrderElements ( )
inherited

check if the mesh has SECOND order elements

Definition at line 3815 of file MooseMesh.C.

Referenced by Assembly::adCurvatures(), Assembly::Assembly(), Assembly::havePRefinement(), and SolutionUserObjectBase::SolutionUserObjectBase().

3816 {
3817  bool mesh_has_second_order_elements = false;
3818  for (auto it = activeLocalElementsBegin(), end = activeLocalElementsEnd(); it != end; ++it)
3819  if ((*it)->default_order() == SECOND)
3820  {
3821  mesh_has_second_order_elements = true;
3822  break;
3823  }
3824 
3825  // We checked our local elements, so take the max over all processors.
3826  comm().max(mesh_has_second_order_elements);
3827  return mesh_has_second_order_elements;
3828 }
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:3151
void max(const T &r, T &o, Request &req) const
const MeshBase::element_iterator activeLocalElementsEnd()
Definition: MooseMesh.C:3157

◆ haveParameter()

template<typename T >
bool MooseBase::haveParameter ( const std::string &  name) const
inlineinherited

Test if a parameter of the given name and type exists.

Parameters
nameThe name of the parameter to test

Definition at line 200 of file MooseBase.h.

201  {
202  return _pars.have_parameter<T>(name);
203  }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.

◆ 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 2936 of file MooseMesh.C.

2937 {
2944  if (!_mesh)
2946 
2948  mooseError("You cannot use the mesh splitter capability with DistributedMesh!");
2949 
2950  TIME_SECTION("init", 2);
2951 
2953  {
2954  // Some partitioners are not idempotent. Some recovery data
2955  // files require partitioning to match mesh partitioning. This
2956  // means that, when recovering, we can't safely repartition.
2957  const bool skip_partitioning_later = getMesh().skip_partitioning();
2958  getMesh().skip_partitioning(true);
2959  const bool allow_renumbering_later = getMesh().allow_renumbering();
2960  getMesh().allow_renumbering(false);
2961 
2962  // For now, only read the recovery mesh on the Ultimate Master..
2963  // sub-apps need to just build their mesh like normal
2964  {
2965  TIME_SECTION("readRecoveredMesh", 2);
2967  }
2968 
2969  getMesh().allow_renumbering(allow_renumbering_later);
2970  getMesh().skip_partitioning(skip_partitioning_later);
2971  }
2972  else // Normally just build the mesh
2973  {
2974  // Don't allow partitioning during building
2975  if (_app.isSplitMesh())
2976  getMesh().skip_partitioning(true);
2977  buildMesh();
2978 
2979  if (getParam<bool>("build_all_side_lowerd_mesh"))
2980  buildLowerDMesh();
2981  }
2982 }
static const std::string & checkpointSuffix()
The file suffix for the checkpoint mesh.
Definition: MooseApp.C:2810
bool isUltimateMaster() const
Whether or not this app is the ultimate master app.
Definition: MooseApp.h:840
virtual void read(const std::string &name, void *mesh_data=nullptr, bool skip_renumber_nodes_and_elements=false, bool skip_find_neighbors=false, bool skip_detect_interior_parents=false)=0
void allow_renumbering(bool allow)
void skip_partitioning(bool skip)
void buildLowerDMesh()
Build lower-d mesh for all sides.
Definition: MooseMesh.C:662
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:1511
bool _allow_recovery
Whether or not this Mesh is allowed to read a recovery file.
Definition: MooseMesh.h:1964
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1576
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
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:2917
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition: MooseApp.C:1499
std::string getRestartRecoverFileBase() const
The file_base for the recovery file.
Definition: MooseApp.h:499

◆ interiorLowerDBlocks()

const std::set<SubdomainID>& MooseMesh::interiorLowerDBlocks ( ) const
inlineinherited

◆ 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 3691 of file MooseMesh.C.

Referenced by BoundaryMarker::computeElementMarker().

3692 {
3693  bool found_elem = false;
3694  for (const auto & it : _bnd_elem_ids)
3695  {
3696  if (it.second.find(elem_id) != it.second.end())
3697  {
3698  found_elem = true;
3699  break;
3700  }
3701  }
3702  return found_elem;
3703 }
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:1696

◆ 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 3706 of file MooseMesh.C.

3707 {
3708  bool found_elem = false;
3709  auto it = _bnd_elem_ids.find(bnd_id);
3710  if (it != _bnd_elem_ids.end())
3711  if (it->second.find(elem_id) != it->second.end())
3712  found_elem = true;
3713  return found_elem;
3714 }
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:1696

◆ 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 1373 of file MooseMesh.C.

1375 {
1376  mooseAssert(_bnd_elem_range, "Boundary element range is not initialized");
1377 
1378  // Loop over all side elements of the mesh, select those on the boundary
1379  for (const auto & bnd_elem : *_bnd_elem_range)
1380  {
1381  const auto & [elem_ptr, elem_side, elem_bid] = *bnd_elem;
1382  if (elem_bid == bid)
1383  {
1384  // If an element is internal to the group of subdomain, check the neighbor
1385  if (blk_group.find(elem_ptr->subdomain_id()) != blk_group.end())
1386  {
1387  const auto * const neighbor = elem_ptr->neighbor_ptr(elem_side);
1388 
1389  // If we did not ghost the neighbor, we cannot decide
1390  if (neighbor == libMesh::remote_elem)
1391  mooseError("Insufficient level of geometrical ghosting to determine "
1392  "if a boundary is internal to the mesh");
1393  // If the neighbor does not exist, then we are on the edge of the mesh
1394  if (!neighbor)
1395  continue;
1396  // If the neighbor is also in the group of subdomain,
1397  // then the boundary cuts the subdomains
1398  if (blk_group.find(neighbor->subdomain_id()) != blk_group.end())
1399  return false;
1400  }
1401  }
1402  }
1403  return true;
1404 }
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:1655
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
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 3665 of file MooseMesh.C.

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

3666 {
3667  bool found_node = false;
3668  for (const auto & it : _bnd_node_ids)
3669  {
3670  if (it.second.find(node_id) != it.second.end())
3671  {
3672  found_node = true;
3673  break;
3674  }
3675  }
3676  return found_node;
3677 }
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:1688

◆ 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 3680 of file MooseMesh.C.

3681 {
3682  bool found_node = false;
3683  std::map<boundary_id_type, std::set<dof_id_type>>::const_iterator it = _bnd_node_ids.find(bnd_id);
3684  if (it != _bnd_node_ids.end())
3685  if (it->second.find(node_id) != it->second.end())
3686  found_node = true;
3687  return found_node;
3688 }
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:1688

◆ isCustomPartitionerRequested()

bool MooseMesh::isCustomPartitionerRequested ( ) const
inherited

Setter and getter for _custom_partitioner_requested.

Definition at line 3809 of file MooseMesh.C.

3810 {
3812 }
bool _custom_partitioner_requested
Definition: MooseMesh.h:1594

◆ isDisplaced() [1/2]

void MooseMesh::isDisplaced ( bool  is_displaced)
inlineinherited

Set whether this mesh is a displaced mesh.

Definition at line 1353 of file MooseMesh.h.

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

◆ isDisplaced() [2/2]

bool MooseMesh::isDisplaced ( ) const
inlineinherited

whether this mesh is a displaced mesh

Definition at line 1358 of file MooseMesh.h.

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

◆ isDistributedMesh()

virtual bool MooseMesh::isDistributedMesh ( ) const
inlinevirtualinherited

◆ isFiniteVolumeInfoDirty()

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

Definition at line 1449 of file MooseMesh.h.

Referenced by SideIntegralPostprocessor::initialSetup(), and FEProblemBase::meshChanged().

1449 { return _finite_volume_info_dirty; }
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1772

◆ isKokkosObject()

bool MooseObject::isKokkosObject ( ) const
inlineinherited

Get whether this object is a Kokkos functor The parameter MooseBase::kokkos_object_param is set by the Kokkos base classes.

Definition at line 63 of file MooseObject.h.

Referenced by BlockRestrictable::initializeBlockRestrictable(), and BoundaryRestrictable::initializeBoundaryRestrictable().

63 { return parameters().isKokkosObject(); }
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
bool isKokkosObject() const
Returns whether this InputParameters belongs to a Kokkos object Checks whether MooseBase::kokkos_obje...

◆ isParallelTypeForced()

bool MooseMesh::isParallelTypeForced ( ) const
inlineinherited

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

Definition at line 1136 of file MooseMesh.h.

1136 { return _parallel_type_overridden; }
bool _parallel_type_overridden
Definition: MooseMesh.h:1578

◆ isParamSetByUser()

bool MooseBase::isParamSetByUser ( const std::string &  name) const
inlineinherited

Test if the supplied parameter is set by a user, as opposed to not set or set to default.

Parameters
nameThe name of the parameter to test

Definition at line 215 of file MooseBase.h.

Referenced by SetupDebugAction::act(), DiffusionCG::addFEBCs(), DiffusionPhysicsBase::addInitialConditions(), CylinderComponent::addMeshGenerators(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), MFEMMesh::buildMesh(), MFEMBoundarySubMesh::buildSubMesh(), MFEMDomainSubMesh::buildSubMesh(), LibtorchNeuralNetControl::conditionalParameterError(), ConservativeAdvectionBCTempl< false >::ConservativeAdvectionBCTempl(), MooseApp::copyInputs(), DiffusionPhysicsBase::DiffusionPhysicsBase(), MooseApp::errorCheck(), FileMesh(), FullSolveMultiApp::FullSolveMultiApp(), OrientSurfaceMeshGenerator::generate(), SurfaceSubdomainsFromAllNormalsGenerator::generate(), MFEMVectorFESpace::getFECName(), MooseBase::getRenamedParam(), DefaultConvergenceBase::getSharedExecutionerParam(), AddVariableAction::init(), PhysicsBase::initializePhysics(), ElementSubdomainModifierBase::initialSetup(), MatrixSymmetryCheck::MatrixSymmetryCheck(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MortarConstraintBase::MortarConstraintBase(), MultiAppGeneralFieldFunctorTransfer::MultiAppGeneralFieldFunctorTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), OrientSurfaceMeshGenerator::OrientSurfaceMeshGenerator(), SolutionInvalidityOutput::output(), Output::Output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), PetscExternalPartitioner::partition(), PolyLineMeshFollowingNodeSetGenerator::PolyLineMeshFollowingNodeSetGenerator(), MooseMesh::prepare(), SolutionUserObjectBase::readXda(), ReferenceResidualConvergence::ReferenceResidualConvergence(), PhysicsBase::reportPotentiallyMissedParameters(), MooseApp::run(), MooseApp::runInputFile(), MooseApp::runInputs(), Moose::MFEM::LinearSolverBase::SetPreconditioner(), SetupMeshAction::setupMesh(), MooseApp::setupOptions(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SmoothMeshGenerator::SmoothMeshGenerator(), SurfaceSubdomainsDelaunayRemesher::SurfaceSubdomainsDelaunayRemesher(), SurfaceSubdomainsFromAllNormalsGenerator::SurfaceSubdomainsFromAllNormalsGenerator(), TagVectorAux::TagVectorAux(), TimedSubdomainModifier::TimedSubdomainModifier(), TimeIntegratedPostprocessor::TimeIntegratedPostprocessor(), XYDelaunayGenerator::XYDelaunayGenerator(), and XYZDelaunayGenerator::XYZDelaunayGenerator().

216  {
217  return _pars.isParamSetByUser(name);
218  }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was set by the user.

◆ isParamValid()

bool MooseBase::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 209 of file MooseBase.h.

Referenced by HierarchicalGridPartitioner::_do_partition(), GridPartitioner::_do_partition(), AutoCheckpointAction::act(), CopyNodalVarsAction::act(), SetupMeshAction::act(), SetupDebugAction::act(), ComposeTimeStepperAction::act(), CreateDisplacedProblemAction::act(), SetAdaptivityOptionsAction::act(), AddVariableAction::act(), CommonOutputAction::act(), DiffusionCG::addFEKernels(), DiffusionFV::addFVBCs(), DiffusionFV::addFVKernels(), DiffusionPhysicsBase::addInitialConditions(), ComponentJunction::addMeshGenerators(), CylinderComponent::addMeshGenerators(), DiffusionPhysicsBase::addPostprocessors(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), AdvectiveFluxAux::AdvectiveFluxAux(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), ArrayVarReductionAux::ArrayVarReductionAux(), BicubicSplineFunction::BicubicSplineFunction(), BlockDeletionGenerator::BlockDeletionGenerator(), BSplineCurveGenerator::BSplineCurveGenerator(), TimedSubdomainModifier::buildFromFile(), ParsedChainControl::buildFunction(), GeneratedMesh::buildMesh(), MooseMesh::buildTypedMesh(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), MultiAppTransfer::checkParentAppUserObjectExecuteOn(), LibmeshPartitioner::clone(), SampledOutput::cloneMesh(), CombinedVectorPostprocessor::CombinedVectorPostprocessor(), CombinerGenerator::CombinerGenerator(), ComponentJunction::ComponentJunction(), ConservativeAdvectionBCTempl< false >::ConservativeAdvectionBCTempl(), ConservativeAdvectionTempl< is_ad >::ConservativeAdvectionTempl(), FEProblemSolve::convergenceSetup(), CopyMeshPartitioner::CopyMeshPartitioner(), CSVReaderVectorPostprocessor::CSVReaderVectorPostprocessor(), CutMeshByLevelSetGeneratorBase::CutMeshByLevelSetGeneratorBase(), ConstantReporter::declareConstantReporterValue(), ConstantReporter::declareConstantReporterValues(), DGKernelBase::DGKernelBase(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), EigenProblemSolve::EigenProblemSolve(), ElementGenerator::ElementGenerator(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), BSplineCurveGenerator::endDirection(), BSplineCurveGenerator::endPoint(), PIDTransientControl::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppUserObjectTransfer::execute(), Exodus::Exodus(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FEProblemBase::FEProblemBase(), FEProblemSolve::FEProblemSolve(), FileOutput::FileOutput(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FixedPointSolve::FixedPointSolve(), FunctionDT::FunctionDT(), FunctionValuePostprocessor::FunctionValuePostprocessor(), FVInterfaceKernel::FVInterfaceKernel(), FVMassMatrix::FVMassMatrix(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), AddMetaDataGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), ElementGenerator::generate(), ExtraNodesetGenerator::generate(), FileMeshGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), OrientSurfaceMeshGenerator::generate(), RenumberBySubdomainGenerator::generate(), SphereMeshGenerator::generate(), SubdomainPerElementGenerator::generate(), BlockDeletionGenerator::generate(), BSplineCurveGenerator::generate(), ConcentricCircleMeshGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainGeneratorBase::generate(), SideSetsFromNodeSetsGenerator::generate(), XYZDelaunayGenerator::generate(), MeshExtruderGenerator::generate(), ParsedExtraElementIDGenerator::generate(), XYDelaunayGenerator::generate(), XYMeshLineCutter::generate(), ManifoldSubdomainGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), DistributedRectilinearMeshGenerator::generate(), PropertyReadFile::getFileNames(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), MooseBase::getRenamedParam(), MultiAppNearestNodeTransfer::getTargetLocalNodes(), AddPeriodicBCAction::getVariables(), Terminator::handleMessage(), HFEMDirichletBC::HFEMDirichletBC(), EigenExecutionerBase::init(), IterationAdaptiveDT::init(), AdvancedOutput::initAvailableLists(), AdvancedOutput::initExecutionTypes(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), MultiAppCloneReporterTransfer::initialSetup(), SolutionIC::initialSetup(), MultiAppVariableValueSampleTransfer::initialSetup(), SolutionScalarAux::initialSetup(), PiecewiseTabularBase::initialSetup(), ParsedConvergence::initialSetup(), EigenProblemSolve::initialSetup(), SolutionAux::initialSetup(), PIDTransientControl::initialSetup(), Console::initialSetup(), MooseParsedVectorFunction::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), MooseParsedGradFunction::initialSetup(), MooseParsedFunction::initialSetup(), SampledOutput::initSample(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), PNGOutput::makePNG(), MassMatrix::MassMatrix(), MatCoupledForce::MatCoupledForce(), MeshGeneratorComponent::MeshGeneratorComponent(), MFEMProblemSolve::MFEMProblemSolve(), MooseMesh::MooseMesh(), MoosePreconditioner::MoosePreconditioner(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MooseVariableFV< Real >::MooseVariableFV(), MortarConstraintBase::MortarConstraintBase(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldKDTreeTransferBase::MultiAppGeneralFieldKDTreeTransferBase(), MultiAppGeneralFieldShapeEvaluationTransfer::MultiAppGeneralFieldShapeEvaluationTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppReporterTransfer::MultiAppReporterTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), MultiPostprocessorConvergence::MultiPostprocessorConvergence(), MultiSystemSolveObject::MultiSystemSolveObject(), NodeSetsGeneratorBase::NodeSetsGeneratorBase(), EigenExecutionerBase::normalizeSolution(), OrientSurfaceMeshGenerator::OrientSurfaceMeshGenerator(), Output::Output(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedSubdomainGeneratorBase::ParsedSubdomainGeneratorBase(), PetscOutput::PetscOutput(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), EqualValueBoundaryConstraint::pickPrimaryNode(), PIDTransientControl::PIDTransientControl(), PiecewiseTabularBase::PiecewiseTabularBase(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), EqualValueBoundaryConstraint::populateSecondaryNodes(), MooseMesh::prepare(), MooseBase::queryParam(), MultiApp::readCommandLineArguments(), SolutionUserObjectBase::readExodusIIOrNemesis(), ReferenceResidualInterface::ReferenceResidualInterface(), RenameBlockGenerator::RenameBlockGenerator(), ReporterPointSource::ReporterPointSource(), PhysicsBase::reportPotentiallyMissedParameters(), ParsedSubdomainMeshGenerator::setBlockName(), MooseMesh::setCoordSystem(), FileOutput::setFileBase(), FileOutput::setFileBaseInternal(), SurfaceMeshGeneratorBase::setup(), Split::setup(), SideSetsGeneratorBase::setup(), SetupMeshAction::setupMesh(), MooseApp::setupOptions(), Output::setWallTimeIntervalFromCommandLineParam(), SideDiffusiveFluxIntegralTempl< is_ad, Real >::SideDiffusiveFluxIntegralTempl(), SideSetsGeneratorBase::SideSetsGeneratorBase(), SolutionUserObjectBase::SolutionUserObjectBase(), BSplineCurveGenerator::startDirection(), BSplineCurveGenerator::startPoint(), Terminator::Terminator(), TimeIntervalTimes::TimeIntervalTimes(), TimePeriod::TimePeriod(), PIDTransientControl::timestepSetup(), MultiAppDofCopyTransfer::transfer(), TransformGenerator::TransformGenerator(), TransientBase::TransientBase(), FunctorIC::value(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl(), XYDelaunayGenerator::XYDelaunayGenerator(), and XYZDelaunayGenerator::XYZDelaunayGenerator().

209 { return _pars.isParamValid(name); }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
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 1156 of file MooseMesh.h.

1156 { return _partitioner_overridden; }
bool _partitioner_overridden
Definition: MooseMesh.h:1590

◆ isRegularOrthogonal()

bool MooseMesh::isRegularOrthogonal ( )
inlineinherited

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

Definition at line 1186 of file MooseMesh.h.

Referenced by AddPeriodicBCAction::act(), and AddPeriodicBCAction::onSetupPeriodicBoundary().

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

◆ 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 996 of file MooseMesh.C.

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

◆ isSplit()

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

Definition at line 1472 of file MooseMesh.h.

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

◆ isTranslatedPeriodic() [1/3]

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

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

Parameters
sys_num- The number of the system the variable is on
var_num- The variable number
component- An integer representing the desired component (dimension)

Definition at line 2255 of file MooseMesh.C.

Referenced by MooseMesh::isTranslatedPeriodic().

2258 {
2259  mooseAssert(component < dimension(), "Requested dimension out of bounds");
2260  return queryPeriodicDimensions(sys_num, var_num)[component];
2261 }
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2985
const std::array< bool, 3 > & queryPeriodicDimensions(const unsigned int sys_num, const unsigned int var_num) const
Query the translated periodic dimension flags for the given variable on the given system...
Definition: MooseMesh.C:2240

◆ isTranslatedPeriodic() [2/3]

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

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

Parameters
var- The variable
component- An integer representing the desired component (dimension)

Definition at line 2264 of file MooseMesh.C.

2265 {
2266  return isTranslatedPeriodic(var.sys().number(), var.number(), component);
2267 }
unsigned int number() const
Get variable number coming from libMesh.
unsigned int number() const
Gets the number of this system.
Definition: SystemBase.C:1158
bool isTranslatedPeriodic(const unsigned int sys_num, const unsigned int var_num, const unsigned int component) const
Returns whether this generated mesh is periodic in the given dimension for the given variable on the ...
Definition: MooseMesh.C:2255
SystemBase & sys()
Get the system this variable is part of.

◆ isTranslatedPeriodic() [3/3]

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

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

Deprecated method; assumes the system number is 0. Use the method that additionally takes the system number or the MooseVariableBase instead.

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

Definition at line 2270 of file MooseMesh.C.

2271 {
2272  mooseDoOnce(mooseDeprecated(
2273  "MooseMesh::isTranslatedPeriodic(const unsigned int, const unsigned int) is deprecated. Use "
2274  "the method that additionally takes the system number or the MooseVariableBase instead."));
2275  return isTranslatedPeriodic(0, var_num, component);
2276 }
void mooseDeprecated(Args &&... args) const
bool isTranslatedPeriodic(const unsigned int sys_num, const unsigned int var_num, const unsigned int component) const
Returns whether this generated mesh is periodic in the given dimension for the given variable on the ...
Definition: MooseMesh.C:2255

◆ lengthUnit()

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

Definition at line 4450 of file MooseMesh.C.

4451 {
4452  mooseAssert(_coord_transform, "This must be non-null");
4453  return _coord_transform->lengthUnit();
4454 }
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:2029

◆ localNodesBegin() [1/2]

MeshBase::node_iterator MooseMesh::localNodesBegin ( )
inherited

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

Definition at line 3127 of file MooseMesh.C.

3128 {
3129  return getMesh().local_nodes_begin();
3130 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ localNodesBegin() [2/2]

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

Definition at line 3139 of file MooseMesh.C.

3140 {
3141  return getMesh().local_nodes_begin();
3142 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ localNodesEnd() [1/2]

MeshBase::node_iterator MooseMesh::localNodesEnd ( )
inherited

Definition at line 3133 of file MooseMesh.C.

3134 {
3135  return getMesh().local_nodes_end();
3136 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ localNodesEnd() [2/2]

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

Definition at line 3145 of file MooseMesh.C.

3146 {
3147  return getMesh().local_nodes_end();
3148 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ markFiniteVolumeInfoDirty()

void MooseMesh::markFiniteVolumeInfoDirty ( )
inlineinherited

Mark the finite volume information as dirty.

Definition at line 1444 of file MooseMesh.h.

1444 { _finite_volume_info_dirty = true; }
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1772

◆ 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 1249 of file MooseMesh.h.

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

◆ maxElemId()

dof_id_type MooseMesh::maxElemId ( ) const
virtualinherited

Definition at line 3193 of file MooseMesh.C.

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

3194 {
3195  return getMesh().max_elem_id();
3196 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual dof_id_type max_elem_id() const=0

◆ maxHLevel()

unsigned int MooseMesh::maxHLevel ( ) const
inlineinherited

Returns the maximum h-refinement level of all elements.

Definition at line 1507 of file MooseMesh.h.

1507 { return _max_h_level; }
unsigned int _max_h_level
Maximum h-refinement level of all elements.
Definition: MooseMesh.h:2042

◆ 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 3187 of file MooseMesh.C.

3188 {
3189  return getMesh().max_node_id();
3190 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual dof_id_type max_node_id() const=0

◆ maxPLevel()

unsigned int MooseMesh::maxPLevel ( ) const
inlineinherited

Returns the maximum p-refinement level of all elements.

Definition at line 1502 of file MooseMesh.h.

1502 { return _max_p_level; }
unsigned int _max_p_level
Maximum p-refinement level of all elements.
Definition: MooseMesh.h:2040

◆ 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 3277 of file MooseMesh.C.

Referenced by BoundaryRestrictable::isBoundarySubset().

3278 {
3279  return _mesh_boundary_ids;
3280 }
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1675

◆ 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 886 of file MooseMesh.C.

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

887 {
888  TIME_SECTION("meshChanged", 3, "Updating Because Mesh Changed");
889 
890  update();
891 
892  // Delete all of the cached ranges
893  _active_local_elem_range.reset();
894  _active_node_range.reset();
896  _local_node_range.reset();
897  _bnd_node_range.reset();
898  _bnd_elem_range.reset();
899 
900  // Rebuild the ranges
906 
907  // Call the callback function onMeshChanged
908  onMeshChanged();
909 }
std::unique_ptr< libMesh::NodeRange > _active_node_range
Definition: MooseMesh.h:1650
libMesh::ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:1240
virtual void onMeshChanged()
Declares a callback function that is executed at the conclusion of meshChanged(). ...
Definition: MooseMesh.C:912
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:1655
std::unique_ptr< libMesh::ConstElemRange > _active_local_elem_range
A range for use with threading.
Definition: MooseMesh.h:1647
libMesh::ConstNodeRange * getLocalNodeRange()
Definition: MooseMesh.C:1277
void update()
Calls buildNodeListFromSideList(), buildNodeList(), and buildBndElemList().
Definition: MooseMesh.C:619
libMesh::NodeRange * getActiveNodeRange()
Definition: MooseMesh.C:1254
libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > * getBoundaryElementRange()
Definition: MooseMesh.C:1304
std::unique_ptr< libMesh::ConstNodeRange > _local_node_range
Definition: MooseMesh.h:1651
libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > * getBoundaryNodeRange()
Definition: MooseMesh.C:1291
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1653
std::unique_ptr< SemiLocalNodeRange > _active_semilocal_node_range
Definition: MooseMesh.h:1649

◆ 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 3289 of file MooseMesh.C.

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

3290 {
3291  return _mesh_nodeset_ids;
3292 }
std::set< BoundaryID > _mesh_nodeset_ids
Definition: MooseMesh.h:1677

◆ 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 3283 of file MooseMesh.C.

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

3284 {
3285  return _mesh_sideset_ids;
3286 }
std::set< BoundaryID > _mesh_sideset_ids
Definition: MooseMesh.h:1676

◆ meshSubdomains()

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

◆ messagePrefix()

std::string MooseBase::messagePrefix ( const bool  hit_prefix = true) const
inlineinherited
Returns
A prefix to be used in messages that contain the input file location associated with this object (if any) and the name and type of the object.

Definition at line 266 of file MooseBase.h.

Referenced by MooseBase::callMooseError(), MooseBase::errorPrefix(), MooseBase::mooseDeprecated(), MooseBase::mooseDeprecatedNoTrace(), MooseBase::mooseInfo(), and MooseBase::mooseWarning().

267  {
268  return messagePrefix(_pars, hit_prefix);
269  }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
std::string messagePrefix(const bool hit_prefix=true) const
Definition: MooseBase.h:266

◆ 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 1254 of file MooseMesh.h.

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

◆ minPeriodicDistance() [1/3]

Real MooseMesh::minPeriodicDistance ( const unsigned int  sys_num,
const unsigned int  var_num,
const Point &  p,
const Point &  q 
) const
inherited

Returns the distance between two points on the mesh taking into account periodicity for the given variable on the given system.

Parameters
sys_num- The number of the system the variable is on
var_num- The variable number
p,q- The points for which to compute a minimum distance
Returns
Real - The L2 distance between p and q

◆ minPeriodicDistance() [2/3]

Real MooseMesh::minPeriodicDistance ( const MooseVariableBase var,
const Point &  p,
const Point &  q 
) const
inherited

Returns the distance between two points on the mesh taking into account periodicity for the given variable.

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

◆ minPeriodicDistance() [3/3]

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

Returns the distance between two points on the mesh taking into account periodicity for the given variable.

Deprecated method; assumes the system number is 0. Use the method that additionally takes the system number or the MooseVariableBase instead.

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

◆ minPeriodicVector() [1/3]

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

Returns the minimum vector between two points on the mesh taking into account periodicity for the given variable on the given system.

Parameters
sys_num- The number of the system the variable is on
var_num- The variable number
p,q- The points between which to compute a minimum vector
Returns
RealVectorValue - The vector pointing from p to q

◆ minPeriodicVector() [2/3]

RealVectorValue MooseMesh::minPeriodicVector ( const MooseVariableBase var,
const Point &  p,
const Point &  q 
) const
inherited

Returns the minimum vector between two points on the mesh taking into account periodicity for the given variable.

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

◆ minPeriodicVector() [3/3]

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

Returns the minimum vector between two points on the mesh taking into account periodicity for the given variable on the given system.

Deprecated method; assumes the system number is 0. Use the method that additionally takes the system number or the MooseVariableBase instead.

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

◆ mooseDeprecated() [1/2]

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

Definition at line 87 of file SolutionInvalidInterface.h.

Referenced by FEProblemBase::addAuxArrayVariable(), FEProblemBase::addAuxScalarVariable(), FEProblemBase::addAuxVariable(), FEProblemBase::advanceMultiApps(), MultiApp::appProblem(), ChangeOverTimestepPostprocessor::ChangeOverTimestepPostprocessor(), AddVariableAction::determineType(), EigenProblem::EigenProblem(), MooseMesh::elem(), UserForcingFunction::f(), FaceFaceConstraint::FaceFaceConstraint(), FunctionDT::FunctionDT(), RandomICBase::generateRandom(), MooseMesh::getBoundariesToElems(), Control::getExecuteOptions(), FEProblemBase::getNonlinearSystem(), FEProblemBase::hasPostprocessor(), MooseMesh::isTranslatedPeriodic(), MultiAppNearestNodeTransfer::MultiAppNearestNodeTransfer(), MultiAppShapeEvaluationTransfer::MultiAppShapeEvaluationTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), NodalScalarKernel::NodalScalarKernel(), MooseMesh::node(), FixedPointSolve::numPicardIts(), RelationshipManager::operator>=(), PercentChangePostprocessor::PercentChangePostprocessor(), ReferenceResidualConvergence::ReferenceResidualConvergence(), Residual::Residual(), MooseMesh::setBoundaryToNormalMap(), Exodus::setOutputDimension(), TagVectorAux::TagVectorAux(), UserForcingFunction::UserForcingFunction(), and VariableResidual::VariableResidual().

88  {
89  _si_moose_base.MooseBase::mooseDeprecated(std::forward<Args>(args)...);
90  flagSolutionWarningMultipleRegistration(_si_moose_base.name() + ": deprecation");
91  }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
const MooseBase & _si_moose_base
The MooseBase that owns this interface.

◆ mooseDeprecated() [2/2]

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

Emits a deprecation warning prefixed with the object name and type, and a stack trace.

Definition at line 327 of file MooseBase.h.

Referenced by MooseApp::addCapability(), DataFileInterface::getDataFileName(), DataFileInterface::getDataFileNameByName(), MooseApp::getRecoverFileBase(), MooseApp::hasRecoverFileBase(), and MooseApp::setupOptions().

328  {
330  _console, false, true, true, messagePrefix(true), std::forward<Args>(args)...);
331  }
void mooseDeprecatedStream(S &oss, const bool expired, const bool print_title, const bool show_trace, Args &&... args)
Definition: MooseError.h:252
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
std::string messagePrefix(const bool hit_prefix=true) const
Definition: MooseBase.h:266

◆ mooseDeprecatedNoTrace()

template<typename... Args>
void MooseBase::mooseDeprecatedNoTrace ( Args &&...  args) const
inlineinherited

Emits a deprecation warning prefixed with the object name and type, and no stack trace.

Definition at line 337 of file MooseBase.h.

338  {
340  _console, false, true, false, messagePrefix(true), std::forward<Args>(args)...);
341  }
void mooseDeprecatedStream(S &oss, const bool expired, const bool print_title, const bool show_trace, Args &&... args)
Definition: MooseError.h:252
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
std::string messagePrefix(const bool hit_prefix=true) const
Definition: MooseBase.h:266

◆ mooseDocumentedError()

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

Definition at line 287 of file MooseBase.h.

Referenced by ArrayDGLowerDKernel::ArrayDGLowerDKernel(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), ArrayLowerDIntegratedBC::ArrayLowerDIntegratedBC(), DGLowerDKernel::DGLowerDKernel(), HFEMDirichletBC::HFEMDirichletBC(), LowerDIntegratedBC::LowerDIntegratedBC(), and ManifoldSubdomainGenerator::ManifoldSubdomainGenerator().

290  {
292  repo_name, issue_num, argumentsToString(std::forward<Args>(args)...)),
293  /* with_prefix = */ true);
294  }
void callMooseError(std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
External method for calling moose error with added object context.
Definition: MooseBase.C:105
std::string formatMooseDocumentedError(const std::string &repo_name, const unsigned int issue_num, const std::string &msg)
Formats a documented error.
Definition: MooseError.C:142

◆ mooseError()

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

Emits an error prefixed with object name and type and optionally a file path to the top-level block parameter if available.

Definition at line 281 of file MooseBase.h.

Referenced by CopyMeshPartitioner::_do_partition(), HierarchicalGridPartitioner::_do_partition(), GridPartitioner::_do_partition(), PetscExternalPartitioner::_do_partition(), MultiAppGeneralFieldTransfer::acceptPointInOriginMesh(), CheckIntegrityAction::act(), AddMeshGeneratorAction::act(), AddICAction::act(), CheckFVBCAction::act(), AddVectorPostprocessorAction::act(), CreateExecutionerAction::act(), AddBoundsVectorsAction::act(), AddFVICAction::act(), InitProblemAction::act(), SetupMeshCompleteAction::act(), CreateProblemAction::act(), CreateProblemDefaultAction::act(), AdaptivityAction::act(), CombineComponentsMeshes::act(), SetupMeshAction::act(), SplitMeshAction::act(), AddTimeStepperAction::act(), ChainControlSetupAction::act(), DeprecatedBlockAction::act(), SetupDebugAction::act(), CSGOnlyAction::act(), SetupTimeStepperAction::act(), SetupPredictorAction::act(), CreateDisplacedProblemAction::act(), MaterialDerivativeTestAction::act(), SetAdaptivityOptionsAction::act(), MaterialOutputAction::act(), CommonOutputAction::act(), AddPeriodicBCAction::act(), Action::Action(), FEProblemBase::adaptMesh(), ADArrayReaction::ADArrayReaction(), MooseVariableFV< Real >::adCurlSln(), MooseVariableFV< Real >::adCurlSlnNeighbor(), AddActionComponentAction::AddActionComponentAction(), MFEMProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DiffusionCG::addBoundaryConditionsFromComponents(), PhysicsComponentInterface::addBoundaryConditionsFromComponents(), MooseApp::addCapabilityInternal(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), FEProblemBase::addDGKernel(), FEProblemBase::addDiracKernel(), DistributedRectilinearMeshGenerator::addElement(), MooseApp::addExecutor(), FEProblemBase::addFunction(), SubProblem::addFunctor(), FEProblemBase::addFVInitialCondition(), ADDGKernel::ADDGKernel(), FEProblemBase::addHDGKernel(), FEProblemBase::addInitialCondition(), PhysicsComponentInterface::addInitialConditionsFromComponents(), FEProblemBase::addInterfaceKernel(), MFEMProblem::addKernel(), FEProblemBase::addKernel(), FEProblem::addLineSearch(), FEProblemBase::addLineSearch(), MFEMProblem::addMaterial(), LinearFVFluxKernel::addMatrixContribution(), ComponentJunction::addMeshGenerators(), MeshGenerator::addMeshSubgenerator(), MFEMProblem::addMFEMFESpaceFromMOOSEVariable(), MFEMEigenproblem::addMFEMSolver(), MFEMProblem::addMFEMSolver(), FEProblemBase::addObjectParamsHelper(), FEProblemBase::addOutput(), SubProblem::addPiecewiseByBlockLambdaFunctor(), DistributedRectilinearMeshGenerator::addPoint(), DiracKernelBase::addPointWithValidId(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), MooseMesh::addQuadratureNode(), Action::addRelationshipManager(), LinearFVFluxKernel::addRightHandSideContribution(), FEProblemBase::addScalarKernel(), WebServerControl::addServerAction(), MFEMEigenproblem::addVariable(), AddVariableAction::addVariable(), SubProblem::addVectorTag(), MooseLinearVariableFV< Real >::adError(), ADInterfaceKernelTempl< T >::ADInterfaceKernelTempl(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), MooseVariableScalar::adUDot(), Output::advancedExecuteOn(), NEML2ModelExecutor::advanceState(), AdvectiveFluxAux::AdvectiveFluxAux(), MooseVariableBase::allDofIndices(), MooseApp::appNameToLibName(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), ArrayConstantIC::ArrayConstantIC(), ArrayDGKernel::ArrayDGKernel(), ArrayDiffusion::ArrayDiffusion(), ArrayFunctionIC::ArrayFunctionIC(), ArrayReaction::ArrayReaction(), ArrayTimeDerivative::ArrayTimeDerivative(), ArrayVariableValueVolumeHistogram::ArrayVariableValueVolumeHistogram(), MooseApp::attachRelationshipManagers(), Function::average(), Axisymmetric2D3DSolutionFunction::Axisymmetric2D3DSolutionFunction(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), BicubicSplineFunction::BicubicSplineFunction(), BlockDeletionGenerator::BlockDeletionGenerator(), BoundingValueElementDamper::BoundingValueElementDamper(), BoundingValueNodalDamper::BoundingValueNodalDamper(), MooseMesh::buildCoarseningMap(), MultiApp::buildComm(), DistributedRectilinearMeshGenerator::buildCube(), PiecewiseTabularInterface::buildFromFile(), TimedSubdomainModifier::buildFromFile(), PiecewiseTabularInterface::buildFromJSON(), TimedSubdomainModifier::buildFromParameters(), PiecewiseTabularInterface::buildFromXY(), PiecewiseLinearBase::buildInterpolation(), MooseMesh::buildLowerDMesh(), TiledMesh::buildMesh(), GeneratedMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), MeshGeneratorMesh::buildMesh(), ImageMeshGenerator::buildMesh3D(), ImageMesh::buildMesh3D(), MooseMesh::buildRefinementMap(), MaterialBase::buildRequiredMaterials(), MooseMesh::buildTypedMesh(), MooseMesh::cacheFaceInfoVariableOwnership(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), ChangeOverFixedPointPostprocessor::ChangeOverFixedPointPostprocessor(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), EigenExecutionerBase::chebyshev(), SubProblem::checkBlockMatProps(), PhysicsBase::checkBlockRestrictionIdentical(), ComponentBoundaryConditionInterface::checkBoundaryConditionsAllRequested(), SubProblem::checkBoundaryMatProps(), PhysicsBase::checkComponentType(), IterationCountConvergence::checkConvergence(), MooseMesh::checkCoordinateSystems(), DiffusionLHDGAssemblyHelper::checkCoupling(), FEProblemBase::checkDependMaterialsHelper(), FEProblemBase::checkDisplacementOrders(), FEProblemBase::checkDuplicatePostprocessorVariableNames(), DefaultConvergenceBase::checkDuplicateSetSharedExecutionerParams(), MooseMesh::checkDuplicateSubdomainNames(), FEProblemBase::checkExceptionAndStopSolve(), NEML2ModelExecutor::checkExecutionStage(), MaterialBase::checkExecutionStage(), MeshGenerator::checkGetMesh(), ReporterTransferInterface::checkHasReporterValue(), FEProblemBase::checkICRestartError(), Steady::checkIntegrity(), EigenExecutionerBase::checkIntegrity(), Eigenvalue::checkIntegrity(), DefaultMultiAppFixedPointConvergence::checkIterationType(), DefaultNonlinearConvergence::checkIterationType(), DefaultSteadyStateConvergence::checkIterationType(), ExplicitTimeIntegrator::checkLinearConvergence(), MooseApp::checkMetaDataIntegrity(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), MeshDiagnosticsGenerator::checkNonMatchingEdges(), PostprocessorInterface::checkParam(), Moose::PeriodicBCHelper::checkPeriodicParams(), FEProblemBase::checkProblemIntegrity(), Sampler::checkReinitStatus(), MultiAppGeneralFieldKDTreeTransferBase::checkRestrictionsForSource(), MultiAppMFEMCopyTransfer::checkSiblingsTransferSupported(), MultiAppPostprocessorToAuxScalarTransfer::checkSiblingsTransferSupported(), MultiAppScalarToAuxScalarTransfer::checkSiblingsTransferSupported(), MultiAppPostprocessorTransfer::checkSiblingsTransferSupported(), MultiAppReporterTransfer::checkSiblingsTransferSupported(), MultiAppCopyTransfer::checkSiblingsTransferSupported(), MultiAppTransfer::checkSiblingsTransferSupported(), Moose::MFEM::LinearSolverBase::CheckSpectralEquivalence(), MaterialBase::checkStatefulSanity(), AddDefaultConvergenceAction::checkUnusedMultiAppFixedPointConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedNonlinearConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedSteadyStateConvergenceParameters(), FEProblemBase::checkUserObjectNameCollision(), FEProblemBase::checkUserObjects(), Moose::PetscSupport::checkUserProvidedPetscOption(), MFEMMultiAppTransfer::checkValidTransferProblemTypes(), DomainUserObject::checkVariable(), MultiAppTransfer::checkVariable(), MeshDiagnosticsGenerator::checkWatertightNodesets(), MeshDiagnosticsGenerator::checkWatertightSidesets(), LibmeshPartitioner::clone(), MooseMesh::clone(), CombinerGenerator::CombinerGenerator(), ComparisonPostprocessor::comparisonIsTrue(), MFEMComplexAuxKernel::complexAdd(), MooseVariableFieldBase::componentName(), CompositeFunction::CompositeFunction(), ElementH1ErrorFunctionAux::compute(), NodalPatchRecovery::compute(), FEProblemBase::computeBounds(), VariableCondensationPreconditioner::computeDInverseDiag(), CompositionDT::computeDT(), ArrayDGKernel::computeElemNeighJacobian(), ArrayDGKernel::computeElemNeighResidual(), BoundaryLinearFVFluxIntegral::computeFaceInfoIntegral(), 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(), Moose::Kokkos::ResidualObject::computeOffDiagJacobian(), MortarScalarBase::computeOffDiagJacobianScalar(), DGLowerDKernel::computeOffDiagLowerDJacobian(), ArrayDGLowerDKernel::computeOffDiagLowerDJacobian(), MaterialBase::computeProperties(), BoundaryLinearFVFluxIntegral::computeQpIntegral(), SideFVFluxBCIntegral::computeQpIntegral(), ScalarKernel::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), NodalEqualValueConstraint::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), NodeElemConstraint::computeQpJacobian(), ADArrayNodalKernel::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), ScalarKernel::computeQpResidual(), MassMatrix::computeQpResidual(), HDGKernel::computeQpResidual(), DiffusionLHDGDirichletBC::computeQpResidual(), DiffusionLHDGPrescribedGradientBC::computeQpResidual(), NodalEqualValueConstraint::computeQpResidual(), IPHDGBC::computeQpResidual(), KernelValue::computeQpResidual(), TorchScriptMaterial::computeQpValues(), InterfaceQpValueUserObject::computeRealValue(), ArrayKernel::computeResidual(), ArrayIntegratedBC::computeResidual(), FVFluxBC::computeResidual(), FVFluxKernel::computeResidual(), NodalConstraint::computeResidual(), FVFluxKernel::computeResidualAndJacobian(), ResidualObject::computeResidualAndJacobian(), FEProblemBase::computeResidualAndJacobian(), HDGKernel::computeResidualAndJacobianOnSide(), FEProblemBase::computeResidualInternal(), 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(), NearestNodeValueAux::computeValue(), ProjectionAux::computeValue(), PenetrationAux::computeValue(), ConcentricCircleMesh::ConcentricCircleMesh(), ConditionalEnableControl::ConditionalEnableControl(), ConservativeAdvectionBCTempl< false >::ConservativeAdvectionBCTempl(), TimeStepper::constrainStep(), LibtorchNeuralNetControl::controlNeuralNet(), TransientBase::convergedToSteadyState(), ParsedConvergence::convertRealToBool(), MooseApp::copyInputs(), CopyMeshPartitioner::CopyMeshPartitioner(), CoupledForceNodalKernel::CoupledForceNodalKernel(), MultiApp::createApp(), MFEML2ZienkiewiczZhuIndicator::createEstimator(), MooseApp::createExecutors(), AddVariableAction::createInitialConditionAction(), MooseApp::createRMFromTemplateAndInit(), Function::curl(), MooseVariableFV< Real >::curlPhi(), CutMeshByPlaneGenerator::CutMeshByPlaneGenerator(), SidesetInfoVectorPostprocessor::dataHelper(), ReporterTransferInterface::declareClone(), Moose::Kokkos::MaterialBase::declareKokkosPropertyInternal(), MeshGenerator::declareMeshProperty(), ReporterTransferInterface::declareVectorClone(), DefaultSteadyStateConvergence::DefaultSteadyStateConvergence(), FunctorRelationshipManager::delete_remote_elements(), MooseMesh::deleteRemoteElements(), BicubicSplineFunction::derivative(), DerivativeSumMaterialTempl< is_ad >::DerivativeSumMaterialTempl(), MooseApp::determineLibtorchDeviceType(), FEProblemBase::determineSolverSystem(), DGKernel::DGKernel(), MeshDiagnosticsGenerator::diagnosticsLog(), DistributedPositions::DistributedPositions(), Function::div(), FunctorBinnedValuesDivision::divisionIndex(), MooseVariableFV< Real >::divPhi(), FunctorRelationshipManager::dofmap_reinit(), EigenProblem::doFreeNonlinearPowerIterations(), FEProblemBase::duplicateVariableCheck(), MooseApp::dynamicAllRegistration(), MooseApp::dynamicAppRegistration(), EigenProblem::EigenProblem(), EigenProblemSolve::EigenProblemSolve(), Eigenvalues::Eigenvalues(), ElementalVariableValue::ElementalVariableValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementIntegerAux::ElementIntegerAux(), ElementMaterialSampler::ElementMaterialSampler(), ElementQualityAux::ElementQualityAux(), ElementUOAux::ElementUOAux(), ExtraIDIntegralVectorPostprocessor::elementValue(), DistributedRectilinearMeshGenerator::elemId(), ProjectionAux::elemOnNodeVariableIsDefinedOn(), EigenKernel::enabled(), MooseApp::errorCheck(), MooseMesh::errorIfDistributedMesh(), MultiAppTransfer::errorIfObjectExecutesOnTransferInSourceApp(), SideIntegralPostprocessor::errorNoFaceInfo(), SideIntegralFunctorPostprocessorTempl< false >::errorNoFaceInfo(), SolutionUserObjectBase::evalMeshFunction(), SolutionUserObjectBase::evalMeshFunctionGradient(), SolutionUserObjectBase::evalMultiValuedMeshFunction(), SolutionUserObjectBase::evalMultiValuedMeshFunctionGradient(), FixedPointSolve::examineFixedPointConvergence(), MultiAppGeneralFieldTransfer::examineReceivedValueConflicts(), RealToBoolChainControl::execute(), RestartableDataReporter::execute(), DiscreteElementUserObject::execute(), NodalValueSampler::execute(), PositionsFunctorValueSampler::execute(), MFEMMultiAppTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MFEMEigenvaluesPostprocessor::execute(), MultiAppPostprocessorTransfer::execute(), ElementQualityChecker::execute(), GreaterThanLessThanPostprocessor::execute(), PointValue::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), FindValueOnLine::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppCopyTransfer::execute(), MultiAppUserObjectTransfer::execute(), InterfaceQpUserObjectBase::execute(), MultiAppGeometricInterpolationTransfer::execute(), TransientBase::execute(), LeastSquaresFit::execute(), LeastSquaresFitHistory::execute(), VectorPostprocessorComparison::execute(), Eigenvalue::execute(), WebServerControl::execute(), TimeExtremeValue::execute(), NEML2Assembly::execute(), DomainUserObject::execute(), NEML2FEInterpolation::execute(), FEProblemBase::execute(), FEProblemBase::executeControls(), MooseApp::executeExecutioner(), MultiAppVectorPostprocessorTransfer::executeFromMultiapp(), MFEMProblem::executeMFEMObjects(), MultiAppVectorPostprocessorTransfer::executeToMultiapp(), Exodus::Exodus(), ExplicitSSPRungeKutta::ExplicitSSPRungeKutta(), MultiAppMFEMTolibMeshShapeEvaluationTransfer::extractlibMeshNodePositions(), MultiAppGeneralFieldTransfer::extractOutgoingPoints(), NEML2ModelExecutor::extractOutputs(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FEProblemSolve::FEProblemSolve(), FileOutput::FileOutput(), NEML2ModelExecutor::fillInputs(), QuadraturePointMultiApp::fillPositions(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), MultiAppGeometricInterpolationTransfer::fillSourceInterpolationPoints(), VerifyNodalUniqueID::finalize(), VerifyElementUniqueID::finalize(), ParsedVectorReporter::finalize(), ParsedVectorVectorRealReductionReporter::finalize(), DiscreteElementUserObject::finalize(), ElementQualityChecker::finalize(), MemoryUsage::finalize(), PointSamplerBase::finalize(), NearestPointAverage::finalize(), DiscreteVariableResidualNorm::finalize(), NearestPointIntegralVariablePostprocessor::finalize(), NEML2Assembly::finalize(), MooseApp::finalizeRestore(), Transfer::find_sys(), MFEMCutTransitionSubMesh::findFaceNormal(), DiracKernelInfo::findPoint(), FixedPointSolve::findTransformedSystem(), FixedPointSolve::FixedPointSolve(), FunctionDT::FunctionDT(), FunctionMaterialBase< is_ad >::FunctionMaterialBase(), FunctionScalarAux::FunctionScalarAux(), FunctionScalarIC::FunctionScalarIC(), LinearFVBoundaryCondition::functorFaceArg(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), FVInitialConditionTempl< T >::FVInitialConditionTempl(), FVMassMatrix::FVMassMatrix(), FVMatAdvection::FVMatAdvection(), FVScalarLagrangeMultiplierInterface::FVScalarLagrangeMultiplierInterface(), GapValueAux::GapValueAux(), WorkBalance::gather(), ElementSubdomainModifierBase::gatherPatchElements(), Boundary2DDelaunayGenerator::General2DDelaunay(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), ElementOrderConversionGenerator::generate(), MoveNodeGenerator::generate(), PlaneIDMeshGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), RenumberBySubdomainGenerator::generate(), SideSetsFromNormalsGenerator::generate(), SubdomainPerElementGenerator::generate(), TiledMeshGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), ExtraNodesetGenerator::generate(), FileMeshGenerator::generate(), SideSetsFromPointsGenerator::generate(), SmoothMeshGenerator::generate(), StitchMeshGenerator::generate(), MeshDiagnosticsGenerator::generate(), MeshRepairGenerator::generate(), CoarsenBlockGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedGenerateNodeset::generate(), PolyLineMeshFollowingNodeSetGenerator::generate(), ProjectSideSetOntoLevelSetGenerator::generate(), SideSetsFromAllNormalsGenerator::generate(), SideSetsFromBoundingBoxGenerator::generate(), StackGenerator::generate(), SurfaceSubdomainsFromAllNormalsGenerator::generate(), XYZDelaunayGenerator::generate(), AdvancedExtruderGenerator::generate(), MeshExtruderGenerator::generate(), CombinerGenerator::generate(), MeshCollectionGenerator::generate(), SpiralAnnularMeshGenerator::generate(), XYMeshLineCutter::generate(), Boundary2DDelaunayGenerator::generate(), CutMeshByLevelSetGeneratorBase::generate(), PatternedMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), DistributedRectilinearMeshGenerator::generate(), BoundingBoxNodeSetGenerator::generate(), MeshGenerator::generateCSG(), MeshGenerator::generateData(), GeneratedMesh::GeneratedMesh(), GeneratedMeshGenerator::GeneratedMeshGenerator(), MeshGenerator::generateInternal(), MeshGenerator::generateInternalCSG(), 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(), GenericFunctorTimeDerivativeMaterialTempl< is_ad >::GenericFunctorTimeDerivativeMaterialTempl(), GenericVectorFunctorMaterialTempl< is_ad >::GenericVectorFunctorMaterialTempl(), DisplacedProblem::getActualFieldVariable(), FEProblemBase::getActualFieldVariable(), DisplacedProblem::getArrayVariable(), FEProblemBase::getArrayVariable(), MooseMesh::getAxisymmetricRadialCoord(), NEML2BatchIndexGenerator::getBatchIndex(), MooseMesh::getBlockConnectedBlocks(), VariableOldValueBounds::getBound(), MooseMesh::getBoundaryID(), MultiApp::getBoundingBox(), ChainControl::getChainControlDataByName(), WebServerControl::getClientInfo(), MooseMesh::getCoarseningMap(), NodalPatchRecoveryBase::getCoefficients(), MultiApp::getCommandLineArgs(), MooseVariableBase::getContinuity(), Control::getControllableParameterByName(), FEProblemBase::getConvergence(), MooseMesh::getCoordSystem(), PhysicsBase::getCoupledPhysics(), PropertyReadFile::getData(), DataFileInterface::getDataFilePath(), 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(), WebServerControl::Response::getError(), MultiApp::getExecutioner(), MooseApp::getExecutor(), MFEMVectorFESpace::getFECName(), MultiAppTransfer::getFromMultiApp(), MultiAppTransfer::getFromMultiAppInfo(), FEProblemBase::getFunction(), SubProblem::getFunctor(), FEProblemBase::getFVAdvectedInterpolationMethod(), FEProblemBase::getFVFaceInterpolationMethod(), FEProblemBase::getFVInterpolationMethod(), FEProblemBase::getFVMatsAndDependencies(), MooseMesh::getGeneralAxisymmetricCoordAxis(), MaterialPropertyInterface::getGenericMaterialPropertyByName(), DistributedRectilinearMeshGenerator::getGhostNeighbors(), DistributedRectilinearMeshGenerator::getIndices(), MaterialPropertyInterface::getKokkosBlockMaterialProperty(), FEProblemBase::getKokkosFunction(), FunctionInterface::getKokkosFunctionByName(), MaterialPropertyInterface::getKokkosMaterialPropertyByName(), FEProblemBase::getKokkosUserObject(), MFEMMultiAppTransfer::getlibMeshEquationSystem(), FEProblemBase::getLinearConvergenceNames(), SolutionUserObjectBase::getLocalVarIndex(), Material::getMaterialByName(), FEProblemBase::getMaterialData(), FEProblemBase::getMaterialPropertyStorageConsumers(), SubProblem::getMatrixTagID(), AnnularMesh::getMaxInDimension(), GeneratedMesh::getMaxInDimension(), FEProblemBase::getMaxQps(), FEProblemBase::getMeshDivision(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), MFEMProblem::getMFEMObject(), MFEMProblem::getMFEMVariableMesh(), AnnularMesh::getMinInDimension(), GeneratedMesh::getMinInDimension(), NEML2FEInterpolation::getMOOSEVariable(), MultiAppTransfer::getMultiApp(), FEProblemBase::getMultiAppFixedPointConvergenceName(), DistributedRectilinearMeshGenerator::getNeighbors(), Times::getNextTime(), MooseMesh::getNodeBlockIds(), PropertyReadFile::getNodeData(), MooseMesh::getNodeList(), FEProblemBase::getNonlinearConvergenceNames(), EigenProblem::getNonlinearEigenSystem(), FEProblemBase::getNonlinearSystem(), NEML2ModelExecutor::getOutput(), NEML2ModelExecutor::getOutputDerivative(), NEML2ModelExecutor::getOutputParameterDerivative(), MooseMesh::getPairedBoundaryMapping(), MaterialOutputAction::getParams(), ImageMeshGenerator::GetPixelInfo(), ImageMesh::GetPixelInfo(), PlaneIDMeshGenerator::getPlaneID(), Positions::getPosition(), Positions::getPositions(), FEProblemBase::getPositionsObject(), Positions::getPositionsVector2D(), Positions::getPositionsVector3D(), Positions::getPositionsVector4D(), FEProblemBase::getPostprocessorObjectByName(), PostprocessorInterface::getPostprocessorValueByNameInternal(), Times::getPreviousTime(), EqualValueBoundaryConstraint::getPrimaryNodeIDByCoord(), ComponentMaterialPropertyInterface::getPropertyValue(), InterfaceQpUserObjectBase::getQpValue(), MooseMesh::getRefinementMap(), MooseBase::getRenamedParam(), ReporterInterface::getReporterContextBaseByName(), ReporterInterface::getReporterName(), Reporter::getReporterValueName(), MooseApp::getRestartableDataMap(), MooseApp::getRestartableDataMapName(), MooseApp::getRestartableMetaData(), MooseApp::getRMClone(), FEProblemBase::getSampler(), DisplacedProblem::getScalarVariable(), FEProblemBase::getScalarVariable(), MooseObject::getSharedPtr(), InterfaceQpUserObjectBase::getSideAverageValue(), PhysicsBase::getSolverSystem(), DisplacedProblem::getStandardVariable(), FEProblemBase::getStandardVariable(), FEProblemBase::getSteadyStateConvergenceName(), MooseMesh::getSubdomainBoundaryIds(), TimedSubdomainModifier::getSubdomainIDAndCheck(), DisplacedProblem::getSystem(), FEProblemBase::getSystem(), FEProblemBase::getSystemBase(), Times::getTimeAtIndex(), FEProblemBase::getTimeFromStateArg(), TransientBase::getTimeIntegratorNames(), Times::getTimes(), MultiAppTransfer::getToMultiApp(), MultiAppTransfer::getToMultiAppInfo(), MooseMesh::getUniqueCoordSystem(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), UserObjectInterface::getUserObjectBaseByName(), UserObjectInterface::getUserObjectName(), NumRelationshipManagers::getValue(), VectorPostprocessorComponent::getValue(), Residual::getValue(), SideAverageValue::getValue(), JSONFileReader::getValue(), LineValueSampler::getValue(), FindValueOnLine::getValueAtPoint(), SubProblem::getVariableHelper(), AddPeriodicBCAction::getVariables(), JSONFileReader::getVector(), VectorPostprocessorInterface::getVectorPostprocessorName(), FEProblemBase::getVectorPostprocessorObjectByName(), SubProblem::getVectorTag(), SubProblem::getVectorTagID(), DisplacedProblem::getVectorVariable(), FEProblemBase::getVectorVariable(), GhostingFromUOAux::GhostingFromUOAux(), EqualValueBoundaryConstraint::ghostPrimary(), MultiApp::globalAppToLocal(), MooseParsedVectorFunction::gradient(), Function::gradient(), MooseLinearVariableFV< Real >::gradientStateError(), FEProblemBase::handleException(), Terminator::handleMessage(), MooseVariableBase::hasDoFsOnNodes(), PostprocessorInterface::hasPostprocessor(), PostprocessorInterface::hasPostprocessorByName(), ReporterInterface::hasReporterValue(), ReporterInterface::hasReporterValueByName(), VectorPostprocessorInterface::hasVectorPostprocessor(), VectorPostprocessorInterface::hasVectorPostprocessorByName(), HDGKernel::HDGKernel(), TransientBase::incrementStepOrReject(), NEML2Action::inferMOOSEIOType(), FixedPointIterationAdaptiveDT::init(), CrankNicolson::init(), CSVTimeSequenceStepper::init(), EigenExecutionerBase::init(), ExplicitTimeIntegrator::init(), TransientBase::init(), FEProblem::init(), AddAuxVariableAction::init(), IterationAdaptiveDT::init(), AddVariableAction::init(), MooseMesh::init(), Sampler::init(), FEProblemBase::init(), MultiApp::init(), FEProblemBase::initialAdaptMesh(), NestedDivision::initialize(), DistributedPositions::initialize(), TransformedPositions::initialize(), ReporterPositions::initialize(), ElementGroupCentroidPositions::initialize(), ReporterTimes::initialize(), FunctorPositions::initialize(), FunctorTimes::initialize(), ParsedDownSelectionPositions::initialize(), ParsedConvergence::initializeConstantSymbol(), PhysicsBase::initializePhysics(), SteffensenSolve::initialSetup(), MultiAppCloneReporterTransfer::initialSetup(), SolutionIC::initialSetup(), IntegralPreservingFunctionIC::initialSetup(), PiecewiseLinearBase::initialSetup(), ChainControlDataPostprocessor::initialSetup(), MultiAppConservativeTransfer::initialSetup(), FullSolveMultiApp::initialSetup(), PiecewiseLinear::initialSetup(), CoarsenedPiecewiseLinear::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), EigenProblemSolve::initialSetup(), MultiAppDofCopyTransfer::initialSetup(), SolutionScalarAux::initialSetup(), LinearFVAnisotropicDiffusion::initialSetup(), SolutionAux::initialSetup(), ExplicitTimeIntegrator::initialSetup(), LinearFVAdvection::initialSetup(), LinearFVDiffusion::initialSetup(), ReferenceResidualConvergence::initialSetup(), NodalVariableValue::initialSetup(), Axisymmetric2D3DSolutionFunction::initialSetup(), ElementSubdomainModifierBase::initialSetup(), Exodus::initialSetup(), CSV::initialSetup(), MooseParsedFunction::initialSetup(), AuxKernelBase::initialSetup(), NEML2FEInterpolation::initialSetup(), SolutionUserObjectBase::initialSetup(), FEProblemBase::initialSetup(), SubProblem::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initShowHideLists(), Function::integral(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceIntegralVariableValuePostprocessor::InterfaceIntegralVariableValuePostprocessor(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), InterfaceTimeKernel::InterfaceTimeKernel(), InternalSideIndicatorBase::InternalSideIndicatorBase(), MultiAppGeometricInterpolationTransfer::interpolateTargetPoints(), EigenExecutionerBase::inversePowerIteration(), InversePowerMethod::InversePowerMethod(), Sampler::isAdaptiveSamplingCompleted(), MooseMesh::isBoundaryFullyExternalToSubdomains(), MooseVariableBase::isNodal(), IterationAdaptiveDT::IterationAdaptiveDT(), IterationCountConvergence::IterationCountConvergence(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), MooseApp::libNameToAppName(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LinearCombinationPostprocessor::LinearCombinationPostprocessor(), LinearNodalConstraint::LinearNodalConstraint(), LineMaterialSamplerBase< Real >::LineMaterialSamplerBase(), LineSearch::lineSearch(), LineValueSampler::LineValueSampler(), MooseApp::loadLibraryAndDependencies(), MultiAppGeneralFieldTransfer::locatePointReceivers(), LowerBoundNodalKernel::LowerBoundNodalKernel(), MooseLinearVariableFV< Real >::lowerDError(), PNGOutput::makePNG(), ReporterPointMarker::markerSetup(), SubProblem::markFamilyPRefinement(), MassMatrix::MassMatrix(), Material::Material(), MaterialRealTensorValueAuxTempl< is_ad >::MaterialRealTensorValueAuxTempl(), MaterialRealVectorValueAuxTempl< T, is_ad, is_functor >::MaterialRealVectorValueAuxTempl(), MaterialStdVectorRealGradientAux::MaterialStdVectorRealGradientAux(), Distribution::median(), FunctorRelationshipManager::mesh_reinit(), NEML2ModelExecutor::meshChanged(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshRepairGenerator::MeshRepairGenerator(), MFEMComplexExteriorProductAux::MFEMComplexExteriorProductAux(), MFEMComplexInnerProductAux::MFEMComplexInnerProductAux(), MFEMCrossProductAux::MFEMCrossProductAux(), MFEMEigenproblem::MFEMEigenproblem(), MFEMInnerProductAux::MFEMInnerProductAux(), MFEMNDtoRTAux::MFEMNDtoRTAux(), MFEMValueSamplerBase::MFEMValueSamplerBase(), SetupMeshAction::modifyParamsForUseSplit(), MeshMetaDataInterface::mooseErrorInternal(), MooseLinearVariableFV< Real >::MooseLinearVariableFV(), MooseMesh::MooseMesh(), MooseObject::MooseObject(), UserObjectInterface::mooseObjectError(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MooseVariableConstMonomial::MooseVariableConstMonomial(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), MultiPostprocessorConvergence::MultiPostprocessorConvergence(), NearestNodeDistanceAux::NearestNodeDistanceAux(), FEProblemBase::needsPreviousNewtonIteration(), NewmarkBeta::NewmarkBeta(), NodalConstraint::NodalConstraint(), MooseVariableFV< Real >::nodalDofIndex(), MooseVariableFV< Real >::nodalDofIndexNeighbor(), MooseLinearVariableFV< Real >::nodalError(), MooseVariableFV< Real >::nodalMatrixTagValue(), NodalPatchRecoveryAuxBase::NodalPatchRecoveryAuxBase(), NodalScalarKernel::NodalScalarKernel(), MooseVariableFV< Real >::nodalValueArray(), MooseVariableFV< Real >::nodalValueOldArray(), MooseVariableFV< Real >::nodalValueOlderArray(), NodalVariableValue::NodalVariableValue(), MooseVariableFV< Real >::nodalVectorTagValue(), DistributedRectilinearMeshGenerator::nodeId(), MooseVariableFV< Real >::numberOfDofsNeighbor(), NumFailedTimeSteps::NumFailedTimeSteps(), DistributedRectilinearMeshGenerator::numNeighbors(), NumNonlinearIterations::NumNonlinearIterations(), NumVars::NumVars(), Output::onInterval(), FunctorRelationshipManager::operator()(), RelationshipManager::operator==(), ActionComponent::outerSurfaceArea(), ActionComponent::outerSurfaceBoundaries(), XDA::output(), SolutionHistory::output(), Exodus::output(), Output::Output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), MooseApp::outputMachineReadableData(), AdvancedOutput::outputNodalVariables(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputReporters(), AdvancedOutput::outputScalarVariables(), Nemesis::outputSetup(), Exodus::outputSetup(), AdvancedOutput::outputSystemInformation(), Console::outputVectorPostprocessors(), AdvancedOutput::outputVectorPostprocessors(), DistributedRectilinearMeshGenerator::paritionSquarely(), PiecewiseBilinear::parse(), ParsedConvergence::ParsedConvergence(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedODEKernel::ParsedODEKernel(), MultiAppConservativeTransfer::performAdjustment(), ExplicitTimeIntegrator::performExplicitSolve(), PetscExternalPartitioner::PetscExternalPartitioner(), MooseVariableFV< Real >::phiLowerSize(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), EqualValueBoundaryConstraint::pickPrimaryNode(), PIDTransientControl::PIDTransientControl(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseFunction::PiecewiseFunction(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseMulticonstant::PiecewiseMulticonstant(), PiecewiseMultiInterpolation::PiecewiseMultiInterpolation(), PiecewiseTabularBase::PiecewiseTabularBase(), PiecewiseTabularInterface::PiecewiseTabularInterface(), ProjectSideSetOntoLevelSetGenerator::pointPairLevelSetInterception(), CutMeshByLevelSetGeneratorBase::pointPairLevelSetInterception(), SolutionUserObjectBase::pointValueGradientWrapper(), SolutionUserObjectBase::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(), FunctorKernel::precomputeQpResidual(), Predictor::Predictor(), TransientBase::preExecute(), MooseMesh::prepare(), MooseMesh::prepared(), ElementSubdomainModifierBase::prepareVariableForReinitialization(), FixedPointSolve::printFixedPointConvergenceReason(), MultiAppMFEMTolibMeshShapeEvaluationTransfer::projectlibMeshNodalValues(), PseudoTimestep::PseudoTimestep(), MultiApp::readCommandLineArguments(), PropertyReadFile::readData(), SolutionUserObjectBase::readExodusIIOrNemesis(), SolutionUserObjectBase::readXda(), CoarsenBlockGenerator::recursiveCoarsen(), MooseApp::recursivelyCreateExecutors(), FunctorRelationshipManager::redistribute(), MooseApp::registerRestartableData(), MooseApp::registerRestartableNameWithFilter(), Sampler::reinit(), RelativeSolutionDifferenceNorm::RelativeSolutionDifferenceNorm(), MFEMTransient::relativeSolutionDifferenceNorm(), MooseApp::removeRelationshipManager(), PhysicsBase::reportPotentiallyMissedParameters(), MooseApp::restore(), RinglebMesh::RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), MooseApp::run(), MooseApp::runInputs(), 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(), ADArrayNodalKernel::setJacobian(), MFEMPetscNonlinearSolver::SetLinearSolver(), MeshGenerator::setMeshProperty(), MooseApp::setMFEMDevice(), FVPointValueConstraint::setMyElem(), FEProblemBase::setNonlocalCouplingMatrix(), Sampler::setNumberOfCols(), Sampler::setNumberOfRandomSeeds(), Sampler::setNumberOfRows(), Exodus::setOutputDimensionInExodusWriter(), Moose::MFEM::LinearSolverBase::SetPreconditioner(), MultiAppGeneralFieldTransfer::setSolutionVectorValues(), Split::setup(), TransientMultiApp::setupApp(), Moose::PeriodicBCHelper::setupAutoPeriodicBoundaries(), MFEMHypreFGMRES::SetupLOR(), MFEMHyprePCG::SetupLOR(), MFEMCGSolver::SetupLOR(), MFEMGMRESSolver::SetupLOR(), MFEMHypreGMRES::SetupLOR(), MFEMHypreAMS::SetupLOR(), MFEMHypreADS::SetupLOR(), MFEMMUMPS::SetupLOR(), MFEMSuperLU::SetupLOR(), Moose::PeriodicBCHelper::setupManualPeriodicBoundaries(), SetupMeshAction::setupMesh(), MooseApp::setupOptions(), TimeSequenceStepperBase::setupSequence(), TransientBase::setupTimeIntegrator(), TimePeriodBase::setupTimes(), IntegratedBCBase::shouldApply(), PhysicsBase::shouldCreateIC(), PhysicsBase::shouldCreateTimeDerivative(), PhysicsBase::shouldCreateVariable(), SideAdvectiveFluxIntegralTempl< is_ad >::SideAdvectiveFluxIntegralTempl(), SideDiffusiveFluxIntegralTempl< is_ad, Real >::SideDiffusiveFluxIntegralTempl(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), MooseVariableBase::sizeMatrixTagData(), SmoothMeshGenerator::SmoothMeshGenerator(), SolutionTimeAdaptiveDT::SolutionTimeAdaptiveDT(), SolutionUserObjectBase::SolutionUserObjectBase(), Moose::MFEM::LinearSolverBase::Solve(), ExplicitTVDRK2::solve(), ExplicitRK2::solve(), TimeIntegrator::solve(), FEProblemBase::solverSysNum(), FullSolveMultiApp::solveStep(), SpatialAverageBase::SpatialAverageBase(), UserObject::spatialPoints(), NearestPointAverage::spatialValue(), NearestPointIntegralVariablePostprocessor::spatialValue(), UserObject::spatialValue(), MeshDivisionFunctorReductionVectorPostprocessor::spatialValue(), SpiralAnnularMesh::SpiralAnnularMesh(), SpiralAnnularMeshGenerator::SpiralAnnularMeshGenerator(), MeshRepairGenerator::splitNonConvexPolygons(), WebServerControl::startServer(), StitchedMesh::StitchedMesh(), MultiAppGeometricInterpolationTransfer::subdomainIDsNode(), Constraint::subdomainSetup(), NodalUserObject::subdomainSetup(), GeneralUserObject::subdomainSetup(), MaterialBase::subdomainSetup(), FEProblemBase::swapBackMaterialsNeighbor(), DisplacedProblem::systemBaseLinear(), Console::systemInfoFlags(), FEProblemBase::systemNumForVariable(), TerminateChainControl::terminate(), Terminator::Terminator(), CutMeshByLevelSetGeneratorBase::tet4ElemCutter(), ThreadedGeneralUserObject::threadJoin(), DiscreteElementUserObject::threadJoin(), GeneralUserObject::threadJoin(), Function::timeDerivative(), TimedSubdomainModifier::TimedSubdomainModifier(), TimeExtremeValue::TimeExtremeValue(), Function::timeIntegral(), TimeIntegratedPostprocessor::TimeIntegratedPostprocessor(), MooseLinearVariableFV< Real >::timeIntegratorError(), TimeIntervalTimes::TimeIntervalTimes(), TimePeriodBase::TimePeriodBase(), VectorPostprocessorVisualizationAux::timestepSetup(), MultiAppDofCopyTransfer::transfer(), MultiAppShapeEvaluationTransfer::transferVariable(), MultiAppMFEMCopyTransfer::transferVariables(), MultiApplibMeshToMFEMShapeEvaluationTransfer::transferVariables(), MultiAppMFEMShapeEvaluationTransfer::transferVariables(), MultiAppMFEMTolibMeshShapeEvaluationTransfer::transferVariables(), TransformedPositions::TransformedPositions(), FEProblemBase::trustUserCouplingMatrix(), ParsedCurveGenerator::tSectionSpaceDefiner(), MooseVariableScalar::uDot(), MooseVariableScalar::uDotDot(), MooseVariableScalar::uDotDotOld(), FEProblemBase::uDotDotOldRequested(), MooseVariableScalar::uDotOld(), FEProblemBase::uDotOldRequested(), MooseBase::uniqueName(), Positions::unrollMultiDPositions(), ScalarKernelBase::uOld(), AuxScalarKernel::uOld(), Checkpoint::updateCheckpointFiles(), NEML2FEInterpolation::updateDofMap(), NEML2FEInterpolation::updateGradPhi(), SolutionUserObjectBase::updateInterpolationBracketingTimeIndices(), FEProblemBase::updateMaxQps(), NEML2FEInterpolation::updatePhi(), UpperBoundNodalKernel::UpperBoundNodalKernel(), NearestPointAverage::userObjectValue(), NearestPointIntegralVariablePostprocessor::userObjectValue(), BoundingBoxIC::value(), PiecewiseConstantFromCSV::value(), IntegralPreservingFunctionIC::value(), Axisymmetric2D3DSolutionFunction::value(), Function::value(), ValueRangeMarker::ValueRangeMarker(), ValueThresholdMarker::ValueThresholdMarker(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), PhysicsBase::variableExists(), 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(), ActionComponent::volume(), VTKOutput::VTKOutput(), WebServerControl::WebServerControl(), MooseApp::writeRestartableMetaData(), DOFMapOutput::writeStreamToFile(), and Console::writeStreamToFile().

282  {
283  callMooseError(argumentsToString(std::forward<Args>(args)...), /* with_prefix = */ true);
284  }
void callMooseError(std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
External method for calling moose error with added object context.
Definition: MooseBase.C:105

◆ mooseErrorNonPrefixed()

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

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

Definition at line 300 of file MooseBase.h.

301  {
302  callMooseError(argumentsToString(std::forward<Args>(args)...), /* with_prefix = */ false);
303  }
void callMooseError(std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
External method for calling moose error with added object context.
Definition: MooseBase.C:105

◆ mooseInfo()

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

Definition at line 344 of file MooseBase.h.

Referenced by SetupRecoverFileBaseAction::act(), AStableDirk4::AStableDirk4(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), MultiAppGeneralFieldKDTreeTransferBase::evaluateNearestNodeFromKDTrees(), PIDTransientControl::execute(), Executioner::Executioner(), ExplicitRK2::ExplicitRK2(), ExplicitTVDRK2::ExplicitTVDRK2(), FixedPointSolve::findTransformedSystem(), PolyLineMeshFollowingNodeSetGenerator::generate(), ManifoldSubdomainGenerator::generate(), DataFileInterface::getDataFilePath(), ImplicitMidpoint::ImplicitMidpoint(), ParsedDownSelectionPositions::initialize(), PropertyReadFile::initialize(), MultiAppGeneralFieldTransfer::initialSetup(), InversePowerMethod::InversePowerMethod(), LStableDirk2::LStableDirk2(), LStableDirk3::LStableDirk3(), LStableDirk4::LStableDirk4(), PNGOutput::makeMeshFunc(), MultiAppTransfer::mapBackWithoutCollapsing(), NonlinearEigen::NonlinearEigen(), SolutionInvalidityOutput::output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), MooseBase::paramInfo(), ProjectionAux::ProjectionAux(), MFEMDataCollection::registerFields(), FEProblemBase::setRestartFile(), MooseApp::setupOptions(), SolutionUserObjectBase::SolutionUserObjectBase(), SymmetryTransformGenerator::SymmetryTransformGenerator(), TransientBase::takeStep(), TimeIntegratedPostprocessor::TimeIntegratedPostprocessor(), and TransientBase::TransientBase().

345  {
346  moose::internal::mooseInfoStream(_console, messagePrefix(true), std::forward<Args>(args)...);
347  }
void mooseInfoStream(S &oss, Args &&... args)
Definition: MooseError.h:245
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
std::string messagePrefix(const bool hit_prefix=true) const
Definition: MooseBase.h:266

◆ mooseWarning() [1/2]

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

Definition at line 73 of file SolutionInvalidInterface.h.

Referenced by CopyMeshPartitioner::_do_partition(), AddKernelAction::act(), MeshOnlyAction::act(), AddFunctionAction::act(), MaterialOutputAction::act(), CommonOutputAction::act(), MFEMProblem::addFunction(), MooseMesh::addPeriodicVariable(), BoundaryMarker::BoundaryMarker(), DistributedRectilinearMeshGenerator::buildCube(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), CartesianMeshGenerator::CartesianMeshGenerator(), CheckOutputAction::checkConsoleOutput(), MultiAppTransfer::checkMultiAppExecuteOn(), MeshDiagnosticsGenerator::checkNonMatchingEdges(), MeshDiagnosticsGenerator::checkPolygons(), ActionComponent::checkRequiredTasks(), PhysicsBase::checkRequiredTasks(), SampledOutput::cloneMesh(), MultiAppGeneralFieldTransfer::closestToPosition(), VariableValueElementSubdomainModifier::computeSubdomainID(), GapValueAux::computeValue(), MultiApp::createApp(), DebugResidualAux::DebugResidualAux(), MeshDiagnosticsGenerator::diagnosticsLog(), SphericalGridDivision::divisionIndex(), CartesianGridDivision::divisionIndex(), CylindricalGridDivision::divisionIndex(), ElementMaterialSampler::ElementMaterialSampler(), Postprocessor::evaluateDotWarning(), MeshDivisionFunctorReductionVectorPostprocessor::execute(), ElementQualityChecker::finalize(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FixedPointSolve::FixedPointSolve(), SubdomainPerElementGenerator::generate(), RenumberBySubdomainGenerator::generate(), BSplineCurveGenerator::generate(), StitchMeshGenerator::generate(), SurfaceSubdomainsFromAllNormalsGenerator::generate(), ParsedGenerateSideset::generate(), SurfaceSubdomainsDelaunayRemesher::generate(), SurfaceMeshGeneratorBase::get2DElemNormal(), MultiAppTransfer::getAppInfo(), FunctorBinnedValuesDivision::getBinIndex(), MFEMVectorFESpace::getFECName(), PointSamplerBase::getLocalElemContainingPoint(), FEProblemBase::getMaterial(), LineValueSampler::getValue(), Terminator::handleMessage(), IndicatorMarker::IndicatorMarker(), SphericalGridDivision::initialize(), ElementGroupCentroidPositions::initialize(), CartesianGridDivision::initialize(), CylindricalGridDivision::initialize(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), MFEMRefinementMarker::initialSetup(), BoundsBase::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), ElementSubdomainModifierBase::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), MaterialBase::initStatefulProperties(), LeastSquaresFit::LeastSquaresFit(), IterationAdaptiveDT::limitDTToPostprocessorValue(), PNGOutput::makePNG(), FEProblemBase::mesh(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), NewmarkBeta::NewmarkBeta(), NodalPatchRecovery::NodalPatchRecovery(), NonlocalIntegratedBC::NonlocalIntegratedBC(), NonlocalKernel::NonlocalKernel(), Output::Output(), MaterialOutputAction::outputHelper(), MultiAppGeneralFieldTransfer::outputValueConflicts(), PiecewiseConstantFromCSV::PiecewiseConstantFromCSV(), Executioner::problem(), PropertyReadFile::readData(), TestSourceStepper::rejectStep(), PhysicsBase::reportPotentiallyMissedParameters(), MaterialBase::resetQpProperties(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), MooseMesh::setCoordSystem(), SidesetAroundSubdomainUpdater::SidesetAroundSubdomainUpdater(), FEProblemBase::sizeZeroes(), TransientMultiApp::solveStep(), MeshRepairGenerator::splitNonConvexPolygons(), Tecplot::Tecplot(), TimeDerivativeAux::TimeDerivativeAux(), Checkpoint::updateCheckpointFiles(), SampledOutput::updateSample(), PiecewiseConstantFromCSV::value(), and VariableCondensationPreconditioner::VariableCondensationPreconditioner().

74  {
75  _si_moose_base.MooseBase::mooseWarning(std::forward<Args>(args)...);
76  flagSolutionWarningMultipleRegistration(_si_moose_base.name() + ": warning");
77  }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
const MooseBase & _si_moose_base
The MooseBase that owns this interface.

◆ mooseWarning() [2/2]

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

Emits a warning prefixed with object name and type.

Definition at line 309 of file MooseBase.h.

Referenced by DiracKernelInfo::findPoint(), DataFileInterface::getDataFilePath(), MooseApp::loadLibraryAndDependencies(), and MooseBase::paramWarning().

310  {
311  moose::internal::mooseWarningStream(_console, messagePrefix(true), std::forward<Args>(args)...);
312  }
void mooseWarningStream(S &oss, Args &&... args)
Definition: MooseError.h:197
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
std::string messagePrefix(const bool hit_prefix=true) const
Definition: MooseBase.h:266

◆ mooseWarningNonPrefixed() [1/2]

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

Definition at line 80 of file SolutionInvalidInterface.h.

81  {
82  _si_moose_base.MooseBase::mooseWarningNonPrefixed(std::forward<Args>(args)...);
83  flagSolutionWarningMultipleRegistration(_si_moose_base.name() + ": warning");
84  }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
const MooseBase & _si_moose_base
The MooseBase that owns this interface.

◆ mooseWarningNonPrefixed() [2/2]

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

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

Definition at line 318 of file MooseBase.h.

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

◆ nActiveElem()

virtual dof_id_type MooseMesh::nActiveElem ( ) const
inlinevirtualinherited

Reimplemented in MFEMMesh.

Definition at line 325 of file MooseMesh.h.

325 { return _mesh->n_active_elem(); }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ nActiveLocalElem()

virtual dof_id_type MooseMesh::nActiveLocalElem ( ) const
inlinevirtualinherited

Reimplemented in MFEMMesh.

Definition at line 326 of file MooseMesh.h.

Referenced by MooseMesh::buildFiniteVolumeInfo().

326 { return _mesh->n_active_local_elem(); }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ name()

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

Get the name of the class.

Returns
The name of the class

Definition at line 103 of file MooseBase.h.

Referenced by AddElementalFieldAction::act(), CopyNodalVarsAction::act(), AdaptivityAction::act(), AddTimeStepperAction::act(), CSGOnlyAction::act(), DeprecatedBlockAction::act(), SetupTimeIntegratorAction::act(), AddActionComponentAction::act(), SetupResidualDebugAction::act(), DisplayGhostingAction::act(), MaterialOutputAction::act(), CommonOutputAction::act(), AddPeriodicBCAction::act(), FEProblemBase::addAnyRedistributers(), Executioner::addAttributeReporter(), MFEMProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), FEProblemBase::addAuxScalarKernel(), DisplacedProblem::addAuxVariable(), MFEMProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), PhysicsComponentInterface::addComponent(), FEProblemBase::addConstraint(), FEProblemBase::addConvergence(), FEProblemBase::addDamper(), Registry::addDataFilePath(), Registry::addDataFilePathCapability(), FEProblemBase::addDGKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), MooseApp::addExecutor(), MooseApp::addExecutorParams(), MFEMProblem::addFESpace(), MFEMProblem::addFunction(), FEProblemBase::addFunction(), SubProblem::addFunctor(), MFEMProblem::addFunctorMaterial(), FEProblemBase::addFunctorMaterial(), FunctorMaterial::addFunctorProperty(), FunctorMaterial::addFunctorPropertyByBlocks(), FEProblemBase::addFVBC(), FEProblemBase::addFVInitialCondition(), FEProblemBase::addFVInterfaceKernel(), FEProblemBase::addFVInterpolationMethod(), FEProblemBase::addFVKernel(), ADDGKernel::ADDGKernel(), FEProblemBase::addHDGKernel(), MFEMProblem::addImagComponentToBC(), MFEMProblem::addImagComponentToKernel(), MFEMProblem::addIndicator(), FEProblemBase::addIndicator(), MFEMProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), BoundaryIntegralValueConstraint::additionalROVariables(), DiffusionLHDGKernel::additionalROVariables(), IPHDGAssemblyHelper::additionalROVariables(), MFEMProblem::addKernel(), FEProblemBase::addKernel(), FEProblemBase::addLinearFVBC(), FEProblemBase::addLinearFVKernel(), MFEMProblem::addMarker(), FEProblemBase::addMarker(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), ComponentMaterialPropertyInterface::addMaterials(), FEProblemBase::addMeshDivision(), MooseApp::addMeshGenerator(), ComponentJunction::addMeshGenerators(), CylinderComponent::addMeshGenerators(), ComponentMeshTransformHelper::addMeshGenerators(), MeshGenerator::addMeshSubgenerator(), MFEMProblem::addMFEMPreconditioner(), MFEMEigenproblem::addMFEMSolver(), MFEMProblem::addMFEMSolver(), Registry::addMissingDataFilePath(), FEProblemBase::addMultiApp(), FEProblemBase::addNodalKernel(), InitialConditionWarehouse::addObject(), FEProblemBase::addObject(), ComponentPhysicsInterface::addPhysics(), SubProblem::addPiecewiseByBlockLambdaFunctor(), MFEMProblem::addPostprocessor(), FEProblemBase::addPostprocessor(), InitialConditionBase::addPostprocessorDependencyHelper(), AuxKernelBase::addPostprocessorDependencyHelper(), UserObjectBase::addPostprocessorDependencyHelper(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), MFEMProblem::addRealComponentToBC(), MFEMProblem::addRealComponentToKernel(), Action::addRelationshipManager(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addScalarKernel(), WebServerControl::addServerActionsInternal(), FEProblemBase::addTimeIntegrator(), MFEMProblem::addTransfer(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), InitialConditionBase::addUserObjectDependencyHelper(), AuxKernelBase::addUserObjectDependencyHelper(), UserObjectBase::addUserObjectDependencyHelper(), DisplacedProblem::addVariable(), MFEMProblem::addVectorPostprocessor(), FEProblemBase::addVectorPostprocessor(), AuxKernelBase::addVectorPostprocessorDependencyHelper(), UserObjectBase::addVectorPostprocessorDependencyHelper(), MooseLinearVariableFV< Real >::adError(), Output::advancedExecuteOn(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), NEML2ModelExecutor::advanceState(), MooseVariableBase::allDofIndices(), MooseApp::appBinaryName(), MooseApp::appendMeshGenerator(), Registry::appNameFromAppPath(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), ArrayDGKernel::ArrayDGKernel(), ArrayParsedAux::ArrayParsedAux(), PhysicsBase::assignBlocks(), AStableDirk4::AStableDirk4(), Function::average(), MultiApp::backup(), CoarsenedPiecewiseLinear::buildCoarsenedGrid(), PiecewiseTabularInterface::buildFromFile(), PiecewiseTabularInterface::buildFromXY(), MooseMesh::buildNodeListFromSideList(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), MooseBase::callMooseError(), ChangeOverFixedPointPostprocessor::ChangeOverFixedPointPostprocessor(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), PhysicsBase::checkBlockRestrictionIdentical(), PhysicsBase::checkComponentType(), ParsedConvergence::checkConvergence(), DefaultNonlinearConvergence::checkConvergence(), Registry::checkDataFilePathName(), FEProblemBase::checkDependMaterialsHelper(), TaggingInterface::checkForNans(), SamplerBase::checkForStandardFieldVariableType(), ReporterTransferInterface::checkHasReporterValue(), FEProblemBase::checkICRestartError(), Moose::Kokkos::Material::checkMaterialProperty(), Material::checkMaterialProperty(), MooseApp::checkMetaDataIntegrity(), Damper::checkMinDamping(), MultiAppTransfer::checkParentAppUserObjectExecuteOn(), Checkpoint::checkpointInfo(), FEProblemBase::checkUserObjectNameCollision(), DomainUserObject::checkVariable(), BlockRestrictable::checkVariable(), Coupleable::checkWritableVar(), MooseVariableFieldBase::componentName(), CompositeFunction::CompositeFunction(), MaterialBase::computeProperties(), FEProblemBase::computeUserObjectByName(), VectorPostprocessorVisualizationAux::computeValue(), MooseBase::connectControllableParams(), ConstantPostprocessor::ConstantPostprocessor(), Coupleable::coupledName(), CommonOutputAction::create(), MultiApp::createApp(), MooseApp::createExecutors(), MeshGeneratorSystem::createMeshGeneratorOrder(), MooseApp::createRecoverablePerfGraph(), CutMeshByPlaneGenerator::CutMeshByPlaneGenerator(), DebugResidualAux::DebugResidualAux(), MaterialBase::declareADProperty(), MFEMComplexVariable::declareCoefficients(), MFEMVariable::declareCoefficients(), Moose::Kokkos::MaterialBase::declareKokkosOnDemandProperty(), Moose::Kokkos::MaterialBase::declareKokkosProperty(), MeshGenerator::declareMeshesForSubByName(), MeshGenerator::declareNullMeshName(), MaterialBase::declareProperty(), DOFMapOutput::demangle(), DerivativeSumMaterialTempl< is_ad >::DerivativeSumMaterialTempl(), MooseMesh::detectPairedSidesets(), Registry::determineDataFilePath(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DomainUserObject::DomainUserObject(), DumpObjectsProblem::dumpObjectHelper(), ElementDamper::ElementDamper(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementMaterialSampler::ElementMaterialSampler(), ElementValueSampler::ElementValueSampler(), EigenKernel::enabled(), MooseMesh::errorIfDistributedMesh(), SolutionUserObjectBase::evalMeshFunction(), SolutionUserObjectBase::evalMeshFunctionGradient(), SolutionUserObjectBase::evalMultiValuedMeshFunction(), SolutionUserObjectBase::evalMultiValuedMeshFunctionGradient(), SideValueSampler::execute(), RestartableDataReporter::execute(), GreaterThanLessThanPostprocessor::execute(), PointValue::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppProjectionTransfer::execute(), MultiAppUserObjectTransfer::execute(), WebServerControl::execute(), MultiAppGeneralFieldTransfer::execute(), ActionWarehouse::executeActionsWithAction(), Exodus::Exodus(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FEProblemBase::FEProblemBase(), NEML2ModelExecutor::fillInputs(), MultiApp::fillPositions(), MultiAppGeometricInterpolationTransfer::fillSourceInterpolationPoints(), PointSamplerBase::finalize(), ChainControl::fullControlDataName(), FunctionArrayAux::FunctionArrayAux(), FunctionDT::FunctionDT(), FunctionIC::functionName(), FVFunctionIC::functionName(), FunctorPositions::FunctorPositions(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), FVInitialConditionTempl< T >::FVInitialConditionTempl(), FVOneVarDiffusionInterface::FVOneVarDiffusionInterface(), GapValueAux::GapValueAux(), MooseServer::gatherDocumentSymbols(), BoundaryDeletionGenerator::generate(), UniqueExtraIDMeshGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), RenumberBySubdomainGenerator::generate(), ParsedSubdomainGeneratorBase::generate(), SideSetsFromNodeSetsGenerator::generate(), StitchBoundaryMeshGenerator::generate(), StitchMeshGenerator::generate(), SubdomainsFromPartitionerGenerator::generate(), BreakMeshByBlockGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedExtraElementIDGenerator::generate(), ManifoldSubdomainGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), MeshGenerator::generateInternal(), MeshGenerator::generateInternalCSG(), InterfaceMaterial::getADMaterialProperty(), Material::getADMaterialProperty(), MultiAppTransfer::getAppInfo(), MooseMesh::getBoundaryString(), MultiApp::getBoundingBox(), MooseBase::getCheckedPointerParam(), MooseApp::getCheckpointDirectories(), MFEMProblem::getComplexGridFunction(), Control::getControllableParameterByName(), Control::getControllableValue(), Control::getControllableValueByName(), FEProblemBase::getConvergence(), MeshGenerator::getCSGBase(), MeshGenerator::getCSGBasesByName(), Registry::getDataFilePath(), UserObjectBase::getDependObjects(), DistributionInterface::getDistribution(), FEProblemBase::getDistribution(), DistributionInterface::getDistributionByName(), ElementUOProvider::getElementalValueLong(), ElementUOProvider::getElementalValueReal(), MultiApp::getExecutioner(), MooseApp::getExecutor(), FEProblemBase::getExecutor(), OutputWarehouse::getFileNumbers(), FEProblemBase::getFunction(), SubProblem::getFunctor(), FEProblemBase::getFVAdvectedInterpolationMethod(), FEProblemBase::getFVFaceInterpolationMethod(), FEProblemBase::getFVInterpolationMethod(), NodalPatchRecovery::getGenericMaterialProperty(), InterfaceMaterial::getGenericMaterialProperty(), AuxKernelTempl< Real >::getGenericMaterialProperty(), Material::getGenericMaterialProperty(), InterfaceMaterial::getGenericNeighborMaterialProperty(), InterfaceMaterial::getGenericNeighborMaterialPropertyByName(), Material::getGenericOptionalMaterialProperty(), MaterialBase::getGenericZeroMaterialProperty(), MFEMProblem::getGridFunction(), FEProblemBase::getKokkosFunction(), FEProblemBase::getKokkosUserObject(), SolutionUserObjectBase::getLocalVarIndex(), Marker::getMarkerValue(), Material::getMaterial(), FEProblemBase::getMaterial(), Material::getMaterialByName(), NodalPatchRecovery::getMaterialProperty(), InterfaceMaterial::getMaterialProperty(), AuxKernelTempl< Real >::getMaterialProperty(), Material::getMaterialProperty(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), NodalPatchRecovery::getMaterialPropertyOld(), AuxKernelTempl< Real >::getMaterialPropertyOld(), InterfaceMaterial::getMaterialPropertyOld(), Material::getMaterialPropertyOld(), NodalPatchRecovery::getMaterialPropertyOlder(), AuxKernelTempl< Real >::getMaterialPropertyOlder(), InterfaceMaterial::getMaterialPropertyOlder(), Material::getMaterialPropertyOlder(), MFEMObject::getMatrixCoefficient(), MFEMObject::getMatrixCoefficientByName(), MeshGenerator::getMesh(), FEProblemBase::getMeshDivision(), MeshGenerator::getMeshesByName(), MooseApp::getMeshGenerator(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), MFEMProblem::getMFEMObject(), ActionWarehouse::getMooseAppName(), NEML2FEInterpolation::getMOOSEVariable(), MultiAppTransfer::getMultiApp(), InterfaceMaterial::getNeighborADMaterialProperty(), InterfaceMaterial::getNeighborMaterialProperty(), InterfaceMaterial::getNeighborMaterialPropertyOld(), InterfaceMaterial::getNeighborMaterialPropertyOlder(), MooseServer::getObjectParameters(), Material::getOptionalADMaterialProperty(), Material::getOptionalMaterialProperty(), Material::getOptionalMaterialPropertyOld(), Material::getOptionalMaterialPropertyOlder(), OutputWarehouse::getOutput(), MooseBase::getParam(), FEProblemBase::getPositionsObject(), FEProblemBase::getPostprocessorValueByName(), ComponentMaterialPropertyInterface::getPropertyValue(), ReporterData::getReporterInfo(), MFEMExecutedObject::getRequestedItems(), MooseApp::getRestartableDataMap(), MooseApp::getRestartableDataMapName(), MooseApp::getRestartableMetaData(), FEProblemBase::getSampler(), MFEMObject::getScalarCoefficient(), MFEMObject::getScalarCoefficientByName(), TimedSubdomainModifier::getSubdomainIDAndCheck(), MFEMExecutedObject::getSuppliedItems(), TransientBase::getTimeStepperName(), ProjectedStatefulMaterialStorageAction::getTypeEnum(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), MFEMObject::getVectorCoefficient(), MFEMObject::getVectorCoefficientByName(), Terminator::handleMessage(), Control::hasControllableParameterByName(), FEProblemBase::hasConvergence(), FEProblemBase::hasDistribution(), FEProblemBase::hasFunction(), SubProblem::hasFunctor(), SubProblem::hasFunctorWithType(), FEProblemBase::hasFVInterpolationMethod(), MooseApp::hasMeshGenerator(), MFEMProblem::hasMFEMObject(), AdvancedOutput::hasOutputHelper(), FEProblemBase::hasPostprocessor(), FEProblemBase::hasPostprocessorValueByName(), MooseApp::hasRelationshipManager(), MooseApp::hasRestartableDataMap(), MooseApp::hasRestartableMetaData(), FEProblemBase::hasUserObject(), MooseBase::haveParameter(), NEML2Action::inferMOOSEIOType(), IterationAdaptiveDT::init(), AddVariableAction::init(), AdvancedOutput::init(), AdvancedOutput::initAvailableLists(), AdvancedOutput::initExecutionTypes(), AttribName::initFrom(), NestedDivision::initialize(), TransformedPositions::initialize(), BoundaryRestrictable::initializeBoundaryRestrictable(), JSONOutput::initialSetup(), BoundaryLinearFVFluxIntegral::initialSetup(), SideFVFluxBCIntegral::initialSetup(), SolutionScalarAux::initialSetup(), MultiAppProjectionTransfer::initialSetup(), MultiAppGeneralFieldFunctorTransfer::initialSetup(), NodalVariableValue::initialSetup(), Console::initialSetup(), AuxKernelBase::initialSetup(), SolutionUserObjectBase::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), MaterialBase::initStatefulProperties(), Function::integral(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), MultiAppGeometricInterpolationTransfer::interpolateTargetPoints(), MeshGenerator::isChildMeshGenerator(), DerivativeMaterialInterface< JvarMapKernelInterface< GenericKernelGrad< is_ad > > >::isNotObjectVariable(), MeshGenerator::isNullMeshName(), MooseBase::isParamSetByUser(), MooseBase::isParamValid(), MeshGenerator::isParentMeshGenerator(), LinearCombinationFunction::LinearCombinationFunction(), FEProblemBase::logAdd(), MooseLinearVariableFV< Real >::lowerDError(), Marker::Marker(), MaterialBase::markMatPropRequested(), Material::Material(), MaterialDerivativeTestKernelBase< Real >::MaterialDerivativeTestKernelBase(), Distribution::median(), MemoryUsageReporter::MemoryUsageReporter(), NEML2ModelExecutor::meshChanged(), MeshGenerator::meshPropertyPrefix(), MooseBase::messagePrefix(), OutputWarehouse::mooseConsole(), SolutionInvalidInterface::mooseDeprecated(), MooseVariableBase::MooseVariableBase(), MooseVariableInterface< Real >::MooseVariableInterface(), SolutionInvalidInterface::mooseWarning(), SolutionInvalidInterface::mooseWarningNonPrefixed(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), NEML2PreKernel::NEML2PreKernel(), NodalDamper::NodalDamper(), MooseLinearVariableFV< Real >::nodalError(), NodalPatchRecoveryAuxBase::NodalPatchRecoveryAuxBase(), NodalValueSampler::NodalValueSampler(), Registry::objData(), MeshGenerator::Comparator::operator()(), ProgressOutput::output(), DOFMapOutput::output(), Output::Output(), AdvancedOutput::outputElementalVariables(), ConsoleUtils::outputExecutionInformation(), MaterialOutputAction::outputHelper(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), Nemesis::outputPostprocessors(), Exodus::outputPostprocessors(), AdvancedOutput::outputPostprocessors(), TableOutput::outputReporter(), AdvancedOutput::outputReporters(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), AdvancedOutput::outputVectorPostprocessors(), SolutionInvalidInterface::paramWarning(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedODEKernel::ParsedODEKernel(), ComponentPhysicsInterface::physicsExists(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), PiecewiseFunction::PiecewiseFunction(), MooseApp::possiblyLoadRestartableMetaData(), MFEMExecutedObject::postprocessorDependencyKey(), PhysicsBase::prefix(), MooseMesh::prepare(), BlockRestrictionDebugOutput::printBlockRestrictionGroups(), BlockRestrictionDebugOutput::printBlockRestrictionMap(), BlockRestrictionDebugOutput::printBoundaryRestrictionGroups(), PerfGraphLivePrint::printStats(), FEProblemBase::projectInitialConditionOnCustomRange(), MooseBase::queryParam(), MultiApp::readCommandLineArguments(), Receiver::Receiver(), Executor::Result::record(), AppFactory::reg(), Registry::registerObjectsTo(), FEProblemBase::registerRandomInterface(), MooseApp::registerRestartableDataMapName(), MooseApp::registerRestartableNameWithFilter(), MaterialBase::resetQpProperties(), MultiApp::restore(), ScalarComponentIC::ScalarComponentIC(), MultiApp::setAppOutputFileBase(), FEProblemBase::setAuxKernelParamsAndLog(), MooseMesh::setBoundaryName(), Control::setControllableValue(), Control::setControllableValueByName(), OutputWarehouse::setFileNumbers(), FEProblemBase::setPostprocessorValueByName(), FEProblemBase::setResidualObjectParamsAndLog(), MooseMesh::setSubdomainName(), SurfaceMeshGeneratorBase::setup(), NodeSetsGeneratorBase::setup(), Split::setup(), SideSetsGeneratorBase::setup(), TransientMultiApp::setupApp(), NEML2Action::setupOutputMappings(), FullSolveMultiApp::showStatusMessage(), SideSetExtruderGenerator::SideSetExtruderGenerator(), TransientMultiApp::solveStep(), UserObject::spatialValue(), StitchedMesh::StitchedMesh(), SubProblem::storeBoundaryDelayedCheckMatProp(), SubProblem::storeBoundaryMatPropName(), MaterialBase::storeBoundaryZeroMatProp(), SubProblem::storeBoundaryZeroMatProp(), SubProblem::storeSubdomainDelayedCheckMatProp(), SubProblem::storeSubdomainMatPropName(), MaterialBase::storeSubdomainZeroMatProp(), SubProblem::storeSubdomainZeroMatProp(), ConstraintWarehouse::subdomainsCovered(), MaterialBase::subdomainSetup(), SumPostprocessor::SumPostprocessor(), MFEMPostprocessor::suppliedPostprocessorName(), MFEMVectorPostprocessor::suppliedVectorPostprocessorName(), NEML2FEInterpolation::syncWithMainThread(), TaggingInterface::TaggingInterface(), MooseLinearVariableFV< Real >::timeIntegratorError(), VectorPostprocessorVisualizationAux::timestepSetup(), ElementSubdomainModifierBase::timestepSetup(), to_json(), MultiAppDofCopyTransfer::transfer(), MultiAppShapeEvaluationTransfer::transferVariable(), MultiAppMFEMCopyTransfer::transferVariables(), MultiAppMFEMShapeEvaluationTransfer::transferVariables(), TransientMultiApp::TransientMultiApp(), MooseServer::traverseParseTreeAndFillSymbols(), MooseBase::typeAndName(), MooseBase::uniqueParameterName(), FVFluxBC::uOnGhost(), FVFluxBC::uOnUSub(), UserObjectBase::UserObjectBase(), UserObjectInterface::userObjectName(), ParsedAux::validateGenericVectorNames(), MFEMExecutedObject::variableDependencyKey(), PhysicsBase::variableExists(), MultiAppTransfer::variableIntegrityCheck(), VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl(), MFEMExecutedObject::vectorPostprocessorDependencyKey(), Convergence::verboseOutput(), AdvancedOutput::wantOutput(), Coupleable::writableCoupledValue(), Coupleable::writableVariable(), Console::write(), and MooseApp::writeRestartableMetaData().

104  {
105  mooseAssert(_name.size(), "Empty name");
106  return _name;
107  }
const std::string & _name
The name of this class.
Definition: MooseBase.h:391

◆ needGhostGhostedBoundaries()

void MooseMesh::needGhostGhostedBoundaries ( bool  needghost)
inlineinherited

Whether or not we want to ghost ghosted boundaries.

Definition at line 618 of file MooseMesh.h.

Referenced by DistributedRectilinearMeshGenerator::generate().

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

◆ 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 3265 of file MooseMesh.C.

3266 {
3267  prepared(false);
3268 }
bool prepared() const
Setter/getter for whether the mesh is prepared.
Definition: MooseMesh.C:3237

◆ needsRemoteElemDeletion() [1/2]

void MooseMesh::needsRemoteElemDeletion ( bool  need_delete)
inlineinherited

Set whether we need to delete remote elements.

Definition at line 1209 of file MooseMesh.h.

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

◆ needsRemoteElemDeletion() [2/2]

bool MooseMesh::needsRemoteElemDeletion ( ) const
inlineinherited

Whether we need to delete remote elements.

Definition at line 1214 of file MooseMesh.h.

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

◆ nElem()

dof_id_type MooseMesh::nElem ( ) const
virtualinherited

Definition at line 3181 of file MooseMesh.C.

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

3182 {
3183  return getMesh().n_elem();
3184 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual dof_id_type n_elem() const=0

◆ nFace()

unsigned int MooseMesh::nFace ( ) const
inlineinherited

accessors for the FaceInfo objects

Definition at line 1292 of file MooseMesh.h.

1292 { 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:1765

◆ nLocalNodes()

virtual dof_id_type MooseMesh::nLocalNodes ( ) const
inlinevirtualinherited

Definition at line 324 of file MooseMesh.h.

324 { return _mesh->n_local_nodes(); }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ nNodes()

dof_id_type MooseMesh::nNodes ( ) const
virtualinherited

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

Definition at line 3175 of file MooseMesh.C.

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

3176 {
3177  return getMesh().n_nodes();
3178 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual dof_id_type n_nodes() const=0

◆ 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 824 of file MooseMesh.C.

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

825 {
826  mooseDeprecated("MooseMesh::node() is deprecated, please use MooseMesh::nodeRef() instead");
827  return nodeRef(i);
828 }
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:838
void mooseDeprecated(Args &&... args) const

◆ node() [2/2]

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

Definition at line 831 of file MooseMesh.C.

832 {
833  mooseDeprecated("MooseMesh::node() is deprecated, please use MooseMesh::nodeRef() instead");
834  return nodeRef(i);
835 }
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:838
void mooseDeprecated(Args &&... args) const

◆ nodePtr() [1/2]

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

Definition at line 852 of file MooseMesh.C.

Referenced by ElementSubdomainModifierBase::reinitializedNodeRange().

853 {
854  return &nodeRef(i);
855 }
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:838

◆ nodePtr() [2/2]

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

Definition at line 858 of file MooseMesh.C.

859 {
860  return &nodeRef(i);
861 }
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:838

◆ 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 846 of file MooseMesh.C.

847 {
848  return const_cast<Node &>(const_cast<const MooseMesh *>(this)->nodeRef(i));
849 }
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:838
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:93

◆ 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 2346 of file MooseMesh.h.

2347 {
2348  return _node_set_nodes;
2349 }
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:1707

◆ nodeToElemMap()

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

◆ nPartitions()

virtual unsigned int MooseMesh::nPartitions ( ) const
inlinevirtualinherited

Definition at line 329 of file MooseMesh.h.

329 { return _mesh->n_partitions(); }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ nSubdomains()

virtual SubdomainID MooseMesh::nSubdomains ( ) const
inlinevirtualinherited

Reimplemented in MFEMMesh.

Definition at line 328 of file MooseMesh.h.

328 { return _mesh->n_subdomains(); }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ 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 912 of file MooseMesh.C.

Referenced by MooseMesh::meshChanged().

913 {
914 }

◆ operator const libMesh::MeshBase &()

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

Definition at line 3539 of file MooseMesh.C.

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

◆ operator libMesh::MeshBase &()

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

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

Definition at line 3537 of file MooseMesh.C.

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

◆ 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 1524 of file MooseMesh.C.

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

1525 {
1526  return elem_info_iterator(_elem_info.begin(),
1527  _elem_info.end(),
1529 }
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:1757

◆ ownedElemInfoEnd()

MooseMesh::elem_info_iterator MooseMesh::ownedElemInfoEnd ( )
inherited

Definition at line 1532 of file MooseMesh.C.

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

1533 {
1534  return elem_info_iterator(_elem_info.end(),
1535  _elem_info.end(),
1537 }
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:1757

◆ 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 1506 of file MooseMesh.C.

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

1507 {
1508  return face_info_iterator(
1509  _face_info.begin(),
1510  _face_info.end(),
1512 }
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:1765
processor_id_type processor_id() const

◆ ownedFaceInfoEnd()

MooseMesh::face_info_iterator MooseMesh::ownedFaceInfoEnd ( )
inherited

Definition at line 1515 of file MooseMesh.C.

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

1516 {
1517  return face_info_iterator(
1518  _face_info.end(),
1519  _face_info.end(),
1521 }
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:1765
processor_id_type processor_id() const

◆ paramError()

template<typename... Args>
void MooseBase::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 467 of file MooseBase.h.

Referenced by HierarchicalGridPartitioner::_do_partition(), AutoCheckpointAction::act(), SetupDebugAction::act(), CommonOutputAction::act(), DiffusionCG::addFEKernels(), DiffusionFV::addFVKernels(), NEML2ModelExecutor::addGatheredParameter(), NEML2ModelExecutor::addGatheredVariable(), ADDGKernel::ADDGKernel(), ComponentJunction::addMeshGenerators(), CylinderComponent::addMeshGenerators(), ReporterPointSource::addPoints(), ADIntegratedBCTempl< T >::ADIntegratedBCTempl(), ADKernelTempl< T >::ADKernelTempl(), 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(), ArrayReactionNodalKernelTempl< is_ad >::ArrayReactionNodalKernelTempl(), ArrayVacuumBC::ArrayVacuumBC(), ArrayVarReductionAux::ArrayVarReductionAux(), ParsedSubdomainIDsGenerator::assignElemSubdomainID(), AuxKernelBase::AuxKernelBase(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), BlockDeletionGenerator::BlockDeletionGenerator(), BlockWeightedPartitioner::BlockWeightedPartitioner(), BoundaryIntegralValueConstraint::BoundaryIntegralValueConstraint(), BoundaryLinearFVFluxIntegral::BoundaryLinearFVFluxIntegral(), BoundsBase::BoundsBase(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), BSplineCurveGenerator::BSplineCurveGenerator(), BuildArrayVariableAux::BuildArrayVariableAux(), MFEMMesh::buildMesh(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), checkComponent(), Moose::Kokkos::ParsedObjectBase::checkDuplicateSymbols(), MeshGenerator::checkGetMesh(), ComponentInitialConditionInterface::checkInitialConditionsAllRequested(), BatchMeshGeneratorAction::checkInputParameterType(), PhysicsBase::checkIntegrityEarly(), PostprocessorInterface::checkParam(), FEProblemBase::checkProblemIntegrity(), MultiAppReporterTransfer::checkSiblingsTransferSupported(), MFEMMultiAppTransfer::checkValidTransferProblemTypes(), Coupleable::checkVar(), MultiAppTransfer::checkVariable(), CircularBoundaryCorrectionGenerator::CircularBoundaryCorrectionGenerator(), CircularBoundaryCorrectionGenerator::circularCenterCalculator(), MultiAppGeneralFieldTransfer::closestToPosition(), CoarsenBlockGenerator::CoarsenBlockGenerator(), CombinedVectorPostprocessor::CombinedVectorPostprocessor(), CombinerGenerator::CombinerGenerator(), ComponentInitialConditionInterface::ComponentInitialConditionInterface(), ComponentJunction::ComponentJunction(), ComponentMaterialPropertyInterface::ComponentMaterialPropertyInterface(), CompositionDT::CompositionDT(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), LibtorchNeuralNetControl::conditionalParameterError(), ConservativeAdvectionBCTempl< false >::ConservativeAdvectionBCTempl(), ConservativeAdvectionTempl< is_ad >::ConservativeAdvectionTempl(), ConstantVectorPostprocessor::ConstantVectorPostprocessor(), ContainsPointAux::ContainsPointAux(), CopyValueAux::CopyValueAux(), MultiAppGeneralFieldTransfer::correctSolutionVectorValues(), Coupleable::Coupleable(), CoupledForceTempl< is_ad >::CoupledForceTempl(), CoupledValueFunctionMaterialTempl< is_ad >::CoupledValueFunctionMaterialTempl(), MultiApp::createApp(), MeshGeneratorSystem::createMeshGenerator(), CylindricalGridDivision::CylindricalGridDivision(), DebugResidualAux::DebugResidualAux(), ConstantReporter::declareConstantReporterValue(), ConstantReporter::declareConstantReporterValues(), AccumulateReporter::declareLateValues(), DefaultMultiAppFixedPointConvergence::DefaultMultiAppFixedPointConvergence(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DGLowerDKernel::DGLowerDKernel(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), EigenProblem::EigenProblem(), EigenProblemSolve::EigenProblemSolve(), ElementAdaptivityLevelAux::ElementAdaptivityLevelAux(), ElementGenerator::ElementGenerator(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementLengthAux::ElementLengthAux(), ElementLpNormAux::ElementLpNormAux(), ElementNormalAux::ElementNormalAux(), ExtraIDIntegralVectorPostprocessor::elementValue(), ElementValueSampler::ElementValueSampler(), ElementVectorL2Error::ElementVectorL2Error(), EqualValueEmbeddedConstraintTempl< is_ad >::EqualValueEmbeddedConstraintTempl(), ReporterPointSource::errorCheck(), StitchMeshGeneratorBase::errorMissingBoundary(), ExamplePatchMeshGenerator::ExamplePatchMeshGenerator(), MultiAppNearestNodeTransfer::execute(), MultiAppUserObjectTransfer::execute(), ExtraElementIDAux::ExtraElementIDAux(), ExtraElementIntegerDivision::ExtraElementIntegerDivision(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FEProblemBase::FEProblemBase(), FEProblemSolve::FEProblemSolve(), FileMeshGenerator::FileMeshGenerator(), FillBetweenCurvesGenerator::FillBetweenCurvesGenerator(), FillBetweenSidesetsGenerator::FillBetweenSidesetsGenerator(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), InternalSideIndicatorBase::finalize(), FixedPointSolve::findTransformedSystem(), FixedPointSolve::FixedPointSolve(), ForcingFunctionAux::ForcingFunctionAux(), FullSolveMultiApp::FullSolveMultiApp(), FunctionArrayAux::FunctionArrayAux(), FunctionValuePostprocessor::FunctionValuePostprocessor(), FunctorADConverterTempl< T >::FunctorADConverterTempl(), FunctorAux::FunctorAux(), FunctorBinnedValuesDivision::FunctorBinnedValuesDivision(), FunctorCoordinatesFunctionAux::FunctorCoordinatesFunctionAux(), FunctorElementalGradientAuxTempl< is_ad >::FunctorElementalGradientAuxTempl(), FunctorExtremaPositions::FunctorExtremaPositions(), FunctorIC::FunctorIC(), FunctorPositions::FunctorPositions(), FunctorVectorElementalAuxTempl< is_ad >::FunctorVectorElementalAuxTempl(), FVAdvection::FVAdvection(), FVFluxBC::FVFluxBC(), FVInterfaceKernel::FVInterfaceKernel(), FVOneVarDiffusionInterface::FVOneVarDiffusionInterface(), FVTwoVarContinuityConstraint::FVTwoVarContinuityConstraint(), Boundary2DDelaunayGenerator::General2DDelaunay(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), BoundaryDeletionGenerator::generate(), UniqueExtraIDMeshGenerator::generate(), AddMetaDataGenerator::generate(), BlockToMeshConverterGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), ExtraNodesetGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), PlaneIDMeshGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), RenumberBySubdomainGenerator::generate(), BlockDeletionGenerator::generate(), BoundaryElementConversionGenerator::generate(), BreakMeshByBlockGenerator::generate(), ElementsToTetrahedronsConverter::generate(), FillBetweenCurvesGenerator::generate(), CoarsenBlockGenerator::generate(), FillBetweenSidesetsGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainGeneratorBase::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), SideSetsFromNodeSetsGenerator::generate(), SubdomainsFromPartitionerGenerator::generate(), XYZDelaunayGenerator::generate(), AdvancedExtruderGenerator::generate(), BreakMeshByElementGenerator::generate(), MeshCollectionGenerator::generate(), MeshExtruderGenerator::generate(), ParsedExtraElementIDGenerator::generate(), CombinerGenerator::generate(), PolyLineMeshFollowingNodeSetGenerator::generate(), ProjectSideSetOntoLevelSetGenerator::generate(), StackGenerator::generate(), CircularBoundaryCorrectionGenerator::generate(), ParsedCurveGenerator::generate(), XYMeshLineCutter::generate(), CutMeshByLevelSetGeneratorBase::generate(), Boundary2DDelaunayGenerator::generate(), SurfaceSubdomainsDelaunayRemesher::generate(), ManifoldSubdomainGenerator::generate(), PatternedMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), GeneratedMeshGenerator::GeneratedMeshGenerator(), BoundaryLayerUtils::generateOffsetPolyline(), GenericConstantStdVectorMaterialTempl< is_ad >::GenericConstantStdVectorMaterialTempl(), GenericFunctorGradientMaterialTempl< is_ad >::GenericFunctorGradientMaterialTempl(), GenericFunctorMaterialTempl< is_ad >::GenericFunctorMaterialTempl(), GenericFunctorTimeDerivativeMaterialTempl< is_ad >::GenericFunctorTimeDerivativeMaterialTempl(), GenericVectorFunctorMaterialTempl< is_ad >::GenericVectorFunctorMaterialTempl(), PropertyReadFile::getBlockData(), ComponentBoundaryConditionInterface::getBoundaryCondition(), MultiApp::getCommandLineArgs(), PropertyReadFile::getData(), PropertyReadFile::getFileNames(), Sampler::getGlobalSamples(), ComponentInitialConditionInterface::getInitialCondition(), NEML2Action::getInputParameterMapping(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), Sampler::getLocalSamples(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), Sampler::getNextLocalRow(), FEProblemSolve::getParamFromNonlinearSystemVectorParam(), PostprocessorInterface::getPostprocessorNameInternal(), PostprocessorInterface::getPostprocessorValueInternal(), MultiAppNearestNodeTransfer::getTargetLocalNodes(), UserObjectInterface::getUserObjectBase(), UserObjectInterface::getUserObjectName(), AddPeriodicBCAction::getVariables(), HFEMDirichletBC::HFEMDirichletBC(), AddVariableAction::init(), MultiApp::init(), DistributedPositions::initialize(), BlockWeightedPartitioner::initialize(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), PhysicsBase::initializePhysics(), JSONOutput::initialSetup(), MultiAppCloneReporterTransfer::initialSetup(), SolutionIC::initialSetup(), SideFVFluxBCIntegral::initialSetup(), MultiAppGeneralFieldKDTreeTransferBase::initialSetup(), FullSolveMultiApp::initialSetup(), BoundaryLinearFVFluxIntegral::initialSetup(), MultiAppVariableValueSamplePostprocessorTransfer::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), MultiAppDofCopyTransfer::initialSetup(), HistogramVectorPostprocessor::initialSetup(), ReferenceResidualConvergence::initialSetup(), PiecewiseConstantFromCSV::initialSetup(), LibtorchControlValuePostprocessor::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), ElementSubdomainModifierBase::initialSetup(), SampledOutput::initSample(), AddMetaDataGenerator::inputChecker(), IntegratedBC::IntegratedBC(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceValueUserObjectAux::InterfaceValueUserObjectAux(), InternalSideIndicatorBase::InternalSideIndicatorBase(), InterpolatedStatefulMaterialTempl< T >::InterpolatedStatefulMaterialTempl(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), MultiApp::keepSolutionDuringRestore(), Kernel::Kernel(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LinearCombinationFunction::LinearCombinationFunction(), LinearFVAdvectionDiffusionFunctorRobinBC::LinearFVAdvectionDiffusionFunctorRobinBC(), LowerDIntegratedBC::LowerDIntegratedBC(), PNGOutput::makeMeshFunc(), MatCoupledForce::MatCoupledForce(), MaterialADConverterTempl< T >::MaterialADConverterTempl(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), MatReactionTempl< false >::MatReactionTempl(), MatrixSymmetryCheck::MatrixSymmetryCheck(), PatternedMeshGenerator::mergeSubdomainNameMaps(), MeshCollectionGenerator::MeshCollectionGenerator(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MeshDivisionAux::MeshDivisionAux(), MeshGenerator::MeshGenerator(), MeshGeneratorComponent::MeshGeneratorComponent(), MFEMComplexSumAux::MFEMComplexSumAux(), MFEMFunctorMaterial::MFEMFunctorMaterial(), MFEMGenericFunctorMaterial::MFEMGenericFunctorMaterial(), MFEMGenericFunctorVectorMaterial::MFEMGenericFunctorVectorMaterial(), MFEMMultiAppTransfer::MFEMMultiAppTransfer(), MFEMNDtoRTAux::MFEMNDtoRTAux(), MFEMSumAux::MFEMSumAux(), MooseLinearVariableFV< Real >::MooseLinearVariableFV(), UserObjectInterface::mooseObjectError(), MoosePreconditioner::MoosePreconditioner(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MortarConstraintBase::MortarConstraintBase(), MortarNodalAuxKernelTempl< ComputeValueType >::MortarNodalAuxKernelTempl(), MultiApp::moveApp(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldFunctorTransfer::MultiAppGeneralFieldFunctorTransfer(), MultiAppGeneralFieldKDTreeTransferBase::MultiAppGeneralFieldKDTreeTransferBase(), 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(), MultiSystemSolveObject::MultiSystemSolveObject(), NearestNodeValueAux::NearestNodeValueAux(), NEML2Action::NEML2Action(), NEML2PreKernel::NEML2PreKernel(), NestedDivision::NestedDivision(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalPatchRecoveryAux::NodalPatchRecoveryAux(), NodalValueSampler::NodalValueSampler(), NumDOFs::NumDOFs(), OrientSurfaceMeshGenerator::OrientSurfaceMeshGenerator(), Output::Output(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedFunctorMaterialTempl< is_ad >::ParsedFunctorMaterialTempl(), ParsedPostprocessor::ParsedPostprocessor(), ParsedReporterBase::ParsedReporterBase(), ParsedScalarReporter::ParsedScalarReporter(), ParsedSubdomainGeneratorBase::ParsedSubdomainGeneratorBase(), ParsedVectorRealReductionReporter::ParsedVectorRealReductionReporter(), ParsedVectorReporter::ParsedVectorReporter(), ParsedVectorVectorRealReductionReporter::ParsedVectorVectorRealReductionReporter(), PatternedMeshGenerator::PatternedMeshGenerator(), PenaltyPeriodicSegmentalConstraint::PenaltyPeriodicSegmentalConstraint(), PeriodicSegmentalConstraint::PeriodicSegmentalConstraint(), PIDTransientControl::PIDTransientControl(), PlaneDeletionGenerator::PlaneDeletionGenerator(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), PointwiseRenormalizeVector::PointwiseRenormalizeVector(), PolyLineMeshFollowingNodeSetGenerator::PolyLineMeshFollowingNodeSetGenerator(), EqualValueBoundaryConstraint::populateSecondaryNodes(), ReporterInterface::possiblyCheckHasReporter(), VectorPostprocessorInterface::possiblyCheckHasVectorPostprocessor(), LibmeshPartitioner::prepareBlocksForSubdomainPartitioner(), ProjectedMaterialPropertyNodalPatchRecoveryAux::ProjectedMaterialPropertyNodalPatchRecoveryAux(), ProjectSideSetOntoLevelSetGenerator::ProjectSideSetOntoLevelSetGenerator(), PropertyReadFile::PropertyReadFile(), RandomIC::RandomIC(), RankTwoTensorFromComponentProperties::RankTwoTensorFromComponentProperties(), MultiApp::readCommandLineArguments(), PropertyReadFile::readData(), SolutionUserObjectBase::readExodusIIOrNemesis(), SolutionUserObjectBase::readXda(), ReferenceResidualConvergence::ReferenceResidualConvergence(), RefineBlockGenerator::RefineBlockGenerator(), RefineSidesetGenerator::RefineSidesetGenerator(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), ReporterPointSource::ReporterPointSource(), FEProblemBase::restoreSolutions(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), FEProblemBase::setLinearConvergenceNames(), FEProblemBase::setNonlinearConvergenceNames(), MooseMesh::setPartitioner(), SurfaceMeshGeneratorBase::setup(), NodeSetsGeneratorBase::setup(), SideSetsGeneratorBase::setup(), CylinderComponent::setupComponent(), NEML2Action::setupDerivativeMappings(), NEML2Action::setupInputMappings(), FEProblemSolve::setupMultiSystemFixedPointRelaxationFactors(), NEML2Action::setupParameterDerivativeMappings(), NEML2Action::setupParameterMappings(), SetupQuadratureAction::SetupQuadratureAction(), SidesetAroundSubdomainUpdater::SidesetAroundSubdomainUpdater(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SideValueSampler::SideValueSampler(), SingleRankPartitioner::SingleRankPartitioner(), SphericalGridDivision::SphericalGridDivision(), StitchBoundaryMeshGenerator::StitchBoundaryMeshGenerator(), StitchMeshGenerator::StitchMeshGenerator(), SurfaceSubdomainsDelaunayRemesher::SurfaceSubdomainsDelaunayRemesher(), SymmetryTransformGenerator::SymmetryTransformGenerator(), TagVectorAux::TagVectorAux(), Terminator::Terminator(), TimeDerivativeAux::TimeDerivativeAux(), Transfer::Transfer(), TransformGenerator::TransformGenerator(), TransientMultiApp::TransientMultiApp(), CylinderComponent::translation(), MeshTriangulationUtils::triangulateWithDelaunay(), ParsedCurveGenerator::tSectionSpaceDefiner(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), TimeSequenceStepperBase::updateSequence(), UserObjectBase::UserObjectBase(), Checkpoint::validateExecuteOn(), ParsedAux::validateGenericVectorNames(), FunctorIC::value(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), VolumeAux::VolumeAux(), WebServerControl::WebServerControl(), XYDelaunayGenerator::XYDelaunayGenerator(), XYMeshLineCutter::XYMeshLineCutter(), and XYZDelaunayGenerator::XYZDelaunayGenerator().

468 {
469  _pars.paramError(param, std::forward<Args>(args)...);
470 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
void paramError(const std::string &param, Args... args) const
Emits a parameter error prefixed with the parameter location and object information if available...

◆ parameters()

const InputParameters& MooseBase::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 131 of file MooseBase.h.

Referenced by MeshOnlyAction::act(), SplitMeshAction::act(), CSGOnlyAction::act(), SetupDebugAction::act(), AddActionComponentAction::act(), CommonOutputAction::act(), Action::Action(), FEProblemBase::addAnyRedistributers(), MFEMProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), FEProblemBase::addAuxScalarKernel(), MFEMProblem::addAuxVariable(), DisplacedProblem::addAuxVariable(), MFEMProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), FEProblemBase::addConstraint(), FEProblemBase::addConvergence(), FEProblemBase::addDamper(), AddDefaultConvergenceAction::addDefaultMultiAppFixedPointConvergence(), FEProblemBase::addDefaultMultiAppFixedPointConvergence(), ReferenceResidualProblem::addDefaultNonlinearConvergence(), AddDefaultConvergenceAction::addDefaultNonlinearConvergence(), FEProblemBase::addDefaultNonlinearConvergence(), AddDefaultConvergenceAction::addDefaultSteadyStateConvergence(), FEProblemBase::addDefaultSteadyStateConvergence(), FEProblemBase::addDGKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), MFEMProblem::addFESpace(), MFEMProblem::addFunction(), FEProblemBase::addFunction(), MFEMProblem::addFunctorMaterial(), FEProblemBase::addFunctorMaterial(), FEProblemBase::addFVBC(), FEProblemBase::addFVInitialCondition(), FEProblemBase::addFVInterfaceKernel(), FEProblemBase::addFVInterpolationMethod(), FEProblemBase::addFVKernel(), MFEMProblem::addGridFunction(), FEProblemBase::addHDGKernel(), MFEMProblem::addImagComponentToBC(), MFEMProblem::addImagComponentToKernel(), MFEMProblem::addIndicator(), FEProblemBase::addIndicator(), MFEMProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DiffusionPhysicsBase::addInitialConditions(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), MFEMProblem::addKernel(), FEProblemBase::addKernel(), FEProblemBase::addLinearFVBC(), FEProblemBase::addLinearFVKernel(), FEProblem::addLineSearch(), MFEMProblem::addMarker(), FEProblemBase::addMarker(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMeshDivision(), MFEMProblem::addMFEMFESpaceFromMOOSEVariable(), MFEMProblem::addMFEMPreconditioner(), MFEMEigenproblem::addMFEMSolver(), MFEMProblem::addMFEMSolver(), FEProblemBase::addMultiApp(), FEProblemBase::addNodalKernel(), FEProblemBase::addObject(), FEProblemBase::addObjectParamsHelper(), FEProblemBase::addOutput(), MFEMProblem::addPostprocessor(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), MFEMProblem::addRealComponentToBC(), MFEMProblem::addRealComponentToKernel(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addScalarKernel(), MFEMProblem::addSubMesh(), FEProblemBase::addTimeIntegrator(), MFEMProblem::addTransfer(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), MFEMEigenproblem::addVariable(), MFEMProblem::addVariable(), DisplacedProblem::addVariable(), MFEMProblem::addVectorPostprocessor(), FEProblemBase::addVectorPostprocessor(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), AdvancedOutput::AdvancedOutput(), ADVectorFunctionDirichletBC::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), Action::associateWithParameter(), AuxKernelBase::AuxKernelBase(), AuxScalarKernel::AuxScalarKernel(), BoundsBase::BoundsBase(), MooseMesh::buildTypedMesh(), PostprocessorInterface::checkParam(), AddDefaultConvergenceAction::checkUnusedMultiAppFixedPointConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedNonlinearConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedSteadyStateConvergenceParameters(), SampledOutput::cloneMesh(), LibtorchNeuralNetControl::conditionalParameterError(), Console::Console(), MooseMeshUtils::copyIntoMesh(), CommonOutputAction::create(), MultiApp::createApp(), Postprocessor::declareValue(), DumpObjectsProblem::deduceNecessaryParameters(), DefaultMultiAppFixedPointConvergence::DefaultMultiAppFixedPointConvergence(), DumpObjectsProblem::dumpObjectHelper(), DumpObjectsProblem::DumpObjectsProblem(), EigenProblem::EigenProblem(), EigenProblemSolve::EigenProblemSolve(), ElementMaterialSampler::ElementMaterialSampler(), ExamplePatchMeshGenerator::ExamplePatchMeshGenerator(), Executor::Executor(), Exodus::Exodus(), ElementSubdomainModifierBase::extrapolatePolynomial(), FEProblem::FEProblem(), FixedPointSolve::FixedPointSolve(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), GapValueAux::GapValueAux(), ParsedSubdomainGeneratorBase::generate(), ActionWarehouse::getCurrentActionName(), ExecutorInterface::getExecutor(), Material::getMaterial(), Moose::PeriodicBCHelper::getParams(), ReporterInterface::getReporterName(), Reporter::getReporterValueName(), UserObjectInterface::getUserObjectName(), AuxKernelBase::getVariableHelper(), VectorPostprocessorInterface::getVectorPostprocessorName(), GhostingUserObject::GhostingUserObject(), MeshGeneratorSystem::hasDataDrivenAllowed(), AttribSystem::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), FullSolveMultiApp::initialSetup(), FEProblemBase::initNullSpaceVectors(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceIntegralVariableValuePostprocessor::InterfaceIntegralVariableValuePostprocessor(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), MooseObject::isKokkosObject(), isValid(), IterationAdaptiveDT::IterationAdaptiveDT(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), MooseObject::MooseObject(), UserObjectInterface::mooseObjectError(), MooseVariableInterface< Real >::MooseVariableInterface(), MultiApp::MultiApp(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), NodeFaceConstraint::NodeFaceConstraint(), ConsoleUtils::outputLegacyInformation(), OverlayMeshGenerator::OverlayMeshGenerator(), MooseServer::parseDocumentForDiagnostics(), ParsedReporterBase::ParsedReporterBase(), ParsedScalarReporter::ParsedScalarReporter(), PenetrationAux::PenetrationAux(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), NEML2Action::printSummary(), ProjectedStatefulMaterialStorageAction::processProperty(), PropertyReadFile::PropertyReadFile(), PseudoTimestep::PseudoTimestep(), RandomIC::RandomIC(), ReferenceResidualConvergence::ReferenceResidualConvergence(), InputParameterWarehouse::removeInputParameters(), FEProblemBase::setAuxKernelParamsAndLog(), FEProblem::setInputParametersFEProblem(), FEProblemBase::setInputParametersFEProblem(), FEProblemBase::setResidualObjectParamsAndLog(), SideSetsGeneratorBase::setup(), NonlinearSystemBase::shouldEvaluatePreSMOResidual(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), Moose::PetscSupport::storePetscOptions(), DumpObjectsProblem::stringifyParameters(), TaggingInterface::TaggingInterface(), Transfer::Transfer(), TransientBase::TransientBase(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), and VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl().

131 { return _pars; }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394

◆ paramInfo()

template<typename... Args>
void MooseBase::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 481 of file MooseBase.h.

Referenced by GridPartitioner::_do_partition(), ComboMarker::ComboMarker(), Control::Control(), FunctorIC::FunctorIC(), and TransientMultiApp::TransientMultiApp().

482 {
483  mooseInfo(_pars.paramMessage(param, std::forward<Args>(args)...));
484 }
std::string paramMessage(const std::string &param, Args... args) const
void mooseInfo(Args &&... args) const
Definition: MooseBase.h:344
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394

◆ paramWarning() [1/2]

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

◆ paramWarning() [2/2]

template<typename... Args>
void MooseBase::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 474 of file MooseBase.h.

475 {
476  mooseWarning(_pars.paramMessage(param, std::forward<Args>(args)...));
477 }
std::string paramMessage(const std::string &param, Args... args) const
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
Definition: MooseBase.h:309

◆ partitionerName()

const MooseEnum& MooseMesh::partitionerName ( ) const
inlineinherited

Definition at line 1151 of file MooseMesh.h.

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

◆ partitioning()

MooseEnum MooseMesh::partitioning ( )
staticinherited

returns MooseMesh partitioning options so other classes can use it

Definition at line 4018 of file MooseMesh.C.

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

◆ perfGraph()

PerfGraph & PerfGraphInterface::perfGraph ( )
inherited

Get the PerfGraph.

Definition at line 86 of file PerfGraphInterface.C.

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

87 {
88  return _pg_moose_app.perfGraph();
89 }
MooseApp & _pg_moose_app
The MooseApp that owns the PerfGraph.
PerfGraph & perfGraph()
Get the PerfGraph for this app.
Definition: MooseApp.h:178

◆ possiblyRebuildNodeToElemMap()

bool MooseMesh::possiblyRebuildNodeToElemMap ( )
inherited

rebuild the node to element map if it's been requsted previously

Returns
Whether the map was re-built, or equivalently whether the map had been requested previously

Definition at line 602 of file MooseMesh.C.

Referenced by MooseMesh::update().

603 {
604  // *Rebuild* the node to element map. I emphasize rebuild because if it has not been built
605  // previously we won't do anything
607  {
608  mooseAssert(_node_to_elem_map.empty(), "If it hasn't been built, it better well be empty");
609  return false;
610  }
611 
612  _node_to_elem_map.clear();
613  _node_to_elem_map_built = false;
615  return true;
616 }
bool _node_to_elem_map_built
Whether _node_to_elem_map has been built.
Definition: MooseMesh.h:1661
std::unordered_map< dof_id_type, std::vector< dof_id_type > > & internalNodeToElemMap()
If not already created, creates a map from every node to all elements to which they are connected...
Definition: MooseMesh.C:1205
std::unordered_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:1658

◆ 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 complete_preparation() 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 complete_preparation() called on two previously identical meshes can result in two different meshes even with Metis partitioning

Definition at line 385 of file MooseMesh.C.

386 {
387  TIME_SECTION("prepare", 2, "Preparing Mesh", true);
388 
389  parallel_object_only();
390 
391  bool libmesh_mesh_prepared = false;
392 
393  mooseAssert(_mesh, "The MeshBase has not been constructed");
394 
395  if (!dynamic_cast<DistributedMesh *>(&getMesh()) || _is_nemesis)
396  // For whatever reason we do not want to allow renumbering here nor ever in the future?
397  getMesh().allow_renumbering(false);
398 
399  if (mesh_to_clone)
400  {
401  mooseAssert(mesh_to_clone->is_prepared(),
402  "The mesh we wish to clone from must already be prepared");
403  _mesh = mesh_to_clone->clone();
404  _moose_mesh_prepared = false;
405  }
406  else if (!_mesh->is_prepared())
407  {
408  _mesh->complete_preparation();
409  _moose_mesh_prepared = false;
410  libmesh_mesh_prepared = true;
411  }
412 
414  return libmesh_mesh_prepared;
415 
416  // Collect (local) subdomain IDs
417  _mesh_subdomains.clear();
418  for (const auto & elem : getMesh().element_ptr_range())
420 
421  bool need_subdomain_name_map_sync = false;
422  // add explicitly requested subdomains
423  if (isParamValid("add_subdomain_ids") && !isParamValid("add_subdomain_names"))
424  {
425  // only subdomain ids are explicitly given
426  const auto & add_subdomain_id = getParam<std::vector<SubdomainID>>("add_subdomain_ids");
427  _mesh_subdomains.insert(add_subdomain_id.begin(), add_subdomain_id.end());
428  }
429  else if (isParamValid("add_subdomain_ids") && isParamValid("add_subdomain_names"))
430  {
431  const auto add_subdomain =
432  getParam<SubdomainID, SubdomainName>("add_subdomain_ids", "add_subdomain_names");
433  for (const auto & [sub_id, sub_name] : add_subdomain)
434  {
435  // add subdomain id
436  _mesh_subdomains.insert(sub_id);
437  // set name of the subdomain just added
438  setSubdomainName(sub_id, sub_name);
439  }
440  need_subdomain_name_map_sync = true;
441  }
442  else if (isParamValid("add_subdomain_names"))
443  {
444  // the user has defined add_subdomain_names, but not add_subdomain_ids
445  const auto & add_subdomain_names = getParam<std::vector<SubdomainName>>("add_subdomain_names");
446 
447  // to define subdomain ids, we need the largest subdomain id defined yet.
448  subdomain_id_type offset = 0;
449  if (!_mesh_subdomains.empty())
450  offset = *_mesh_subdomains.rbegin();
451 
452  // add all subdomains (and auto-assign ids)
453  for (const SubdomainName & sub_name : add_subdomain_names)
454  {
455  // to avoid two subdomains with the same ID (notably on recover)
457  continue;
458  const auto sub_id = ++offset;
459  // add subdomain id
460  _mesh_subdomains.insert(sub_id);
461  // set name of the subdomain just added
462  setSubdomainName(sub_id, sub_name);
463  }
464  need_subdomain_name_map_sync = true;
465  }
466  if (need_subdomain_name_map_sync)
467  _mesh->sync_subdomain_name_map();
468 
469  // Make sure nodesets have been generated
471 
472  // Collect (local) boundary IDs
473  const std::set<BoundaryID> & local_bids = getMesh().get_boundary_info().get_boundary_ids();
474  _mesh_boundary_ids.insert(local_bids.begin(), local_bids.end());
475 
476  const std::set<BoundaryID> & local_node_bids =
478  _mesh_nodeset_ids.insert(local_node_bids.begin(), local_node_bids.end());
479 
480  const std::set<BoundaryID> & local_side_bids =
482  _mesh_sideset_ids.insert(local_side_bids.begin(), local_side_bids.end());
483 
484  // Add explicitly requested sidesets/nodesets
485  // This is done *after* the side boundaries (e.g. "right", ...) have been generated.
486  auto add_sets = [this](const bool sidesets, auto & set_ids)
487  {
488  const std::string type = sidesets ? "sideset" : "nodeset";
489  const std::string id_param = "add_" + type + "_ids";
490  const std::string name_param = "add_" + type + "_names";
491 
492  if (isParamValid(id_param))
493  {
494  const auto & add_ids = getParam<std::vector<BoundaryID>>(id_param);
495  _mesh_boundary_ids.insert(add_ids.begin(), add_ids.end());
496  set_ids.insert(add_ids.begin(), add_ids.end());
498  {
499  const auto & add_names = getParam<std::vector<BoundaryName>>(name_param);
500  mooseAssert(add_names.size() == add_ids.size(),
501  "Id and name sets must be the same size when adding.");
502  for (const auto i : index_range(add_ids))
503  setBoundaryName(add_ids[i], add_names[i]);
504  }
505  }
506  else if (isParamValid(name_param))
507  {
508  // the user has defined names, but not ids
509  const auto & add_names = getParam<std::vector<BoundaryName>>(name_param);
510 
511  auto & mesh_ids = sidesets ? _mesh_sideset_ids : _mesh_nodeset_ids;
512 
513  // to define ids, we need the largest id defined yet.
514  boundary_id_type offset = 0;
515  if (!mesh_ids.empty())
516  offset = *mesh_ids.rbegin();
517  if (!_mesh_boundary_ids.empty())
518  offset = std::max(offset, *_mesh_boundary_ids.rbegin());
519 
520  // add all sidesets/nodesets (and auto-assign ids)
521  for (const auto & name : add_names)
522  {
523  // to avoid two sets with the same ID (notably on recover)
525  continue;
526  const auto id = ++offset;
527  // add sideset id
528  _mesh_boundary_ids.insert(id);
529  set_ids.insert(id);
530  // set name of the sideset just added
531  setBoundaryName(id, name);
532  }
533  }
534  };
535 
536  add_sets(true, _mesh_sideset_ids);
537  add_sets(false, _mesh_nodeset_ids);
538 
539  // Communicate subdomain and boundary IDs if this is a parallel mesh
540  if (!getMesh().is_serial())
541  {
546  }
547 
549  {
550  if (!_coord_system_set)
551  setCoordSystem(_provided_coord_blocks, getParam<MultiMooseEnum>("coord_type"));
552  else if (_pars.isParamSetByUser("coord_type"))
553  mooseError(
554  "Trying to set coordinate system type information based on the user input file, but "
555  "the coordinate system type information has already been set programmatically! "
556  "Either remove your coordinate system type information from the input file, or contact "
557  "your application developer");
558  }
559 
560  // Set general axisymmetric axes if provided
561  if (isParamValid("rz_coord_blocks") && isParamValid("rz_coord_origins") &&
562  isParamValid("rz_coord_directions"))
563  {
564  const auto rz_coord_blocks = getParam<std::vector<SubdomainName>>("rz_coord_blocks");
565  const auto rz_coord_origins = getParam<std::vector<Point>>("rz_coord_origins");
566  const auto rz_coord_directions = getParam<std::vector<RealVectorValue>>("rz_coord_directions");
567  if (rz_coord_origins.size() == rz_coord_blocks.size() &&
568  rz_coord_directions.size() == rz_coord_blocks.size())
569  {
570  std::vector<std::pair<Point, RealVectorValue>> rz_coord_axes;
571  for (unsigned int i = 0; i < rz_coord_origins.size(); ++i)
572  rz_coord_axes.push_back(std::make_pair(rz_coord_origins[i], rz_coord_directions[i]));
573 
574  setGeneralAxisymmetricCoordAxes(rz_coord_blocks, rz_coord_axes);
575 
576  if (isParamSetByUser("rz_coord_axis"))
577  mooseError("The parameter 'rz_coord_axis' may not be provided if 'rz_coord_blocks', "
578  "'rz_coord_origins', and 'rz_coord_directions' are provided.");
579  }
580  else
581  mooseError("The parameters 'rz_coord_blocks', 'rz_coord_origins', and "
582  "'rz_coord_directions' must all have the same size.");
583  }
584  else if (isParamValid("rz_coord_blocks") || isParamValid("rz_coord_origins") ||
585  isParamValid("rz_coord_directions"))
586  mooseError("If any of the parameters 'rz_coord_blocks', 'rz_coord_origins', and "
587  "'rz_coord_directions' are provided, then all must be provided.");
588 
590 
591  update();
592 
593  // Check if there is subdomain name duplication for the same subdomain ID
595 
596  _moose_mesh_prepared = true;
597 
598  return libmesh_mesh_prepared;
599 }
const std::set< boundary_id_type > & get_side_boundary_ids() const
bool _is_nemesis
True if a Nemesis Mesh was read in.
Definition: MooseMesh.h:1622
static const std::string name_param
The name of the parameter that contains the object name.
Definition: MooseBase.h:55
std::vector< SubdomainName > _provided_coord_blocks
Set for holding user-provided coordinate system type block names.
Definition: MooseMesh.h:2035
bool is_prepared() const
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
void checkDuplicateSubdomainNames()
Loop through all subdomain IDs and check if there is name duplication used for the subdomains with sa...
Definition: MooseMesh.C:4457
void allow_renumbering(bool allow)
const BoundaryID INVALID_BOUNDARY_ID
Definition: MooseTypes.C:22
const Parallel::Communicator & _communicator
const BoundaryInfo & get_boundary_info() const
virtual std::unique_ptr< MeshBase > clone() const=0
void buildNodeListFromSideList()
Calls BoundaryInfo::build_node_list_from_side_list().
Definition: MooseMesh.C:3048
auto max(const L &left, const R &right)
const std::set< boundary_id_type > & get_node_boundary_ids() const
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
bool _built_from_other_mesh
Whether or not this mesh was built from another mesh.
Definition: MooseMesh.h:1567
int8_t boundary_id_type
void setSubdomainName(SubdomainID subdomain_id, const SubdomainName &name)
This method sets the name for subdomain_id to name.
Definition: MooseMesh.C:1744
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
void update()
Calls buildNodeListFromSideList(), buildNodeList(), and buildBndElemList().
Definition: MooseMesh.C:619
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:93
std::set< BoundaryID > _mesh_nodeset_ids
Definition: MooseMesh.h:1677
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:4201
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1675
bool _moose_mesh_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:1625
bool _coord_system_set
Whether the coordinate system has been set.
Definition: MooseMesh.h:2032
const std::set< boundary_id_type > & get_boundary_ids() const
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was set by the user.
void setBoundaryName(BoundaryID boundary_id, BoundaryName name)
This method sets the boundary name of the boundary based on the id parameter.
Definition: MooseMesh.C:1775
std::set< BoundaryID > _mesh_sideset_ids
Definition: MooseMesh.h:1676
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:4341
bool detectOrthogonalDimRanges(Real tol=1e-6)
This routine determines whether the Mesh is a regular orthogonal mesh (i.e.
Definition: MooseMesh.C:1927
subdomain_id_type subdomain_id() const
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseBase.h:209
std::set< SubdomainID > _mesh_subdomains
A set of subdomain IDs currently present in the mesh.
Definition: MooseMesh.h:1667
static constexpr subdomain_id_type invalid_subdomain_id
bool isParamSetByUser(const std::string &name) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
Definition: MooseBase.h:215
auto index_range(const T &sizable)
BoundaryID getBoundaryID(const BoundaryName &boundary_name) const
Get the associated BoundaryID for the boundary name.
Definition: MooseMesh.C:1687
SubdomainID getSubdomainID(const SubdomainName &subdomain_name) const
Get the associated subdomain ID for the subdomain name.
Definition: MooseMesh.C:1726
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 3237 of file MooseMesh.C.

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

3238 {
3239  return _mesh->is_prepared() && _moose_mesh_prepared;
3240 }
bool _moose_mesh_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:1625
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ 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 3243 of file MooseMesh.C.

3244 {
3245  if (state)
3246  mooseError("We don't have any right to tell the libmesh mesh that it *is* prepared. Only a "
3247  "call to prepare_for_use should tell us that");
3248 
3249  // Some people may call this even before we have a MeshBase object. This isn't dangerous really
3250  // because when the MeshBase object is born, it knows it's in an unprepared state
3251  if (_mesh)
3252  _mesh->unset_is_prepared();
3253 
3254  // If the libMesh mesh isn't preparead, then our MooseMesh wrapper is also no longer prepared
3255  _moose_mesh_prepared = false;
3256 
3261  _regular_orthogonal_mesh = false;
3262 }
bool _moose_mesh_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:1625
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1728

◆ 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 3562 of file MooseMesh.C.

Referenced by Adaptivity::adaptMesh().

3563 {
3564  os << '\n';
3565  getMesh().print_info(os, verbosity);
3566  os << std::flush;
3567 }
std::basic_ostream< charT, traits > * os
Definition: InfixIterator.h:34
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
void print_info(std::ostream &os=libMesh::out, const unsigned int verbosity=0, const bool global=true) const

◆ queryElemPtr() [1/2]

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

Definition at line 3225 of file MooseMesh.C.

Referenced by PointSamplerBase::getLocalElemContainingPoint(), EqualValueBoundaryConstraint::ghostPrimary(), NodePositions::initialize(), ElementalVariableValue::initialSetup(), DisplacedProblem::reinitElemPhys(), and FEProblemBase::reinitElemPhys().

3226 {
3227  return getMesh().query_elem_ptr(i);
3228 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual const Elem * query_elem_ptr(const dof_id_type i) const=0

◆ queryElemPtr() [2/2]

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

Definition at line 3231 of file MooseMesh.C.

3232 {
3233  return getMesh().query_elem_ptr(i);
3234 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual const Elem * query_elem_ptr(const dof_id_type i) const=0

◆ queryNodePtr() [1/2]

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

Definition at line 864 of file MooseMesh.C.

Referenced by NonlinearSystemBase::findImplicitGeometricCouplingEntries(), NodePositions::initialize(), MooseMesh::nodeRef(), EqualValueBoundaryConstraint::populateSecondaryNodes(), and MooseMesh::queryNodePtr().

865 {
866  if (i > getMesh().max_node_id())
867  {
868  auto it = _quadrature_nodes.find(i);
869  if (it == _quadrature_nodes.end())
870  return nullptr;
871  auto & node_ptr = it->second;
872  mooseAssert(node_ptr, "Uninitialized quadrature node");
873  return node_ptr;
874  }
875 
876  return getMesh().query_node_ptr(i);
877 }
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1698
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual const Node * query_node_ptr(const dof_id_type i) const=0

◆ queryNodePtr() [2/2]

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

Definition at line 880 of file MooseMesh.C.

881 {
882  return const_cast<Node *>(const_cast<const MooseMesh *>(this)->queryNodePtr(i));
883 }
virtual const Node * queryNodePtr(const dof_id_type i) const
Definition: MooseMesh.C:864
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:93

◆ queryParam()

template<typename T >
const T * MooseBase::queryParam ( const std::string &  name) const
inherited

Query a parameter for the object.

If a parameter of the given name and type does not exist or if the parameter is not valid, nullptr will be returned

Parameters
nameThe name of the parameter
Returns
A pointer to the parameter value, if it exists

Definition at line 423 of file MooseBase.h.

Referenced by MFEMExecutedObject::getRequestedItems().

424 {
425  return haveParameter<T>(name) && isParamValid(name) ? &getParam<T>(name) : nullptr;
426 }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseBase.h:209

◆ queryPeriodicDimensions() [1/2]

const std::array< bool, 3 > & MooseMesh::queryPeriodicDimensions ( const unsigned int  sys_num,
const unsigned int  var_num 
) const
inherited

Query the translated periodic dimension flags for the given variable on the given system.

Query here means that it will not error if a variable isn't found to be periodic, instead the default value is returned (false for each dimension)

Parameters
sys_num- The number of the system the variable is on
var_num- The variable number

Definition at line 2240 of file MooseMesh.C.

Referenced by MooseMesh::isTranslatedPeriodic(), and MooseMesh::queryPeriodicDimensions().

2241 {
2242  const auto key = std::make_pair(sys_num, var_num);
2243  if (const auto it = _periodic_dim.find(key); it != _periodic_dim.end())
2244  return it->second;
2245  return periodic_dim_default;
2246 }
static const std::array< bool, 3 > periodic_dim_default
Default value for the automatically detected paired boundaries for each unit dimension, in which the value for each unit dimension is false (not detected).
Definition: MooseMesh.h:106
std::map< std::pair< unsigned int, unsigned int >, std::array< bool, 3 > > _periodic_dim
A map from (system number, vector number) to which dimensions are periodic in a regular orthogonal me...
Definition: MooseMesh.h:1785

◆ queryPeriodicDimensions() [2/2]

const std::array< bool, 3 > & MooseMesh::queryPeriodicDimensions ( const MooseVariableBase var) const
inherited

Query the translated periodic dimension flags for the given variable.

\

Query here means that it will not error if a variable isn't found to be periodic, instead the default value is returned (false for each dimension)

Parameters
var- The variable

Definition at line 2249 of file MooseMesh.C.

2250 {
2251  return queryPeriodicDimensions(var.sys().number(), var.number());
2252 }
unsigned int number() const
Get variable number coming from libMesh.
const std::array< bool, 3 > & queryPeriodicDimensions(const unsigned int sys_num, const unsigned int var_num) const
Query the translated periodic dimension flags for the given variable on the given system...
Definition: MooseMesh.C:2240
unsigned int number() const
Gets the number of this system.
Definition: SystemBase.C:1158
SystemBase & sys()
Get the system this variable is part of.

◆ read()

void FileMesh::read ( const std::string &  file_name)

Definition at line 161 of file FileMesh.C.

162 {
163  if (dynamic_cast<DistributedMesh *>(&getMesh()) && !_is_nemesis)
164  getMesh().read(file_name, /*mesh_data=*/NULL, /*skip_renumber=*/false);
165  else
166  getMesh().read(file_name, /*mesh_data=*/NULL, /*skip_renumber=*/true);
167 }
bool _is_nemesis
True if a Nemesis Mesh was read in.
Definition: MooseMesh.h:1622
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548

◆ 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 935 of file MooseMesh.C.

Referenced by FEProblemBase::meshChanged().

936 {
937  return _refined_elements.get();
938 }
std::unique_ptr< ConstElemPointerRange > _refined_elements
The elements that were just refined.
Definition: MooseMesh.h:1628

◆ registerInvalidSolutionInternal()

InvalidSolutionID SolutionInvalidInterface::registerInvalidSolutionInternal ( const std::string &  message,
const bool  warning 
) const
protectedinherited

Definition at line 55 of file SolutionInvalidInterface.C.

57 {
59  _si_moose_base.type(), message, warning);
60 }
InvalidSolutionID registerInvalidity(const std::string &object_type, const std::string &message, const bool warning)
Call to register an invalid calculation.
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:93
SolutionInvalidityRegistry & getSolutionInvalidityRegistry()
Get the global SolutionInvalidityRegistry singleton.
const MooseBase & _si_moose_base
The MooseBase that owns this interface.

◆ 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 61 of file PerfGraphInterface.C.

63 {
64  const auto timed_section_name = timedSectionName(section_name);
65  if (!moose::internal::getPerfGraphRegistry().sectionExists(timed_section_name))
66  return moose::internal::getPerfGraphRegistry().registerSection(timed_section_name, level);
67  else
68  return moose::internal::getPerfGraphRegistry().sectionID(timed_section_name);
69 }
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 72 of file PerfGraphInterface.C.

76 {
77  const auto timed_section_name = timedSectionName(section_name);
78  if (!moose::internal::getPerfGraphRegistry().sectionExists(timed_section_name))
80  timedSectionName(section_name), level, live_message, print_dots);
81  else
82  return moose::internal::getPerfGraphRegistry().sectionID(timed_section_name);
83 }
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 78 of file Restartable.C.

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

79 {
80  return _restartable_system_name + "/" + _restartable_name + "/" + data_name;
81 }
std::string _restartable_name
The name of the object.
Definition: Restartable.h:250
const std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:237

◆ safeClone()

std::unique_ptr< MooseMesh > FileMesh::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.

Reimplemented in MFEMMesh.

Definition at line 77 of file FileMesh.C.

78 {
79  return _app.getFactory().copyConstruct(*this);
80 }
std::unique_ptr< T > copyConstruct(const T &object)
Copy constructs the object object.
Definition: Factory.h:358
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
Definition: MooseApp.h:406
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385

◆ 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 4333 of file MooseMesh.C.

Referenced by FEProblemBase::setAxisymmetricCoordAxis().

4334 {
4335  _rz_coord_axis = rz_coord_axis;
4336 
4338 }
void updateCoordTransform()
Update the coordinate transformation object based on our coordinate system data.
Definition: MooseMesh.C:4405
unsigned int _rz_coord_axis
Storage for RZ axis selection.
Definition: MooseMesh.h:2022

◆ 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 1775 of file MooseMesh.C.

Referenced by MooseMesh::prepare(), and ActivateElementsUserObjectBase::setNewBoundayName().

1776 {
1777  BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1778 
1779  // We need to figure out if this boundary is a sideset or nodeset
1780  if (boundary_info.get_side_boundary_ids().count(boundary_id))
1781  boundary_info.sideset_name(boundary_id) = name;
1782  else
1783  boundary_info.nodeset_name(boundary_id) = name;
1784 }
const std::set< boundary_id_type > & get_side_boundary_ids() const
std::string & nodeset_name(boundary_id_type id)
const BoundaryInfo & get_boundary_info() const
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::string & sideset_name(boundary_id_type id)

◆ 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 3301 of file MooseMesh.C.

3303 {
3304  _boundary_to_normal_map = std::move(boundary_map);
3305 }
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:1681

◆ setBoundaryToNormalMap() [2/2]

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

Definition at line 3308 of file MooseMesh.C.

3309 {
3310  mooseDeprecated("setBoundaryToNormalMap(std::map<BoundaryID, RealVectorValue> * boundary_map) is "
3311  "deprecated, use the unique_ptr version instead");
3312  _boundary_to_normal_map.reset(boundary_map);
3313 }
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:1681
void mooseDeprecated(Args &&... args) const

◆ setCoordData()

void MooseMesh::setCoordData ( const MooseMesh other_mesh)
inherited

Set the coordinate system data to that of other_mesh.

Definition at line 4442 of file MooseMesh.C.

Referenced by DisplacedProblem::DisplacedProblem().

4443 {
4444  _coord_sys = other_mesh._coord_sys;
4445  _rz_coord_axis = other_mesh._rz_coord_axis;
4447 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:2019
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:2025
unsigned int _rz_coord_axis
Storage for RZ axis selection.
Definition: MooseMesh.h:2022

◆ 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 4201 of file MooseMesh.C.

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

4203 {
4204  TIME_SECTION("setCoordSystem", 5, "Setting Coordinate System");
4206  {
4207  const std::string param_name = isParamValid("coord_block") ? "coord_block" : "block";
4208  mooseWarning("Supplied blocks in the 'setCoordSystem' method do not match the value of the "
4209  "'Mesh/",
4210  param_name,
4211  "' parameter. Did you provide different parameter values for 'Mesh/",
4212  param_name,
4213  "' and 'Problem/block'?. We will honor the parameter value from 'Mesh/",
4214  param_name,
4215  "'");
4216  mooseAssert(_coord_system_set,
4217  "If we are arriving here due to a bad specification in the Problem block, then we "
4218  "should have already set our coordinate system subdomains from the Mesh block");
4219  return;
4220  }
4221  if (_pars.isParamSetByUser("coord_type") && getParam<MultiMooseEnum>("coord_type") != coord_sys)
4222  mooseError("Supplied coordinate systems in the 'setCoordSystem' method do not match the value "
4223  "of the 'Mesh/coord_type' parameter. Did you provide different parameter values for "
4224  "'coord_type' to 'Mesh' and 'Problem'?");
4225 
4226  // If blocks contain ANY_BLOCK_ID, it should be the only block specified, and coord_sys should
4227  // have one and only one entry. In that case, the same coordinate system will be set for all
4228  // subdomains.
4229  if (blocks.size() == 1 && blocks[0] == "ANY_BLOCK_ID")
4230  {
4231  if (coord_sys.size() > 1)
4232  mooseError("If you specify ANY_BLOCK_ID as the only block, you must also specify a single "
4233  "coordinate system for it.");
4234  if (!_mesh->is_prepared())
4235  mooseError(
4236  "You cannot set the coordinate system for ANY_BLOCK_ID before the mesh is prepared. "
4237  "Please call this method after the mesh is prepared.");
4238  const auto coord_type = coord_sys.size() == 0
4240  : Moose::stringToEnum<Moose::CoordinateSystemType>(coord_sys[0]);
4241  for (const auto sid : meshSubdomains())
4242  _coord_sys[sid] = coord_type;
4243  return;
4244  }
4245 
4246  // If multiple blocks are specified, but one of them is ANY_BLOCK_ID, let's emit a helpful error
4247  if (std::find(blocks.begin(), blocks.end(), "ANY_BLOCK_ID") != blocks.end())
4248  mooseError("You cannot specify ANY_BLOCK_ID together with other blocks in the "
4249  "setCoordSystem() method. If you want to set the same coordinate system for all "
4250  "blocks, use ANY_BLOCK_ID as the only block.");
4251 
4252  auto subdomains = meshSubdomains();
4253  // It's possible that a user has called this API before the mesh is prepared and consequently we
4254  // don't yet have the subdomains in meshSubdomains()
4255  for (const auto & sub_name : blocks)
4256  {
4257  const auto sub_id = getSubdomainID(sub_name);
4258  subdomains.insert(sub_id);
4259  }
4260 
4261  if (coord_sys.size() <= 1)
4262  {
4263  // We will specify the same coordinate system for all blocks
4264  const auto coord_type = coord_sys.size() == 0
4266  : Moose::stringToEnum<Moose::CoordinateSystemType>(coord_sys[0]);
4267  for (const auto sid : subdomains)
4268  _coord_sys[sid] = coord_type;
4269  }
4270  else
4271  {
4272  if (blocks.size() != coord_sys.size())
4273  mooseError("Number of blocks and coordinate systems does not match.");
4274 
4275  for (const auto i : index_range(blocks))
4276  {
4277  SubdomainID sid = getSubdomainID(blocks[i]);
4278  Moose::CoordinateSystemType coord_type =
4279  Moose::stringToEnum<Moose::CoordinateSystemType>(coord_sys[i]);
4280  _coord_sys[sid] = coord_type;
4281  }
4282 
4283  for (const auto & sid : subdomains)
4284  if (_coord_sys.find(sid) == _coord_sys.end())
4285  mooseError("Subdomain '" + Moose::stringify(sid) +
4286  "' does not have a coordinate system specified.");
4287  }
4288 
4289  _coord_system_set = true;
4290 
4292 }
std::vector< SubdomainName > _provided_coord_blocks
Set for holding user-provided coordinate system type block names.
Definition: MooseMesh.h:2035
KOKKOS_INLINE_FUNCTION const T * find(const T &target, const T *const begin, const T *const end)
Find a value in an array.
Definition: KokkosUtils.h:40
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
char ** blocks
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:2019
unsigned int size() const
Return the number of active items in the MultiMooseEnum.
void mooseWarning(Args &&... args) const
void updateCoordTransform()
Update the coordinate transformation object based on our coordinate system data.
Definition: MooseMesh.C:4405
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
bool _coord_system_set
Whether the coordinate system has been set.
Definition: MooseMesh.h:2032
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was set by the user.
CoordinateSystemType
Definition: MooseTypes.h:858
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseBase.h:209
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:3271
SubdomainID getSubdomainID(const SubdomainName &subdomain_name) const
Get the associated subdomain ID for the subdomain name.
Definition: MooseMesh.C:1726

◆ setCustomPartitioner()

void MooseMesh::setCustomPartitioner ( libMesh::Partitioner partitioner)
inherited

Setter for custom partitioner.

Definition at line 3799 of file MooseMesh.C.

3800 {
3801  _custom_partitioner = partitioner->clone();
3803  if (_mesh)
3804  _mesh->partitioner() = _custom_partitioner->clone();
3805  _partitioner_name = "custom";
3806 }
MooseEnum _partitioner_name
The partitioner used on this mesh.
Definition: MooseMesh.h:1589
virtual std::unique_ptr< Partitioner > clone() const=0
void setIsCustomPartitionerRequested(bool cpr)
Definition: MooseMesh.C:3831
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581
std::unique_ptr< libMesh::Partitioner > _custom_partitioner
The custom partitioner.
Definition: MooseMesh.h:1593

◆ setFileName()

void FileMesh::setFileName ( const std::string &  file_name)
inline

Definition at line 30 of file FileMesh.h.

30 { _file_name = file_name; }
std::string _file_name
the file_name from whence this mesh came
Definition: FileMesh.h:35

◆ 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 4341 of file MooseMesh.C.

Referenced by MooseMesh::prepare().

4344 {
4345  // Set the axes for the given blocks
4346  mooseAssert(blocks.size() == axes.size(), "Blocks and axes vectors must be the same length.");
4347  for (const auto i : index_range(blocks))
4348  {
4349  const auto subdomain_id = getSubdomainID(blocks[i]);
4350  const auto it = _coord_sys.find(subdomain_id);
4351  if (it == _coord_sys.end())
4352  mooseError("The block '",
4353  blocks[i],
4354  "' has not set a coordinate system. Make sure to call setCoordSystem() before "
4355  "setGeneralAxisymmetricCoordAxes().");
4356  else
4357  {
4358  if (it->second == Moose::COORD_RZ)
4359  {
4360  const auto direction = axes[i].second;
4361  if (direction.is_zero())
4362  mooseError("Only nonzero vectors may be supplied for RZ directions.");
4363 
4364  _subdomain_id_to_rz_coord_axis[subdomain_id] =
4365  std::make_pair(axes[i].first, direction.unit());
4366  }
4367  else
4368  mooseError("The block '",
4369  blocks[i],
4370  "' was provided in setGeneralAxisymmetricCoordAxes(), but the coordinate system "
4371  "for this block is not 'RZ'.");
4372  }
4373  }
4374 
4375  // Make sure there are no RZ blocks that still do not have axes
4376  const auto all_subdomain_ids = meshSubdomains();
4377  for (const auto subdomain_id : all_subdomain_ids)
4378  if (getCoordSystem(subdomain_id) == Moose::COORD_RZ &&
4379  !_subdomain_id_to_rz_coord_axis.count(subdomain_id))
4380  mooseError("The block '",
4381  getSubdomainName(subdomain_id),
4382  "' was specified to use the 'RZ' coordinate system but was not given in "
4383  "setGeneralAxisymmetricCoordAxes().");
4384 
4386 }
char ** blocks
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:2019
const std::string & getSubdomainName(SubdomainID subdomain_id) const
Return the name of a block given an id.
Definition: MooseMesh.C:1758
void updateCoordTransform()
Update the coordinate transformation object based on our coordinate system data.
Definition: MooseMesh.C:4405
const std::map< SubdomainID, Moose::CoordinateSystemType > & getCoordSystem() const
Get the map from subdomain ID to coordinate system type, e.g.
Definition: MooseMesh.C:4327
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
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:2025
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:3271
SubdomainID getSubdomainID(const SubdomainName &subdomain_name) const
Get the associated subdomain ID for the subdomain name.
Definition: MooseMesh.C:1726

◆ 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 3335 of file MooseMesh.C.

3336 {
3337  _ghosted_boundaries_inflation = inflation;
3338 }
std::vector< Real > _ghosted_boundaries_inflation
Definition: MooseMesh.h:1710

◆ setIsCustomPartitionerRequested()

void MooseMesh::setIsCustomPartitionerRequested ( bool  cpr)
inherited

Definition at line 3831 of file MooseMesh.C.

Referenced by MooseMesh::setCustomPartitioner().

3832 {
3834 }
bool _custom_partitioner_requested
Definition: MooseMesh.h:1594

◆ 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 2929 of file MooseMesh.C.

2930 {
2931  _mesh = std::move(mesh_base);
2932  _mesh->allow_remote_element_removal(_allow_remote_element_removal);
2933 }
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1977
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ setMeshBoundaryIDs()

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

Sets the set of BoundaryIDs Is called by AddAllSideSetsByNormals.

Definition at line 3295 of file MooseMesh.C.

3296 {
3297  _mesh_boundary_ids = boundary_IDs;
3298 }
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1675

◆ setParallelType()

void MooseMesh::setParallelType ( ParallelType  parallel_type)
inlineinherited

Allow to change parallel type.

Definition at line 2305 of file MooseMesh.h.

Referenced by MooseMesh::buildTypedMesh().

2306 {
2307  _parallel_type = parallel_type;
2309 }
ParallelType _parallel_type
Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.
Definition: MooseMesh.h:1571
void determineUseDistributedMesh()
Determine whether to use a distributed mesh.
Definition: MooseMesh.C:2889

◆ 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 3740 of file MooseMesh.C.

Referenced by MooseMesh::setPartitionerHelper().

3745 {
3746  // Set the partitioner based on partitioner name
3747  switch (partitioner)
3748  {
3749  case -3: // default
3750  // We'll use the default partitioner, but notify the user of which one is being used...
3751  if (use_distributed_mesh)
3752  partitioner = "parmetis";
3753  else
3754  partitioner = "metis";
3755  break;
3756 
3757  // No need to explicitily create the metis or parmetis partitioners,
3758  // They are the default for serial and parallel mesh respectively
3759  case -2: // metis
3760  case -1: // parmetis
3761  break;
3762 
3763  case 0: // linear
3764  mesh_base.partitioner().reset(new libMesh::LinearPartitioner);
3765  break;
3766  case 1: // centroid
3767  {
3768  if (!params.isParamValid("centroid_partitioner_direction"))
3769  context_obj.paramError(
3770  "centroid_partitioner_direction",
3771  "If using the centroid partitioner you _must_ specify centroid_partitioner_direction!");
3772 
3773  MooseEnum direction = params.get<MooseEnum>("centroid_partitioner_direction");
3774 
3775  if (direction == "x")
3776  mesh_base.partitioner().reset(
3778  else if (direction == "y")
3779  mesh_base.partitioner().reset(
3781  else if (direction == "z")
3782  mesh_base.partitioner().reset(
3784  else if (direction == "radial")
3785  mesh_base.partitioner().reset(
3787  break;
3788  }
3789  case 2: // hilbert_sfc
3790  mesh_base.partitioner().reset(new libMesh::HilbertSFCPartitioner);
3791  break;
3792  case 3: // morton_sfc
3793  mesh_base.partitioner().reset(new libMesh::MortonSFCPartitioner);
3794  break;
3795  }
3796 }
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 ...
Definition: MooseBase.h:467
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 std::unique_ptr< Partitioner > & partitioner()
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:54
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 3728 of file MooseMesh.C.

Referenced by MooseMesh::buildTypedMesh().

3729 {
3730  if (_use_distributed_mesh && (_partitioner_name != "default" && _partitioner_name != "parmetis"))
3731  {
3732  _partitioner_name = "parmetis";
3733  _partitioner_overridden = true;
3734  }
3735 
3737 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
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:3740
MooseEnum _partitioner_name
The partitioner used on this mesh.
Definition: MooseMesh.h:1589
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1576
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
bool _partitioner_overridden
Definition: MooseMesh.h:1590

◆ setPatchUpdateStrategy()

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

Set the patch size update strategy.

Definition at line 3507 of file MooseMesh.C.

3508 {
3509  _patch_update_strategy = patch_update_strategy;
3510 }
Moose::PatchUpdateType _patch_update_strategy
The patch update strategy.
Definition: MooseMesh.h:1722

◆ 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 1744 of file MooseMesh.C.

Referenced by MooseMesh::prepare().

1745 {
1746  mooseAssert(name != "ANY_BLOCK_ID", "Cannot set subdomain name to 'ANY_BLOCK_ID'");
1747  getMesh().subdomain_name(subdomain_id) = name;
1748 }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
std::string & subdomain_name(subdomain_id_type id)

◆ setSubdomainName() [2/2]

static 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.

◆ setUniformRefineLevel()

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

Set uniform refinement level.

Definition at line 3322 of file MooseMesh.C.

3323 {
3324  _uniform_refine_level = level;
3326 }
unsigned int _uniform_refine_level
The level of uniform refinement requested (set to zero if AMR is disabled)
Definition: MooseMesh.h:1610
bool _skip_deletion_repartition_after_refine
Whether or not skip remote deletion and repartition after uniform refinements.
Definition: MooseMesh.h:1616

◆ 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 4192 of file MooseMesh.C.

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

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

◆ sideWithBoundaryID()

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

Calls BoundaryInfo::side_with_boundary_id().

Definition at line 3121 of file MooseMesh.C.

3122 {
3123  return getMesh().get_boundary_info().side_with_boundary_id(elem, boundary_id);
3124 }
unsigned int side_with_boundary_id(const Elem *const elem, const boundary_id_type boundary_id) const
const BoundaryInfo & get_boundary_info() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199

◆ 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 2299 of file MooseMesh.h.

2300 {
2302 }
bool _skip_deletion_repartition_after_refine
Whether or not skip remote deletion and repartition after uniform refinements.
Definition: MooseMesh.h:1616

◆ skipNoncriticalPartitioning()

bool MooseMesh::skipNoncriticalPartitioning ( ) const
virtualinherited

Definition at line 4522 of file MooseMesh.C.

4523 {
4524  return _mesh->skip_noncritical_partitioning();
4525 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ skipPartitioning()

virtual bool MooseMesh::skipPartitioning ( ) const
inlinevirtualinherited

Definition at line 330 of file MooseMesh.h.

330 { return _mesh->skip_partitioning(); }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ skipRefineWhenUseSplit()

bool MooseMesh::skipRefineWhenUseSplit ( ) const
inlineinherited

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

Definition at line 587 of file MooseMesh.h.

587 { 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:1613

◆ spatialDimension()

virtual unsigned int MooseMesh::spatialDimension ( ) const
inlinevirtualinherited

Returns MeshBase::spatial_dimension.

Reimplemented in MFEMMesh.

Definition at line 194 of file MooseMesh.h.

194 { return _mesh->spatial_dimension(); }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1581

◆ 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 55 of file PerfGraphInterface.C.

Referenced by PerfGraphInterface::registerTimedSection().

56 {
57  return _prefix.empty() ? "" : (_prefix + "::") + section_name;
58 }
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 93 of file MooseBase.h.

Referenced by CreateProblemDefaultAction::act(), SetupDebugAction::act(), MaterialDerivativeTestAction::act(), MaterialOutputAction::act(), FEProblemBase::addAuxArrayVariable(), FEProblemBase::addAuxScalarVariable(), FEProblemBase::addAuxVariable(), FEProblemBase::addConvergence(), FEProblemBase::addDistribution(), MooseApp::addExecutor(), MooseApp::addExecutorParams(), MFEMProblem::addFESpace(), MFEMProblem::addFunction(), FEProblemBase::addFunction(), FEProblemBase::addMeshDivision(), MooseApp::addMeshGenerator(), MeshGenerator::addMeshSubgenerator(), MFEMEigenproblem::addMFEMSolver(), FEProblemBase::addObject(), MFEMProblem::addPostprocessor(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), WebServerControl::addServerActionsInternal(), FEProblemBase::addTimeIntegrator(), MooseServer::addValuesToList(), MFEMProblem::addVectorPostprocessor(), DisplacedProblem::addVectorTag(), SubProblem::addVectorTag(), FEProblemBase::advanceMultiApps(), MooseApp::appendMeshGenerator(), AuxKernelBase::AuxKernelBase(), FEProblemBase::backupMultiApps(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), BoundaryPreservedMarker::BoundaryPreservedMarker(), DistributedRectilinearMeshGenerator::buildCube(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildLowerDMesh(), MooseMesh::buildPRefinementAndCoarseningMaps(), PhysicsBase::checkComponentType(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), ActionComponent::checkRequiredTasks(), PhysicsBase::checkRequiredTasks(), FEProblemBase::checkUserObjectNameCollision(), MFEMMultiAppTransfer::checkValidTransferProblemTypes(), 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(), ArrayDGDiffusion::computeQpJacobian(), InterfaceReaction::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), DGDiffusion::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), HFEMTrialJump::computeQpOffDiagJacobian(), HFEMTestJump::computeQpOffDiagJacobian(), ArrayDGKernel::computeQpOffDiagJacobian(), ArrayHFEMDiffusion::computeQpResidual(), DGConvection::computeQpResidual(), HFEMDiffusion::computeQpResidual(), ScalarKernel::computeQpResidual(), InterfaceDiffusion::computeQpResidual(), ADMatInterfaceReaction::computeQpResidual(), InterfaceReaction::computeQpResidual(), ADDGAdvection::computeQpResidual(), ArrayDGDiffusion::computeQpResidual(), CoupledTiedValueConstraint::computeQpResidual(), TiedValueConstraint::computeQpResidual(), DGDiffusion::computeQpResidual(), LinearNodalConstraint::computeQpResidual(), ADDGDiffusion::computeQpResidual(), HFEMTestJump::computeQpResidual(), HFEMTrialJump::computeQpResidual(), EqualValueBoundaryConstraint::computeQpResidual(), FEProblemBase::computeSystems(), FEProblemBase::computeUserObjectByName(), FEProblemBase::computeUserObjects(), FEProblemBase::computeUserObjectsInternal(), DisplacedProblem::createQRules(), FEProblemBase::createQRules(), MooseApp::createRecoverablePerfGraph(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), FEProblemBase::duplicateVariableCheck(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), FEProblemBase::execTransfers(), SteadyBase::execute(), WebServerControl::execute(), ActionWarehouse::executeActionsWithAction(), FEProblemBase::finishMultiAppStep(), FVScalarLagrangeMultiplierInterface::FVScalarLagrangeMultiplierInterface(), MooseServer::gatherDocumentReferencesLocations(), Boundary2DDelaunayGenerator::General2DDelaunay(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), SubdomainPerElementGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), Boundary2DDelaunayGenerator::generate(), PatternedMeshGenerator::generate(), MeshGenerator::generateInternal(), MeshGenerator::generateInternalCSG(), MultiAppTransfer::getAppInfo(), TransfiniteMeshGenerator::getEdge(), ElementGenerator::getElemType(), MooseServer::getInputLookupDefinitionNodes(), FEProblemBase::getMaterial(), FEProblemBase::getMaterialData(), FEProblemBase::getMaterialPropertyStorageConsumers(), MaterialOutputAction::getParams(), ReporterData::getReporterInfo(), FEProblemBase::getTransfers(), FEProblemBase::getUOQuery(), DisplacedProblem::getVectorTags(), SubProblem::getVectorTags(), CommonOutputAction::hasConsole(), FEProblemBase::hasMultiApps(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), NEML2Action::inferMOOSEIOType(), AdvancedOutput::initAvailableLists(), FunctorPositions::initialize(), FunctorTimes::initialize(), MultiAppConservativeTransfer::initialSetup(), LinearFVAnisotropicDiffusion::initialSetup(), LinearFVAdvection::initialSetup(), LinearFVDiffusion::initialSetup(), ArrayDGDiffusion::initQpResidual(), AdvancedOutput::initShowHideLists(), RelationshipManager::isType(), FEProblemBase::logAdd(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), MFEMProblem::mesh(), MooseObject::MooseObject(), DisplacedProblem::numVectorTags(), SubProblem::numVectorTags(), Console::output(), AdvancedOutput::output(), ConsoleUtils::outputExecutionInformation(), SampledOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), MooseServer::parseDocumentForDiagnostics(), MooseMesh::prepare(), ProjectedStatefulMaterialStorageAction::processProperty(), MooseApp::recursivelyCreateExecutors(), SolutionInvalidInterface::registerInvalidSolutionInternal(), FEProblemBase::restoreMultiApps(), MeshRepairGenerator::separateSubdomainsByElementType(), FEProblemBase::setCoupling(), MooseApp::setupOptions(), ExplicitTVDRK2::solve(), ExplicitRK2::solve(), Reporter::store(), MooseBase::typeAndName(), ScalarKernelBase::uOld(), AuxScalarKernel::uOld(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), UserObjectInterface::userObjectType(), and AdvancedOutput::wantOutput().

94  {
95  mooseAssert(_type.size(), "Empty type");
96  return _type;
97  }
const std::string & _type
The type of this class.
Definition: MooseBase.h:388

◆ 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 57 of file MooseBase.C.

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

58 {
59  return type() + std::string(" \"") + name() + std::string("\"");
60 }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:93

◆ uniformRefineLevel()

unsigned int MooseMesh::uniformRefineLevel ( ) const
inherited

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

Definition at line 3316 of file MooseMesh.C.

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

3317 {
3318  return _uniform_refine_level;
3319 }
unsigned int _uniform_refine_level
The level of uniform refinement requested (set to zero if AMR is disabled)
Definition: MooseMesh.h:1610

◆ uniqueName()

MooseObjectName MooseBase::uniqueName ( ) const
inherited
Returns
The unique name for accessing input parameters of this object in the InputParameterWarehouse

Definition at line 69 of file MooseBase.C.

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

70 {
71  if (!_pars.have_parameter<std::string>(unique_name_param))
72  mooseError("uniqueName(): Object does not have a unique name");
73  return MooseObjectName(_pars.get<std::string>(unique_name_param));
74 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
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.
static const std::string unique_name_param
The name of the parameter that contains the unique object name.
Definition: MooseBase.h:57
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
A class for storing the names of MooseObject by tag and object name.

◆ uniqueParameterName()

MooseObjectParameterName MooseBase::uniqueParameterName ( const std::string &  parameter_name) const
inherited
Returns
The unique parameter name of a valid parameter of this object for accessing parameter controls

Definition at line 63 of file MooseBase.C.

64 {
65  return MooseObjectParameterName(getBase(), name(), parameter_name);
66 }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
A class for storing an input parameter name.
const std::string & getBase() const
Definition: MooseBase.h:147

◆ update()

void MooseMesh::update ( )
inherited

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

Definition at line 619 of file MooseMesh.C.

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

620 {
621  TIME_SECTION("update", 3, "Updating Mesh", true);
622 
623  // Rebuild the boundary conditions
625 
626  buildNodeList();
628  cacheInfo();
629  buildElemIDInfo();
630 
631  // this will make moose mesh aware of p-refinement added by mesh generators including
632  // a file mesh generator loading a restart checkpoint file
633  _max_p_level = 0;
634  _max_h_level = 0;
635  for (const auto & elem : getMesh().active_local_element_ptr_range())
636  {
637  if (elem->p_level() > _max_p_level)
639  if (elem->level() > _max_h_level)
640  _max_h_level = elem->level();
641  }
642  comm().max(_max_p_level);
643  comm().max(_max_h_level);
644 
645  // the flag might have been set by calling doingPRefinement(true)
647 
649 
650 #ifdef MOOSE_KOKKOS_ENABLED
653  _kokkos_mesh->update();
654 #endif
655 
657 
659 }
bool initialized() const
void computeMaxPerElemAndSide()
Compute the maximum numbers per element and side.
Definition: MooseMesh.C:1063
void buildElemIDInfo()
Build extra data for faster access to the information of extra element integers.
Definition: MooseMesh.C:1086
bool possiblyRebuildNodeToElemMap()
rebuild the node to element map if it&#39;s been requsted previously
Definition: MooseMesh.C:602
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1772
bool _doing_p_refinement
Whether we have p-refinement (whether exclusively p- or hp-refinement)
Definition: MooseMesh.h:2038
const Parallel::Communicator & comm() const
unsigned int p_level() const
void cacheInfo()
Definition: MooseMesh.C:1407
void buildNodeListFromSideList()
Calls BoundaryInfo::build_node_list_from_side_list().
Definition: MooseMesh.C:3048
FEProblemBase & feProblem() const
Definition: MooseApp.C:1658
unsigned int _max_h_level
Maximum h-refinement level of all elements.
Definition: MooseMesh.h:2042
std::unique_ptr< Moose::Kokkos::Mesh > _kokkos_mesh
Pointer to Kokkos mesh object.
Definition: MooseMesh.h:1585
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
Executioner * getExecutioner() const
Retrieve the Executioner for this App.
Definition: MooseApp.C:1821
unsigned int level() const
void max(const T &r, T &o, Request &req) const
void buildBndElemList()
Definition: MooseMesh.C:1182
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
bool hasKokkosObjects() const
void buildNodeList()
Calls BoundaryInfo::build_node_list()/build_side_list() and makes separate copies of Nodes/Elems in t...
Definition: MooseMesh.C:1029
unsigned int _max_p_level
Maximum p-refinement level of all elements.
Definition: MooseMesh.h:2040

◆ 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 955 of file MooseMesh.C.

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

956 {
957  TIME_SECTION("updateActiveSemiLocalNodeRange", 5, "Updating ActiveSemiLocalNode Range");
958 
959  _semilocal_node_list.clear();
960 
961  // First add the nodes connected to local elems
962  ConstElemRange * active_local_elems = getActiveLocalElementRange();
963  for (const auto & elem : *active_local_elems)
964  {
965  for (unsigned int n = 0; n < elem->n_nodes(); ++n)
966  {
967  // Since elem is const here but we require a non-const Node * to
968  // store in the _semilocal_node_list (otherwise things like
969  // UpdateDisplacedMeshThread don't work), we are using a
970  // const_cast. A more long-term fix would be to have
971  // getActiveLocalElementRange return a non-const ElemRange.
972  Node * node = const_cast<Node *>(elem->node_ptr(n));
973 
974  _semilocal_node_list.insert(node);
975  }
976  }
977 
978  // Now add the nodes connected to ghosted_elems
979  for (const auto & ghost_elem_id : ghosted_elems)
980  {
981  Elem * elem = getMesh().elem_ptr(ghost_elem_id);
982  for (unsigned int n = 0; n < elem->n_nodes(); n++)
983  {
984  Node * node = elem->node_ptr(n);
985 
986  _semilocal_node_list.insert(node);
987  }
988  }
989 
990  // Now create the actual range
991  _active_semilocal_node_range = std::make_unique<SemiLocalNodeRange>(_semilocal_node_list.begin(),
992  _semilocal_node_list.end());
993 }
std::set< Node * > _semilocal_node_list
Used for generating the semilocal node range.
Definition: MooseMesh.h:1641
libMesh::ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:1240
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3548
virtual unsigned int n_nodes() const=0
virtual const Elem * elem_ptr(const dof_id_type i) const=0
const Node * node_ptr(const unsigned int i) const
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:824
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3199
std::unique_ptr< SemiLocalNodeRange > _active_semilocal_node_range
Definition: MooseMesh.h:1649

◆ usingGeneralAxisymmetricCoordAxes()

bool MooseMesh::usingGeneralAxisymmetricCoordAxes ( ) const
inherited

Returns true if general axisymmetric coordinate axes are being used.

Definition at line 4399 of file MooseMesh.C.

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

4400 {
4401  return _subdomain_id_to_rz_coord_axis.size() > 0;
4402 }
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:2025

◆ validParams()

InputParameters FileMesh::validParams ( )
static

Definition at line 28 of file FileMesh.C.

Referenced by SetupMeshAction::modifyParamsForUseSplit(), and MFEMMesh::validParams().

29 {
31  params.addRequiredParam<MeshFileName>("file", "The name of the mesh file to read");
32  MooseEnum dims("1=1 2 3", "1");
33  params.addParam<MooseEnum>("dim",
34  dims,
35  "This is only required for certain mesh formats where "
36  "the dimension of the mesh cannot be autodetected. "
37  "In particular you must supply this for GMSH meshes. "
38  "Note: This is completely ignored for ExodusII meshes!");
39  params.addParam<bool>("clear_spline_nodes",
40  false,
41  "If clear_spline_nodes=true, IsoGeometric Analyis spline nodes "
42  "and constraints are removed from an IGA mesh, after which only "
43  "C^0 Rational-Bernstein-Bezier elements will remain.");
44  params.addDeprecatedParam<bool>("nemesis",
45  false,
46  "If nemesis=true and file=foo.n, actually reads "
47  "foo.n.N.0, foo.n.N.1, ... foo.n.N.N-1, "
48  "where N = # CPUs, with NemesisIO.",
49  "This parameter should no longer be necessary if you use the "
50  "'.n' or '.nem' file extension for Nemesis files");
51  params.addClassDescription("Read a mesh from a file.");
52  return params;
53 }
static InputParameters validParams()
Typical "Moose-style" constructor and copy constructor.
Definition: MooseMesh.C:82
void addDeprecatedParam(const std::string &name, const T &value, const std::string &doc_string, const std::string &deprecation_message)
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...
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:54
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 optional parameter and a documentation string to the InputParameters object...

Member Data Documentation

◆ _action_factory

ActionFactory& ParallelParamObject::_action_factory
protectedinherited

◆ _active_local_elem_range

std::unique_ptr<libMesh::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 1647 of file MooseMesh.h.

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

◆ _active_node_range

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

Definition at line 1650 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 385 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 1704 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<libMesh::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 1688 of file MooseMesh.h.

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

◆ _bnd_node_range

std::unique_ptr<libMesh::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 1681 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 1731 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 1567 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 1638 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 1631 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(), DefaultSteadyStateConvergence::checkConvergence(), MeshDiagnosticsGenerator::checkElementOverlap(), MeshDiagnosticsGenerator::checkElementTypes(), MeshDiagnosticsGenerator::checkElementVolumes(), FEProblemBase::checkExceptionAndStopSolve(), SolverSystem::checkInvalidSolution(), MeshDiagnosticsGenerator::checkLocalJacobians(), MeshDiagnosticsGenerator::checkNonConformalMesh(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), MeshDiagnosticsGenerator::checkNonMatchingEdges(), MeshDiagnosticsGenerator::checkNonPlanarSides(), MeshDiagnosticsGenerator::checkPolygons(), FEProblemBase::checkProblemIntegrity(), ReferenceResidualConvergence::checkResidualConvergence(), MeshDiagnosticsGenerator::checkSidesetsOrientation(), MeshDiagnosticsGenerator::checkWatertightNodesets(), MeshDiagnosticsGenerator::checkWatertightSidesets(), IterationAdaptiveDT::computeAdaptiveDT(), TransientBase::computeConstrainedDT(), DefaultMultiAppFixedPointConvergence::computeCustomConvergencePostprocessor(), NonlinearSystemBase::computeDamping(), FixedPointIterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInitialDT(), IterationAdaptiveDT::computeInterpolationDT(), LinearSystem::computeLinearSystemTags(), FEProblemBase::computeLinearSystemTags(), NonlinearSystemBase::computeScaling(), Problem::console(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), MultiApp::createApp(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MFEMSteady::execute(), MessageFromInput::execute(), SteadyBase::execute(), Eigenvalue::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), MeshGeneratorSystem::executeMeshGenerators(), ElementQualityChecker::finalize(), SidesetAroundSubdomainUpdater::finalize(), FEProblemBase::finishMultiAppStep(), MeshRepairGenerator::fixOverlappingNodes(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), OrientSurfaceMeshGenerator::generate(), CoarsenBlockGenerator::generate(), PolyLineMeshFollowingNodeSetGenerator::generate(), MeshGenerator::generateInternal(), VariableCondensationPreconditioner::getDofToCondense(), NonlinearEigen::init(), InversePowerMethod::init(), FEProblemBase::initialAdaptMesh(), DefaultMultiAppFixedPointConvergence::initialize(), SubProblem::initialSetup(), EigenExecutionerBase::inversePowerIteration(), FEProblemBase::joinAndFinalize(), TransientBase::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), FEProblemBase::logAdd(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), SurfaceDelaunayGeneratorBase::meshNormalDeviation2D(), MooseBase::mooseDeprecated(), MooseBase::mooseDeprecatedNoTrace(), MooseBase::mooseInfo(), MooseBase::mooseWarning(), MooseBase::mooseWarningNonPrefixed(), ReferenceResidualConvergence::nonlinearConvergenceSetup(), ReporterDebugOutput::output(), PerfGraphOutput::output(), SolutionInvalidityOutput::output(), MaterialPropertyDebugOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), WebServerControl::outputMessage(), Console::outputPostprocessors(), PseudoTimestep::outputPseudoTimestep(), Console::outputReporters(), DefaultMultiAppFixedPointConvergence::outputResidualNorm(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), BlockRestrictionDebugOutput::printBlockRestrictionGroups(), BlockRestrictionDebugOutput::printBlockRestrictionMap(), BlockRestrictionDebugOutput::printBoundaryRestrictionGroups(), SolutionInvalidity::printDebug(), EigenExecutionerBase::printEigenvalue(), SecantSolve::printFixedPointConvergenceHistory(), SteffensenSolve::printFixedPointConvergenceHistory(), PicardSolve::printFixedPointConvergenceHistory(), FixedPointSolve::printFixedPointConvergenceReason(), PerfGraphLivePrint::printLiveMessage(), MaterialPropertyDebugOutput::printMaterialMap(), PerfGraphLivePrint::printStats(), NEML2Action::printSummary(), AutomaticMortarGeneration::projectPrimaryNodesSinglePair(), AutomaticMortarGeneration::projectSecondaryNodesSinglePair(), CoarsenBlockGenerator::recursiveCoarsen(), SolutionTimeAdaptiveDT::rejectStep(), MultiApp::restore(), FEProblemBase::restoreMultiApps(), FEProblemBase::restoreSolutions(), NonlinearSystemBase::setInitialSolution(), MooseApp::setupOptions(), Checkpoint::shouldOutput(), SubProblem::showFunctorRequestors(), SubProblem::showFunctors(), FullSolveMultiApp::showStatusMessage(), EigenProblem::solve(), FEProblemSolve::solve(), FixedPointSolve::solve(), NonlinearSystem::solve(), LinearSystem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), AStableDirk4::solve(), LStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), FixedPointSolve::solveStep(), MeshRepairGenerator::splitNonConvexPolygons(), PerfGraphLivePrint::start(), WebServerControl::startServer(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), MFEMTransient::takeStep(), TransientBase::takeStep(), TerminateChainControl::terminate(), SubProblem::timestepSetup(), FEProblemBase::updateMeshXFEM(), Convergence::verboseOutput(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _custom_partitioner

std::unique_ptr<libMesh::Partitioner> MooseMesh::_custom_partitioner
protectedinherited

The custom partitioner.

Definition at line 1593 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 1577 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 71 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _exreader

std::unique_ptr<libMesh::ExodusII_IO> FileMesh::_exreader
protected

Auxiliary object for restart.

Definition at line 38 of file FileMesh.h.

◆ _extra_bnd_nodes

std::vector<BndNode> MooseMesh::_extra_bnd_nodes
protectedinherited

◆ _factory

Factory& ParallelParamObject::_factory
protectedinherited

◆ _file_name

std::string FileMesh::_file_name
protected

the file_name from whence this mesh came

Definition at line 35 of file FileMesh.h.

Referenced by buildMesh(), FileMesh(), getFileName(), and setFileName().

◆ _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<libMesh::GhostingFunctor> > MooseMesh::_ghosting_functors
protectedinherited

Deprecated (DO NOT USE)

Definition at line 1561 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 1716 of file MooseMesh.h.

Referenced by MooseMesh::getGhostingPatchSize().

◆ _is_changed

bool MooseMesh::_is_changed
protectedinherited

true if mesh is changed (i.e. after adaptivity step)

Definition at line 1619 of file MooseMesh.h.

◆ _is_nemesis

bool MooseMesh::_is_nemesis
protectedinherited

True if a Nemesis Mesh was read in.

Definition at line 1622 of file MooseMesh.h.

Referenced by buildMesh(), MooseMesh::determineUseDistributedMesh(), FileMesh(), MooseMesh::prepare(), and read().

◆ _is_split

const bool MooseMesh::_is_split
protectedinherited

Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)

Definition at line 1737 of file MooseMesh.h.

Referenced by MooseMesh::determineUseDistributedMesh(), and MooseMesh::isSplit().

◆ _kokkos_mesh

std::unique_ptr<Moose::Kokkos::Mesh> MooseMesh::_kokkos_mesh
protectedinherited

Pointer to Kokkos mesh object.

Definition at line 1585 of file MooseMesh.h.

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

◆ _local_node_range

std::unique_ptr<libMesh::ConstNodeRange> MooseMesh::_local_node_range
protectedinherited

Definition at line 1651 of file MooseMesh.h.

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

◆ _max_leaf_size

unsigned int MooseMesh::_max_leaf_size
protectedinherited

Definition at line 1719 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 1675 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 1677 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 1676 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 1667 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 1625 of file MooseMesh.h.

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

◆ _name

const std::string& MooseBase::_name
protectedinherited

The name of this class.

Definition at line 391 of file MooseBase.h.

Referenced by AddBCAction::act(), AddConstraintAction::act(), AddDGKernelAction::act(), PartitionerAction::act(), AddMaterialAction::act(), AddDamperAction::act(), AddInitialConditionAction::act(), AddNodalKernelAction::act(), AddMarkerAction::act(), AddVectorPostprocessorAction::act(), AddMultiAppAction::act(), AddPostprocessorAction::act(), AddTransferAction::act(), AddScalarKernelAction::act(), AddFunctorMaterialAction::act(), AddUserObjectAction::act(), AddFVInitialConditionAction::act(), AddInterfaceKernelAction::act(), AddFVInterfaceKernelAction::act(), ReadExecutorParamsAction::act(), AddKernelAction::act(), AddMeshGeneratorAction::act(), AddDiracKernelAction::act(), AddIndicatorAction::act(), AddPositionsAction::act(), AddReporterAction::act(), AddTimesAction::act(), AddFieldSplitAction::act(), AddFVKernelAction::act(), AddFVBCAction::act(), AddHDGKernelAction::act(), AddDistributionAction::act(), AddConvergenceAction::act(), SetupPreconditionerAction::act(), SetupTimeIntegratorAction::act(), AddFunctionAction::act(), AddMeshDivisionAction::act(), AddFVInterpolationMethodAction::act(), AddTimeStepperAction::act(), AddOutputAction::act(), AddLinearFVBCAction::act(), AddLinearFVKernelAction::act(), AddCorrectorAction::act(), AddMeshModifiersAction::act(), AddMFEMComplexKernelComponentAction::act(), AddSamplerAction::act(), AddControlAction::act(), AddMFEMComplexBCComponentAction::act(), AddMFEMFESpaceAction::act(), AddMFEMPreconditionerAction::act(), AddMFEMSubMeshAction::act(), AddMFEMSolverAction::act(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), PiecewiseLinearBase::buildInterpolation(), CombinerGenerator::CombinerGenerator(), Executor::Executor(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), QuadraturePointMultiApp::fillPositions(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), FunctionDT::FunctionDT(), FillBetweenPointVectorsGenerator::generate(), FillBetweenCurvesGenerator::generate(), FillBetweenSidesetsGenerator::generate(), MooseBase::MooseBase(), NearestPointBase< LayeredSideDiffusiveFluxAverage, SideIntegralVariableUserObject >::name(), ReferenceResidualConvergence::nonlinearConvergenceSetup(), ParsedFunctorMaterialTempl< is_ad >::ParsedFunctorMaterialTempl(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseBase::setData(), and AddVariableAction::varName().

◆ _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 1725 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 1707 of file MooseMesh.h.

Referenced by MooseMesh::buildNodeList(), MooseMesh::freeBndNodes(), MooseMesh::getNodeList(), and MooseMesh::nodeSetNodes().

◆ _node_to_elem_map

std::unordered_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 1658 of file MooseMesh.h.

Referenced by MooseMesh::internalNodeToElemMap(), and MooseMesh::possiblyRebuildNodeToElemMap().

◆ _node_to_elem_map_built

bool MooseMesh::_node_to_elem_map_built = false
protectedinherited

Whether _node_to_elem_map has been built.

Definition at line 1661 of file MooseMesh.h.

Referenced by MooseMesh::internalNodeToElemMap(), and MooseMesh::possiblyRebuildNodeToElemMap().

◆ _paired_boundary

std::optional<std::vector<std::pair<BoundaryID, BoundaryID> > > MooseMesh::_paired_boundary
protectedinherited

A vector holding the paired boundaries for a regular orthogonal mesh.

Definition at line 1734 of file MooseMesh.h.

Referenced by MooseMesh::detectPairedSidesets(), and MooseMesh::hasDetectedPairedSidesets().

◆ _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 1571 of file MooseMesh.h.

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

◆ _parallel_type_overridden

bool MooseMesh::_parallel_type_overridden
protectedinherited

◆ _pars

const InputParameters& MooseBase::_pars
protectedinherited

The object's parameters.

Definition at line 394 of file MooseBase.h.

Referenced by AddFVICAction::act(), AddICAction::act(), CreateProblemAction::act(), CreateProblemDefaultAction::act(), SetupMeshAction::act(), ComposeTimeStepperAction::act(), SetupDebugAction::act(), AddAuxKernelAction::act(), AddMFEMComplexKernelComponentAction::act(), AddMFEMComplexBCComponentAction::act(), CommonOutputAction::act(), FunctorMaterial::addFunctorPropertyByBlocks(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), PNGOutput::calculateRescalingValues(), MooseBase::callMooseError(), MooseBase::connectControllableParams(), Console::Console(), MooseApp::copyInputs(), MaterialBase::declareADProperty(), Moose::Kokkos::MaterialBase::declareKokkosOnDemandProperty(), Moose::Kokkos::MaterialBase::declareKokkosProperty(), MaterialBase::declareProperty(), FEProblemSolve::FEProblemSolve(), FunctionMaterialBase< is_ad >::FunctionMaterialBase(), FileMeshGenerator::generate(), MooseBase::getBase(), MooseBase::getCheckedPointerParam(), MaterialBase::getGenericZeroMaterialProperty(), MooseBase::getHitNode(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), MooseBase::getParam(), MooseBase::hasBase(), MeshGenerator::hasGenerateCSG(), MeshGenerator::hasGenerateData(), MooseBase::haveParameter(), AddVariableAction::init(), AdvancedOutput::initExecutionTypes(), EigenProblemSolve::initialSetup(), Console::initialSetup(), MooseBase::isParamSetByUser(), MooseBase::isParamValid(), MultiApp::keepSolutionDuringRestore(), MooseBase::messagePrefix(), MooseBase::MooseBase(), MooseApp::outputMachineReadableData(), MooseBase::paramError(), MooseBase::parameters(), MooseBase::paramInfo(), MooseBase::paramWarning(), MooseMesh::prepare(), MooseMesh::setCoordSystem(), MooseMesh::setPartitionerHelper(), SetupMeshAction::setupMesh(), TransientBase::setupTimeIntegrator(), MooseApp::showInputs(), and MooseBase::uniqueName().

◆ _partitioner_name

MooseEnum MooseMesh::_partitioner_name
protectedinherited

The partitioner used on this mesh.

Definition at line 1589 of file MooseMesh.h.

Referenced by MooseMesh::partitionerName(), MooseMesh::setCustomPartitioner(), 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 1713 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 1722 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 135 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 138 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 1628 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 1728 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 1564 of file MooseMesh.h.

◆ _restartable_app

MooseApp& Restartable::_restartable_app
protectedinherited

Reference to the application.

Definition at line 234 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 243 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 237 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 240 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 1641 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 1616 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 1613 of file MooseMesh.h.

Referenced by MooseMesh::skipRefineWhenUseSplit().

◆ _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 1610 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 1576 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().

◆ app_param

const std::string MooseBase::app_param = "_moose_app"
staticinherited

◆ kokkos_object_param

const std::string MooseBase::kokkos_object_param = "_kokkos_object"
staticinherited

The name of the parameter that indicates an object is a Kokkos functor.

Definition at line 64 of file MooseBase.h.

Referenced by InputParameters::isKokkosObject().

◆ moose_base_param

const std::string MooseBase::moose_base_param = "_moose_base"
staticinherited

The name of the parameter that contains the moose system base.

Definition at line 61 of file MooseBase.h.

Referenced by InputParameters::getBase(), InputParameters::hasBase(), and InputParameters::registerBase().

◆ name_param

const std::string MooseBase::name_param = "_object_name"
staticinherited

◆ periodic_dim_default

const std::array< bool, 3 > MooseMesh::periodic_dim_default {false, false, false}
staticinherited

Default value for the automatically detected paired boundaries for each unit dimension, in which the value for each unit dimension is false (not detected).

Definition at line 106 of file MooseMesh.h.

Referenced by MooseMesh::addPeriodicVariable(), MooseMesh::detectPairedSidesets(), and MooseMesh::queryPeriodicDimensions().

◆ type_param

const std::string MooseBase::type_param = "_type"
staticinherited

◆ unique_name_param

const std::string MooseBase::unique_name_param = "_unique_name"
staticinherited

The name of the parameter that contains the unique object name.

Definition at line 57 of file MooseBase.h.

Referenced by InputParameterWarehouse::addInputParameters(), AppFactory::create(), InputParameterWarehouse::removeInputParameters(), MooseBase::uniqueName(), and MooseBase::validParams().

◆ usingCombinedWarningSolutionWarnings

MooseObject::usingCombinedWarningSolutionWarnings
inherited

Definition at line 67 of file MooseObject.h.


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