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

Reads one or more 2D mesh files and stitches them together based on a provided two-dimensional pattern array. More...

#include <PatternedMesh.h>

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

 PatternedMesh (const InputParameters &parameters)
 
 PatternedMesh (const PatternedMesh &other_mesh)
 
virtual ~PatternedMesh ()=default
 
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...
 
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...
 
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::map< dof_id_type, std::vector< dof_id_type > > & nodeToElemMap ()
 If not already created, creates a map from every node to all elements to which they are connected. More...
 
const std::map< dof_id_type, std::vector< dof_id_type > > & nodeToActiveSemilocalElemMap ()
 If not already created, creates a map from every node to all active semilocal elements to which they are connected. More...
 
virtual bnd_node_iterator bndNodesBegin ()
 Return iterators to the beginning/end of the boundary nodes list. More...
 
virtual bnd_node_iterator bndNodesEnd ()
 
virtual bnd_elem_iterator bndElemsBegin ()
 Return iterators to the beginning/end of the boundary elements list. More...
 
virtual bnd_elem_iterator bndElemsEnd ()
 
void buildNodeListFromSideList ()
 Calls BoundaryInfo::build_node_list_from_side_list(). More...
 
void buildSideList (std::vector< dof_id_type > &el, std::vector< unsigned short int > &sl, std::vector< boundary_id_type > &il)
 Calls BoundaryInfo::build_side_list(). More...
 
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildSideList ()
 As above, but uses the non-deprecated std::tuple interface. More...
 
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildActiveSideList () const
 Calls BoundaryInfo::build_active_side_list. More...
 
unsigned int sideWithBoundaryID (const Elem *const elem, const BoundaryID boundary_id) const
 Calls BoundaryInfo::side_with_boundary_id(). More...
 
MeshBase::node_iterator localNodesBegin ()
 Calls local_nodes_begin/end() on the underlying libMesh mesh object. More...
 
MeshBase::const_node_iterator localNodesBegin () const
 
MeshBase::node_iterator localNodesEnd ()
 
MeshBase::const_node_iterator localNodesEnd () const
 
MeshBase::element_iterator activeLocalElementsBegin ()
 Calls active_local_nodes_begin/end() on the underlying libMesh mesh object. More...
 
MeshBase::const_element_iterator activeLocalElementsBegin () const
 
const MeshBase::element_iterator activeLocalElementsEnd ()
 
const MeshBase::const_element_iterator activeLocalElementsEnd () const
 
virtual dof_id_type nNodes () const
 Calls n_nodes/elem() on the underlying libMesh mesh object. More...
 
virtual dof_id_type nElem () const
 
virtual dof_id_type 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
 
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 (BoundaryID boundary_id)
 Return the name of the boundary given the id. More...
 
void buildPeriodicNodeMap (std::multimap< dof_id_type, dof_id_type > &periodic_node_map, unsigned int var_number, 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 (unsigned int var_num, BoundaryID primary, BoundaryID secondary)
 For "regular orthogonal" meshes, determine if variable var_num is periodic with respect to the primary and secondary BoundaryIDs, record this fact in the _periodic_dim data structure. More...
 
bool isTranslatedPeriodic (unsigned int nonlinear_var_num, unsigned int component) const
 Returns whether this generated mesh is periodic in the given dimension for the given variable. More...
 
RealVectorValue minPeriodicVector (unsigned int nonlinear_var_num, Point p, Point q) const
 This function returns the minimum vector between two points on the mesh taking into account periodicity for the given variable number. More...
 
Real minPeriodicDistance (unsigned int nonlinear_var_num, Point p, Point q) const
 This function returns the distance between two points on the mesh taking into account periodicity for the given variable number. More...
 
const std::pair< BoundaryID, BoundaryID > * getPairedBoundaryMapping (unsigned int component)
 This function attempts to return the paired boundary ids for the given component. More...
 
void buildRefinementAndCoarseningMaps (Assembly *assembly)
 Create the refinement and coarsening maps necessary for projection of stateful material properties when using adaptivity. More...
 
const std::vector< std::vector< QpMap > > & getRefinementMap (const Elem &elem, int parent_side, int child, int child_side)
 Get the refinement map for a given element type. More...
 
const std::vector< std::pair< unsigned int, QpMap > > & getCoarseningMap (const Elem &elem, int input_side)
 Get the coarsening map for a given element type. More...
 
void changeBoundaryId (const boundary_id_type old_id, const boundary_id_type new_id, bool delete_prev)
 Change all the boundary IDs for a given side from old_id to new_id. More...
 
const std::set< BoundaryID > & getSubdomainBoundaryIds (const SubdomainID subdomain_id) const
 Get the list of boundary ids associated with the given subdomain id. More...
 
std::set< BoundaryIDgetSubdomainInterfaceBoundaryIds (const SubdomainID subdomain_id) const
 Get the list of boundaries that contact the given subdomain. More...
 
std::set< SubdomainIDgetBoundaryConnectedBlocks (const BoundaryID bid) const
 Get the list of subdomains associated with the given boundary. More...
 
std::set< SubdomainIDgetBoundaryConnectedSecondaryBlocks (const BoundaryID bid) const
 Get the list of subdomains associated with the given boundary of its secondary side. More...
 
std::set< SubdomainIDgetInterfaceConnectedBlocks (const BoundaryID bid) const
 Get the list of subdomains contacting the given boundary. More...
 
const std::set< SubdomainID > & getBlockConnectedBlocks (const SubdomainID subdomain_id) const
 Get the list of subdomains neighboring a given subdomain. More...
 
bool isBoundaryNode (dof_id_type node_id) const
 Returns true if the requested node is in the list of boundary nodes, false otherwise. More...
 
bool isBoundaryNode (dof_id_type node_id, BoundaryID bnd_id) const
 Returns true if the requested node is in the list of boundary nodes for the specified boundary, false otherwise. More...
 
bool isBoundaryElem (dof_id_type elem_id) const
 Returns true if the requested element is in the list of boundary elements, false otherwise. More...
 
bool isBoundaryElem (dof_id_type elem_id, BoundaryID bnd_id) const
 Returns true if the requested element is in the list of boundary elements for the specified boundary, false otherwise. More...
 
void errorIfDistributedMesh (std::string name) const
 Generate a unified error message if the underlying libMesh mesh is a DistributedMesh. More...
 
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...
 
virtual std::string getFileName () const
 Returns the name of the mesh file read to produce this mesh if any or an empty string otherwise. More...
 
void needsRemoteElemDeletion (bool need_delete)
 Set whether we need to delete remote elements. More...
 
bool needsRemoteElemDeletion () const
 Whether we need to delete remote elements. More...
 
void allowRemoteElementRemoval (bool allow_removal)
 Set whether to allow remote element removal. More...
 
bool allowRemoteElementRemoval () const
 Whether we are allow remote element removal. More...
 
void deleteRemoteElements ()
 Delete remote elements. More...
 
bool hasMeshBase () const
 Whether mesh base object was constructed or not. More...
 
bool hasElementID (const std::string &id_name) const
 Whether mesh has an extra element integer with a given name. More...
 
unsigned int getElementIDIndex (const std::string &id_name) const
 Return the accessing integer for an extra element integer with its name. More...
 
dof_id_type maxElementID (unsigned int elem_id_index) const
 Return the maximum element ID for an extra element integer with its accessing index. More...
 
dof_id_type minElementID (unsigned int elem_id_index) const
 Return the minimum element ID for an extra element integer with its accessing index. More...
 
bool areElemIDsIdentical (const std::string &id_name1, const std::string &id_name2) const
 Whether or not two extra element integers are identical. More...
 
std::set< dof_id_typegetAllElemIDs (unsigned int elem_id_index) const
 Return all the unique element IDs for an extra element integer with its index. More...
 
std::set< dof_id_typegetElemIDsOnBlocks (unsigned int elem_id_index, const std::set< SubdomainID > &blks) const
 Return all the unique element IDs for an extra element integer with its index on a set of subdomains. More...
 
std::unordered_map< dof_id_type, std::set< dof_id_type > > getElemIDMapping (const std::string &from_id_name, const std::string &to_id_name) const
 
void cacheFaceInfoVariableOwnership () const
 Cache if variables live on the elements connected by the FaceInfo objects. More...
 
void cacheFVElementalDoFs () const
 Cache the DoF indices for FV variables on each element. More...
 
void computeFiniteVolumeCoords () const
 Compute the face coordinate value for all FaceInfo and ElemInfo objects. More...
 
void isDisplaced (bool is_displaced)
 Set whether this mesh is 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 is p-refinement. More...
 
bool doingPRefinement () const
 Query whether we have 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 isLowerD (const SubdomainID subdomain_id) const
 
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...
 
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
 
MooseAppgetMooseApp () const
 Get the MooseApp this class is associated with. More...
 
const std::string & type () const
 Get the type of this class. More...
 
virtual const std::string & name () const
 Get the name of the class. More...
 
std::string typeAndName () const
 Get the class's combined type and name; useful in error handling. More...
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 Calls moose error with the message msg. More...
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 The unique parameter name of a valid parameter of this object for accessing parameter controls. More...
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
MooseObjectName uniqueName () const
 The unique name for accessing input parameters of this object in the InputParameterWarehouse. More...
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object. More...
 
template<typename T1 , typename T2 >
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 Retrieve two parameters and provide pair of parameters for the object. More...
 
template<typename T >
const T * 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...
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid. More...
 
bool isParamSetByUser (const std::string &nm) const
 Test if the supplied parameter is set by a user, as opposed to not set or set to default. More...
 
template<typename... Args>
void paramError (const std::string &param, Args... args) const
 Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args) const
 Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramInfo (const std::string &param, Args... args) const
 Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 Connect controllable parameter of this action with the controllable parameters of the objects added by this action. More...
 
template<typename... Args>
void mooseError (Args &&... args) const
 Emits an error prefixed with object name and type. More...
 
template<typename... Args>
void mooseErrorNonPrefixed (Args &&... args) const
 Emits an error without the prefixing included in mooseError(). More...
 
template<typename... Args>
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 Emits a documented error with object name and type. More...
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 Emits a warning prefixed with object name and type. More...
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 Emits a warning without the prefixing included in mooseWarning(). More...
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
const Parallel::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...
 

Public Attributes

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

Protected Types

enum  { X = 0, Y, Z }
 Convenience enums. More...
 
enum  { MIN = 0, MAX }
 
typedef std::vector< BndNode * >::iterator bnd_node_iterator_imp
 
typedef std::vector< BndNode * >::const_iterator const_bnd_node_iterator_imp
 
typedef std::vector< BndElement * >::iterator bnd_elem_iterator_imp
 
typedef std::vector< BndElement * >::const_iterator const_bnd_elem_iterator_imp
 

Protected Member Functions

void cacheInfo ()
 
void freeBndNodes ()
 
void freeBndElems ()
 
void setPartitionerHelper (MeshBase *mesh=nullptr)
 
template<typename T , typename... Args>
T & declareRestartableData (const std::string &data_name, Args &&... args)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T , typename... Args>
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 Declares a piece of "managed" restartable data and initialize it. More...
 
template<typename T , typename... Args>
const T & getRestartableData (const std::string &data_name) const
 Declare a piece of data as "restartable" and initialize it Similar to declareRestartableData but returns a const reference to the object. More...
 
template<typename T , typename... Args>
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T , typename... Args>
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 Declare a piece of data as "recoverable" and initialize it. More...
 
template<typename T , typename... Args>
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 Declare a piece of data as "restartable". More...
 
template<typename T , typename... Args>
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 Declare a piece of data as "restartable". More...
 
std::string restartableName (const std::string &data_name) const
 Gets the name of a piece of restartable data given a data name, adding the system name and object name prefix. More...
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 Call to register a named section for timing. More...
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 Call to register a named section for timing. More...
 
std::string timedSectionName (const std::string &section_name) const
 

Protected Attributes

const std::vector< MeshFileName > & _files
 
const std::vector< std::vector< unsigned int > > & _pattern
 
ReplicatedMesh * _original_mesh
 
std::vector< std::unique_ptr< ReplicatedMesh > > _meshes
 
std::vector< std::unique_ptr< ReplicatedMesh > > _row_meshes
 
const Real _x_width
 
const Real _y_width
 
const Real _z_width
 
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...
 
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::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
 A map of all of the current nodes to the elements that they are connected to. More...
 
bool _node_to_elem_map_built
 
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
 A map of all of the current nodes to the active elements that they are connected to. More...
 
bool _node_to_active_semilocal_elem_map_built
 
std::set< SubdomainID_mesh_subdomains
 A set of subdomain IDs currently present in the mesh. More...
 
std::unique_ptr< std::map< BoundaryID, RealVectorValue > > _boundary_to_normal_map
 The boundary to normal map - valid only when AddAllSideSetsByNormals is active. More...
 
std::vector< BndNode * > _bnd_nodes
 array of boundary nodes More...
 
std::map< boundary_id_type, std::set< dof_id_type > > _bnd_node_ids
 Map of sets of node IDs in each boundary. More...
 
std::vector< BndElement * > _bnd_elems
 array of boundary elems More...
 
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
 Map of set of elem IDs connected to each boundary. More...
 
std::map< dof_id_type, Node * > _quadrature_nodes
 
std::map< dof_id_type, std::map< unsigned int, std::map< dof_id_type, Node * > > > _elem_to_side_to_qp_to_quadrature_nodes
 
std::vector< BndNode_extra_bnd_nodes
 
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
 list of nodes that belongs to a specified block (domain) More...
 
std::map< boundary_id_type, std::vector< dof_id_type > > _node_set_nodes
 list of nodes that belongs to a specified nodeset: indexing [nodeset_id] -> [array of node ids] More...
 
std::set< unsigned int_ghosted_boundaries
 
std::vector< Real_ghosted_boundaries_inflation
 
unsigned int _patch_size
 The number of nodes to consider in the NearestNode neighborhood. More...
 
unsigned int _ghosting_patch_size
 The number of nearest neighbors to consider for ghosting purposes when iteration patch update strategy is used. More...
 
unsigned int _max_leaf_size
 
Moose::PatchUpdateType _patch_update_strategy
 The patch update strategy. More...
 
std::vector< Node * > _node_map
 Vector of all the Nodes in the mesh for determining when to add a new point. More...
 
bool _regular_orthogonal_mesh
 Boolean indicating whether this mesh was detected to be regular and orthogonal. More...
 
std::vector< std::vector< Real > > _bounds
 The bounds in each dimension of the mesh for regular orthogonal meshes. More...
 
std::vector< std::pair< BoundaryID, BoundaryID > > _paired_boundary
 A vector holding the paired boundaries for a regular orthogonal mesh. More...
 
const bool _is_split
 Whether or not we are using a (pre-)split mesh (automatically DistributedMesh) More...
 
const bool & _enabled
 Reference to the "enable" InputParameters, used by Controls for toggling on/off MooseObjects. More...
 
MooseApp_app
 The MOOSE application this is associated with. More...
 
const std::string _type
 The type of this class. More...
 
const std::string _name
 The name of this class. More...
 
const InputParameters_pars
 Parameters of this object, references the InputParameters stored in the InputParametersWarehouse. More...
 
Factory_factory
 The Factory associated with the MooseApp. More...
 
ActionFactory_action_factory
 Builds Actions. More...
 
const Parallel::Communicator_communicator
 
MooseApp_restartable_app
 Reference to the application. More...
 
const std::string _restartable_system_name
 The system name this object is in. More...
 
const THREAD_ID _restartable_tid
 The thread ID for this object. More...
 
const bool _restartable_read_only
 Flag for toggling read only status (see ReporterData) More...
 
MooseApp_pg_moose_app
 The MooseApp that owns the PerfGraph. More...
 
const std::string _prefix
 A prefix to use for all sections. More...
 
std::set< BoundaryID_mesh_boundary_ids
 A set of boundary IDs currently present in the mesh. More...
 
std::set< BoundaryID_mesh_sideset_ids
 
std::set< BoundaryID_mesh_nodeset_ids
 

Detailed Description

Reads one or more 2D mesh files and stitches them together based on a provided two-dimensional pattern array.

Assigns new boundary ids/names to the left, right, top, and bottom boundaries as specified by user. The boundary nodes of the read in meshes must match up relative to the stitching pattern specified by the user – no new nodes are added in order to generate a conforming grid, and non-conforming grids (with nodes in the middle of edges) are not allowed.

Definition at line 29 of file PatternedMesh.h.

Member Typedef Documentation

◆ bnd_elem_iterator_imp

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

Definition at line 1541 of file MooseMesh.h.

◆ bnd_node_iterator_imp

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

Definition at line 1534 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 1542 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 1535 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 1074 of file MooseMesh.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited

Convenience enums.

Enumerator

Definition at line 1444 of file MooseMesh.h.

1445  {
1446  X = 0,
1447  Y,
1448  Z
1449  };

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
MIN 
MAX 

Definition at line 1450 of file MooseMesh.h.

1451  {
1452  MIN = 0,
1453  MAX
1454  };

◆ ParallelType

enum MooseMesh::ParallelType
stronginherited
Enumerator
DEFAULT 
REPLICATED 
DISTRIBUTED 

Definition at line 104 of file MooseMesh.h.

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

Constructor & Destructor Documentation

◆ PatternedMesh() [1/2]

PatternedMesh::PatternedMesh ( const InputParameters parameters)

Definition at line 56 of file PatternedMesh.C.

58  _files(getParam<std::vector<MeshFileName>>("files")),
59  _pattern(getParam<std::vector<std::vector<unsigned int>>>("pattern")),
60  _x_width(getParam<Real>("x_width")),
61  _y_width(getParam<Real>("y_width")),
62  _z_width(getParam<Real>("z_width"))
63 {
64  // The PatternedMesh class only works with ReplicatedMesh
65  errorIfDistributedMesh("PatternedMesh");
66 
67  _meshes.reserve(_files.size());
68 }
std::vector< std::unique_ptr< ReplicatedMesh > > _meshes
Definition: PatternedMesh.h:53
const Real _y_width
Definition: PatternedMesh.h:59
MooseMesh()=delete
const Real _z_width
Definition: PatternedMesh.h:60
const std::vector< MeshFileName > & _files
Definition: PatternedMesh.h:44
void errorIfDistributedMesh(std::string name) const
Generate a unified error message if the underlying libMesh mesh is a DistributedMesh.
Definition: MooseMesh.C:3615
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
const Real _x_width
Definition: PatternedMesh.h:58
const std::vector< std::vector< unsigned int > > & _pattern
Definition: PatternedMesh.h:47
const InputParameters & parameters() const
Get the parameters of the object.

◆ PatternedMesh() [2/2]

PatternedMesh::PatternedMesh ( const PatternedMesh other_mesh)

Definition at line 70 of file PatternedMesh.C.

71  : MooseMesh(other_mesh),
72  _files(other_mesh._files),
73  _pattern(other_mesh._pattern),
74  _x_width(other_mesh._x_width),
75  _y_width(other_mesh._y_width),
76  _z_width(other_mesh._z_width)
77 {
78 }
const Real _y_width
Definition: PatternedMesh.h:59
MooseMesh()=delete
const Real _z_width
Definition: PatternedMesh.h:60
const std::vector< MeshFileName > & _files
Definition: PatternedMesh.h:44
const Real _x_width
Definition: PatternedMesh.h:58
const std::vector< std::vector< unsigned int > > & _pattern
Definition: PatternedMesh.h:47

◆ ~PatternedMesh()

virtual PatternedMesh::~PatternedMesh ( )
virtualdefault

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

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

3050 {
3051  return getMesh().active_local_elements_begin();
3052 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ activeLocalElementsBegin() [2/2]

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

Definition at line 3061 of file MooseMesh.C.

3062 {
3063  return getMesh().active_local_elements_begin();
3064 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ activeLocalElementsEnd() [1/2]

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

Definition at line 3055 of file MooseMesh.C.

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

3056 {
3057  return getMesh().active_local_elements_end();
3058 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ activeLocalElementsEnd() [2/2]

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

Definition at line 3067 of file MooseMesh.C.

3068 {
3069  return getMesh().active_local_elements_end();
3070 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ addGhostedBoundary()

void MooseMesh::addGhostedBoundary ( BoundaryID  boundary_id)
inherited

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

Definition at line 3227 of file MooseMesh.C.

Referenced by FEProblemBase::addGhostedBoundary().

3228 {
3229  _ghosted_boundaries.insert(boundary_id);
3230 }
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1558

◆ addPeriodicVariable()

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

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

Definition at line 2215 of file MooseMesh.C.

Referenced by AddPeriodicBCAction::setPeriodicVars().

2216 {
2218  return;
2219 
2220  _periodic_dim[var_num].resize(dimension());
2221 
2222  _half_range = Point(dimensionWidth(0) / 2.0, dimensionWidth(1) / 2.0, dimensionWidth(2) / 2.0);
2223 
2224  bool component_found = false;
2225  for (unsigned int component = 0; component < dimension(); ++component)
2226  {
2227  const std::pair<BoundaryID, BoundaryID> * boundary_ids = getPairedBoundaryMapping(component);
2228 
2229  if (boundary_ids != nullptr &&
2230  ((boundary_ids->first == primary && boundary_ids->second == secondary) ||
2231  (boundary_ids->first == secondary && boundary_ids->second == primary)))
2232  {
2233  _periodic_dim[var_num][component] = true;
2234  component_found = true;
2235  }
2236  }
2237  if (!component_found)
2238  mooseWarning("Could not find a match between boundary '",
2239  getBoundaryName(primary),
2240  "' and '",
2241  getBoundaryName(secondary),
2242  "' to set periodic boundary conditions for variable (index:",
2243  var_num,
2244  ") in either the X, Y or Z direction. The periodic dimension of the mesh for this "
2245  "variable will not be stored.");
2246 }
RealVectorValue _half_range
A convenience vector used to hold values in each dimension representing half of the range...
Definition: MooseMesh.h:1631
const std::string & getBoundaryName(BoundaryID boundary_id)
Return the name of the boundary given the id.
Definition: MooseMesh.C:1790
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2926
const std::pair< BoundaryID, BoundaryID > * getPairedBoundaryMapping(unsigned int component)
This function attempts to return the paired boundary ids for the given component. ...
Definition: MooseMesh.C:2291
Real dimensionWidth(unsigned int component) const
Returns the width of the requested dimension.
Definition: MooseMesh.C:2191
std::map< unsigned int, std::vector< bool > > _periodic_dim
A map of vectors indicating which dimensions are periodic in a regular orthogonal mesh for the specif...
Definition: MooseMesh.h:1626
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1577

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

Referenced by GeometricSearchData::generateQuadratureNodes().

1613 {
1614  Node * qnode;
1615 
1616  if (_elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].find(qp) ==
1618  {
1619  // Create a new node id starting from the max node id and counting down. This will be the least
1620  // likely to collide with an existing node id.
1621  // Note that we are using numeric_limits<unsigned>::max even
1622  // though max_id is stored as a dof_id_type. I tried this with
1623  // numeric_limits<dof_id_type>::max and it broke several tests in
1624  // MOOSE. So, this is some kind of a magic number that we will
1625  // just continue to use...
1627  dof_id_type new_id = max_id - _quadrature_nodes.size();
1628 
1629  if (new_id <= getMesh().max_node_id())
1630  mooseError("Quadrature node id collides with existing node id!");
1631 
1632  qnode = new Node(point, new_id);
1633 
1634  // Keep track of this new node in two different ways for easy lookup
1635  _quadrature_nodes[new_id] = qnode;
1636  _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp] = qnode;
1637 
1638  if (elem->active())
1639  {
1640  _node_to_elem_map[new_id].push_back(elem->id());
1641  _node_to_active_semilocal_elem_map[new_id].push_back(elem->id());
1642  }
1643  }
1644  else
1645  qnode = _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp];
1646 
1647  BndNode * bnode = new BndNode(qnode, bid);
1648  _bnd_nodes.push_back(bnode);
1649  _bnd_node_ids[bid].insert(qnode->id());
1650 
1651  _extra_bnd_nodes.push_back(*bnode);
1652 
1653  // Do this so the range will be regenerated next time it is accessed
1654  _bnd_node_range.reset();
1655 
1656  return qnode;
1657 }
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1547
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
A map of all of the current nodes to the elements that they are connected to.
Definition: MooseMesh.h:1505
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:1537
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:3446
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1533
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1550
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:1549
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
bool active() const
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
A map of all of the current nodes to the active elements that they are connected to.
Definition: MooseMesh.h:1509
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1500
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 1574 of file MooseMesh.C.

1575 {
1580  if (getMesh().n_nodes() != _node_map.size())
1581  {
1582  _node_map.clear();
1583  _node_map.reserve(getMesh().n_nodes());
1584  for (const auto & node : getMesh().node_ptr_range())
1585  _node_map.push_back(node);
1586  }
1587 
1588  Node * node = nullptr;
1589  for (unsigned int i = 0; i < _node_map.size(); ++i)
1590  {
1591  if (p.relative_fuzzy_equals(*_node_map[i], tol))
1592  {
1593  node = _node_map[i];
1594  break;
1595  }
1596  }
1597  if (node == nullptr)
1598  {
1599  node = getMesh().add_node(new Node(p));
1600  _node_map.push_back(node);
1601  }
1602 
1603  mooseAssert(node != nullptr, "Node is NULL");
1604  return node;
1605 }
const dof_id_type n_nodes
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
std::vector< Node * > _node_map
Vector of all the Nodes in the mesh for determining when to add a new point.
Definition: MooseMesh.h:1574
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:818
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 2179 of file MooseMesh.h.

2180 {
2181  return _all_face_info;
2182 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1604

◆ allowRecovery()

void MooseMesh::allowRecovery ( bool  allow)
inlineinherited

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

Definition at line 1031 of file MooseMesh.h.

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

◆ allowRemoteElementRemoval() [1/2]

void MooseMesh::allowRemoteElementRemoval ( bool  allow_removal)
inherited

Set whether to allow remote element removal.

Definition at line 3913 of file MooseMesh.C.

3914 {
3915  _allow_remote_element_removal = allow_remote_element_removal;
3916  if (_mesh)
3917  _mesh->allow_remote_element_removal(allow_remote_element_removal);
3918 
3919  if (!allow_remote_element_removal)
3920  // If we're not allowing remote element removal now, then we will need deletion later after
3921  // late geoemetric ghosting functors have been added (late geometric ghosting functor addition
3922  // happens when algebraic ghosting functors are added)
3923  _need_delete = true;
3924 }
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1828
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433
bool _need_delete
Whether we need to delete remote elements after init&#39;ing the EquationSystems.
Definition: MooseMesh.h:1825

◆ allowRemoteElementRemoval() [2/2]

bool MooseMesh::allowRemoteElementRemoval ( ) const
inlineinherited

Whether we are allow remote element removal.

Definition at line 1094 of file MooseMesh.h.

Referenced by MooseMesh::MooseMesh().

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

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

2166 {
2167  auto id1 = getElementIDIndex(id_name1);
2168  auto id2 = getElementIDIndex(id_name2);
2169  return _id_identical_flag[id1][id2];
2170 }
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:1846
unsigned int getElementIDIndex(const std::string &id_name) const
Return the accessing integer for an extra element integer with its name.
Definition: MooseMesh.h:2157

◆ bndElemsBegin()

MooseMesh::bnd_elem_iterator MooseMesh::bndElemsBegin ( )
virtualinherited

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

Definition at line 1559 of file MooseMesh.C.

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

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

◆ bndElemsEnd()

MooseMesh::bnd_elem_iterator MooseMesh::bndElemsEnd ( )
virtualinherited

Definition at line 1567 of file MooseMesh.C.

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

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

◆ bndNodesBegin()

MooseMesh::bnd_node_iterator MooseMesh::bndNodesBegin ( )
virtualinherited

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

Definition at line 1543 of file MooseMesh.C.

Referenced by MooseMesh::getBoundaryNodeRange().

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

◆ bndNodesEnd()

MooseMesh::bnd_node_iterator MooseMesh::bndNodesEnd ( )
virtualinherited

Definition at line 1551 of file MooseMesh.C.

Referenced by MooseMesh::getBoundaryNodeRange().

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

◆ boundaryLowerDBlocks()

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

Definition at line 1407 of file MooseMesh.h.

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

1407 { 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:1808

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

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

3014 {
3016 }
void build_active_side_list(std::vector< dof_id_type > &element_id_list, std::vector< unsigned short int > &side_list, std::vector< boundary_id_type > &bc_id_list) const
const BoundaryInfo & get_boundary_info() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ buildBndElemList()

void MooseMesh::buildBndElemList ( )
inherited

Definition at line 1153 of file MooseMesh.C.

Referenced by MooseMesh::update().

1154 {
1155  TIME_SECTION("buildBndElemList", 5, "Building Boundary Elements List");
1156 
1157  freeBndElems();
1158 
1159  auto bc_tuples = getMesh().get_boundary_info().build_active_side_list();
1160 
1161  int n = bc_tuples.size();
1162  _bnd_elems.clear();
1163  _bnd_elems.reserve(n);
1164  for (const auto & t : bc_tuples)
1165  {
1166  auto elem_id = std::get<0>(t);
1167  auto side_id = std::get<1>(t);
1168  auto bc_id = std::get<2>(t);
1169 
1170  _bnd_elems.push_back(new BndElement(getMesh().elem_ptr(elem_id), side_id, bc_id));
1171  _bnd_elem_ids[bc_id].insert(elem_id);
1172  }
1173 }
void freeBndElems()
Definition: MooseMesh.C:394
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:1545
const boundary_id_type side_id
void build_active_side_list(std::vector< dof_id_type > &element_id_list, std::vector< unsigned short int > &side_list, std::vector< boundary_id_type > &bc_id_list) const
const BoundaryInfo & get_boundary_info() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1540

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

Referenced by MooseMesh::setupFiniteVolumeMeshData().

3738 {
3739  mooseAssert(!Threads::in_threads,
3740  "This routine has not been implemented for threads. Please query this routine before "
3741  "a threaded region or contact a MOOSE developer to discuss.");
3742  _finite_volume_info_dirty = false;
3743 
3744  using Keytype = std::pair<const Elem *, unsigned short int>;
3745 
3746  // create a map from elem/side --> boundary ids
3747  std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>> side_list =
3749  std::map<Keytype, std::set<boundary_id_type>> side_map;
3750  for (auto & [elem_id, side, bc_id] : side_list)
3751  {
3752  const Elem * elem = _mesh->elem_ptr(elem_id);
3753  Keytype key(elem, side);
3754  auto & bc_set = side_map[key];
3755  bc_set.insert(bc_id);
3756  }
3757 
3758  _face_info.clear();
3759  _all_face_info.clear();
3760  _elem_side_to_face_info.clear();
3761 
3762  _elem_to_elem_info.clear();
3763  _elem_info.clear();
3764 
3765  // by performing the element ID comparison check in the below loop, we are ensuring that we never
3766  // double count face contributions. If a face lies along a process boundary, the only process that
3767  // will contribute to both sides of the face residuals/Jacobians will be the process that owns the
3768  // element with the lower ID.
3769  auto begin = getMesh().active_elements_begin();
3770  auto end = getMesh().active_elements_end();
3771 
3772  // We prepare a map connecting the Elem* and the corresponding ElemInfo
3773  // for the active elements.
3774  for (const Elem * elem : as_range(begin, end))
3775  _elem_to_elem_info.emplace(elem->id(), elem);
3776 
3777  dof_id_type face_index = 0;
3778  for (const Elem * elem : as_range(begin, end))
3779  {
3780  for (unsigned int side = 0; side < elem->n_sides(); ++side)
3781  {
3782  // get the neighbor element
3783  const Elem * neighbor = elem->neighbor_ptr(side);
3784 
3785  // Check if the FaceInfo shall belong to the element. If yes,
3786  // create and initialize the FaceInfo. We need this to ensure that
3787  // we do not duplicate FaceInfo-s.
3788  if (Moose::FV::elemHasFaceInfo(*elem, neighbor))
3789  {
3790  mooseAssert(!neighbor || (neighbor->level() < elem->level() ? neighbor->active() : true),
3791  "If the neighbor is coarser than the element, we expect that the neighbor must "
3792  "be active.");
3793 
3794  // We construct the faceInfo using the elementinfo and side index
3795  _all_face_info.emplace_back(&_elem_to_elem_info[elem->id()], side, face_index++);
3796 
3797  auto & fi = _all_face_info.back();
3798 
3799  // get all the sidesets that this face is contained in and cache them
3800  // in the face info.
3801  std::set<boundary_id_type> & boundary_ids = fi.boundaryIDs();
3802  boundary_ids.clear();
3803 
3804  // We initialize the weights/other information in faceInfo. If the neighbor does not exist
3805  // or is remote (so when we are on some sort of mesh boundary), we initialize the ghost
3806  // cell and use it to compute the weights corresponding to the faceInfo.
3807  if (!neighbor || neighbor == libMesh::remote_elem)
3808  fi.computeBoundaryCoefficients();
3809  else
3810  fi.computeInternalCoefficients(&_elem_to_elem_info[neighbor->id()]);
3811 
3812  auto lit = side_map.find(Keytype(&fi.elem(), fi.elemSideID()));
3813  if (lit != side_map.end())
3814  boundary_ids.insert(lit->second.begin(), lit->second.end());
3815 
3816  if (fi.neighborPtr())
3817  {
3818  auto rit = side_map.find(Keytype(fi.neighborPtr(), fi.neighborSideID()));
3819  if (rit != side_map.end())
3820  boundary_ids.insert(rit->second.begin(), rit->second.end());
3821  }
3822  }
3823  }
3824  }
3825 
3826  // Build the local face info and elem_side to face info maps. We need to do this after
3827  // _all_face_info is finished being constructed because emplace_back invalidates all iterators and
3828  // references if ever the new size exceeds capacity
3829  for (auto & fi : _all_face_info)
3830  {
3831  const Elem * const elem = &fi.elem();
3832  const auto side = fi.elemSideID();
3833 
3834 #ifndef NDEBUG
3835  auto pair_it =
3836 #endif
3837  _elem_side_to_face_info.emplace(std::make_pair(elem, side), &fi);
3838  mooseAssert(pair_it.second, "We should be adding unique FaceInfo objects.");
3839 
3840  // We will add the faces on processor boundaries to the list of face infos on each
3841  // associated processor.
3842  if (fi.elem().processor_id() == this->processor_id() ||
3843  (fi.neighborPtr() && (fi.neighborPtr()->processor_id() == this->processor_id())))
3844  _face_info.push_back(&fi);
3845  }
3846 
3847  for (auto & ei : _elem_to_elem_info)
3848  if (ei.second.elem()->processor_id() == this->processor_id())
3849  _elem_info.push_back(&ei.second);
3850 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1604
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:1608
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:1615
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > buildActiveSideList() const
Calls BoundaryInfo::build_active_side_list.
Definition: MooseMesh.C:3013
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:1600
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:1612
dof_id_type id() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
std::unordered_map< dof_id_type, ElemInfo > _elem_to_elem_info
Map connecting elems with their corresponding ElemInfo, we use the element ID as the key...
Definition: MooseMesh.h:1596
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:1433
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
processor_id_type processor_id() const
bool active() const
uint8_t dof_id_type
const RemoteElem * remote_elem

◆ buildMesh()

void PatternedMesh::buildMesh ( )
overridevirtual

Must be overridden by child classes.

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

Implements MooseMesh.

Definition at line 87 of file PatternedMesh.C.

88 {
89  // Read in all of the meshes
90  for (MooseIndex(_files) i = 0; i < _files.size(); ++i)
91  {
92  _meshes.emplace_back(std::make_unique<ReplicatedMesh>(_communicator));
93  auto & mesh = _meshes.back();
94 
95  mesh->read(_files[i]);
96  }
97 
98  // Create a mesh for all n-1 rows, the first row is the original mesh
99  _row_meshes.reserve(_pattern.size() - 1);
100  for (MooseIndex(_pattern) i = 0; i < _pattern.size() - 1; ++i)
101  _row_meshes.emplace_back(std::make_unique<ReplicatedMesh>(_communicator));
102 
103  // Local pointers to simplify algorithm
104  std::vector<ReplicatedMesh *> row_meshes;
105  row_meshes.reserve(_pattern.size());
106  // First row is the original mesh
107  row_meshes.push_back(static_cast<ReplicatedMesh *>(&getMesh()));
108  // Copy the remaining raw pointers into the local vector
109  for (const auto & row_mesh : _row_meshes)
110  row_meshes.push_back(row_mesh.get());
111 
112  BoundaryID left = getBoundaryID(getParam<BoundaryName>("left_boundary"));
113  BoundaryID right = getBoundaryID(getParam<BoundaryName>("right_boundary"));
114  BoundaryID top = getBoundaryID(getParam<BoundaryName>("top_boundary"));
115  BoundaryID bottom = getBoundaryID(getParam<BoundaryName>("bottom_boundary"));
116 
117  // Build each row mesh
118  for (MooseIndex(_pattern) i = 0; i < _pattern.size(); ++i)
119  for (MooseIndex(_pattern) j = 0; j < _pattern[i].size(); ++j)
120  {
121  Real deltax = j * _x_width, deltay = i * _y_width;
122 
123  // If this is the first cell of the row initialize the row mesh
124  if (j == 0)
125  {
126  row_meshes[i]->read(_files[_pattern[i][j]]);
127 
128  MeshTools::Modification::translate(*row_meshes[i], deltax, -deltay, 0);
129 
130  continue;
131  }
132 
133  ReplicatedMesh & cell_mesh = *_meshes[_pattern[i][j]];
134 
135  // Move the mesh into the right spot. -i because we are starting at the top
136  MeshTools::Modification::translate(cell_mesh, deltax, -deltay, 0);
137 
138  row_meshes[i]->stitch_meshes(dynamic_cast<ReplicatedMesh &>(cell_mesh),
139  right,
140  left,
141  TOLERANCE,
142  /*clear_stitched_boundary_ids=*/true);
143 
144  // Undo the translation
145  MeshTools::Modification::translate(cell_mesh, -deltax, deltay, 0);
146  }
147 
148  // Now stitch together the rows
149  // We're going to stitch them all to row 0 (which is the real mesh)
150  for (MooseIndex(_pattern) i = 1; i < _pattern.size(); i++)
151  row_meshes[0]->stitch_meshes(
152  *row_meshes[i], bottom, top, TOLERANCE, /*clear_stitched_boundary_ids=*/true);
153 }
std::vector< std::unique_ptr< ReplicatedMesh > > _meshes
Definition: PatternedMesh.h:53
const Real _y_width
Definition: PatternedMesh.h:59
MeshBase & mesh
const Parallel::Communicator & _communicator
const std::vector< MeshFileName > & _files
Definition: PatternedMesh.h:44
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
boundary_id_type BoundaryID
const Real _x_width
Definition: PatternedMesh.h:58
const std::vector< std::vector< unsigned int > > & _pattern
Definition: PatternedMesh.h:47
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< std::unique_ptr< ReplicatedMesh > > _row_meshes
Definition: PatternedMesh.h:56
BoundaryID getBoundaryID(const BoundaryName &boundary_name) const
Get the associated BoundaryID for the boundary name.
Definition: MooseMesh.C:1690

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

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

2855 {
2856  std::unique_ptr<MeshBase> mesh;
2858  mesh = buildTypedMesh<DistributedMesh>(dim);
2859  else
2860  mesh = buildTypedMesh<ReplicatedMesh>(dim);
2861 
2862  return mesh;
2863 }
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:154
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1428

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

Referenced by MooseMesh::update().

1024 {
1025  TIME_SECTION("buildNodeList", 5, "Building Node List");
1026 
1027  freeBndNodes();
1028 
1029  auto bc_tuples = getMesh().get_boundary_info().build_node_list();
1030 
1031  int n = bc_tuples.size();
1032  _bnd_nodes.clear();
1033  _bnd_nodes.reserve(n);
1034  for (const auto & t : bc_tuples)
1035  {
1036  auto node_id = std::get<0>(t);
1037  auto bc_id = std::get<1>(t);
1038 
1039  _bnd_nodes.push_back(new BndNode(getMesh().node_ptr(node_id), bc_id));
1040  _node_set_nodes[bc_id].push_back(node_id);
1041  _bnd_node_ids[bc_id].insert(node_id);
1042  }
1043 
1044  _bnd_nodes.reserve(_bnd_nodes.size() + _extra_bnd_nodes.size());
1045  for (unsigned int i = 0; i < _extra_bnd_nodes.size(); i++)
1046  {
1047  BndNode * bnode = new BndNode(_extra_bnd_nodes[i]._node, _extra_bnd_nodes[i]._bnd_id);
1048  _bnd_nodes.push_back(bnode);
1049  _bnd_node_ids[std::get<1>(bc_tuples[i])].insert(_extra_bnd_nodes[i]._node->id());
1050  }
1051 
1052  // This sort is here so that boundary conditions are always applied in the same order
1053  std::sort(_bnd_nodes.begin(), _bnd_nodes.end(), BndNodeCompare());
1054 }
Helper class for sorting Boundary Nodes so that we always get the same order of application for bound...
Definition: MooseMesh.C:999
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:1537
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:1556
const BoundaryInfo & get_boundary_info() const
void build_node_list(std::vector< dof_id_type > &node_id_list, std::vector< boundary_id_type > &bc_id_list) const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1533
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1550
void freeBndNodes()
Definition: MooseMesh.C:376

◆ buildNodeListFromSideList()

void MooseMesh::buildNodeListFromSideList ( )
inherited

Calls BoundaryInfo::build_node_list_from_side_list().

Definition at line 2981 of file MooseMesh.C.

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

2982 {
2985 }
void build_node_list_from_side_list()
const BoundaryInfo & get_boundary_info() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
bool _construct_node_list_from_side_list
Whether or not to allow generation of nodesets from sidesets.
Definition: MooseMesh.h:1822

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

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

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

◆ buildPRefinementAndCoarseningMaps()

void MooseMesh::buildPRefinementAndCoarseningMaps ( Assembly assembly)
inherited

Definition at line 2366 of file MooseMesh.C.

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

2367 {
2372 
2373  std::map<ElemType, std::pair<Elem *, unsigned int>> elems_and_max_p_level;
2374 
2375  for (const auto & elem : getMesh().active_element_ptr_range())
2376  {
2377  const auto type = elem->type();
2378  auto & [picked_elem, max_p_level] = elems_and_max_p_level[type];
2379  if (!picked_elem)
2380  picked_elem = elem;
2381  max_p_level = std::max(max_p_level, elem->p_level());
2382  }
2383 
2384  // The only requirement on the FEType is that it can be arbitrarily p-refined
2385  const FEType p_refinable_fe_type(CONSTANT, libMesh::MONOMIAL);
2386  std::vector<Point> volume_ref_points_coarse, volume_ref_points_fine, face_ref_points_coarse,
2387  face_ref_points_fine;
2388  std::vector<unsigned int> p_levels;
2389 
2390  for (auto & [elem_type, elem_p_level_pair] : elems_and_max_p_level)
2391  {
2392  auto & [moose_elem, max_p_level] = elem_p_level_pair;
2393  const auto dim = moose_elem->dim();
2394  // Need to do this just once to get the right qrules put in place
2395  assembly->setCurrentSubdomainID(moose_elem->subdomain_id());
2396  assembly->reinit(moose_elem);
2397  assembly->reinit(moose_elem, 0);
2398  auto & qrule = assembly->writeableQRule();
2399  auto & qrule_face = assembly->writeableQRuleFace();
2400 
2401  libMesh::Parallel::Communicator self_comm{};
2402  ReplicatedMesh mesh(self_comm);
2404  for (const auto & nd : moose_elem->node_ref_range())
2405  mesh.add_point(nd);
2406 
2407  Elem * const elem = mesh.add_elem(Elem::build(elem_type).release());
2408  for (const auto i : elem->node_index_range())
2409  elem->set_node(i, mesh.node_ptr(i));
2410 
2411  std::unique_ptr<FEBase> fe_face(FEBase::build(dim, p_refinable_fe_type));
2412  fe_face->get_phi();
2413  const auto & face_phys_points = fe_face->get_xyz();
2414  fe_face->attach_quadrature_rule(qrule_face);
2415 
2416  qrule->init(*elem);
2417  volume_ref_points_coarse = qrule->get_points();
2418  fe_face->reinit(elem, (unsigned int)0);
2419  libMesh::FEMap::inverse_map(dim, elem, face_phys_points, face_ref_points_coarse);
2420 
2421  p_levels.resize(max_p_level + 1);
2422  std::iota(p_levels.begin(), p_levels.end(), 0);
2423  libMesh::MeshRefinement mesh_refinement(mesh);
2424 
2425  for (const auto p_level : p_levels)
2426  {
2427  mesh_refinement.uniformly_p_refine(1);
2428  qrule->init(*elem);
2429  volume_ref_points_fine = qrule->get_points();
2430  fe_face->reinit(elem, (unsigned int)0);
2431  libMesh::FEMap::inverse_map(dim, elem, face_phys_points, face_ref_points_fine);
2432 
2433  const auto map_key = std::make_pair(elem_type, p_level);
2434  auto & volume_refine_map = _elem_type_to_p_refinement_map[map_key];
2435  auto & face_refine_map = _elem_type_to_p_refinement_side_map[map_key];
2436  auto & volume_coarsen_map = _elem_type_to_p_coarsening_map[map_key];
2437  auto & face_coarsen_map = _elem_type_to_p_coarsening_side_map[map_key];
2438 
2439  auto fill_maps = [this](const auto & coarse_ref_points,
2440  const auto & fine_ref_points,
2441  auto & coarsen_map,
2442  auto & refine_map)
2443  {
2444  mapPoints(fine_ref_points, coarse_ref_points, refine_map);
2445  mapPoints(coarse_ref_points, fine_ref_points, coarsen_map);
2446  };
2447 
2448  fill_maps(
2449  volume_ref_points_coarse, volume_ref_points_fine, volume_coarsen_map, volume_refine_map);
2450  fill_maps(face_ref_points_coarse, face_ref_points_fine, face_coarsen_map, face_refine_map);
2451 
2452  // With this level's maps filled our fine points now become our coarse points
2453  volume_ref_points_fine.swap(volume_ref_points_coarse);
2454  face_ref_points_fine.swap(face_ref_points_coarse);
2455  }
2456  }
2457 }
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:224
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:154
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:1784
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:2588
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
virtual Elem * add_elem(Elem *e)=0
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:51
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_side_map
Definition: MooseMesh.h:1758
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_map
Definition: MooseMesh.h:1782
void set_mesh_dimension(unsigned char d)
void setCurrentSubdomainID(SubdomainID i)
set the current subdomain ID
Definition: Assembly.h:385
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_map
Definition: MooseMesh.h:1756
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:3097
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:300

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

Referenced by FEProblemBase::initialSetup().

2461 {
2462  TIME_SECTION("buildRefinementAndCoarseningMaps", 5, "Building Refinement And Coarsening Maps");
2463  if (doingPRefinement())
2465  else
2467 }
void buildHRefinementAndCoarseningMaps(Assembly *assembly)
Definition: MooseMesh.C:2309
bool doingPRefinement() const
Query whether we have p-refinement.
Definition: MooseMesh.h:1352
void buildPRefinementAndCoarseningMaps(Assembly *assembly)
Definition: MooseMesh.C:2366

◆ buildSideList() [1/2]

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

Calls BoundaryInfo::build_side_list().

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

Definition at line 2988 of file MooseMesh.C.

Referenced by InterfaceQpUserObjectBase::initialSetup().

2991 {
2992 #ifdef LIBMESH_ENABLE_DEPRECATED
2993  mooseDeprecated("The version of MooseMesh::buildSideList() taking three arguments is "
2994  "deprecated, call the version that returns a vector of tuples instead.");
2995  getMesh().get_boundary_info().build_side_list(el, sl, il);
2996 #else
2997  libmesh_ignore(el);
2998  libmesh_ignore(sl);
2999  libmesh_ignore(il);
3000  mooseError("The version of MooseMesh::buildSideList() taking three "
3001  "arguments is not available in your version of libmesh, call the "
3002  "version that returns a vector of tuples instead.");
3003 #endif
3004 }
void mooseDeprecated(Args &&... args) const
const BoundaryInfo & get_boundary_info() const
void build_side_list(std::vector< dof_id_type > &element_id_list, std::vector< unsigned short int > &side_list, std::vector< boundary_id_type > &bc_id_list) const
void libmesh_ignore(const Args &...)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ buildSideList() [2/2]

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

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

Definition at line 3007 of file MooseMesh.C.

3008 {
3010 }
const BoundaryInfo & get_boundary_info() const
void build_side_list(std::vector< dof_id_type > &element_id_list, std::vector< unsigned short int > &side_list, std::vector< boundary_id_type > &bc_id_list) const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

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

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

2091 {
2092  // If the requested mesh type to build doesn't match our current value for _use_distributed_mesh,
2093  // then we need to make sure to make our state consistent because other objects, like the periodic
2094  // boundary condition action, will be querying isDistributedMesh()
2095  if (_use_distributed_mesh != std::is_same<T, libMesh::DistributedMesh>::value)
2096  {
2097  if (getMeshPtr())
2098  mooseError("A MooseMesh object is being asked to build a libMesh mesh that is a different "
2099  "parallel type than the libMesh mesh that it wraps. This is not allowed. Please "
2100  "create another MooseMesh object to wrap the new libMesh mesh");
2101  setParallelType(MeshType<T>::value);
2102  }
2103 
2104  if (dim == libMesh::invalid_uint)
2105  {
2106  if (isParamValid("dim"))
2107  dim = getParam<MooseEnum>("dim");
2108  else
2109  // Legacy selection of the default for the 'dim' parameter
2110  dim = 1;
2111  }
2112 
2113  auto mesh = std::make_unique<T>(_communicator, dim);
2114 
2115  if (!getParam<bool>("allow_renumbering"))
2116  mesh->allow_renumbering(false);
2117 
2118  mesh->allow_remote_element_removal(_allow_remote_element_removal);
2119  _app.attachRelationshipManagers(*mesh, *this);
2120 
2122  {
2123  // Check of partitioner is supplied (not allowed if custom partitioner is used)
2124  if (!parameters().isParamSetByAddParam("partitioner"))
2125  mooseError("If partitioner block is provided, partitioner keyword cannot be used!");
2126  // Set custom partitioner
2127  if (!_custom_partitioner.get())
2128  mooseError("Custom partitioner requested but not set!");
2129  mesh->partitioner() = _custom_partitioner->clone();
2130  }
2131  else
2132  setPartitionerHelper(mesh.get());
2133 
2134  return mesh;
2135 }
const unsigned int invalid_uint
void setParallelType(ParallelType parallel_type)
Allow to change parallel type.
Definition: MooseMesh.h:2144
bool _custom_partitioner_requested
Definition: MooseMesh.h:1441
MeshBase & mesh
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:154
const Parallel::Communicator & _communicator
void setPartitionerHelper(MeshBase *mesh=nullptr)
Definition: MooseMesh.C:3626
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
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:3231
const MeshBase * getMeshPtr() const
Definition: MooseMesh.C:3440
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1428
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1828
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const InputParameters & parameters() const
Get the parameters of the object.
std::unique_ptr< libMesh::Partitioner > _custom_partitioner
The custom partitioner.
Definition: MooseMesh.h:1440

◆ cacheChangedLists()

void MooseMesh::cacheChangedLists ( )
inherited

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

Definition at line 911 of file MooseMesh.C.

Referenced by FEProblemBase::meshChanged().

912 {
913  TIME_SECTION("cacheChangedLists", 5, "Caching Changed Lists");
914 
915  ConstElemRange elem_range(getMesh().local_elements_begin(), getMesh().local_elements_end(), 1);
916  CacheChangedListsThread cclt(*this);
917  Threads::parallel_reduce(elem_range, cclt);
918 
920 
921  _refined_elements = std::make_unique<ConstElemPointerRange>(cclt._refined_elements.begin(),
922  cclt._refined_elements.end());
923  _coarsened_elements = std::make_unique<ConstElemPointerRange>(cclt._coarsened_elements.begin(),
924  cclt._coarsened_elements.end());
925  _coarsened_element_children = cclt._coarsened_element_children;
926 }
void parallel_reduce(const Range &range, Body &body, const Partitioner &)
std::unique_ptr< ConstElemPointerRange > _refined_elements
The elements that were just refined.
Definition: MooseMesh.h:1475
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
std::unique_ptr< ConstElemPointerRange > _coarsened_elements
The elements that were just coarsened.
Definition: MooseMesh.h:1478
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:1485

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

Referenced by MooseMesh::setupFiniteVolumeMeshData().

3940 {
3941  mooseAssert(
3942  !Threads::in_threads,
3943  "Performing writes to faceInfo variable association maps. This must be done unthreaded!");
3944 
3945  const unsigned int num_eqs = _app.feProblem().es().n_systems();
3946 
3947  auto face_lambda = [this](const SubdomainID elem_subdomain_id,
3948  const SubdomainID neighbor_subdomain_id,
3949  SystemBase & sys,
3950  std::vector<std::vector<FaceInfo::VarFaceNeighbors>> & face_type_vector)
3951  {
3952  face_type_vector[sys.number()].resize(sys.nVariables(), FaceInfo::VarFaceNeighbors::NEITHER);
3953  const auto & variables = sys.getVariables(0);
3954 
3955  for (const auto & var : variables)
3956  {
3957  const unsigned int var_num = var->number();
3958  const unsigned int sys_num = var->sys().number();
3959  std::set<SubdomainID> var_subdomains = var->blockIDs();
3969  bool var_defined_elem = var_subdomains.find(elem_subdomain_id) != var_subdomains.end();
3970  bool var_defined_neighbor =
3971  var_subdomains.find(neighbor_subdomain_id) != var_subdomains.end();
3972  if (var_defined_elem && var_defined_neighbor)
3973  face_type_vector[sys_num][var_num] = FaceInfo::VarFaceNeighbors::BOTH;
3974  else if (!var_defined_elem && !var_defined_neighbor)
3975  face_type_vector[sys_num][var_num] = FaceInfo::VarFaceNeighbors::NEITHER;
3976  else
3977  {
3978  // this is a boundary face for this variable, set elem or neighbor
3979  if (var_defined_elem)
3980  face_type_vector[sys_num][var_num] = FaceInfo::VarFaceNeighbors::ELEM;
3981  else if (var_defined_neighbor)
3982  face_type_vector[sys_num][var_num] = FaceInfo::VarFaceNeighbors::NEIGHBOR;
3983  else
3984  mooseError("Should never get here");
3985  }
3986  }
3987  };
3988 
3989  // We loop through the faces and check if they are internal, boundary or external to
3990  // the variables in the problem
3991  for (FaceInfo & face : _all_face_info)
3992  {
3993  const SubdomainID elem_subdomain_id = face.elemSubdomainID();
3994  const SubdomainID neighbor_subdomain_id = face.neighborSubdomainID();
3995 
3996  auto & face_type_vector = face.faceType();
3997 
3998  face_type_vector.clear();
3999  face_type_vector.resize(num_eqs);
4000 
4001  // First, we check the variables in the solver systems (linear/nonlinear)
4002  for (const auto i : make_range(_app.feProblem().numSolverSystems()))
4003  face_lambda(elem_subdomain_id,
4004  neighbor_subdomain_id,
4006  face_type_vector);
4007 
4008  // Then we check the variables in the auxiliary system
4009  face_lambda(elem_subdomain_id,
4010  neighbor_subdomain_id,
4012  face_type_vector);
4013  }
4014 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1604
unsigned int n_systems() const
Base class for a system (of equations)
Definition: SystemBase.h:84
FEProblemBase & feProblem() const
Definition: MooseApp.C:1970
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition: FaceInfo.h:36
virtual libMesh::EquationSystems & es() override
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
AuxiliarySystem & getAuxiliarySystem()
IntRange< T > make_range(T beg, T end)
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
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 4017 of file MooseMesh.C.

Referenced by MooseMesh::setupFiniteVolumeMeshData().

4018 {
4019  mooseAssert(!Threads::in_threads,
4020  "Performing writes to elemInfo dof indices. This must be done unthreaded!");
4021 
4022  auto elem_lambda = [](const ElemInfo & elem_info,
4023  SystemBase & sys,
4024  std::vector<std::vector<dof_id_type>> & dof_vector)
4025  {
4026  if (sys.nFVVariables())
4027  {
4028  dof_vector[sys.number()].resize(sys.nVariables(), libMesh::DofObject::invalid_id);
4029  const auto & variables = sys.getVariables(0);
4030 
4031  for (const auto & var : variables)
4032  if (var->isFV())
4033  {
4034  const auto & var_subdomains = var->blockIDs();
4035 
4036  // We will only cache for FV variables and if they live on the current subdomain
4037  if (var_subdomains.find(elem_info.subdomain_id()) != var_subdomains.end())
4038  {
4039  std::vector<dof_id_type> indices;
4040  var->dofMap().dof_indices(elem_info.elem(), indices, var->number());
4041  mooseAssert(indices.size() == 1, "We expect to have only one dof per element!");
4042  dof_vector[sys.number()][var->number()] = indices[0];
4043  }
4044  }
4045  }
4046  };
4047 
4048  const unsigned int num_eqs = _app.feProblem().es().n_systems();
4049 
4050  // We loop through the elements in the mesh and cache the dof indices
4051  // for the corresponding variables.
4052  for (auto & ei_pair : _elem_to_elem_info)
4053  {
4054  auto & elem_info = ei_pair.second;
4055  auto & dof_vector = elem_info.dofIndices();
4056 
4057  dof_vector.clear();
4058  dof_vector.resize(num_eqs);
4059 
4060  // First, we cache the dof indices for the variables in the solver systems (linear, nonlinear)
4061  for (const auto i : make_range(_app.feProblem().numSolverSystems()))
4062  elem_lambda(elem_info, _app.feProblem().getSolverSystem(i), dof_vector);
4063 
4064  // Then we cache the dof indices for the auxvariables
4065  elem_lambda(elem_info, _app.feProblem().getAuxiliarySystem(), dof_vector);
4066  }
4067 }
unsigned int n_systems() const
const Elem * elem() const
Definition: ElemInfo.h:34
Base class for a system (of equations)
Definition: SystemBase.h:84
FEProblemBase & feProblem() const
Definition: MooseApp.C:1970
virtual libMesh::EquationSystems & es() override
static const dof_id_type invalid_id
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
AuxiliarySystem & getAuxiliarySystem()
std::unordered_map< dof_id_type, ElemInfo > _elem_to_elem_info
Map connecting elems with their corresponding ElemInfo, we use the element ID as the key...
Definition: MooseMesh.h:1596
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 1405 of file MooseMesh.C.

Referenced by MooseMesh::update().

1406 {
1407  TIME_SECTION("cacheInfo", 3);
1408 
1409  _has_lower_d = false;
1410  _sub_to_data.clear();
1412  _block_node_list.clear();
1415  _lower_d_interior_blocks.clear();
1416  _lower_d_boundary_blocks.clear();
1417 
1418  auto & mesh = getMesh();
1419 
1420  // TODO: Thread this!
1421  for (const auto & elem : mesh.element_ptr_range())
1422  {
1423  const Elem * ip_elem = elem->interior_parent();
1424 
1425  if (ip_elem)
1426  {
1427  if (elem->active())
1428  _sub_to_data[elem->subdomain_id()].is_lower_d = true;
1429  unsigned int ip_side = ip_elem->which_side_am_i(elem);
1430 
1431  // For some grid sequencing tests: ip_side == libMesh::invalid_uint
1432  if (ip_side != libMesh::invalid_uint)
1433  {
1434  auto pair = std::make_pair(ip_elem, ip_side);
1436  std::pair<std::pair<const Elem *, unsigned short int>, const Elem *>(pair, elem));
1438  std::pair<const Elem *, unsigned short int>(elem, ip_side));
1439 
1440  auto id = elem->subdomain_id();
1441  if (ip_elem->neighbor_ptr(ip_side))
1442  {
1443  if (mesh.subdomain_name(id).find("INTERNAL_SIDE_LOWERD_SUBDOMAIN_") != std::string::npos)
1444  _lower_d_interior_blocks.insert(id);
1445  }
1446  else
1447  {
1448  if (mesh.subdomain_name(id).find("BOUNDARY_SIDE_LOWERD_SUBDOMAIN_") != std::string::npos)
1449  _lower_d_boundary_blocks.insert(id);
1450  }
1451  }
1452  }
1453 
1454  for (unsigned int nd = 0; nd < elem->n_nodes(); ++nd)
1455  {
1456  Node & node = *elem->node_ptr(nd);
1457  _block_node_list[node.id()].insert(elem->subdomain_id());
1458  }
1459  }
1462 
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  for (unsigned int side = 0; side < elem->n_sides(); side++)
1468  {
1469  std::vector<BoundaryID> boundary_ids = getBoundaryIDs(elem, side);
1470  sub_data.boundary_ids.insert(boundary_ids.begin(), boundary_ids.end());
1471 
1472  Elem * neig = elem->neighbor_ptr(side);
1473  if (neig)
1474  {
1475  _neighbor_subdomain_boundary_ids[neig->subdomain_id()].insert(boundary_ids.begin(),
1476  boundary_ids.end());
1477  SubdomainID neighbor_subdomain_id = neig->subdomain_id();
1478  if (neighbor_subdomain_id != subdomain_id)
1479  sub_data.neighbor_subs.insert(neighbor_subdomain_id);
1480  }
1481  }
1482  }
1483 
1484  for (const auto blk_id : _mesh_subdomains)
1485  {
1486  auto & sub_data = _sub_to_data[blk_id];
1487  _communicator.set_union(sub_data.neighbor_subs);
1488  _communicator.set_union(sub_data.boundary_ids);
1489  _communicator.max(sub_data.is_lower_d);
1490  if (sub_data.is_lower_d)
1491  _has_lower_d = true;
1493  }
1494 }
const std::set< BoundaryID > & getBoundaryIDs() const
Returns a const reference to a set of all user-specified boundary IDs.
Definition: MooseMesh.C:2975
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:1812
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:1811
bool _has_lower_d
Whether there are any lower-dimensional blocks that are manifolds of higher-dimensional block faces...
Definition: MooseMesh.h:1816
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
list of nodes that belongs to a specified block (domain)
Definition: MooseMesh.h:1553
const Parallel::Communicator & _communicator
std::set< SubdomainID > _lower_d_boundary_blocks
Mesh blocks for boundary lower-d elements in different types.
Definition: MooseMesh.h:1808
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:1803
std::set< SubdomainID > _lower_d_interior_blocks
Mesh blocks for interior lower-d elements in different types.
Definition: MooseMesh.h:1806
dof_id_type id() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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
void max(const T &r, T &o, Request &req) 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:818
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
std::set< SubdomainID > _mesh_subdomains
A set of subdomain IDs currently present in the mesh.
Definition: MooseMesh.h:1516
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1800
bool active() const
void set_union(T &data, const unsigned int root_id) const

◆ callMooseError()

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

Calls moose error with the message msg.

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

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

Definition at line 33 of file MooseBase.C.

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

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

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

2763 {
2764  TIME_SECTION("changeBoundaryId", 6);
2765  changeBoundaryId(getMesh(), old_id, new_id, delete_prev);
2766 }
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:2760
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

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

Referenced by FEProblemBase::checkCoordinateSystems().

4306 {
4307  for (const auto & elem : getMesh().element_ptr_range())
4308  {
4309  SubdomainID sid = elem->subdomain_id();
4310  if (_coord_sys[sid] == Moose::COORD_RZ && elem->dim() == 3)
4311  mooseError("An RZ coordinate system was requested for subdomain " + Moose::stringify(sid) +
4312  " which contains 3D elements.");
4313  if (_coord_sys[sid] == Moose::COORD_RSPHERICAL && elem->dim() > 1)
4314  mooseError("An RSPHERICAL coordinate system was requested for subdomain " +
4315  Moose::stringify(sid) + " which contains 2D or 3D elements.");
4316  }
4317 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1858
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097

◆ clearQuadratureNodes()

void MooseMesh::clearQuadratureNodes ( )
inherited

Clear out any existing quadrature nodes.

Most likely called before re-adding them.

Definition at line 1678 of file MooseMesh.C.

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

1679 {
1680  // Delete all the quadrature nodes
1681  for (auto & it : _quadrature_nodes)
1682  delete it.second;
1683 
1684  _quadrature_nodes.clear();
1686  _extra_bnd_nodes.clear();
1687 }
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1547
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1550
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:1549

◆ clone()

MooseMesh & MooseMesh::clone ( ) const
virtualinherited

Clone method.

Allocates memory you are responsible to clean up.

Definition at line 2820 of file MooseMesh.C.

Referenced by TiledMesh::buildMesh().

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

◆ coarsenedElementChildren()

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

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

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

Definition at line 941 of file MooseMesh.C.

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

942 {
943  auto elem_to_child_pair = _coarsened_element_children.find(elem);
944  mooseAssert(elem_to_child_pair != _coarsened_element_children.end(), "Missing element in map");
945  return elem_to_child_pair->second;
946 }
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
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:1485

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

Referenced by FEProblemBase::meshChanged().

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

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

Referenced by MooseMesh::setupFiniteVolumeMeshData().

3876 {
3878  mooseError("Trying to compute face- and elem-info coords when the information is dirty");
3879 
3880  for (auto & fi : _all_face_info)
3881  {
3882  // get elem & neighbor elements, and set subdomain ids
3883  const SubdomainID elem_subdomain_id = fi.elemSubdomainID();
3884  const SubdomainID neighbor_subdomain_id = fi.neighborSubdomainID();
3885 
3887  *this, elem_subdomain_id, fi.faceCentroid(), fi.faceCoord(), neighbor_subdomain_id);
3888  }
3889 
3890  for (auto & ei : _elem_to_elem_info)
3892  *this, ei.second.subdomain_id(), ei.second.centroid(), ei.second.coordFactor());
3893 }
std::vector< FaceInfo > _all_face_info
FaceInfo object storing information for face based loops.
Definition: MooseMesh.h:1604
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1615
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:42
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:1596
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ connectControllableParams()

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

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

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

Definition at line 33 of file MooseBaseParameterInterface.C.

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

◆ coordTransform()

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

Definition at line 1888 of file MooseMesh.h.

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

1889 {
1890  mooseAssert(_coord_transform, "The coordinate transformation object is null.");
1891  return *_coord_transform;
1892 }
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:1868

◆ declareManagedRestartableDataWithContext()

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

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

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

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

See delcareRestartableData and declareRestartableDataWithContext for more information.

Definition at line 276 of file Restartable.h.

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

◆ declareRecoverableData()

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

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

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

Note - this data will NOT be restored on Restart!

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

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

Definition at line 351 of file Restartable.h.

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

◆ declareRestartableData()

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

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

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

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

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

Definition at line 269 of file Restartable.h.

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

◆ declareRestartableDataWithContext()

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

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

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

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

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

Definition at line 294 of file Restartable.h.

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

◆ declareRestartableDataWithObjectName()

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

Declare a piece of data as "restartable".

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

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

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

Definition at line 323 of file Restartable.h.

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

◆ declareRestartableDataWithObjectNameWithContext()

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

Declare a piece of data as "restartable".

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

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

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

Definition at line 333 of file Restartable.h.

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

◆ deleteRemoteElements()

void MooseMesh::deleteRemoteElements ( )
inherited

Delete remote elements.

Definition at line 3927 of file MooseMesh.C.

3928 {
3930  if (!_mesh)
3931  mooseError("Cannot delete remote elements because we have not yet attached a MeshBase");
3932 
3933  _mesh->allow_remote_element_removal(true);
3934 
3935  _mesh->delete_remote_elements();
3936 }
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1828
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ detectOrthogonalDimRanges()

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

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

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

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

Definition at line 1923 of file MooseMesh.C.

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

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

◆ determineUseDistributedMesh()

void MooseMesh::determineUseDistributedMesh ( )
inherited

Determine whether to use a distributed mesh.

Should be called during construction

Definition at line 2826 of file MooseMesh.C.

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

2827 {
2828  switch (_parallel_type)
2829  {
2830  case ParallelType::DEFAULT:
2831  // The user did not specify 'parallel_type = XYZ' in the input file,
2832  // so we allow the --distributed-mesh command line arg to possibly turn
2833  // on DistributedMesh. If the command line arg is not present, we pick ReplicatedMesh.
2835  _use_distributed_mesh = true;
2836  break;
2840  _use_distributed_mesh = false;
2841  break;
2843  _use_distributed_mesh = true;
2844  break;
2845  }
2846 
2847  // If the user specifies 'nemesis = true' in the Mesh block, or they are using --use-split,
2848  // we must use DistributedMesh.
2849  if (_is_nemesis || _is_split)
2850  _use_distributed_mesh = true;
2851 }
ParallelType _parallel_type
Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.
Definition: MooseMesh.h:1423
bool _is_nemesis
True if a Nemesis Mesh was read in.
Definition: MooseMesh.h:1469
bool getDistributedMeshOnCommandLine() const
Returns true if the user specified –distributed-mesh (or –parallel-mesh, for backwards compatibilit...
Definition: MooseApp.h:486
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1428
const bool _is_split
Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)
Definition: MooseMesh.h:1586
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
bool _parallel_type_overridden
Definition: MooseMesh.h:1430

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

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

2192 {
2193  return getMaxInDimension(component) - getMinInDimension(component);
2194 }
virtual Real getMaxInDimension(unsigned int component) const
Definition: MooseMesh.C:2206
virtual Real getMinInDimension(unsigned int component) const
Returns the min or max of the requested dimension respectively.
Definition: MooseMesh.C:2197

◆ doingPRefinement() [1/2]

void MooseMesh::doingPRefinement ( bool  doing_p_refinement)
inlineinherited

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

Definition at line 1347 of file MooseMesh.h.

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

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

◆ doingPRefinement() [2/2]

bool MooseMesh::doingPRefinement ( ) const
inlineinherited

Query whether we have p-refinement.

Definition at line 1352 of file MooseMesh.h.

Referenced by MooseMesh::buildRefinementAndCoarseningMaps().

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

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

2933 {
2934  const Real abs_zero = 1e-12;
2935 
2936  // See if the mesh is completely containd in the z and y planes to calculate effective spatial
2937  // dim
2938  for (unsigned int dim = LIBMESH_DIM; dim >= 1; --dim)
2939  if (dimensionWidth(dim - 1) >= abs_zero)
2940  return dim;
2941 
2942  // If we get here, we have a 1D mesh on the x-axis.
2943  return 1;
2944 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:154
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:2191

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

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

3098 {
3099  mooseDeprecated("MooseMesh::elem() is deprecated, please use MooseMesh::elemPtr() instead");
3100  return elemPtr(i);
3101 }
void mooseDeprecated(Args &&... args) const
virtual Elem * elemPtr(const dof_id_type i)
Definition: MooseMesh.C:3111

◆ elem() [2/2]

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

Definition at line 3104 of file MooseMesh.C.

3105 {
3106  mooseDeprecated("MooseMesh::elem() is deprecated, please use MooseMesh::elemPtr() instead");
3107  return elemPtr(i);
3108 }
void mooseDeprecated(Args &&... args) const
virtual Elem * elemPtr(const dof_id_type i)
Definition: MooseMesh.C:3111

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

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

3870 {
3871  return libmesh_map_find(_elem_to_elem_info, id);
3872 }
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:1596

◆ elemInfoVector()

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

Accessor for the element info objects owned by this process.

Definition at line 1181 of file MooseMesh.h.

1181 { 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:1600

◆ elemPtr() [1/2]

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

Definition at line 3111 of file MooseMesh.C.

Referenced by FEProblemBase::addGhostedElem(), SystemBase::augmentSendList(), NodalPatchRecoveryAuxBase::blockRestrictElements(), NodalPatchRecovery::compute(), BoundaryMarker::computeElementMarker(), ProjectionAux::computeValue(), NodalPatchRecoveryAuxBase::computeValue(), MooseMesh::elem(), ProjectionAux::elemOnNodeVariableIsDefinedOn(), ActivateElementsUserObjectBase::execute(), NonlinearSystemBase::findImplicitGeometricCouplingEntries(), NearestNodeLocator::findNodes(), ElementSubdomainModifierBase::findReinitializedElemsAndNodes(), ElementSubdomainModifierBase::gatherMovingBoundaryChanges(), NodeElemConstraint::getConnectedDofIndices(), NodeFaceConstraint::getConnectedDofIndices(), FEProblemBase::getDiracElements(), PenetrationThread::getInfoForFacesWithCommonNodes(), ActivateElementsUserObjectBase::getNewlyActivatedElementRange(), ActivateElementsUserObjectBase::getNewlyActivatedNodeRange(), DiracKernelBase::hasPointsOnElem(), 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(), and NearestNodeLocator::updatePatch().

3112 {
3113  return getMesh().elem_ptr(i);
3114 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 3117 of file MooseMesh.C.

3118 {
3119  return getMesh().elem_ptr(i);
3120 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 3904 of file MooseMesh.C.

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

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 40 of file MooseObject.h.

Referenced by EigenKernel::enabled().

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

◆ 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 3615 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(), StitchedMesh::StitchedMesh(), and TiledMesh::TiledMesh().

3616 {
3618  mooseError("Cannot use ",
3619  name,
3620  " with DistributedMesh!\n",
3621  "Consider specifying parallel_type = 'replicated' in your input file\n",
3622  "to prevent it from being run with DistributedMesh.");
3623 }
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1428
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ errorPrefix()

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

Definition at line 43 of file MooseBase.C.

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

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

◆ faceInfo() [1/2]

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

Accessor for local FaceInfo objects.

Definition at line 2173 of file MooseMesh.h.

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

2174 {
2175  return _face_info;
2176 }
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:1608

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

◆ freeBndElems()

void MooseMesh::freeBndElems ( )
protectedinherited

Definition at line 394 of file MooseMesh.C.

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

395 {
396  // free memory
397  for (auto & belem : _bnd_elems)
398  delete belem;
399 
400  for (auto & it : _bnd_elem_ids)
401  it.second.clear();
402 
403  _bnd_elem_ids.clear();
404 }
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:1545
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1540

◆ freeBndNodes()

void MooseMesh::freeBndNodes ( )
protectedinherited

Definition at line 376 of file MooseMesh.C.

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

377 {
378  // free memory
379  for (auto & bnode : _bnd_nodes)
380  delete bnode;
381 
382  for (auto & it : _node_set_nodes)
383  it.second.clear();
384 
385  _node_set_nodes.clear();
386 
387  for (auto & it : _bnd_node_ids)
388  it.second.clear();
389 
390  _bnd_node_ids.clear();
391 }
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:1537
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:1556
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1533

◆ getActiveLocalElementRange()

ConstElemRange * MooseMesh::getActiveLocalElementRange ( )
inherited

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

Definition at line 1236 of file MooseMesh.C.

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

1237 {
1239  {
1240  TIME_SECTION("getActiveLocalElementRange", 5);
1241 
1242  _active_local_elem_range = std::make_unique<ConstElemRange>(
1243  getMesh().active_local_elements_begin(), getMesh().active_local_elements_end(), GRAIN_SIZE);
1244  }
1245 
1246  return _active_local_elem_range.get();
1247 }
std::unique_ptr< libMesh::ConstElemRange > _active_local_elem_range
A range for use with threading.
Definition: MooseMesh.h:1494
static const int GRAIN_SIZE
Definition: MooseMesh.C:67
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ getActiveNodeRange()

NodeRange * MooseMesh::getActiveNodeRange ( )
inherited

Definition at line 1250 of file MooseMesh.C.

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

1251 {
1252  if (!_active_node_range)
1253  {
1254  TIME_SECTION("getActiveNodeRange", 5);
1255 
1256  _active_node_range = std::make_unique<NodeRange>(
1257  getMesh().active_nodes_begin(), getMesh().active_nodes_end(), GRAIN_SIZE);
1258  }
1259 
1260  return _active_node_range.get();
1261 }
std::unique_ptr< libMesh::NodeRange > _active_node_range
Definition: MooseMesh.h:1497
static const int GRAIN_SIZE
Definition: MooseMesh.C:67
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ getActiveSemiLocalNodeRange()

SemiLocalNodeRange * MooseMesh::getActiveSemiLocalNodeRange ( ) const
inherited

Definition at line 1264 of file MooseMesh.C.

1265 {
1266  mooseAssert(_active_semilocal_node_range,
1267  "_active_semilocal_node_range has not been created yet!");
1268 
1269  return _active_semilocal_node_range.get();
1270 }
std::unique_ptr< SemiLocalNodeRange > _active_semilocal_node_range
Definition: MooseMesh.h:1496

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

Referenced by MooseMesh::getElemIDMapping().

1128 {
1129  std::set<dof_id_type> unique_ids;
1130  for (auto & pair : _block_id_mapping[elem_id_index])
1131  for (auto & id : pair.second)
1132  unique_ids.insert(id);
1133  return unique_ids;
1134 }
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:1840

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

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

4293 {
4295  mooseError("getAxisymmetricRadialCoord() should not be called if "
4296  "setGeneralAxisymmetricCoordAxes() has been called.");
4297 
4298  if (_rz_coord_axis == 0)
4299  return 1; // if the rotation axis is x (0), then the radial direction is y (1)
4300  else
4301  return 0; // otherwise the radial direction is assumed to be x, i.e., the rotation axis is y
4302 }
bool usingGeneralAxisymmetricCoordAxes() const
Returns true if general axisymmetric coordinate axes are being used.
Definition: MooseMesh.C:4277
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
unsigned int _rz_coord_axis
Storage for RZ axis selection.
Definition: MooseMesh.h:1861

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

3553 {
3554  const auto it = _sub_to_data.find(subdomain_id);
3555 
3556  if (it == _sub_to_data.end())
3557  mooseError("Unable to find subdomain ID: ", subdomain_id, '.');
3558 
3559  return it->second.neighbor_subs;
3560 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1800

◆ getBlocksMaxDimension()

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

Returns the maximum element dimension on the given blocks.

Definition at line 2947 of file MooseMesh.C.

Referenced by BlockRestrictable::initializeBlockRestrictable().

2948 {
2949  const auto & mesh = getMesh();
2950 
2951  // Take a shortcut if possible
2952  if (const auto & elem_dims = mesh.elem_dimensions(); mesh.is_prepared() && elem_dims.size() == 1)
2953  return *elem_dims.begin();
2954 
2955  unsigned short dim = 0;
2956  const auto subdomain_ids = getSubdomainIDs(blocks);
2957  const std::set<SubdomainID> subdomain_ids_set(subdomain_ids.begin(), subdomain_ids.end());
2958  for (const auto & elem : mesh.active_subdomain_set_elements_ptr_range(subdomain_ids_set))
2959  dim = std::max(dim, elem->dim());
2960 
2961  // Get the maximumal globally
2963  return dim;
2964 }
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:154
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:1735
auto max(const L &left, const R &right)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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:3097

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

Referenced by MooseMesh::getBoundariesToElems().

1324 {
1325  return _bnd_elem_ids;
1326 }
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:1545

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

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

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

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

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

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

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

3520 {
3521  std::set<SubdomainID> subdomain_ids;
3522  for (const auto & [sub_id, data] : _sub_to_data)
3523  if (data.boundary_ids.find(bid) != data.boundary_ids.end())
3524  subdomain_ids.insert(sub_id);
3525 
3526  return subdomain_ids;
3527 }
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1800

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

Referenced by DomainUserObject::DomainUserObject().

3531 {
3532  std::set<SubdomainID> subdomain_ids;
3533  for (const auto & it : _neighbor_subdomain_boundary_ids)
3534  if (it.second.find(bid) != it.second.end())
3535  subdomain_ids.insert(it.first);
3536 
3537  return subdomain_ids;
3538 }
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:1803

◆ getBoundaryElementRange()

ConstBndElemRange * MooseMesh::getBoundaryElementRange ( )
inherited

Definition at line 1301 of file MooseMesh.C.

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

1302 {
1303  if (!_bnd_elem_range)
1304  {
1305  TIME_SECTION("getBoundaryElementRange", 5);
1306 
1307  _bnd_elem_range =
1308  std::make_unique<ConstBndElemRange>(bndElemsBegin(), bndElemsEnd(), GRAIN_SIZE);
1309  }
1310 
1311  return _bnd_elem_range.get();
1312 }
virtual bnd_elem_iterator bndElemsEnd()
Definition: MooseMesh.C:1567
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:1502
virtual bnd_elem_iterator bndElemsBegin()
Return iterators to the beginning/end of the boundary elements list.
Definition: MooseMesh.C:1559
static const int GRAIN_SIZE
Definition: MooseMesh.C:67

◆ getBoundaryID()

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

Get the associated BoundaryID for the boundary name.

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

Definition at line 1690 of file MooseMesh.C.

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

1691 {
1692  if (boundary_name == "ANY_BOUNDARY_ID")
1693  mooseError("Please use getBoundaryIDs() when passing \"ANY_BOUNDARY_ID\"");
1694 
1695  return MooseMeshUtils::getBoundaryID(boundary_name, getMesh());
1696 }
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:3446
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getBoundaryIDs() [1/3]

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

◆ getBoundaryIDs() [2/3]

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

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

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

Definition at line 2975 of file MooseMesh.C.

Referenced by MooseMesh::cacheInfo().

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

◆ getBoundaryIDs() [3/3]

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

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

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

Definition at line 1721 of file MooseMesh.C.

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

◆ getBoundaryName()

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

Return the name of the boundary given the id.

Definition at line 1790 of file MooseMesh.C.

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

1791 {
1792  BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1793 
1794  // We need to figure out if this boundary is a sideset or nodeset
1795  if (boundary_info.get_side_boundary_ids().count(boundary_id))
1796  return boundary_info.get_sideset_name(boundary_id);
1797  else
1798  return boundary_info.get_nodeset_name(boundary_id);
1799 }
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:3446
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 1287 of file MooseMesh.C.

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

1288 {
1289  if (!_bnd_node_range)
1290  {
1291  TIME_SECTION("getBoundaryNodeRange", 5);
1292 
1293  _bnd_node_range =
1294  std::make_unique<ConstBndNodeRange>(bndNodesBegin(), bndNodesEnd(), GRAIN_SIZE);
1295  }
1296 
1297  return _bnd_node_range.get();
1298 }
virtual bnd_node_iterator bndNodesEnd()
Definition: MooseMesh.C:1551
virtual bnd_node_iterator bndNodesBegin()
Return iterators to the beginning/end of the boundary nodes list.
Definition: MooseMesh.C:1543
static const int GRAIN_SIZE
Definition: MooseMesh.C:67
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1500

◆ getCheckedPointerParam()

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

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

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

Definition at line 286 of file MooseBaseParameterInterface.h.

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

◆ getCoarseningMap()

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

Get the coarsening map for a given element type.

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

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

Definition at line 2577 of file MooseMesh.C.

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

2578 {
2579  std::pair<int, ElemType> the_pair(input_side, elem.type());
2580 
2581  if (_elem_type_to_coarsening_map.find(the_pair) == _elem_type_to_coarsening_map.end())
2582  mooseError("Could not find a suitable qp refinement map!");
2583 
2584  return _elem_type_to_coarsening_map[the_pair];
2585 }
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:1779
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
virtual ElemType type() const=0

◆ getConstructNodeListFromSideList()

bool MooseMesh::getConstructNodeListFromSideList ( )
inlineinherited

Return construct node list from side list boolean.

Definition at line 1409 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:1822

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

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

4174 {
4175  auto it = _coord_sys.find(sid);
4176  if (it != _coord_sys.end())
4177  return (*it).second;
4178  else
4179  mooseError("Requested subdomain ", sid, " does not exist.");
4180 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1858
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getCoordSystem() [2/2]

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

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

xyz, rz, or r-spherical

Definition at line 4205 of file MooseMesh.C.

Referenced by MooseMesh::setGeneralAxisymmetricCoordAxes().

4206 {
4207  return _coord_sys;
4208 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1858

◆ 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 }
void mooseDeprecated(Args &&... args) const
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
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
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  // Throw on error so that if getPath() fails, we can throw an error
50  // with the context of _parent.mooseError()
51  const auto throw_on_error_before = Moose::_throw_on_error;
53  std::optional<std::string> error;
54 
55  // This will search the data paths for this relative path
56  Moose::DataFileUtils::Path found_path;
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  Moose::_throw_on_error = throw_on_error_before;
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 }
Context context
Context for the file (where it came from)
Definition: DataFileUtils.h:48
void mooseInfo(Args &&... args) const
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
Representation of a data file path.
Definition: DataFileUtils.h:36
Path getPath(std::string path, const std::optional< std::string > &base=std::optional< std::string >())
Get the data path for a given path, searching the registered data.
Definition: DataFileUtils.C:22
std::optional< std::string > data_name
The name of the data registry the file came from (with context == DATA)
Definition: DataFileUtils.h:50
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
bool _throw_on_error
Variable to turn on exceptions during mooseError(), should only be used within MOOSE unit tests or wh...
Definition: Moose.C:763
const ParallelParamObject & _parent

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

Referenced by MooseMesh::areElemIDsIdentical().

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

◆ getElemIDMapping()

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

Definition at line 1098 of file MooseMesh.C.

1099 {
1100  auto & mesh_base = getMesh();
1101 
1102  if (!mesh_base.has_elem_integer(from_id_name))
1103  mooseError("Mesh does not have the element integer name '", from_id_name, "'");
1104  if (!mesh_base.has_elem_integer(to_id_name))
1105  mooseError("Mesh does not have the element integer name '", to_id_name, "'");
1106 
1107  const auto id1 = mesh_base.get_elem_integer_index(from_id_name);
1108  const auto id2 = mesh_base.get_elem_integer_index(to_id_name);
1109 
1110  std::unordered_map<dof_id_type, std::set<dof_id_type>> id_map;
1111  for (const auto id : getAllElemIDs(id1))
1112  id_map[id] = std::set<dof_id_type>();
1113 
1114  for (const auto & elem : mesh_base.active_local_element_ptr_range())
1115  id_map[elem->get_extra_integer(id1)].insert(elem->get_extra_integer(id2));
1116 
1117  for (auto & [id, ids] : id_map)
1118  {
1119  libmesh_ignore(id); // avoid overzealous gcc 9.4 unused var warning
1120  comm().set_union(ids);
1121  }
1122 
1123  return id_map;
1124 }
const Parallel::Communicator & comm() const
void libmesh_ignore(const Args &...)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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:1127
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
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 1137 of file MooseMesh.C.

1138 {
1139  std::set<dof_id_type> unique_ids;
1140  for (auto & blk : blks)
1141  {
1142  auto it = _block_id_mapping[elem_id_index].find(blk);
1143  if (it == _block_id_mapping[elem_id_index].end())
1144  mooseError("Block ", blk, " is not available on the mesh");
1145 
1146  for (auto & mid : it->second)
1147  unique_ids.insert(mid);
1148  }
1149  return unique_ids;
1150 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::vector< std::unordered_map< SubdomainID, std::set< dof_id_type > > > _block_id_mapping
Unique element integer IDs for each subdomain and each extra element integers.
Definition: MooseMesh.h:1840

◆ getFileName()

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

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

Reimplemented in FileMesh, and TiledMesh.

Definition at line 1071 of file MooseMesh.h.

1071 { return ""; }

◆ getGeneralAxisymmetricCoordAxis()

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

Gets the general axisymmetric coordinate axis for a block.

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

Definition at line 4267 of file MooseMesh.C.

4268 {
4269  auto it = _subdomain_id_to_rz_coord_axis.find(subdomain_id);
4270  if (it != _subdomain_id_to_rz_coord_axis.end())
4271  return (*it).second;
4272  else
4273  mooseError("Requested subdomain ", subdomain_id, " does not exist.");
4274 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::unordered_map< SubdomainID, std::pair< Point, RealVectorValue > > _subdomain_id_to_rz_coord_axis
Map of subdomain ID to general axisymmetric axis.
Definition: MooseMesh.h:1864

◆ getGhostedBoundaries()

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

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

Definition at line 3239 of file MooseMesh.C.

3240 {
3241  return _ghosted_boundaries;
3242 }
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1558

◆ getGhostedBoundaryInflation()

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

Return a writable reference to the _ghosted_boundaries_inflation vector.

Definition at line 3245 of file MooseMesh.C.

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

3246 {
3248 }
std::vector< Real > _ghosted_boundaries_inflation
Definition: MooseMesh.h:1559

◆ getGhostingPatchSize()

unsigned int MooseMesh::getGhostingPatchSize ( ) const
inlineinherited

Getter for the ghosting_patch_size parameter.

Definition at line 626 of file MooseMesh.h.

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

626 { 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:1565

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

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

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

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

3418 {
3419  // Grab a bounding box to speed things up. Note that
3420  // local_bounding_box is *not* equivalent to processor_bounding_box
3421  // with processor_id() except in serial.
3423 
3424  // Inflate the bbox just a bit to deal with roundoff
3425  // Adding 1% of the diagonal size in each direction on each end
3426  Real inflation_amount = inflation_multiplier * (bbox.max() - bbox.min()).norm();
3427  Point inflation(inflation_amount, inflation_amount, inflation_amount);
3428 
3429  bbox.first -= inflation; // min
3430  bbox.second += inflation; // max
3431 
3432  return bbox;
3433 }
libMesh::BoundingBox create_local_bounding_box(const MeshBase &mesh)
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
const Point & min() const
auto norm(const T &a) -> decltype(std::abs(a))
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
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 3541 of file MooseMesh.C.

3542 {
3543  std::set<SubdomainID> subdomain_ids = getBoundaryConnectedBlocks(bid);
3544  for (const auto & it : _neighbor_subdomain_boundary_ids)
3545  if (it.second.find(bid) != it.second.end())
3546  subdomain_ids.insert(it.first);
3547 
3548  return subdomain_ids;
3549 }
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:1803
std::set< SubdomainID > getBoundaryConnectedBlocks(const BoundaryID bid) const
Get the list of subdomains associated with the given boundary.
Definition: MooseMesh.C:3519

◆ getLocalNodeRange()

ConstNodeRange * MooseMesh::getLocalNodeRange ( )
inherited

Definition at line 1273 of file MooseMesh.C.

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

1274 {
1275  if (!_local_node_range)
1276  {
1277  TIME_SECTION("getLocalNodeRange", 5);
1278 
1279  _local_node_range = std::make_unique<ConstNodeRange>(
1280  getMesh().local_nodes_begin(), getMesh().local_nodes_end(), GRAIN_SIZE);
1281  }
1282 
1283  return _local_node_range.get();
1284 }
static const int GRAIN_SIZE
Definition: MooseMesh.C:67
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
std::unique_ptr< libMesh::ConstNodeRange > _local_node_range
Definition: MooseMesh.h:1498

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

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

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

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

2192 {
2194 }
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:1811

◆ getMaxInDimension()

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

Reimplemented in AnnularMesh, and GeneratedMesh.

Definition at line 2206 of file MooseMesh.C.

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

2207 {
2208  mooseAssert(_mesh, "The MeshBase has not been constructed");
2209  mooseAssert(component < _bounds.size(), "Requested dimension out of bounds");
2210 
2211  return _bounds[component][MAX];
2212 }
std::vector< std::vector< Real > > _bounds
The bounds in each dimension of the mesh for regular orthogonal meshes.
Definition: MooseMesh.h:1580
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433

◆ getMaxLeafSize()

unsigned int MooseMesh::getMaxLeafSize ( ) const
inlineinherited

Getter for the maximum leaf size parameter.

Definition at line 631 of file MooseMesh.h.

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

631 { return _max_leaf_size; }
unsigned int _max_leaf_size
Definition: MooseMesh.h:1568

◆ getMesh() [1/4]

MeshBase & MooseMesh::getMesh ( )
inherited

Accessor for the underlying libMesh Mesh object.

Definition at line 3446 of file MooseMesh.C.

Referenced by CopyMeshPartitioner::_do_partition(), AddPeriodicBCAction::act(), MooseMesh::activeLocalElementsBegin(), MooseMesh::activeLocalElementsEnd(), Adaptivity::adaptMesh(), FEProblemBase::addAnyRedistributers(), MooseMesh::addQuadratureNode(), MooseMesh::addUniqueNode(), MultiAppConservativeTransfer::adjustTransferredSolution(), MultiAppConservativeTransfer::adjustTransferredSolutionNearestPoint(), NonlinearSystemBase::assembleScalingVector(), Assembly::Assembly(), AuxKernelTempl< Real >::AuxKernelTempl(), MooseMesh::buildActiveSideList(), MooseMesh::buildBndElemList(), MFEMMesh::buildDummyMooseMesh(), MooseMesh::buildElemIDInfo(), MooseMesh::buildFiniteVolumeInfo(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildLowerDMesh(), TiledMesh::buildMesh(), FileMesh::buildMesh(), AnnularMesh::buildMesh(), ConcentricCircleMesh::buildMesh(), RinglebMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), GeneratedMesh::buildMesh(), StitchedMesh::buildMesh(), buildMesh(), ImageMesh::buildMesh2D(), ImageMesh::buildMesh3D(), MooseMesh::buildNodeList(), MooseMesh::buildNodeListFromSideList(), MooseMesh::buildPeriodicNodeMap(), MooseMesh::buildPeriodicNodeSets(), MooseMesh::buildPRefinementAndCoarseningMaps(), MooseMesh::buildSideList(), MooseMesh::cacheChangedLists(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), MooseMesh::cacheInfo(), MooseMesh::changeBoundaryId(), MooseMesh::checkCoordinateSystems(), NonlinearSystemBase::constraintJacobians(), NonlinearSystemBase::constraintResiduals(), MortarData::createMortarInterface(), MooseMesh::detectOrthogonalDimRanges(), MooseMesh::detectPairedSidesets(), MooseMesh::dimension(), ExtraElementIntegerDivision::divisionIndex(), FunctorBinnedValuesDivision::divisionIndex(), SubdomainsDivision::divisionIndex(), DumpObjectsProblem::dumpVariableHelper(), ElementalVariableValue::ElementalVariableValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementMaterialSampler::ElementMaterialSampler(), MooseMesh::elemPtr(), ElemSideNeighborLayersTester::execute(), NodalNormalsCorner::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppUserObjectTransfer::execute(), NodalNormalsPreprocessor::execute(), 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(), Exodus::handleExodusIOMeshRenumbering(), MooseMesh::hasElementID(), MooseMesh::init(), DisplacedProblem::UpdateDisplacedMeshThread::init(), VerifyElementUniqueID::initialize(), VerifyNodalUniqueID::initialize(), ExtraElementIntegerDivision::initialize(), ElementCentroidPositions::initialize(), ElementGroupCentroidPositions::initialize(), FunctorPositions::initialize(), FunctorTimes::initialize(), QuadraturePointsPositions::initialize(), FunctorExtremaPositions::initialize(), ParsedDownSelectionPositions::initialize(), MultiAppDofCopyTransfer::initialSetup(), NodalVariableValue::initialSetup(), FEProblemBase::initialSetup(), SampledOutput::initSample(), MultiAppGeometricInterpolationTransfer::interpolateTargetPoints(), LinearNodalConstraint::LinearNodalConstraint(), MooseMesh::localNodesBegin(), MooseMesh::localNodesEnd(), Moose::Mortar::loopOverMortarSegments(), MooseMesh::maxElemId(), MooseMesh::maxNodeId(), GhostingUserObject::meshChanged(), RadialAverage::meshChanged(), DisplacedProblem::meshChanged(), FEProblemBase::meshChanged(), MooseMesh::MooseMesh(), MooseMesh::nElem(), MooseMesh::nNodes(), NodalPatchRecovery::NodalPatchRecovery(), NodalVariableValue::NodalVariableValue(), MooseMesh::nodeToActiveSemilocalElemMap(), MooseMesh::nodeToElemMap(), ComputeNodalUserObjectsThread::onNode(), ProxyRelationshipManager::operator()(), MortarUserObjectThread::operator()(), ComputeMortarFunctor::operator()(), XDA::output(), Exodus::outputEmptyTimestep(), Exodus::outputNodalVariables(), MooseMesh::prepare(), BoundaryPreservedMarker::preserveBoundary(), MooseMesh::printInfo(), MooseMesh::queryElemPtr(), MooseMesh::queryNodePtr(), FileMesh::read(), PropertyReadFile::readData(), RedistributeProperties::redistribute(), SubProblem::restrictionBoundaryCheckName(), SubProblem::restrictionSubdomainCheckName(), MooseMesh::setBoundaryName(), NonlinearSystemBase::setConstraintSecondaryValues(), XFEMInterface::setDisplacedMesh(), ActivateElementsUserObjectBase::setNewBoundayName(), MooseMesh::setPartitionerHelper(), MooseMesh::setSubdomainName(), SidesetAroundSubdomainUpdater::SidesetAroundSubdomainUpdater(), MooseMesh::sideWithBoundaryID(), MoveNodesToGeometryModifierBase::snapNodes(), MultiAppDofCopyTransfer::transfer(), DisplacedProblem::undisplaceMesh(), MooseMesh::update(), MooseMesh::updateActiveSemiLocalNodeRange(), EqualValueBoundaryConstraint::updateConstrainedNodes(), Adaptivity::updateErrorVectors(), RandomData::updateGenerators(), DisplacedProblem::updateMesh(), SampledOutput::updateSample(), and VariableCondensationPreconditioner::VariableCondensationPreconditioner().

3447 {
3448  mooseAssert(_mesh, "Mesh hasn't been created");
3449  return *_mesh;
3450 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433

◆ getMesh() [2/4]

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

◆ getMesh() [3/4]

const MeshBase & MooseMesh::getMesh ( ) const
inherited

Definition at line 3453 of file MooseMesh.C.

3454 {
3455  mooseAssert(_mesh, "Mesh hasn't been created");
3456  return *_mesh;
3457 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433

◆ getMesh() [4/4]

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

◆ getMeshPtr()

const MeshBase * MooseMesh::getMeshPtr ( ) const
inherited

Definition at line 3440 of file MooseMesh.C.

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

3441 {
3442  return _mesh.get();
3443 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433

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

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

2198 {
2199  mooseAssert(_mesh, "The MeshBase has not been constructed");
2200  mooseAssert(component < _bounds.size(), "Requested dimension out of bounds");
2201 
2202  return _bounds[component][MIN];
2203 }
std::vector< std::vector< Real > > _bounds
The bounds in each dimension of the mesh for regular orthogonal meshes.
Definition: MooseMesh.h:1580
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433

◆ getMooseApp()

MooseApp& MooseBase::getMooseApp ( ) const
inlineinherited

Get the MooseApp this class is associated with.

Definition at line 45 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(), MooseBaseParameterInterface::connectControllableParams(), Coupleable::Coupleable(), MortarData::createMortarInterface(), EigenProblem::doFreeNonlinearPowerIterations(), Terminator::execute(), FEProblemSolve::FEProblemSolve(), SolutionInvalidInterface::flagInvalidSolutionInternal(), ChainControl::getChainControlDataSystem(), DefaultConvergenceBase::getSharedExecutionerParam(), 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().

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

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

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

1498 {
1499  auto it = _block_node_list.find(node.id());
1500 
1501  if (it == _block_node_list.end())
1502  mooseError("Unable to find node: ", node.id(), " in any block list.");
1503 
1504  return it->second;
1505 }
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
list of nodes that belongs to a specified block (domain)
Definition: MooseMesh.h:1553
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:818
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getNodeList()

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

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

Definition at line 3468 of file MooseMesh.C.

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

3469 {
3470  std::map<boundary_id_type, std::vector<dof_id_type>>::const_iterator it =
3471  _node_set_nodes.find(nodeset_id);
3472 
3473  if (it == _node_set_nodes.end())
3474  {
3475  // On a distributed mesh we might not know about a remote nodeset,
3476  // so we'll return an empty vector and hope the nodeset exists
3477  // elsewhere.
3478  if (!getMesh().is_serial())
3479  {
3480  static const std::vector<dof_id_type> empty_vec;
3481  return empty_vec;
3482  }
3483  // On a replicated mesh we should know about every nodeset and if
3484  // we're asked for one that doesn't exist then it must be a bug.
3485  else
3486  {
3487  mooseError("Unable to nodeset ID: ", nodeset_id, '.');
3488  }
3489  }
3490 
3491  return it->second;
3492 }
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:1556
virtual bool is_serial() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getNormalByBoundaryID()

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

Returns the normal vector associated with a given BoundaryID.

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

Definition at line 2810 of file MooseMesh.C.

2811 {
2812  mooseAssert(_boundary_to_normal_map.get() != nullptr, "Boundary To Normal Map not built!");
2813 
2814  // Note: Boundaries that are not in the map (existing boundaries) will default
2815  // construct a new RealVectorValue - (x,y,z)=(0, 0, 0)
2816  return (*_boundary_to_normal_map)[id];
2817 }
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:1530

◆ getPairedBoundaryMapping()

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

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

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

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

Definition at line 2291 of file MooseMesh.C.

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

2292 {
2294  mooseError("Trying to retrieve automatic paired mapping for a mesh that is not regular and "
2295  "orthogonal");
2296 
2297  mooseAssert(component < dimension(), "Requested dimension out of bounds");
2298 
2299  if (_paired_boundary.empty())
2301 
2302  if (component < _paired_boundary.size())
2303  return &_paired_boundary[component];
2304  else
2305  return nullptr;
2306 }
void detectPairedSidesets()
This routine detects paired sidesets of a regular orthogonal mesh (.i.e.
Definition: MooseMesh.C:1997
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2926
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::vector< std::pair< BoundaryID, BoundaryID > > _paired_boundary
A vector holding the paired boundaries for a regular orthogonal mesh.
Definition: MooseMesh.h:1583
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1577

◆ getParallelType()

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

Definition at line 1016 of file MooseMesh.h.

Referenced by MultiAppDofCopyTransfer::initialSetup().

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

◆ getParam() [1/2]

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

Retrieve a parameter for the object.

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

Definition at line 215 of file MooseBaseParameterInterface.h.

Referenced by CreateDisplacedProblemAction::act(), AddPeriodicBCAction::act(), DiffusionPhysicsBase::addPostprocessors(), ADNodalKernel::ADNodalKernel(), ArrayParsedAux::ArrayParsedAux(), AddPeriodicBCAction::autoTranslationBoundaries(), BicubicSplineFunction::BicubicSplineFunction(), ComponentPhysicsInterface::ComponentPhysicsInterface(), FunctorAux::computeValue(), FEProblemBase::createTagSolutions(), CutMeshByLevelSetGenerator::CutMeshByLevelSetGenerator(), DebugResidualAux::DebugResidualAux(), AccumulateReporter::declareLateValues(), DerivativeParsedMaterialTempl< is_ad >::DerivativeParsedMaterialTempl(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), EigenKernel::EigenKernel(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), FEProblemSolve::FEProblemSolve(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), ParsedSubdomainGeneratorBase::functionInitialize(), FVInterfaceKernel::FVInterfaceKernel(), BoundaryLayerSubdomainGenerator::generate(), ExtraNodesetGenerator::generate(), FileMeshGenerator::generate(), BlockDeletionGenerator::generate(), BreakMeshByBlockGenerator::generate(), CoarsenBlockGenerator::generate(), GeneratedMeshGenerator::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), MeshExtruderGenerator::generate(), GenericConstantRankTwoTensorTempl< is_ad >::GenericConstantRankTwoTensorTempl(), GenericConstantSymmetricRankTwoTensorTempl< is_ad >::GenericConstantSymmetricRankTwoTensorTempl(), MooseApp::getCheckpointDirectories(), DataFileInterface::getDataFileName(), ExecutorInterface::getExecutor(), GhostingUserObject::GhostingUserObject(), FixedPointIterationAdaptiveDT::init(), TimeSequenceStepper::init(), IterationAdaptiveDT::init(), AdvancedOutput::init(), AttribThread::initFrom(), AttribSysNum::initFrom(), AttribResidualObject::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), SampledOutput::initSample(), IterationAdaptiveDT::limitDTToPostprocessorValue(), MooseMesh::MooseMesh(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MultiSystemSolveObject::MultiSystemSolveObject(), NEML2ModelExecutor::NEML2ModelExecutor(), NestedDivision::NestedDivision(), ConsoleUtils::outputExecutionInformation(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedElementDeletionGenerator::ParsedElementDeletionGenerator(), ParsedGenerateNodeset::ParsedGenerateNodeset(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedMaterialTempl< is_ad >::ParsedMaterialTempl(), ParsedNodeTransformGenerator::ParsedNodeTransformGenerator(), ParsedODEKernel::ParsedODEKernel(), ParsedPostprocessor::ParsedPostprocessor(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), PiecewiseConstantByBlockMaterialTempl< is_ad >::PiecewiseConstantByBlockMaterialTempl(), ReferenceResidualInterface::ReferenceResidualInterface(), RenameBlockGenerator::RenameBlockGenerator(), Moose::FV::setInterpolationMethod(), SetupMeshAction::setupMesh(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), TimePeriod::TimePeriod(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), FunctorIC::value(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), and VectorOfPostprocessors::VectorOfPostprocessors().

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

◆ getParam() [2/2]

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

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

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

Definition at line 279 of file MooseBaseParameterInterface.h.

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

◆ getPatchSize()

unsigned int MooseMesh::getPatchSize ( ) const
inherited

Getter for the patch_size parameter.

Definition at line 3399 of file MooseMesh.C.

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

3400 {
3401  return _patch_size;
3402 }
unsigned int _patch_size
The number of nodes to consider in the NearestNode neighborhood.
Definition: MooseMesh.h:1562

◆ getPatchUpdateStrategy()

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

Get the current patch update strategy.

Definition at line 3411 of file MooseMesh.C.

Referenced by FEProblemBase::possiblyRebuildGeomSearchPatches().

3412 {
3413  return _patch_update_strategy;
3414 }
Moose::PatchUpdateType _patch_update_strategy
The patch update strategy.
Definition: MooseMesh.h:1571

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

Referenced by ProjectMaterialProperties::onElement().

4389 {
4391 }
const std::vector< QpMap > & getPCoarseningMapHelper(const Elem &elem, const std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4366
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_map
Definition: MooseMesh.h:1782
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097

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

Referenced by ProjectMaterialProperties::onBoundary().

4395 {
4397 }
const std::vector< QpMap > & getPCoarseningMapHelper(const Elem &elem, const std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4366
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_coarsening_side_map
Definition: MooseMesh.h:1784
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097

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

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

3732 {
3733  return getMesh().sub_point_locator();
3734 }
std::unique_ptr< PointLocatorBase > sub_point_locator() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

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

Referenced by ProjectMaterialProperties::onElement().

4377 {
4379 }
const std::vector< QpMap > & getPRefinementMapHelper(const Elem &elem, const std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4355
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_map
Definition: MooseMesh.h:1756
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097

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

Referenced by ProjectMaterialProperties::onBoundary().

4383 {
4385 }
const std::vector< QpMap > & getPRefinementMapHelper(const Elem &elem, const std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap >> &) const
Definition: MooseMesh.C:4355
std::map< std::pair< libMesh::ElemType, unsigned int >, std::vector< QpMap > > _elem_type_to_p_refinement_side_map
Definition: MooseMesh.h:1758
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097

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

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

1663 {
1664  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes.find(elem->id()) !=
1666  "Elem has no quadrature nodes!");
1667  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes[elem->id()].find(side) !=
1669  "Side has no quadrature nodes!");
1670  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].find(qp) !=
1672  "qp not found on side!");
1673 
1674  return _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp];
1675 }
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:1549
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097

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

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

2514 {
2515  if (child == -1) // Doing volume mapping or parent side mapping
2516  {
2517  mooseAssert(parent_side == child_side,
2518  "Parent side must match child_side if not passing a specific child!");
2519 
2520  std::pair<int, ElemType> the_pair(parent_side, elem.type());
2521 
2522  if (_elem_type_to_refinement_map.find(the_pair) == _elem_type_to_refinement_map.end())
2523  mooseError("Could not find a suitable qp refinement map!");
2524 
2525  return _elem_type_to_refinement_map[the_pair];
2526  }
2527  else // Need to map a child side to parent volume qps
2528  {
2529  std::pair<int, int> child_pair(child, child_side);
2530 
2533  _elem_type_to_child_side_refinement_map[elem.type()].find(child_pair) ==
2535  mooseError("Could not find a suitable qp refinement map!");
2536 
2537  return _elem_type_to_child_side_refinement_map[elem.type()][child_pair];
2538  }
2539 
2546 }
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:1762
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:1753
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
virtual ElemType type() const=0

◆ getRenamedParam()

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

Retrieve a renamed parameter for the object.

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

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

Definition at line 229 of file MooseBaseParameterInterface.h.

231 {
232  // this enables having a default on the new parameter but bypassing it with the old one
233  // Most important: accept new parameter
234  if (isParamSetByUser(new_name) && !isParamValid(old_name))
235  return InputParameters::getParamHelper(new_name, _pars, static_cast<T *>(0), &_moose_base);
236  // Second most: accept old parameter
237  else if (isParamValid(old_name) && !isParamSetByUser(new_name))
238  return InputParameters::getParamHelper(old_name, _pars, static_cast<T *>(0), &_moose_base);
239  // Third most: accept default for new parameter
240  else if (isParamValid(new_name) && !isParamValid(old_name))
241  return InputParameters::getParamHelper(new_name, _pars, static_cast<T *>(0), &_moose_base);
242  // Refuse: no default, no value passed
243  else if (!isParamValid(old_name) && !isParamValid(new_name))
244  mooseError(_pars.blockFullpath() + ": parameter '" + new_name +
245  "' is being retrieved without being set.\n"
246  "Did you misspell it?");
247  // Refuse: both old and new parameters set by user
248  else
249  mooseError(_pars.blockFullpath() + ": parameter '" + new_name +
250  "' may not be provided alongside former parameter '" + old_name + "'");
251 }
const MooseBase & _moose_base
The MooseBase object that inherits this class.
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
bool isParamSetByUser(const std::string &nm) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
std::string blockFullpath() const
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type, const MooseBase *moose_base=nullptr)

◆ getRestartableData()

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

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

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

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

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

Definition at line 287 of file Restartable.h.

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

◆ 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 68 of file MooseObject.C.

Referenced by MFEMProblem::addBoundaryCondition(), MFEMProblem::addKernel(), and MFEMProblem::addMFEMSolver().

69 {
70  try
71  {
72  return shared_from_this();
73  }
74  catch (std::bad_weak_ptr &)
75  {
76  mooseError(not_shared_error);
77  }
78 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ getSharedPtr() [2/2]

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

Definition at line 81 of file MooseObject.C.

82 {
83  try
84  {
85  return shared_from_this();
86  }
87  catch (std::bad_weak_ptr &)
88  {
89  mooseError(not_shared_error);
90  }
91 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

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

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

3496 {
3497  const auto it = _sub_to_data.find(subdomain_id);
3498 
3499  if (it == _sub_to_data.end())
3500  mooseError("Unable to find subdomain ID: ", subdomain_id, '.');
3501 
3502  return it->second.boundary_ids;
3503 }
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1800

◆ 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 1729 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().

1730 {
1731  return MooseMeshUtils::getSubdomainID(subdomain_name, getMesh());
1732 }
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:3446

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

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

1736 {
1737  return MooseMeshUtils::getSubdomainIDs(getMesh(), subdomain_name);
1738 }
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:3446

◆ getSubdomainIDs() [2/2]

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

Definition at line 1741 of file MooseMesh.C.

1742 {
1743  return MooseMeshUtils::getSubdomainIDs(getMesh(), subdomain_name);
1744 }
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:3446

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

3507 {
3508  const auto & bnd_ids = getSubdomainBoundaryIds(subdomain_id);
3509  std::set<BoundaryID> boundary_ids(bnd_ids.begin(), bnd_ids.end());
3510  std::unordered_map<SubdomainID, std::set<BoundaryID>>::const_iterator it =
3511  _neighbor_subdomain_boundary_ids.find(subdomain_id);
3512 
3513  boundary_ids.insert(it->second.begin(), it->second.end());
3514 
3515  return boundary_ids;
3516 }
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:3495
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:1803

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

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

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

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

Referenced by HDGKernel::HDGKernel().

4184 {
4185  const auto unique_system = _coord_sys.find(*meshSubdomains().begin())->second;
4186  // Check that it is actually unique
4187  bool result = std::all_of(
4188  std::next(_coord_sys.begin()),
4189  _coord_sys.end(),
4190  [unique_system](
4191  typename std::unordered_map<SubdomainID, Moose::CoordinateSystemType>::const_reference
4192  item) { return (item.second == unique_system); });
4193  if (!result)
4194  mooseError("The unique coordinate system of the mesh was requested by the mesh contains "
4195  "multiple blocks with different coordinate systems");
4196 
4198  mooseError("General axisymmetric coordinate axes are being used, and it is currently "
4199  "conservatively assumed that in this case there is no unique coordinate system.");
4200 
4201  return unique_system;
4202 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1858
bool usingGeneralAxisymmetricCoordAxes() const
Returns true if general axisymmetric coordinate axes are being used.
Definition: MooseMesh.C:4277
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:3169

◆ ghostGhostedBoundaries()

void MooseMesh::ghostGhostedBoundaries ( )
inherited

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

Definition at line 3312 of file MooseMesh.C.

Referenced by FEProblemBase::ghostGhostedBoundaries().

3313 {
3314  // No need to do this if using a serial mesh
3315  // We do not need to ghost boundary elements when _need_ghost_ghosted_boundaries
3316  // is not true. _need_ghost_ghosted_boundaries can be set by a mesh generator
3317  // where boundaries are already ghosted accordingly
3319  return;
3320 
3321  TIME_SECTION("GhostGhostedBoundaries", 3);
3322 
3323  parallel_object_only();
3324 
3325  DistributedMesh & mesh = dynamic_cast<DistributedMesh &>(getMesh());
3326 
3327  // We clear ghosted elements that were added by previous invocations of this
3328  // method but leave ghosted elements that were added by other code, e.g.
3329  // OversampleOutput, untouched
3330  mesh.clear_extra_ghost_elems(_ghost_elems_from_ghost_boundaries);
3332 
3333  std::set<const Elem *, CompareElemsByLevel> boundary_elems_to_ghost;
3334  std::set<Node *> connected_nodes_to_ghost;
3335 
3336  std::vector<const Elem *> family_tree;
3337 
3338  for (const auto & t : mesh.get_boundary_info().build_side_list())
3339  {
3340  auto elem_id = std::get<0>(t);
3341  auto bc_id = std::get<2>(t);
3342 
3343  if (_ghosted_boundaries.find(bc_id) != _ghosted_boundaries.end())
3344  {
3345  Elem * elem = mesh.elem_ptr(elem_id);
3346 
3347 #ifdef LIBMESH_ENABLE_AMR
3348  elem->family_tree(family_tree);
3349  Elem * parent = elem->parent();
3350  while (parent)
3351  {
3352  family_tree.push_back(parent);
3353  parent = parent->parent();
3354  }
3355 #else
3356  family_tree.clear();
3357  family_tree.push_back(elem);
3358 #endif
3359  for (const auto & felem : family_tree)
3360  {
3361  boundary_elems_to_ghost.insert(felem);
3362 
3363  // The entries of connected_nodes_to_ghost need to be
3364  // non-constant, so that they will work in things like
3365  // UpdateDisplacedMeshThread. The container returned by
3366  // family_tree contains const Elems even when the Elem
3367  // it is called on is non-const, so once that interface
3368  // gets fixed we can remove this const_cast.
3369  for (unsigned int n = 0; n < felem->n_nodes(); ++n)
3370  connected_nodes_to_ghost.insert(const_cast<Node *>(felem->node_ptr(n)));
3371  }
3372  }
3373  }
3374 
3375  // We really do want to store this by value instead of by reference
3376  const auto prior_ghost_elems = mesh.extra_ghost_elems();
3377 
3379  connected_nodes_to_ghost.begin(),
3380  connected_nodes_to_ghost.end(),
3381  extra_ghost_elem_inserter<Node>(mesh));
3382 
3384  boundary_elems_to_ghost.begin(),
3385  boundary_elems_to_ghost.end(),
3386  extra_ghost_elem_inserter<Elem>(mesh));
3387 
3388  const auto & current_ghost_elems = mesh.extra_ghost_elems();
3389 
3390  std::set_difference(current_ghost_elems.begin(),
3391  current_ghost_elems.end(),
3392  prior_ghost_elems.begin(),
3393  prior_ghost_elems.end(),
3394  std::inserter(_ghost_elems_from_ghost_boundaries,
3396 }
const Elem * parent() const
bool _need_ghost_ghosted_boundaries
A parallel mesh generator such as DistributedRectilinearMeshGenerator already make everything ready...
Definition: MooseMesh.h:1837
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:1831
void build_side_list(std::vector< dof_id_type > &element_id_list, std::vector< unsigned short int > &side_list, std::vector< boundary_id_type > &bc_id_list) const
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1428
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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:3097
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1558

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

Referenced by MooseMesh::getElementIDIndex().

2152 {
2153  return getMesh().has_elem_integer(id_name);
2154 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ hasLowerD()

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

Definition at line 1398 of file MooseMesh.h.

Referenced by GhostLowerDElems::operator()().

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

◆ hasMeshBase()

bool MooseMesh::hasMeshBase ( ) const
inlineinherited

Whether mesh base object was constructed or not.

Definition at line 1104 of file MooseMesh.h.

Referenced by MeshGeneratorMesh::buildMesh().

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

◆ hasSecondOrderElements()

bool MooseMesh::hasSecondOrderElements ( )
inherited

check if the mesh has SECOND order elements

Definition at line 3709 of file MooseMesh.C.

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

3710 {
3711  bool mesh_has_second_order_elements = false;
3712  for (auto it = activeLocalElementsBegin(), end = activeLocalElementsEnd(); it != end; ++it)
3713  if ((*it)->default_order() == SECOND)
3714  {
3715  mesh_has_second_order_elements = true;
3716  break;
3717  }
3718 
3719  // We checked our local elements, so take the max over all processors.
3720  comm().max(mesh_has_second_order_elements);
3721  return mesh_has_second_order_elements;
3722 }
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:3049
void max(const T &r, T &o, Request &req) const
const MeshBase::element_iterator activeLocalElementsEnd()
Definition: MooseMesh.C:3055

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

2874 {
2881  if (!_mesh)
2883 
2885  mooseError("You cannot use the mesh splitter capability with DistributedMesh!");
2886 
2887  TIME_SECTION("init", 2);
2888 
2890  {
2891  // Some partitioners are not idempotent. Some recovery data
2892  // files require partitioning to match mesh partitioning. This
2893  // means that, when recovering, we can't safely repartition.
2894  const bool skip_partitioning_later = getMesh().skip_partitioning();
2895  getMesh().skip_partitioning(true);
2896  const bool allow_renumbering_later = getMesh().allow_renumbering();
2897  getMesh().allow_renumbering(false);
2898 
2899  // For now, only read the recovery mesh on the Ultimate Master..
2900  // sub-apps need to just build their mesh like normal
2901  {
2902  TIME_SECTION("readRecoveredMesh", 2);
2904  }
2905 
2906  getMesh().allow_renumbering(allow_renumbering_later);
2907  getMesh().skip_partitioning(skip_partitioning_later);
2908  }
2909  else // Normally just build the mesh
2910  {
2911  // Don't allow partitioning during building
2912  if (_app.isSplitMesh())
2913  getMesh().skip_partitioning(true);
2914  buildMesh();
2915 
2916  // Re-enable partitioning so the splitter can partition!
2917  if (_app.isSplitMesh())
2918  getMesh().skip_partitioning(false);
2919 
2920  if (getParam<bool>("build_all_side_lowerd_mesh"))
2921  buildLowerDMesh();
2922  }
2923 }
static const std::string & checkpointSuffix()
The file suffix for the checkpoint mesh.
Definition: MooseApp.C:3066
virtual void read(const std::string &name, void *mesh_data=nullptr, bool skip_renumber_nodes_and_elements=false, bool skip_find_neighbors=false)=0
bool isUltimateMaster() const
Whether or not this app is the ultimate master app.
Definition: MooseApp.h:846
void allow_renumbering(bool allow)
void skip_partitioning(bool skip)
void buildLowerDMesh()
Build lower-d mesh for all sides.
Definition: MooseMesh.C:656
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:1823
bool _allow_recovery
Whether or not this Mesh is allowed to read a recovery file.
Definition: MooseMesh.h:1819
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1428
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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:2854
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition: MooseApp.C:1811
std::string getRestartRecoverFileBase() const
The file_base for the recovery file.
Definition: MooseApp.h:520

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

Referenced by BoundaryMarker::computeElementMarker().

3590 {
3591  bool found_elem = false;
3592  for (const auto & it : _bnd_elem_ids)
3593  {
3594  if (it.second.find(elem_id) != it.second.end())
3595  {
3596  found_elem = true;
3597  break;
3598  }
3599  }
3600  return found_elem;
3601 }
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:1545

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

3605 {
3606  bool found_elem = false;
3607  auto it = _bnd_elem_ids.find(bnd_id);
3608  if (it != _bnd_elem_ids.end())
3609  if (it->second.find(elem_id) != it->second.end())
3610  found_elem = true;
3611  return found_elem;
3612 }
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:1545

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

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

◆ isBoundaryNode() [1/2]

bool MooseMesh::isBoundaryNode ( dof_id_type  node_id) const
inherited

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

Definition at line 3563 of file MooseMesh.C.

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

3564 {
3565  bool found_node = false;
3566  for (const auto & it : _bnd_node_ids)
3567  {
3568  if (it.second.find(node_id) != it.second.end())
3569  {
3570  found_node = true;
3571  break;
3572  }
3573  }
3574  return found_node;
3575 }
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:1537

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

3579 {
3580  bool found_node = false;
3581  std::map<boundary_id_type, std::set<dof_id_type>>::const_iterator it = _bnd_node_ids.find(bnd_id);
3582  if (it != _bnd_node_ids.end())
3583  if (it->second.find(node_id) != it->second.end())
3584  found_node = true;
3585  return found_node;
3586 }
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:1537

◆ isCustomPartitionerRequested()

bool MooseMesh::isCustomPartitionerRequested ( ) const
inherited

Setter and getter for _custom_partitioner_requested.

Definition at line 3703 of file MooseMesh.C.

3704 {
3706 }
bool _custom_partitioner_requested
Definition: MooseMesh.h:1441

◆ isDisplaced() [1/2]

void MooseMesh::isDisplaced ( bool  is_displaced)
inlineinherited

Set whether this mesh is a displaced mesh.

Definition at line 1208 of file MooseMesh.h.

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

◆ isDisplaced() [2/2]

bool MooseMesh::isDisplaced ( ) const
inlineinherited

whether this mesh is a displaced mesh

Definition at line 1213 of file MooseMesh.h.

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

◆ isDistributedMesh()

virtual bool MooseMesh::isDistributedMesh ( ) const
inlinevirtualinherited

◆ isFiniteVolumeInfoDirty()

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

Definition at line 1304 of file MooseMesh.h.

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

1304 { return _finite_volume_info_dirty; }
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1615

◆ isLowerD()

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

Definition at line 2197 of file MooseMesh.h.

Referenced by ProjectionAux::computeValue(), ProjectionAux::elemOnNodeVariableIsDefinedOn(), MooseVariableBase::MooseVariableBase(), and ProjectionAux::ProjectionAux().

2198 {
2199  return libmesh_map_find(_sub_to_data, subdomain_id).is_lower_d;
2200 }
std::unordered_map< SubdomainID, SubdomainData > _sub_to_data
Holds a map from subdomain ids to associated data.
Definition: MooseMesh.h:1800

◆ isParallelTypeForced()

bool MooseMesh::isParallelTypeForced ( ) const
inlineinherited

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

Definition at line 1006 of file MooseMesh.h.

1006 { return _parallel_type_overridden; }
bool _parallel_type_overridden
Definition: MooseMesh.h:1430

◆ isParamSetByUser()

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

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

Parameters
nmThe name of the parameter to test

Definition at line 128 of file MooseBaseParameterInterface.h.

Referenced by SetupDebugAction::act(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), DiffusionCG::addFEBCs(), DiffusionPhysicsBase::addInitialConditions(), MFEMMesh::buildMesh(), LibtorchNeuralNetControl::conditionalParameterError(), DiffusionPhysicsBase::DiffusionPhysicsBase(), ElementSubdomainModifierBase::ElementSubdomainModifierBase(), MooseBaseParameterInterface::getRenamedParam(), DefaultConvergenceBase::getSharedExecutionerParam(), AddVariableAction::init(), PhysicsBase::initializePhysics(), ElementSubdomainModifierBase::initialSetup(), MatrixSymmetryCheck::MatrixSymmetryCheck(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), SolutionInvalidityOutput::output(), Output::Output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), PetscExternalPartitioner::partition(), PiecewiseTabularBase::PiecewiseTabularBase(), MooseMesh::prepare(), SolutionUserObjectBase::readXda(), PhysicsBase::reportPotentiallyMissedParameters(), MFEMSolverBase::setPreconditioner(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), TimedSubdomainModifier::TimedSubdomainModifier(), and XYDelaunayGenerator::XYDelaunayGenerator().

128 { return _pars.isParamSetByUser(nm); }
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was set by the user.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.

◆ isParamValid()

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

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 122 of file MooseBaseParameterInterface.h.

Referenced by HierarchicalGridPartitioner::_do_partition(), GridPartitioner::_do_partition(), CopyNodalVarsAction::act(), SetupMeshAction::act(), SetupDebugAction::act(), ComposeTimeStepperAction::act(), AddVariableAction::act(), CreateDisplacedProblemAction::act(), SetAdaptivityOptionsAction::act(), CommonOutputAction::act(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), DiffusionCG::addFEKernels(), DiffusionFV::addFVBCs(), DiffusionFV::addFVKernels(), DiffusionPhysicsBase::addInitialConditions(), CylinderComponent::addMeshGenerators(), AddPeriodicBCAction::AddPeriodicBCAction(), DiffusionPhysicsBase::addPostprocessors(), AdvectiveFluxAux::AdvectiveFluxAux(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), ArrayVarReductionAux::ArrayVarReductionAux(), AddPeriodicBCAction::autoTranslationBoundaries(), BicubicSplineFunction::BicubicSplineFunction(), BlockDeletionGenerator::BlockDeletionGenerator(), TimedSubdomainModifier::buildFromFile(), PiecewiseTabularBase::buildFromFile(), PiecewiseTabularBase::buildFromJSON(), ParsedChainControl::buildFunction(), GeneratedMesh::buildMesh(), MooseMesh::buildTypedMesh(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), MultiAppTransfer::checkParentAppUserObjectExecuteOn(), LibmeshPartitioner::clone(), SampledOutput::cloneMesh(), CombinerGenerator::CombinerGenerator(), FunctorAux::computeValue(), ConservativeAdvectionTempl< is_ad >::ConservativeAdvectionTempl(), FEProblemSolve::convergenceSetup(), CopyMeshPartitioner::CopyMeshPartitioner(), CSVReaderVectorPostprocessor::CSVReaderVectorPostprocessor(), CutMeshByLevelSetGeneratorBase::CutMeshByLevelSetGeneratorBase(), ConstantReporter::declareConstantReporterValue(), ConstantReporter::declareConstantReporterValues(), DGKernelBase::DGKernelBase(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), Eigenvalue::Eigenvalue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), PIDTransientControl::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppUserObjectTransfer::execute(), Exodus::Exodus(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FEProblemBase::FEProblemBase(), FEProblemSolve::FEProblemSolve(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FileOutput::FileOutput(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FixedPointSolve::FixedPointSolve(), FunctionDT::FunctionDT(), FunctionValuePostprocessor::FunctionValuePostprocessor(), FVInterfaceKernel::FVInterfaceKernel(), FVMassMatrix::FVMassMatrix(), AddMetaDataGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), ExtraNodesetGenerator::generate(), ElementGenerator::generate(), FileMeshGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), SubdomainPerElementGenerator::generate(), BlockDeletionGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainGeneratorBase::generate(), MeshExtruderGenerator::generate(), ParsedExtraElementIDGenerator::generate(), XYZDelaunayGenerator::generate(), XYDelaunayGenerator::generate(), XYMeshLineCutter::generate(), SubdomainBoundingBoxGenerator::generate(), DistributedRectilinearMeshGenerator::generate(), PropertyReadFile::getFileNames(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), MooseBaseParameterInterface::getRenamedParam(), MultiAppNearestNodeTransfer::getTargetLocalNodes(), Terminator::handleMessage(), HFEMDirichletBC::HFEMDirichletBC(), EigenExecutionerBase::init(), IterationAdaptiveDT::init(), Eigenvalue::init(), AdvancedOutput::initExecutionTypes(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), MultiAppCloneReporterTransfer::initialSetup(), SolutionIC::initialSetup(), MultiAppVariableValueSampleTransfer::initialSetup(), PiecewiseTabularBase::initialSetup(), ParsedConvergence::initialSetup(), SolutionScalarAux::initialSetup(), SolutionAux::initialSetup(), Console::initialSetup(), MooseParsedVectorFunction::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), MooseParsedGradFunction::initialSetup(), MooseParsedFunction::initialSetup(), SampledOutput::initSample(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), MassMatrix::MassMatrix(), MatCoupledForce::MatCoupledForce(), MatDiffusionBase< Real >::MatDiffusionBase(), MeshGeneratorComponent::MeshGeneratorComponent(), MFEMProblemSolve::MFEMProblemSolve(), MooseMesh::MooseMesh(), MoosePreconditioner::MoosePreconditioner(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MooseVariableFV< Real >::MooseVariableFV(), MortarConstraintBase::MortarConstraintBase(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldNearestLocationTransfer::MultiAppGeneralFieldNearestLocationTransfer(), MultiAppGeneralFieldShapeEvaluationTransfer::MultiAppGeneralFieldShapeEvaluationTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppReporterTransfer::MultiAppReporterTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), MultiSystemSolveObject::MultiSystemSolveObject(), NodeSetsGeneratorBase::NodeSetsGeneratorBase(), EigenExecutionerBase::normalizeSolution(), Output::Output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), ParsedCurveGenerator::ParsedCurveGenerator(), PetscOutput::PetscOutput(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), PIDTransientControl::PIDTransientControl(), PiecewiseTabularBase::PiecewiseTabularBase(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), MooseMesh::prepare(), MooseBaseParameterInterface::queryParam(), MultiApp::readCommandLineArguments(), SolutionUserObjectBase::readExodusII(), ReferenceResidualInterface::ReferenceResidualInterface(), RenameBlockGenerator::RenameBlockGenerator(), ReporterPointSource::ReporterPointSource(), PhysicsBase::reportPotentiallyMissedParameters(), ParsedSubdomainMeshGenerator::setBlockName(), MooseMesh::setCoordSystem(), FileOutput::setFileBase(), FileOutput::setFileBaseInternal(), Split::setup(), SideSetsGeneratorBase::setup(), SetupMeshAction::setupMesh(), SideDiffusiveFluxIntegralTempl< is_ad, Real >::SideDiffusiveFluxIntegralTempl(), SideSetsGeneratorBase::SideSetsGeneratorBase(), SolutionUserObjectBase::SolutionUserObjectBase(), WebServerControl::startServer(), Terminator::Terminator(), TimeIntervalTimes::TimeIntervalTimes(), TimePeriod::TimePeriod(), MultiAppDofCopyTransfer::transfer(), TransformGenerator::TransformGenerator(), TransientBase::TransientBase(), FunctorIC::value(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl(), WebServerControl::WebServerControl(), XYDelaunayGenerator::XYDelaunayGenerator(), and XYZDelaunayGenerator::XYZDelaunayGenerator().

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

◆ isPartitionerForced()

bool MooseMesh::isPartitionerForced ( ) const
inlineinherited

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

Definition at line 1026 of file MooseMesh.h.

1026 { return _partitioner_overridden; }
bool _partitioner_overridden
Definition: MooseMesh.h:1437

◆ isRegularOrthogonal()

bool MooseMesh::isRegularOrthogonal ( )
inlineinherited

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

Definition at line 1056 of file MooseMesh.h.

Referenced by AddPeriodicBCAction::setPeriodicVars().

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

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

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

◆ isSplit()

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

Definition at line 1327 of file MooseMesh.h.

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

◆ isTranslatedPeriodic()

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

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

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

Definition at line 2249 of file MooseMesh.C.

Referenced by MooseMesh::minPeriodicVector().

2250 {
2251  mooseAssert(component < dimension(), "Requested dimension out of bounds");
2252 
2253  if (_periodic_dim.find(nonlinear_var_num) != _periodic_dim.end())
2254  return _periodic_dim.at(nonlinear_var_num)[component];
2255  else
2256  return false;
2257 }
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2926
std::map< unsigned int, std::vector< bool > > _periodic_dim
A map of vectors indicating which dimensions are periodic in a regular orthogonal mesh for the specif...
Definition: MooseMesh.h:1626

◆ lengthUnit()

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

Definition at line 4328 of file MooseMesh.C.

4329 {
4330  mooseAssert(_coord_transform, "This must be non-null");
4331  return _coord_transform->lengthUnit();
4332 }
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:1868

◆ localNodesBegin() [1/2]

MeshBase::node_iterator MooseMesh::localNodesBegin ( )
inherited

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

Definition at line 3025 of file MooseMesh.C.

3026 {
3027  return getMesh().local_nodes_begin();
3028 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ localNodesBegin() [2/2]

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

Definition at line 3037 of file MooseMesh.C.

3038 {
3039  return getMesh().local_nodes_begin();
3040 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ localNodesEnd() [1/2]

MeshBase::node_iterator MooseMesh::localNodesEnd ( )
inherited

Definition at line 3031 of file MooseMesh.C.

3032 {
3033  return getMesh().local_nodes_end();
3034 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ localNodesEnd() [2/2]

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

Definition at line 3043 of file MooseMesh.C.

3044 {
3045  return getMesh().local_nodes_end();
3046 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446

◆ markFiniteVolumeInfoDirty()

void MooseMesh::markFiniteVolumeInfoDirty ( )
inlineinherited

Mark the finite volume information as dirty.

Definition at line 1299 of file MooseMesh.h.

1299 { _finite_volume_info_dirty = true; }
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1615

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

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

◆ maxElemId()

dof_id_type MooseMesh::maxElemId ( ) const
virtualinherited

Definition at line 3091 of file MooseMesh.C.

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

3092 {
3093  return getMesh().max_elem_id();
3094 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 1362 of file MooseMesh.h.

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

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

3086 {
3087  return getMesh().max_node_id();
3088 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 1357 of file MooseMesh.h.

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

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

Referenced by BoundaryRestrictable::isBoundarySubset().

3176 {
3177  return _mesh_boundary_ids;
3178 }
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1524

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

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

881 {
882  TIME_SECTION("meshChanged", 3, "Updating Because Mesh Changed");
883 
884  update();
885 
886  // Delete all of the cached ranges
887  _active_local_elem_range.reset();
888  _active_node_range.reset();
890  _local_node_range.reset();
891  _bnd_node_range.reset();
892  _bnd_elem_range.reset();
893 
894  // Rebuild the ranges
900 
901  // Call the callback function onMeshChanged
902  onMeshChanged();
903 }
std::unique_ptr< libMesh::NodeRange > _active_node_range
Definition: MooseMesh.h:1497
libMesh::ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:1236
virtual void onMeshChanged()
Declares a callback function that is executed at the conclusion of meshChanged(). ...
Definition: MooseMesh.C:906
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:1502
std::unique_ptr< libMesh::ConstElemRange > _active_local_elem_range
A range for use with threading.
Definition: MooseMesh.h:1494
libMesh::ConstNodeRange * getLocalNodeRange()
Definition: MooseMesh.C:1273
void update()
Calls buildNodeListFromSideList(), buildNodeList(), and buildBndElemList().
Definition: MooseMesh.C:617
libMesh::NodeRange * getActiveNodeRange()
Definition: MooseMesh.C:1250
libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > * getBoundaryElementRange()
Definition: MooseMesh.C:1301
std::unique_ptr< libMesh::ConstNodeRange > _local_node_range
Definition: MooseMesh.h:1498
libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > * getBoundaryNodeRange()
Definition: MooseMesh.C:1287
std::unique_ptr< libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:1500
std::unique_ptr< SemiLocalNodeRange > _active_semilocal_node_range
Definition: MooseMesh.h:1496

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

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

3188 {
3189  return _mesh_nodeset_ids;
3190 }
std::set< BoundaryID > _mesh_nodeset_ids
Definition: MooseMesh.h:1526

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

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

3182 {
3183  return _mesh_sideset_ids;
3184 }
std::set< BoundaryID > _mesh_sideset_ids
Definition: MooseMesh.h:1525

◆ meshSubdomains()

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

◆ minElementID()

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

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

Definition at line 1124 of file MooseMesh.h.

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

◆ minPeriodicDistance()

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

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

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

Definition at line 2285 of file MooseMesh.C.

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

◆ minPeriodicVector()

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

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

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

Definition at line 2260 of file MooseMesh.C.

Referenced by MooseMesh::minPeriodicDistance().

2261 {
2262  for (unsigned int i = 0; i < dimension(); ++i)
2263  {
2264  // check to see if we're closer in real or periodic space in x, y, and z
2265  if (isTranslatedPeriodic(nonlinear_var_num, i))
2266  {
2267  // Need to test order before differencing
2268  if (p(i) > q(i))
2269  {
2270  if (p(i) - q(i) > _half_range(i))
2271  p(i) -= _half_range(i) * 2;
2272  }
2273  else
2274  {
2275  if (q(i) - p(i) > _half_range(i))
2276  p(i) += _half_range(i) * 2;
2277  }
2278  }
2279  }
2280 
2281  return q - p;
2282 }
RealVectorValue _half_range
A convenience vector used to hold values in each dimension representing half of the range...
Definition: MooseMesh.h:1631
bool isTranslatedPeriodic(unsigned int nonlinear_var_num, unsigned int component) const
Returns whether this generated mesh is periodic in the given dimension for the given variable...
Definition: MooseMesh.C:2249
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2926

◆ mooseDeprecated()

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

Definition at line 91 of file MooseBaseErrorInterface.h.

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

92  {
94  _console, false, true, _moose_base.errorPrefix("deprecation"), std::forward<Args>(args)...);
95  }
std::string errorPrefix(const std::string &error_type) const
Definition: MooseBase.C:43
const MooseBase & _moose_base
The MooseBase class deriving from this interface.
void mooseDeprecatedStream(S &oss, const bool expired, const bool print_title, Args &&... args)
Definition: MooseError.h:239
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ mooseDocumentedError()

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

Emits a documented error with object name and type.

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

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

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

Definition at line 61 of file MooseBaseErrorInterface.h.

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

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

◆ mooseError()

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

Emits an error prefixed with object name and type.

Definition at line 29 of file MooseBaseErrorInterface.h.

Referenced by CopyMeshPartitioner::_do_partition(), HierarchicalGridPartitioner::_do_partition(), GridPartitioner::_do_partition(), PetscExternalPartitioner::_do_partition(), MultiAppGeneralFieldTransfer::acceptPointInOriginMesh(), AddVectorPostprocessorAction::act(), AddFVICAction::act(), AutoCheckpointAction::act(), CheckFVBCAction::act(), CreateExecutionerAction::act(), AddBoundsVectorsAction::act(), InitProblemAction::act(), SetupMeshCompleteAction::act(), AddICAction::act(), AddMeshGeneratorAction::act(), CheckIntegrityAction::act(), CreateProblemAction::act(), CreateProblemDefaultAction::act(), CombineComponentsMeshes::act(), SetupMeshAction::act(), SplitMeshAction::act(), AdaptivityAction::act(), ChainControlSetupAction::act(), DeprecatedBlockAction::act(), SetupPredictorAction::act(), SetupTimeStepperAction::act(), AddTimeStepperAction::act(), CreateDisplacedProblemAction::act(), MaterialDerivativeTestAction::act(), SetAdaptivityOptionsAction::act(), MaterialOutputAction::act(), AddMFEMSubMeshAction::act(), CommonOutputAction::act(), AddPeriodicBCAction::act(), Action::Action(), FEProblemBase::adaptMesh(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), MooseVariableFV< Real >::adCurlSln(), MooseVariableFV< Real >::adCurlSlnNeighbor(), AddActionComponentAction::AddActionComponentAction(), MFEMProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DiffusionCG::addBoundaryConditionsFromComponents(), PhysicsComponentInterface::addBoundaryConditionsFromComponents(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), FEProblemBase::addDGKernel(), FEProblemBase::addDiracKernel(), DistributedRectilinearMeshGenerator::addElement(), 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(), MeshGenerator::addMeshSubgenerator(), MFEMProblem::addMFEMFESpaceFromMOOSEVariable(), FEProblemBase::addOutput(), SubProblem::addPiecewiseByBlockLambdaFunctor(), DiracKernelBase::addPoint(), DistributedRectilinearMeshGenerator::addPoint(), DiracKernelBase::addPointWithValidId(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), MooseMesh::addQuadratureNode(), Action::addRelationshipManager(), FEProblemBase::addReporter(), FEProblemBase::addScalarKernel(), AddVariableAction::addVariable(), FEProblemBase::addVectorPostprocessor(), SubProblem::addVectorTag(), MooseLinearVariableFV< Real >::adError(), ADInterfaceKernelTempl< T >::ADInterfaceKernelTempl(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), MooseVariableScalar::adUDot(), Output::advancedExecuteOn(), AdvectiveFluxAux::AdvectiveFluxAux(), MooseVariableBase::allDofIndices(), NEML2ModelExecutor::applyPredictor(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), ArrayConstantIC::ArrayConstantIC(), ArrayDGKernel::ArrayDGKernel(), ArrayDiffusion::ArrayDiffusion(), ArrayFunctionIC::ArrayFunctionIC(), ArrayReaction::ArrayReaction(), ArrayTimeDerivative::ArrayTimeDerivative(), AddPeriodicBCAction::autoTranslationBoundaries(), AuxKernelTempl< Real >::AuxKernelTempl(), Function::average(), Axisymmetric2D3DSolutionFunction::Axisymmetric2D3DSolutionFunction(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), BicubicSplineFunction::BicubicSplineFunction(), BlockDeletionGenerator::BlockDeletionGenerator(), BoundingValueElementDamper::BoundingValueElementDamper(), BoundingValueNodalDamper::BoundingValueNodalDamper(), BreakMeshByBlockGeneratorBase::BreakMeshByBlockGeneratorBase(), MooseMesh::buildCoarseningMap(), MultiApp::buildComm(), DistributedRectilinearMeshGenerator::buildCube(), TimedSubdomainModifier::buildFromFile(), PiecewiseTabularBase::buildFromFile(), PiecewiseTabularBase::buildFromJSON(), TimedSubdomainModifier::buildFromParameters(), PiecewiseTabularBase::buildFromXY(), PiecewiseLinearBase::buildInterpolation(), MooseMesh::buildLowerDMesh(), TiledMesh::buildMesh(), GeneratedMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), MeshGeneratorMesh::buildMesh(), ImageMeshGenerator::buildMesh3D(), ImageMesh::buildMesh3D(), MooseMesh::buildRefinementMap(), MaterialBase::buildRequiredMaterials(), MooseMesh::buildSideList(), MooseMesh::buildTypedMesh(), MooseMesh::cacheFaceInfoVariableOwnership(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), 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(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), MeshDiagnosticsGenerator::checkNonMatchingEdges(), PostprocessorInterface::checkParam(), FEProblemBase::checkProblemIntegrity(), Sampler::checkReinitStatus(), MultiAppGeneralFieldNearestLocationTransfer::checkRestrictionsForSource(), MultiAppPostprocessorToAuxScalarTransfer::checkSiblingsTransferSupported(), MultiAppScalarToAuxScalarTransfer::checkSiblingsTransferSupported(), MultiAppPostprocessorTransfer::checkSiblingsTransferSupported(), MultiAppReporterTransfer::checkSiblingsTransferSupported(), MultiAppMFEMCopyTransfer::checkSiblingsTransferSupported(), MultiAppCopyTransfer::checkSiblingsTransferSupported(), MultiAppTransfer::checkSiblingsTransferSupported(), MaterialBase::checkStatefulSanity(), AddDefaultConvergenceAction::checkUnusedMultiAppFixedPointConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedNonlinearConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedSteadyStateConvergenceParameters(), FEProblemBase::checkUserObjects(), Moose::PetscSupport::checkUserProvidedPetscOption(), DomainUserObject::checkVariable(), MultiAppTransfer::checkVariable(), MeshDiagnosticsGenerator::checkWatertightNodesets(), MeshDiagnosticsGenerator::checkWatertightSidesets(), LibmeshPartitioner::clone(), MooseMesh::clone(), CombinerGenerator::CombinerGenerator(), ComparisonPostprocessor::comparisonIsTrue(), MooseVariableFieldBase::componentName(), CompositeFunction::CompositeFunction(), ElementH1ErrorFunctionAux::compute(), NodalPatchRecovery::compute(), FEProblemBase::computeBounds(), VariableCondensationPreconditioner::computeDInverseDiag(), CompositionDT::computeDT(), ArrayDGKernel::computeElemNeighJacobian(), ArrayDGKernel::computeElemNeighResidual(), InternalSideIntegralPostprocessor::computeFaceInfoIntegral(), SideIntegralPostprocessor::computeFaceInfoIntegral(), MooseVariableFieldBase::computeFaceValues(), TimeSequenceStepperBase::computeFailedDT(), IterationAdaptiveDT::computeFailedDT(), TimeStepper::computeFailedDT(), MooseMesh::computeFiniteVolumeCoords(), HistogramVectorPostprocessor::computeHistogram(), ArrayKernel::computeJacobian(), ArrayIntegratedBC::computeJacobian(), FVFluxKernel::computeJacobian(), NodalConstraint::computeJacobian(), FEProblemBase::computeJacobianTags(), LowerDIntegratedBC::computeLowerDOffDiagJacobian(), ArrayLowerDIntegratedBC::computeLowerDOffDiagJacobian(), EigenProblem::computeMatricesTags(), ArrayDGKernel::computeOffDiagElemNeighJacobian(), ArrayKernel::computeOffDiagJacobian(), ArrayIntegratedBC::computeOffDiagJacobian(), FVElementalKernel::computeOffDiagJacobian(), MortarScalarBase::computeOffDiagJacobianScalar(), DGLowerDKernel::computeOffDiagLowerDJacobian(), ArrayDGLowerDKernel::computeOffDiagLowerDJacobian(), MaterialBase::computeProperties(), SideFVFluxBCIntegral::computeQpIntegral(), ScalarKernel::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), NodalEqualValueConstraint::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), NodeElemConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), ScalarKernel::computeQpResidual(), MassMatrix::computeQpResidual(), HDGKernel::computeQpResidual(), DiffusionLHDGDirichletBC::computeQpResidual(), NodalEqualValueConstraint::computeQpResidual(), DiffusionLHDGPrescribedGradientBC::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(), TimeStepper::constrainStep(), LibtorchNeuralNetControl::controlNeuralNet(), TransientBase::convergedToSteadyState(), ParsedConvergence::convertRealToBool(), CopyMeshPartitioner::CopyMeshPartitioner(), CoupledForceNodalKernel::CoupledForceNodalKernel(), MultiApp::createApp(), AddVariableAction::createInitialConditionAction(), Function::curl(), MooseVariableFV< Real >::curlPhi(), CutMeshByPlaneGenerator::CutMeshByPlaneGenerator(), SidesetInfoVectorPostprocessor::dataHelper(), DebugResidualAux::DebugResidualAux(), ReporterTransferInterface::declareClone(), MeshGenerator::declareMeshProperty(), ReporterTransferInterface::declareVectorClone(), DefaultSteadyStateConvergence::DefaultSteadyStateConvergence(), FunctorRelationshipManager::delete_remote_elements(), MooseMesh::deleteRemoteElements(), BicubicSplineFunction::derivative(), DerivativeSumMaterialTempl< is_ad >::DerivativeSumMaterialTempl(), MooseMesh::detectPairedSidesets(), FEProblemBase::determineSolverSystem(), DGKernel::DGKernel(), MeshDiagnosticsGenerator::diagnosticsLog(), DistributedPositions::DistributedPositions(), Function::div(), FunctorBinnedValuesDivision::divisionIndex(), MooseVariableFV< Real >::divPhi(), FunctorRelationshipManager::dofmap_reinit(), EigenProblem::doFreeNonlinearPowerIterations(), FEProblemBase::duplicateVariableCheck(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), Eigenvalues::Eigenvalues(), ElementalVariableValue::ElementalVariableValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementIntegerAux::ElementIntegerAux(), ElementMaterialSampler::ElementMaterialSampler(), ElementQualityAux::ElementQualityAux(), ElementSubdomainModifierBase::ElementSubdomainModifierBase(), ElementUOAux::ElementUOAux(), ExtraIDIntegralVectorPostprocessor::elementValue(), DistributedRectilinearMeshGenerator::elemId(), ProjectionAux::elemOnNodeVariableIsDefinedOn(), EigenKernel::enabled(), 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(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), NodalValueSampler::execute(), PositionsFunctorValueSampler::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppPostprocessorTransfer::execute(), ElementQualityChecker::execute(), GreaterThanLessThanPostprocessor::execute(), PointValue::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), FindValueOnLine::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppMFEMCopyTransfer::execute(), MultiAppCopyTransfer::execute(), MultiAppGeometricInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), InterfaceQpUserObjectBase::execute(), WebServerControl::execute(), TransientBase::execute(), LeastSquaresFit::execute(), VectorPostprocessorComparison::execute(), LeastSquaresFitHistory::execute(), TimeExtremeValue::execute(), Eigenvalue::execute(), DomainUserObject::execute(), FEProblemBase::execute(), FEProblemBase::executeControls(), MultiAppVectorPostprocessorTransfer::executeFromMultiapp(), MultiAppVectorPostprocessorTransfer::executeToMultiapp(), Exodus::Exodus(), ExplicitSSPRungeKutta::ExplicitSSPRungeKutta(), MultiAppGeneralFieldTransfer::extractOutgoingPoints(), NEML2ModelExecutor::extractOutputs(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FEProblemSolve::FEProblemSolve(), FileOutput::FileOutput(), NEML2ModelExecutor::fillInputs(), QuadraturePointMultiApp::fillPositions(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), MultiAppGeometricInterpolationTransfer::fillSourceInterpolationPoints(), VerifyElementUniqueID::finalize(), VerifyNodalUniqueID::finalize(), DiscreteElementUserObject::finalize(), ElementQualityChecker::finalize(), MemoryUsage::finalize(), PointSamplerBase::finalize(), DiscreteVariableResidualNorm::finalize(), NearestPointAverage::finalize(), NearestPointIntegralVariablePostprocessor::finalize(), Transfer::find_sys(), BreakMeshByBlockGeneratorBase::findFreeBoundaryId(), FunctionDT::FunctionDT(), FunctionMaterialBase< is_ad >::FunctionMaterialBase(), FunctionScalarAux::FunctionScalarAux(), FunctionScalarIC::FunctionScalarIC(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), FVInitialConditionTempl< T >::FVInitialConditionTempl(), FVMassMatrix::FVMassMatrix(), FVMatAdvection::FVMatAdvection(), FVScalarLagrangeMultiplierInterface::FVScalarLagrangeMultiplierInterface(), GapValueAux::GapValueAux(), WorkBalance::gather(), ElementOrderConversionGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), BlockToMeshConverterGenerator::generate(), ExtraNodesetGenerator::generate(), FileMeshGenerator::generate(), MoveNodeGenerator::generate(), PlaneIDMeshGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), SideSetsFromNormalsGenerator::generate(), SmoothMeshGenerator::generate(), SubdomainPerElementGenerator::generate(), TiledMeshGenerator::generate(), MeshRepairGenerator::generate(), BreakMeshByBlockGenerator::generate(), CoarsenBlockGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), MeshDiagnosticsGenerator::generate(), SideSetsFromPointsGenerator::generate(), StitchMeshGenerator::generate(), AdvancedExtruderGenerator::generate(), AllSideSetsByNormalsGenerator::generate(), CombinerGenerator::generate(), MeshCollectionGenerator::generate(), MeshExtruderGenerator::generate(), ParsedGenerateNodeset::generate(), SideSetsFromBoundingBoxGenerator::generate(), StackGenerator::generate(), XYZDelaunayGenerator::generate(), CutMeshByLevelSetGeneratorBase::generate(), SpiralAnnularMeshGenerator::generate(), XYDelaunayGenerator::generate(), XYMeshLineCutter::generate(), PatternedMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), DistributedRectilinearMeshGenerator::generate(), BoundingBoxNodeSetGenerator::generate(), MeshGenerator::generateData(), GeneratedMesh::GeneratedMesh(), GeneratedMeshGenerator::GeneratedMeshGenerator(), MeshGenerator::generateInternal(), CircularBoundaryCorrectionGenerator::generateRadialCorrectionFactor(), RandomICBase::generateRandom(), GenericConstantMaterialTempl< is_ad >::GenericConstantMaterialTempl(), GenericConstantVectorMaterialTempl< is_ad >::GenericConstantVectorMaterialTempl(), GenericFunctionMaterialTempl< is_ad >::GenericFunctionMaterialTempl(), GenericFunctionVectorMaterialTempl< is_ad >::GenericFunctionVectorMaterialTempl(), GenericFunctorGradientMaterialTempl< is_ad >::GenericFunctorGradientMaterialTempl(), GenericFunctorMaterialTempl< is_ad >::GenericFunctorMaterialTempl(), GenericFunctorTimeDerivativeMaterialTempl< is_ad >::GenericFunctorTimeDerivativeMaterialTempl(), GenericVectorFunctorMaterialTempl< is_ad >::GenericVectorFunctorMaterialTempl(), DisplacedProblem::getActualFieldVariable(), FEProblemBase::getActualFieldVariable(), DisplacedProblem::getArrayVariable(), FEProblemBase::getArrayVariable(), MooseMesh::getAxisymmetricRadialCoord(), MFEMFESpace::getBasis(), NEML2BatchIndexGenerator::getBatchIndex(), MooseMesh::getBlockConnectedBlocks(), VariableOldValueBounds::getBound(), MooseMesh::getBoundaryID(), MultiApp::getBoundingBox(), ChainControl::getChainControlDataByName(), MooseMesh::getCoarseningMap(), 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(), MultiApp::getExecutioner(), MFEMVectorFESpace::getFECName(), MultiAppTransfer::getFromMultiApp(), MultiAppTransfer::getFromMultiAppInfo(), FEProblemBase::getFunction(), SubProblem::getFunctor(), FEProblemBase::getFVMatsAndDependencies(), MooseMesh::getGeneralAxisymmetricCoordAxis(), DistributedRectilinearMeshGenerator::getGhostNeighbors(), DistributedRectilinearMeshGenerator::getIndices(), FEProblemBase::getLinearConvergenceNames(), SolutionUserObjectBase::getLocalVarIndex(), Material::getMaterialByName(), FEProblemBase::getMaterialData(), SubProblem::getMatrixTagID(), GeneratedMesh::getMaxInDimension(), AnnularMesh::getMaxInDimension(), FEProblemBase::getMaxQps(), FEProblemBase::getMeshDivision(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), AnnularMesh::getMinInDimension(), GeneratedMesh::getMinInDimension(), 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(), PostprocessorInterface::getPostprocessorValueByNameInternal(), Times::getPreviousTime(), ComponentMaterialPropertyInterface::getPropertyValue(), InterfaceQpUserObjectBase::getQpValue(), MooseMesh::getRefinementMap(), ReporterInterface::getReporterContextBaseByName(), ReporterInterface::getReporterName(), Reporter::getReporterValueName(), FEProblemBase::getSampler(), WebServerControl::getScalarJSONValue(), DisplacedProblem::getScalarVariable(), FEProblemBase::getScalarVariable(), MooseObject::getSharedPtr(), InterfaceQpUserObjectBase::getSideAverageValue(), PhysicsBase::getSolverSystem(), DisplacedProblem::getStandardVariable(), FEProblemBase::getStandardVariable(), FEProblemBase::getSteadyStateConvergenceName(), MooseMesh::getSubdomainBoundaryIds(), TimedSubdomainModifier::getSubdomainIDAndCheck(), DisplacedProblem::getSystem(), FEProblemBase::getSystem(), Times::getTimeAtIndex(), FEProblemBase::getTimeFromStateArg(), TransientBase::getTimeIntegratorNames(), Times::getTimes(), MultiAppTransfer::getToMultiApp(), MultiAppTransfer::getToMultiAppInfo(), MooseMesh::getUniqueCoordSystem(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), UserObjectInterface::getUserObjectBaseByName(), UserObjectInterface::getUserObjectName(), VectorPostprocessorComponent::getValue(), NumRelationshipManagers::getValue(), Residual::getValue(), SideAverageValue::getValue(), JSONFileReader::getValue(), LineValueSampler::getValue(), FindValueOnLine::getValueAtPoint(), SubProblem::getVariableHelper(), JSONFileReader::getVector(), VectorPostprocessorInterface::getVectorPostprocessorName(), SubProblem::getVectorTag(), SubProblem::getVectorTagID(), DisplacedProblem::getVectorVariable(), FEProblemBase::getVectorVariable(), GhostingFromUOAux::GhostingFromUOAux(), MultiApp::globalAppToLocal(), MooseParsedVectorFunction::gradient(), Function::gradient(), FEProblemBase::handleException(), Terminator::handleMessage(), MooseVariableBase::hasDoFsOnNodes(), PostprocessorInterface::hasPostprocessor(), PostprocessorInterface::hasPostprocessorByName(), ReporterInterface::hasReporterValue(), ReporterInterface::hasReporterValueByName(), VectorPostprocessorInterface::hasVectorPostprocessor(), VectorPostprocessorInterface::hasVectorPostprocessorByName(), HDGKernel::HDGKernel(), TransientBase::incrementStepOrReject(), FixedPointIterationAdaptiveDT::init(), CrankNicolson::init(), CSVTimeSequenceStepper::init(), EigenExecutionerBase::init(), ExplicitTimeIntegrator::init(), TransientBase::init(), FEProblem::init(), AddAuxVariableAction::init(), IterationAdaptiveDT::init(), Eigenvalue::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(), PiecewiseLinearBase::initialSetup(), MultiAppConservativeTransfer::initialSetup(), ChainControlDataPostprocessor::initialSetup(), IntegralPreservingFunctionIC::initialSetup(), FullSolveMultiApp::initialSetup(), PiecewiseLinear::initialSetup(), CoarsenedPiecewiseLinear::initialSetup(), LinearFVAnisotropicDiffusion::initialSetup(), LinearFVDiffusion::initialSetup(), SolutionScalarAux::initialSetup(), LinearFVAdvection::initialSetup(), MultiAppDofCopyTransfer::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), ExplicitTimeIntegrator::initialSetup(), SolutionAux::initialSetup(), ReferenceResidualConvergence::initialSetup(), NodalVariableValue::initialSetup(), Axisymmetric2D3DSolutionFunction::initialSetup(), Exodus::initialSetup(), CSV::initialSetup(), MooseParsedFunction::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(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LinearCombinationPostprocessor::LinearCombinationPostprocessor(), LinearNodalConstraint::LinearNodalConstraint(), LineMaterialSamplerBase< Real >::LineMaterialSamplerBase(), LineSearch::lineSearch(), LineValueSampler::LineValueSampler(), 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(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshRepairGenerator::MeshRepairGenerator(), SetupMeshAction::modifyParamsForUseSplit(), MeshMetaDataInterface::mooseErrorInternal(), MooseLinearVariableFV< Real >::MooseLinearVariableFV(), MooseMesh::MooseMesh(), MooseObject::MooseObject(), UserObjectInterface::mooseObjectError(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MooseVariableConstMonomial::MooseVariableConstMonomial(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppMFEMCopyTransfer::MultiAppMFEMCopyTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), NearestNodeDistanceAux::NearestNodeDistanceAux(), NearestNodeValueAux::NearestNodeValueAux(), FEProblemBase::needsPreviousNewtonIteration(), NewmarkBeta::NewmarkBeta(), NodalConstraint::NodalConstraint(), MooseVariableFV< Real >::nodalDofIndex(), MooseVariableFV< Real >::nodalDofIndexNeighbor(), MooseLinearVariableFV< Real >::nodalError(), MooseVariableFV< Real >::nodalMatrixTagValue(), NodalPatchRecoveryBase::nodalPatchRecovery(), NodalPatchRecoveryAuxBase::NodalPatchRecoveryAuxBase(), NodalScalarKernel::NodalScalarKernel(), MooseVariableFV< Real >::nodalValueArray(), MooseVariableFV< Real >::nodalValueOldArray(), MooseVariableFV< Real >::nodalValueOlderArray(), NodalVariableValue::NodalVariableValue(), MooseVariableFV< Real >::nodalVectorTagValue(), DistributedRectilinearMeshGenerator::nodeId(), MooseVariableFV< Real >::numberOfDofsNeighbor(), NumDOFs::NumDOFs(), 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(), AdvancedOutput::outputNodalVariables(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputReporters(), AdvancedOutput::outputScalarVariables(), 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(), PIDTransientControl::PIDTransientControl(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseMulticonstant::PiecewiseMulticonstant(), PiecewiseMultiInterpolation::PiecewiseMultiInterpolation(), PiecewiseTabularBase::PiecewiseTabularBase(), 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(), Predictor::Predictor(), TransientBase::preExecute(), MooseMesh::prepare(), MooseMesh::prepared(), FixedPointSolve::printFixedPointConvergenceReason(), PseudoTimestep::PseudoTimestep(), MultiApp::readCommandLineArguments(), PropertyReadFile::readData(), SolutionUserObjectBase::readExodusII(), SolutionUserObjectBase::readXda(), CoarsenBlockGenerator::recursiveCoarsen(), FunctorRelationshipManager::redistribute(), ReferenceResidualConvergence::ReferenceResidualConvergence(), Sampler::reinit(), RelativeSolutionDifferenceNorm::RelativeSolutionDifferenceNorm(), MFEMTransient::relativeSolutionDifferenceNorm(), PhysicsBase::reportPotentiallyMissedParameters(), RinglebMesh::RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), PiecewiseMultiInterpolation::sample(), ScalarComponentIC::ScalarComponentIC(), MortarScalarBase::scalarVariable(), DistributedRectilinearMeshGenerator::scaleNodalPositions(), BicubicSplineFunction::secondDerivative(), MooseVariableFV< Real >::secondPhi(), MooseVariableFV< Real >::secondPhiFace(), MooseVariableFV< Real >::secondPhiFaceNeighbor(), MooseVariableFV< Real >::secondPhiNeighbor(), FunctorRelationshipManager::set_mesh(), MooseVariableBase::setActiveTags(), DistributedRectilinearMeshGenerator::setBoundaryNames(), MooseMesh::setCoordSystem(), FEProblemBase::setCoupling(), PiecewiseBase::setData(), FileOutput::setFileBaseInternal(), MooseMesh::setGeneralAxisymmetricCoordAxes(), FEProblemSolve::setInnerSolve(), MeshGenerator::setMeshProperty(), FVPointValueConstraint::setMyElem(), FEProblemBase::setNonlocalCouplingMatrix(), Sampler::setNumberOfCols(), Sampler::setNumberOfRandomSeeds(), Sampler::setNumberOfRows(), Exodus::setOutputDimensionInExodusWriter(), AddPeriodicBCAction::setPeriodicVars(), MFEMSolverBase::setPreconditioner(), MultiAppGeneralFieldTransfer::setSolutionVectorValues(), Split::setup(), TransientMultiApp::setupApp(), SetupMeshAction::setupMesh(), 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(), SolutionTimeAdaptiveDT::SolutionTimeAdaptiveDT(), SolutionUserObjectBase::SolutionUserObjectBase(), ExplicitTVDRK2::solve(), ExplicitRK2::solve(), TimeIntegrator::solve(), FEProblemBase::solverSysNum(), FullSolveMultiApp::solveStep(), SpatialAverageBase::SpatialAverageBase(), UserObject::spatialPoints(), NearestPointIntegralVariablePostprocessor::spatialValue(), NearestPointAverage::spatialValue(), MeshDivisionFunctorReductionVectorPostprocessor::spatialValue(), UserObject::spatialValue(), SpiralAnnularMesh::SpiralAnnularMesh(), SpiralAnnularMeshGenerator::SpiralAnnularMeshGenerator(), WebServerControl::startServer(), StitchedMesh::StitchedMesh(), WebServerControl::stringifyJSONType(), 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(), MooseLinearVariableFV< Real >::timeIntegratorError(), TimeIntervalTimes::TimeIntervalTimes(), TimePeriodBase::TimePeriodBase(), VectorPostprocessorVisualizationAux::timestepSetup(), WebServerControl::toMiniJson(), MultiAppDofCopyTransfer::transfer(), MultiAppMFEMCopyTransfer::transfer(), MultiAppShapeEvaluationTransfer::transferVariable(), TransformedPositions::TransformedPositions(), FEProblemBase::trustUserCouplingMatrix(), MooseVariableScalar::uDot(), MooseVariableScalar::uDotDot(), MooseVariableScalar::uDotDotOld(), FEProblemBase::uDotDotOldRequested(), MooseVariableScalar::uDotOld(), FEProblemBase::uDotOldRequested(), Positions::unrollMultiDPositions(), ScalarKernelBase::uOld(), AuxScalarKernel::uOld(), Checkpoint::updateCheckpointFiles(), EqualValueBoundaryConstraint::updateConstrainedNodes(), SolutionUserObjectBase::updateExodusBracketingTimeIndices(), FEProblemBase::updateMaxQps(), MFEMHypreADS::updateSolver(), MFEMHypreAMS::updateSolver(), MFEMHyprePCG::updateSolver(), MFEMOperatorJacobiSmoother::updateSolver(), MFEMCGSolver::updateSolver(), MFEMGMRESSolver::updateSolver(), MFEMHypreFGMRES::updateSolver(), MFEMHypreBoomerAMG::updateSolver(), MFEMHypreGMRES::updateSolver(), MFEMSuperLU::updateSolver(), UpperBoundNodalKernel::UpperBoundNodalKernel(), NearestPointIntegralVariablePostprocessor::userObjectValue(), NearestPointAverage::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(), DOFMapOutput::writeStreamToFile(), and Console::writeStreamToFile().

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

◆ mooseErrorNonPrefixed()

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

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

Definition at line 40 of file MooseBaseErrorInterface.h.

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

◆ mooseInfo()

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

Definition at line 98 of file MooseBaseErrorInterface.h.

Referenced by SetupRecoverFileBaseAction::act(), AStableDirk4::AStableDirk4(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), MultiAppGeneralFieldNearestLocationTransfer::evaluateInterpValuesNearestNode(), PIDTransientControl::execute(), Executioner::Executioner(), ExplicitRK2::ExplicitRK2(), ExplicitTVDRK2::ExplicitTVDRK2(), DataFileInterface::getDataFilePath(), MFEMScalarFESpace::getFECName(), MultiAppTransfer::getPointInTargetAppFrame(), ImplicitMidpoint::ImplicitMidpoint(), ParsedDownSelectionPositions::initialize(), PropertyReadFile::initialize(), MultiAppGeneralFieldTransfer::initialSetup(), InversePowerMethod::InversePowerMethod(), LStableDirk2::LStableDirk2(), LStableDirk3::LStableDirk3(), LStableDirk4::LStableDirk4(), PNGOutput::makeMeshFunc(), NonlinearEigen::NonlinearEigen(), SolutionInvalidityOutput::output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), ProjectionAux::ProjectionAux(), ReferenceResidualConvergence::ReferenceResidualConvergence(), MFEMDataCollection::registerFields(), FEProblemBase::setRestartFile(), SolutionUserObjectBase::SolutionUserObjectBase(), SymmetryTransformGenerator::SymmetryTransformGenerator(), TransientBase::takeStep(), and TransientBase::TransientBase().

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

◆ mooseWarning()

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

Emits a warning prefixed with object name and type.

Definition at line 75 of file MooseBaseErrorInterface.h.

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

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

◆ mooseWarningNonPrefixed()

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

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

Definition at line 85 of file MooseBaseErrorInterface.h.

86  {
87  moose::internal::mooseWarningStream(_console, std::forward<Args>(args)...);
88  }
void mooseWarningStream(S &oss, Args &&... args)
Definition: MooseError.h:184
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:1433

◆ nActiveLocalElem()

virtual dof_id_type MooseMesh::nActiveLocalElem ( ) const
inlinevirtualinherited

Reimplemented in MFEMMesh.

Definition at line 326 of file MooseMesh.h.

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

◆ name()

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

Get the name of the class.

Returns
The name of the class

Reimplemented in MooseVariableBase.

Definition at line 57 of file MooseBase.h.

Referenced by AddElementalFieldAction::act(), CopyNodalVarsAction::act(), AdaptivityAction::act(), AddTimeStepperAction::act(), DeprecatedBlockAction::act(), SetupTimeIntegratorAction::act(), AddActionComponentAction::act(), DisplayGhostingAction::act(), MaterialOutputAction::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(), 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::addFVKernel(), ADDGKernel::ADDGKernel(), FEProblemBase::addHDGKernel(), FEProblemBase::addIndicator(), MFEMProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), MFEMProblem::addKernel(), FEProblemBase::addKernel(), FEProblemBase::addLinearFVBC(), FEProblemBase::addLinearFVKernel(), FEProblemBase::addMarker(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), ComponentMaterialPropertyInterface::addMaterials(), FEProblemBase::addMeshDivision(), MooseApp::addMeshGenerator(), ComponentMeshTransformHelper::addMeshGenerators(), CylinderComponent::addMeshGenerators(), MeshGenerator::addMeshSubgenerator(), MFEMProblem::addMFEMPreconditioner(), MFEMProblem::addMFEMSolver(), FEProblemBase::addMultiApp(), FEProblemBase::addNodalKernel(), FEProblemBase::addObject(), ComponentPhysicsInterface::addPhysics(), SubProblem::addPiecewiseByBlockLambdaFunctor(), MFEMProblem::addPostprocessor(), FEProblemBase::addPostprocessor(), InitialConditionBase::addPostprocessorDependencyHelper(), UserObject::addPostprocessorDependencyHelper(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), Action::addRelationshipManager(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), MFEMProblem::addTransfer(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), InitialConditionBase::addUserObjectDependencyHelper(), UserObject::addUserObjectDependencyHelper(), AuxKernelTempl< Real >::addUserObjectDependencyHelper(), DisplacedProblem::addVariable(), FEProblemBase::addVectorPostprocessor(), UserObject::addVectorPostprocessorDependencyHelper(), Output::advancedExecuteOn(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), MooseApp::appBinaryName(), MooseApp::appendMeshGenerator(), Registry::appNameFromAppPath(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), ArrayDGKernel::ArrayDGKernel(), PhysicsBase::assignBlocks(), AStableDirk4::AStableDirk4(), AuxKernelTempl< Real >::AuxKernelTempl(), Function::average(), MultiApp::backup(), CoarsenedPiecewiseLinear::buildCoarsenedGrid(), MFEMFESpace::buildFEC(), PiecewiseTabularBase::buildFromFile(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), MooseBase::callMooseError(), ChangeOverFixedPointPostprocessor::ChangeOverFixedPointPostprocessor(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), PhysicsBase::checkBlockRestrictionIdentical(), PhysicsBase::checkComponentType(), ParsedConvergence::checkConvergence(), DefaultNonlinearConvergence::checkConvergence(), FEProblemBase::checkDependMaterialsHelper(), ReporterTransferInterface::checkHasReporterValue(), FEProblemBase::checkICRestartError(), Material::checkMaterialProperty(), MooseApp::checkMetaDataIntegrity(), Damper::checkMinDamping(), MultiAppTransfer::checkParentAppUserObjectExecuteOn(), Checkpoint::checkpointInfo(), Coupleable::checkWritableVar(), CompositeFunction::CompositeFunction(), MaterialBase::computeProperties(), FEProblemBase::computeUserObjectByName(), VectorPostprocessorVisualizationAux::computeValue(), MooseBaseParameterInterface::connectControllableParams(), ConstantPostprocessor::ConstantPostprocessor(), CommonOutputAction::create(), MultiApp::createApp(), MooseApp::createExecutors(), MeshGeneratorSystem::createMeshGeneratorOrder(), MooseApp::createRecoverablePerfGraph(), CutMeshByPlaneGenerator::CutMeshByPlaneGenerator(), MaterialBase::declareADProperty(), MeshGenerator::declareMeshesForSubByName(), MeshGenerator::declareNullMeshName(), MaterialBase::declareProperty(), DOFMapOutput::demangle(), DerivativeSumMaterialTempl< is_ad >::DerivativeSumMaterialTempl(), Registry::determineDataFilePath(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DomainUserObject::DomainUserObject(), DumpObjectsProblem::dumpObjectHelper(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementMaterialSampler::ElementMaterialSampler(), ElementValueSampler::ElementValueSampler(), EigenKernel::enabled(), MooseMesh::errorIfDistributedMesh(), MooseBase::errorPrefix(), SolutionUserObjectBase::evalMeshFunction(), SolutionUserObjectBase::evalMeshFunctionGradient(), SolutionUserObjectBase::evalMultiValuedMeshFunction(), SolutionUserObjectBase::evalMultiValuedMeshFunctionGradient(), SideValueSampler::execute(), RestartableDataReporter::execute(), PointValue::execute(), MultiAppNearestNodeTransfer::execute(), WebServerControl::execute(), MultiAppGeneralFieldTransfer::execute(), ActionWarehouse::executeActionsWithAction(), Exodus::Exodus(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FEProblemBase::FEProblemBase(), MultiApp::fillPositions(), PointSamplerBase::finalize(), ChainControl::fullControlDataName(), FunctionDT::FunctionDT(), FunctionIC::functionName(), FVFunctionIC::functionName(), FunctorPositions::FunctorPositions(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), FVOneVarDiffusionInterface::FVOneVarDiffusionInterface(), MooseServer::gatherDocumentSymbols(), BoundaryDeletionGenerator::generate(), UniqueExtraIDMeshGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), BreakMeshByBlockGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainGeneratorBase::generate(), StitchBoundaryMeshGenerator::generate(), StitchMeshGenerator::generate(), ParsedExtraElementIDGenerator::generate(), XYDelaunayGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), MeshGenerator::generateInternal(), InterfaceMaterial::getADMaterialProperty(), Material::getADMaterialProperty(), MultiAppTransfer::getAppInfo(), MultiApp::getBoundingBox(), MooseApp::getCheckpointDirectories(), Control::getControllableParameterByName(), Control::getControllableValue(), Control::getControllableValueByName(), FEProblemBase::getConvergence(), Registry::getDataFilePath(), UserObject::getDependObjects(), DistributionInterface::getDistribution(), FEProblemBase::getDistribution(), DistributionInterface::getDistributionByName(), ElementUOProvider::getElementalValueLong(), ElementUOProvider::getElementalValueReal(), MultiApp::getExecutioner(), MooseApp::getExecutor(), FEProblemBase::getExecutor(), OutputWarehouse::getFileNumbers(), FEProblemBase::getFunction(), SubProblem::getFunctor(), NodalPatchRecovery::getGenericMaterialProperty(), InterfaceMaterial::getGenericMaterialProperty(), Material::getGenericMaterialProperty(), AuxKernelTempl< Real >::getGenericMaterialProperty(), InterfaceMaterial::getGenericNeighborMaterialProperty(), InterfaceMaterial::getGenericNeighborMaterialPropertyByName(), Material::getGenericOptionalMaterialProperty(), MaterialBase::getGenericZeroMaterialProperty(), MFEMProblem::getGridFunction(), SolutionUserObjectBase::getLocalVarIndex(), Marker::getMarkerValue(), Material::getMaterial(), FEProblemBase::getMaterial(), Material::getMaterialByName(), NodalPatchRecovery::getMaterialProperty(), InterfaceMaterial::getMaterialProperty(), Material::getMaterialProperty(), AuxKernelTempl< Real >::getMaterialProperty(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), NodalPatchRecovery::getMaterialPropertyOld(), InterfaceMaterial::getMaterialPropertyOld(), Material::getMaterialPropertyOld(), AuxKernelTempl< Real >::getMaterialPropertyOld(), NodalPatchRecovery::getMaterialPropertyOlder(), InterfaceMaterial::getMaterialPropertyOlder(), Material::getMaterialPropertyOlder(), AuxKernelTempl< Real >::getMaterialPropertyOlder(), MFEMGeneralUserObject::getMatrixCoefficient(), MFEMGeneralUserObject::getMatrixCoefficientByName(), MeshGenerator::getMesh(), FEProblemBase::getMeshDivision(), MeshGenerator::getMeshesByName(), MooseApp::getMeshGenerator(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), ActionWarehouse::getMooseAppName(), MultiAppTransfer::getMultiApp(), InterfaceMaterial::getNeighborADMaterialProperty(), InterfaceMaterial::getNeighborMaterialProperty(), InterfaceMaterial::getNeighborMaterialPropertyOld(), InterfaceMaterial::getNeighborMaterialPropertyOlder(), MooseServer::getObjectParameters(), Material::getOptionalADMaterialProperty(), Material::getOptionalMaterialProperty(), Material::getOptionalMaterialPropertyOld(), Material::getOptionalMaterialPropertyOlder(), OutputWarehouse::getOutput(), MooseApp::getParam(), FEProblemBase::getPositionsObject(), FEProblemBase::getPostprocessorValueByName(), ComponentMaterialPropertyInterface::getPropertyValue(), ReporterData::getReporterInfo(), MooseApp::getRestartableDataMap(), MooseApp::getRestartableDataMapName(), MooseApp::getRestartableMetaData(), FEProblemBase::getSampler(), MFEMGeneralUserObject::getScalarCoefficient(), MFEMGeneralUserObject::getScalarCoefficientByName(), TransientBase::getTimeStepperName(), ProjectedStatefulMaterialStorageAction::getTypeEnum(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), MFEMGeneralUserObject::getVectorCoefficient(), MFEMGeneralUserObject::getVectorCoefficientByName(), Terminator::handleMessage(), Control::hasControllableParameterByName(), FEProblemBase::hasConvergence(), FEProblemBase::hasFunction(), SubProblem::hasFunctor(), SubProblem::hasFunctorWithType(), MooseApp::hasMeshGenerator(), AdvancedOutput::hasOutputHelper(), FEProblemBase::hasPostprocessor(), FEProblemBase::hasPostprocessorValueByName(), MooseApp::hasRelationshipManager(), MooseApp::hasRestartableDataMap(), MooseApp::hasRestartableMetaData(), FEProblemBase::hasUserObject(), IterationAdaptiveDT::init(), AddVariableAction::init(), AdvancedOutput::init(), AdvancedOutput::initExecutionTypes(), AttribName::initFrom(), NestedDivision::initialize(), TransformedPositions::initialize(), JSONOutput::initialSetup(), SideFVFluxBCIntegral::initialSetup(), SolutionScalarAux::initialSetup(), MultiAppProjectionTransfer::initialSetup(), NodalVariableValue::initialSetup(), Console::initialSetup(), SolutionUserObjectBase::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), MaterialBase::initStatefulProperties(), Function::integral(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), MeshGenerator::isChildMeshGenerator(), MeshGenerator::isNullMeshName(), MooseApp::isParamValid(), MeshGenerator::isParentMeshGenerator(), LinearCombinationFunction::LinearCombinationFunction(), FEProblemBase::logAdd(), Marker::Marker(), MaterialBase::markMatPropRequested(), MatDiffusionBase< Real >::MatDiffusionBase(), Material::Material(), MaterialDerivativeTestKernelBase< Real >::MaterialDerivativeTestKernelBase(), Distribution::median(), MemoryUsageReporter::MemoryUsageReporter(), MeshGenerator::meshPropertyPrefix(), OutputWarehouse::mooseConsole(), MooseVariableInterface< Real >::MooseVariableInterface(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), 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(), Exodus::outputPostprocessors(), AdvancedOutput::outputPostprocessors(), TableOutput::outputReporter(), AdvancedOutput::outputReporters(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), AdvancedOutput::outputVectorPostprocessors(), ParsedCurveGenerator::ParsedCurveGenerator(), MooseServer::parseDocumentForDiagnostics(), ParsedODEKernel::ParsedODEKernel(), ComponentPhysicsInterface::physicsExists(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), MooseApp::possiblyLoadRestartableMetaData(), PhysicsBase::prefix(), MooseMesh::prepare(), BlockRestrictionDebugOutput::printBlockRestrictionMap(), PerfGraphLivePrint::printStats(), MultiApp::readCommandLineArguments(), Receiver::Receiver(), Executor::Result::record(), AppFactory::reg(), Registry::registerObjectsTo(), FEProblemBase::registerRandomInterface(), MooseApp::registerRestartableDataMapName(), MooseApp::registerRestartableNameWithFilter(), GlobalParamsAction::remove(), MaterialBase::resetQpProperties(), MultiApp::restore(), ScalarComponentIC::ScalarComponentIC(), MultiApp::setAppOutputFileBase(), MooseMesh::setBoundaryName(), Control::setControllableValue(), Control::setControllableValueByName(), GlobalParamsAction::setDoubleIndexParam(), OutputWarehouse::setFileNumbers(), GlobalParamsAction::setParam(), FEProblemBase::setPostprocessorValueByName(), FEProblemBase::setResidualObjectParamsAndLog(), GlobalParamsAction::setScalarParam(), MooseMesh::setSubdomainName(), GlobalParamsAction::setTripleIndexParam(), NodeSetsGeneratorBase::setup(), Split::setup(), SideSetsGeneratorBase::setup(), TransientMultiApp::setupApp(), GlobalParamsAction::setVectorParam(), FullSolveMultiApp::showStatusMessage(), SideSetExtruderGenerator::SideSetExtruderGenerator(), TransientMultiApp::solveStep(), UserObject::spatialValue(), WebServerControl::startServer(), StitchedMesh::StitchedMesh(), SubProblem::storeBoundaryDelayedCheckMatProp(), SubProblem::storeBoundaryMatPropName(), MaterialBase::storeBoundaryZeroMatProp(), SubProblem::storeBoundaryZeroMatProp(), SubProblem::storeSubdomainDelayedCheckMatProp(), SubProblem::storeSubdomainMatPropName(), MaterialBase::storeSubdomainZeroMatProp(), SubProblem::storeSubdomainZeroMatProp(), MaterialBase::subdomainSetup(), TaggingInterface::TaggingInterface(), VectorPostprocessorVisualizationAux::timestepSetup(), to_json(), MultiAppDofCopyTransfer::transfer(), TransientMultiApp::TransientMultiApp(), MooseServer::traverseParseTreeAndFillSymbols(), MooseBase::typeAndName(), MooseBaseParameterInterface::uniqueParameterName(), FVFluxBC::uOnGhost(), FVFluxBC::uOnUSub(), UserObject::UserObject(), UserObjectInterface::userObjectName(), ParsedAux::validateGenericVectorNames(), PhysicsBase::variableExists(), MultiAppTransfer::variableIntegrityCheck(), VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl(), Convergence::verboseOutput(), AdvancedOutput::wantOutput(), Coupleable::writableCoupledValue(), Coupleable::writableVariable(), Console::write(), and MooseApp::writeRestartableMetaData().

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

◆ needGhostGhostedBoundaries()

void MooseMesh::needGhostGhostedBoundaries ( bool  needghost)
inlineinherited

Whether or not we want to ghost ghosted boundaries.

Definition at line 616 of file MooseMesh.h.

Referenced by DistributedRectilinearMeshGenerator::generate().

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

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

3164 {
3165  prepared(false);
3166 }
bool prepared() const
Setter/getter for whether the mesh is prepared.
Definition: MooseMesh.C:3135

◆ needsRemoteElemDeletion() [1/2]

void MooseMesh::needsRemoteElemDeletion ( bool  need_delete)
inlineinherited

Set whether we need to delete remote elements.

Definition at line 1079 of file MooseMesh.h.

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

◆ needsRemoteElemDeletion() [2/2]

bool MooseMesh::needsRemoteElemDeletion ( ) const
inlineinherited

Whether we need to delete remote elements.

Definition at line 1084 of file MooseMesh.h.

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

◆ nElem()

dof_id_type MooseMesh::nElem ( ) const
virtualinherited

Definition at line 3079 of file MooseMesh.C.

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

3080 {
3081  return getMesh().n_elem();
3082 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
virtual dof_id_type n_elem() const=0

◆ nFace()

unsigned int MooseMesh::nFace ( ) const
inlineinherited

accessors for the FaceInfo objects

Definition at line 1147 of file MooseMesh.h.

1147 { 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:1608

◆ 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:1433

◆ nNodes()

dof_id_type MooseMesh::nNodes ( ) const
virtualinherited

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

Definition at line 3073 of file MooseMesh.C.

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

3074 {
3075  return getMesh().n_nodes();
3076 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 818 of file MooseMesh.C.

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

819 {
820  mooseDeprecated("MooseMesh::node() is deprecated, please use MooseMesh::nodeRef() instead");
821  return nodeRef(i);
822 }
void mooseDeprecated(Args &&... args) const
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:832

◆ node() [2/2]

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

Definition at line 825 of file MooseMesh.C.

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

◆ nodePtr() [1/2]

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

Definition at line 846 of file MooseMesh.C.

847 {
848  return &nodeRef(i);
849 }
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:832

◆ nodePtr() [2/2]

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

Definition at line 852 of file MooseMesh.C.

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

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

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

◆ nodeSetNodes()

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

Definition at line 2185 of file MooseMesh.h.

2186 {
2187  return _node_set_nodes;
2188 }
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:1556

◆ nodeToActiveSemilocalElemMap()

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

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

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

Note
Extra ghosted elements are not included in this map!

Definition at line 1204 of file MooseMesh.C.

Referenced by FEProblemBase::initialSetup().

1205 {
1206  if (!_node_to_active_semilocal_elem_map_built) // Guard the creation with a double checked lock
1207  {
1208  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
1209 
1210  // This is allowing the timing to be run even with threads
1211  // This is safe because all threads will be waiting on this section when it runs
1212  // NOTE: Do not copy this construction to other places without thinking REALLY hard about it
1213  // The PerfGraph is NOT threadsafe and will cause all kinds of havok if care isn't taken
1215  Threads::in_threads = false;
1216  TIME_SECTION("nodeToActiveSemilocalElemMap", 5, "Building SemiLocalElemMap");
1218 
1220  {
1221  for (const auto & elem :
1222  as_range(getMesh().semilocal_elements_begin(), getMesh().semilocal_elements_end()))
1223  if (elem->active())
1224  for (unsigned int n = 0; n < elem->n_nodes(); n++)
1226 
1228  true; // MUST be set at the end for double-checked locking to work!
1229  }
1230  }
1231 
1233 }
bool _node_to_active_semilocal_elem_map_built
Definition: MooseMesh.h:1510
bool in_threads
dof_id_type id() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
virtual unsigned int n_nodes() const=0
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
bool active() const
dof_id_type node_id(const unsigned int i) const
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
A map of all of the current nodes to the active elements that they are connected to.
Definition: MooseMesh.h:1509

◆ nodeToElemMap()

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

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

Definition at line 1176 of file MooseMesh.C.

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

1177 {
1178  if (!_node_to_elem_map_built) // Guard the creation with a double checked lock
1179  {
1180  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
1181 
1183  {
1184  // This is allowing the timing to be run even with threads
1185  // This is safe because all threads will be waiting on this section when it runs
1186  // NOTE: Do not copy this construction to other places without thinking REALLY hard about it
1187  // The PerfGraph is NOT threadsafe and will cause all kinds of havok if care isn't taken
1189  Threads::in_threads = false;
1190  TIME_SECTION("nodeToElemMap", 5, "Building Node To Elem Map");
1192 
1193  for (const auto & elem : getMesh().active_element_ptr_range())
1194  for (unsigned int n = 0; n < elem->n_nodes(); n++)
1195  _node_to_elem_map[elem->node_id(n)].push_back(elem->id());
1196 
1197  _node_to_elem_map_built = true; // MUST be set at the end for double-checked locking to work!
1198  }
1199  }
1200  return _node_to_elem_map;
1201 }
bool _node_to_elem_map_built
Definition: MooseMesh.h:1506
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
A map of all of the current nodes to the elements that they are connected to.
Definition: MooseMesh.h:1505
bool in_threads
dof_id_type id() const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
virtual unsigned int n_nodes() const=0
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
dof_id_type node_id(const unsigned int i) const

◆ nPartitions()

virtual unsigned int MooseMesh::nPartitions ( ) const
inlinevirtualinherited

Definition at line 328 of file MooseMesh.h.

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

◆ nSubdomains()

virtual SubdomainID MooseMesh::nSubdomains ( ) const
inlinevirtualinherited

Reimplemented in MFEMMesh.

Definition at line 327 of file MooseMesh.h.

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

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

Referenced by MooseMesh::meshChanged().

907 {
908 }

◆ operator const libMesh::MeshBase &()

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

Definition at line 3437 of file MooseMesh.C.

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

◆ operator libMesh::MeshBase &()

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

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

Definition at line 3435 of file MooseMesh.C.

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

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

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

1527 {
1528  return elem_info_iterator(_elem_info.begin(),
1529  _elem_info.end(),
1531 }
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:1600

◆ ownedElemInfoEnd()

MooseMesh::elem_info_iterator MooseMesh::ownedElemInfoEnd ( )
inherited

Definition at line 1534 of file MooseMesh.C.

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

1535 {
1536  return elem_info_iterator(_elem_info.end(),
1537  _elem_info.end(),
1539 }
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:1600

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

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

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

◆ ownedFaceInfoEnd()

MooseMesh::face_info_iterator MooseMesh::ownedFaceInfoEnd ( )
inherited

Definition at line 1517 of file MooseMesh.C.

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

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

◆ paramError()

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

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

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

Definition at line 255 of file MooseBaseParameterInterface.h.

Referenced by HierarchicalGridPartitioner::_do_partition(), AutoCheckpointAction::act(), SetupDebugAction::act(), CommonOutputAction::act(), AddPeriodicBCAction::act(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), DiffusionCG::addFEKernels(), DiffusionFV::addFVKernels(), NEML2ModelExecutor::addGatheredParameter(), NEML2ModelExecutor::addGatheredVariable(), ADDGKernel::ADDGKernel(), CylinderComponent::addMeshGenerators(), AddPeriodicBCAction::AddPeriodicBCAction(), ReporterPointSource::addPoints(), ADIntegratedBCTempl< T >::ADIntegratedBCTempl(), ADKernelTempl< T >::ADKernelTempl(), ADNodalKernel::ADNodalKernel(), ADPenaltyPeriodicSegmentalConstraint::ADPenaltyPeriodicSegmentalConstraint(), ADPeriodicSegmentalConstraint::ADPeriodicSegmentalConstraint(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), AdvectiveFluxAux::AdvectiveFluxAux(), ADVectorFunctionDirichletBC::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), ArrayBodyForce::ArrayBodyForce(), ArrayDGKernel::ArrayDGKernel(), ArrayDGLowerDKernel::ArrayDGLowerDKernel(), ArrayDirichletBC::ArrayDirichletBC(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), ArrayIntegratedBC::ArrayIntegratedBC(), ArrayKernel::ArrayKernel(), ArrayLowerDIntegratedBC::ArrayLowerDIntegratedBC(), ArrayParsedAux::ArrayParsedAux(), ArrayPenaltyDirichletBC::ArrayPenaltyDirichletBC(), ArrayVacuumBC::ArrayVacuumBC(), ArrayVarReductionAux::ArrayVarReductionAux(), ParsedSubdomainIDsGenerator::assignElemSubdomainID(), AuxKernelTempl< Real >::AuxKernelTempl(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), BlockDeletionGenerator::BlockDeletionGenerator(), BlockWeightedPartitioner::BlockWeightedPartitioner(), BoundsBase::BoundsBase(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), BuildArrayVariableAux::BuildArrayVariableAux(), PiecewiseTabularBase::buildFromFile(), MFEMMesh::buildMesh(), CartesianGridDivision::CartesianGridDivision(), checkComponent(), MeshGenerator::checkGetMesh(), ComponentInitialConditionInterface::checkInitialConditionsAllRequested(), BatchMeshGeneratorAction::checkInputParameterType(), PhysicsBase::checkIntegrityEarly(), PostprocessorInterface::checkParam(), FEProblemBase::checkProblemIntegrity(), MultiAppReporterTransfer::checkSiblingsTransferSupported(), Coupleable::checkVar(), MultiAppTransfer::checkVariable(), CircularBoundaryCorrectionGenerator::CircularBoundaryCorrectionGenerator(), CircularBoundaryCorrectionGenerator::circularCenterCalculator(), MultiAppGeneralFieldTransfer::closestToPosition(), CoarsenBlockGenerator::CoarsenBlockGenerator(), CombinerGenerator::CombinerGenerator(), ComponentInitialConditionInterface::ComponentInitialConditionInterface(), ComponentMaterialPropertyInterface::ComponentMaterialPropertyInterface(), CompositionDT::CompositionDT(), FunctorAux::computeValue(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), LibtorchNeuralNetControl::conditionalParameterError(), ConservativeAdvectionTempl< is_ad >::ConservativeAdvectionTempl(), ConstantVectorPostprocessor::ConstantVectorPostprocessor(), ContainsPointAux::ContainsPointAux(), CopyValueAux::CopyValueAux(), Coupleable::Coupleable(), CoupledForceTempl< is_ad >::CoupledForceTempl(), CoupledValueFunctionMaterialTempl< is_ad >::CoupledValueFunctionMaterialTempl(), MultiApp::createApp(), MeshGeneratorSystem::createMeshGenerator(), CylindricalGridDivision::CylindricalGridDivision(), ConstantReporter::declareConstantReporterValue(), ConstantReporter::declareConstantReporterValues(), AccumulateReporter::declareLateValues(), DefaultMultiAppFixedPointConvergence::DefaultMultiAppFixedPointConvergence(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DGLowerDKernel::DGLowerDKernel(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementLengthAux::ElementLengthAux(), ElementLpNormAux::ElementLpNormAux(), 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(), ReporterPointSource::fillPoint(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), InternalSideIndicatorBase::finalize(), 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(), BoundaryDeletionGenerator::generate(), UniqueExtraIDMeshGenerator::generate(), AddMetaDataGenerator::generate(), BlockToMeshConverterGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), ElementsToTetrahedronsConverter::generate(), ExtraNodesetGenerator::generate(), FillBetweenCurvesGenerator::generate(), FillBetweenSidesetsGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), PlaneIDMeshGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), BlockDeletionGenerator::generate(), BreakMeshByBlockGenerator::generate(), CoarsenBlockGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainGeneratorBase::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), AdvancedExtruderGenerator::generate(), BreakMeshByElementGenerator::generate(), CircularBoundaryCorrectionGenerator::generate(), CombinerGenerator::generate(), MeshCollectionGenerator::generate(), MeshExtruderGenerator::generate(), ParsedCurveGenerator::generate(), ParsedExtraElementIDGenerator::generate(), StackGenerator::generate(), XYZDelaunayGenerator::generate(), CutMeshByLevelSetGeneratorBase::generate(), XYDelaunayGenerator::generate(), XYMeshLineCutter::generate(), PatternedMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), GeneratedMeshGenerator::GeneratedMeshGenerator(), 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(), HFEMDirichletBC::HFEMDirichletBC(), AddVariableAction::init(), MultiApp::init(), DistributedPositions::initialize(), BlockWeightedPartitioner::initialize(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), PhysicsBase::initializePhysics(), JSONOutput::initialSetup(), MultiAppCloneReporterTransfer::initialSetup(), SolutionIC::initialSetup(), SideFVFluxBCIntegral::initialSetup(), ElementSubdomainModifierBase::initialSetup(), MultiAppVariableValueSamplePostprocessorTransfer::initialSetup(), MultiAppDofCopyTransfer::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), HistogramVectorPostprocessor::initialSetup(), ReferenceResidualConvergence::initialSetup(), PiecewiseConstantFromCSV::initialSetup(), LibtorchControlValuePostprocessor::initialSetup(), MultiAppGeneralFieldTransfer::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(), MatrixSymmetryCheck::MatrixSymmetryCheck(), PatternedMeshGenerator::mergeSubdomainNameMaps(), MeshCollectionGenerator::MeshCollectionGenerator(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MeshDivisionAux::MeshDivisionAux(), MeshGenerator::MeshGenerator(), MeshGeneratorComponent::MeshGeneratorComponent(), MFEMGenericFunctorMaterial::MFEMGenericFunctorMaterial(), MFEMGenericFunctorVectorMaterial::MFEMGenericFunctorVectorMaterial(), MooseLinearVariableFV< Real >::MooseLinearVariableFV(), UserObjectInterface::mooseObjectError(), MoosePreconditioner::MoosePreconditioner(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MortarConstraintBase::MortarConstraintBase(), MortarNodalAuxKernelTempl< ComputeValueType >::MortarNodalAuxKernelTempl(), MultiApp::moveApp(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldNearestLocationTransfer::MultiAppGeneralFieldNearestLocationTransfer(), MultiAppGeneralFieldShapeEvaluationTransfer::MultiAppGeneralFieldShapeEvaluationTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppGeometricInterpolationTransfer::MultiAppGeometricInterpolationTransfer(), MultiAppNearestNodeTransfer::MultiAppNearestNodeTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorToAuxScalarTransfer::MultiAppPostprocessorToAuxScalarTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppProjectionTransfer::MultiAppProjectionTransfer(), MultiAppReporterTransfer::MultiAppReporterTransfer(), MultiAppScalarToAuxScalarTransfer::MultiAppScalarToAuxScalarTransfer(), MultiAppShapeEvaluationTransfer::MultiAppShapeEvaluationTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), MultiAppVectorPostprocessorTransfer::MultiAppVectorPostprocessorTransfer(), MultiSystemSolveObject::MultiSystemSolveObject(), NearestNodeValueAux::NearestNodeValueAux(), NEML2Action::NEML2Action(), NestedDivision::NestedDivision(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalPatchRecoveryAux::NodalPatchRecoveryAux(), NodalValueSampler::NodalValueSampler(), Output::Output(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedFunctorMaterialTempl< is_ad >::ParsedFunctorMaterialTempl(), ParsedPostprocessor::ParsedPostprocessor(), PatternedMeshGenerator::PatternedMeshGenerator(), PenaltyPeriodicSegmentalConstraint::PenaltyPeriodicSegmentalConstraint(), PeriodicSegmentalConstraint::PeriodicSegmentalConstraint(), PIDTransientControl::PIDTransientControl(), PlaneDeletionGenerator::PlaneDeletionGenerator(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), PointwiseRenormalizeVector::PointwiseRenormalizeVector(), PolyLineMeshGenerator::PolyLineMeshGenerator(), ReporterInterface::possiblyCheckHasReporter(), VectorPostprocessorInterface::possiblyCheckHasVectorPostprocessor(), LibmeshPartitioner::prepareBlocksForSubdomainPartitioner(), ProjectedMaterialPropertyNodalPatchRecoveryAux::ProjectedMaterialPropertyNodalPatchRecoveryAux(), ProjectionAux::ProjectionAux(), PropertyReadFile::PropertyReadFile(), RandomIC::RandomIC(), MultiApp::readCommandLineArguments(), PropertyReadFile::readData(), SolutionUserObjectBase::readXda(), ReferenceResidualConvergence::ReferenceResidualConvergence(), RefineBlockGenerator::RefineBlockGenerator(), RefineSidesetGenerator::RefineSidesetGenerator(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), ReporterPointSource::ReporterPointSource(), FEProblemBase::restoreSolutions(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), FEProblemBase::setLinearConvergenceNames(), FEProblemBase::setNonlinearConvergenceNames(), MooseMesh::setPartitioner(), NodeSetsGeneratorBase::setup(), SideSetsGeneratorBase::setup(), NEML2Action::setupDerivativeMappings(), NEML2Action::setupParameterDerivativeMappings(), TimeSequenceStepperBase::setupSequence(), SidesetAroundSubdomainUpdater::SidesetAroundSubdomainUpdater(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SideValueSampler::SideValueSampler(), SingleRankPartitioner::SingleRankPartitioner(), SphericalGridDivision::SphericalGridDivision(), StitchBoundaryMeshGenerator::StitchBoundaryMeshGenerator(), StitchMeshGenerator::StitchMeshGenerator(), SymmetryTransformGenerator::SymmetryTransformGenerator(), Terminator::Terminator(), TimeDerivativeAux::TimeDerivativeAux(), Transfer::Transfer(), TransformGenerator::TransformGenerator(), TransientMultiApp::TransientMultiApp(), ParsedCurveGenerator::tSectionSpaceDefiner(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), UserObject::UserObject(), Checkpoint::validateExecuteOn(), ParsedAux::validateGenericVectorNames(), ParsedMaterialBase::validateVectorNames(), FunctorIC::value(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), VolumeAux::VolumeAux(), WebServerControl::WebServerControl(), XYDelaunayGenerator::XYDelaunayGenerator(), XYMeshLineCutter::XYMeshLineCutter(), and XYZDelaunayGenerator::XYZDelaunayGenerator().

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

◆ parameters()

const InputParameters& MooseBaseParameterInterface::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 62 of file MooseBaseParameterInterface.h.

Referenced by SetupDebugAction::act(), 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::addFVKernel(), MFEMProblem::addGridFunction(), FEProblemBase::addHDGKernel(), FEProblemBase::addIndicator(), MFEMProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DiffusionPhysicsBase::addInitialConditions(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), MFEMProblem::addKernel(), FEProblemBase::addKernel(), FEProblemBase::addLinearFVBC(), FEProblemBase::addLinearFVKernel(), FEProblem::addLineSearch(), FEProblemBase::addMarker(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMeshDivision(), MFEMProblem::addMFEMFESpaceFromMOOSEVariable(), MFEMProblem::addMFEMPreconditioner(), MFEMProblem::addMFEMSolver(), FEProblemBase::addMultiApp(), FEProblemBase::addNodalKernel(), FEProblemBase::addObject(), FEProblemBase::addObjectParamsHelper(), FEProblemBase::addOutput(), MFEMProblem::addPostprocessor(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addScalarKernel(), MFEMProblem::addSubMesh(), FEProblemBase::addTimeIntegrator(), MFEMProblem::addTransfer(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), MFEMProblem::addVariable(), DisplacedProblem::addVariable(), FEProblemBase::addVectorPostprocessor(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), AdvancedOutput::AdvancedOutput(), ADVectorFunctionDirichletBC::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), Action::associateWithParameter(), AuxKernelTempl< Real >::AuxKernelTempl(), AuxScalarKernel::AuxScalarKernel(), BoundsBase::BoundsBase(), MooseMesh::buildTypedMesh(), PostprocessorInterface::checkParam(), AddDefaultConvergenceAction::checkUnusedMultiAppFixedPointConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedNonlinearConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedSteadyStateConvergenceParameters(), SampledOutput::cloneMesh(), LibtorchNeuralNetControl::conditionalParameterError(), Console::Console(), CommonOutputAction::create(), MultiApp::createApp(), Postprocessor::declareValue(), DumpObjectsProblem::deduceNecessaryParameters(), DefaultMultiAppFixedPointConvergence::DefaultMultiAppFixedPointConvergence(), DumpObjectsProblem::dumpObjectHelper(), DumpObjectsProblem::DumpObjectsProblem(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), ElementMaterialSampler::ElementMaterialSampler(), ExamplePatchMeshGenerator::ExamplePatchMeshGenerator(), Executor::Executor(), Exodus::Exodus(), FEProblem::FEProblem(), FixedPointSolve::FixedPointSolve(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), GapValueAux::GapValueAux(), ParsedSubdomainGeneratorBase::generate(), MooseBaseParameterInterface::getCheckedPointerParam(), ActionWarehouse::getCurrentActionName(), ExecutorInterface::getExecutor(), Material::getMaterial(), ReporterInterface::getReporterName(), Reporter::getReporterValueName(), UserObjectInterface::getUserObjectName(), VectorPostprocessorInterface::getVectorPostprocessorName(), GhostingUserObject::GhostingUserObject(), AttribSystem::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), FullSolveMultiApp::initialSetup(), FEProblemBase::initNullSpaceVectors(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceIntegralVariableValuePostprocessor::InterfaceIntegralVariableValuePostprocessor(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), isValid(), IterationAdaptiveDT::IterationAdaptiveDT(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), MFEMCGSolver::MFEMCGSolver(), MFEMGMRESSolver::MFEMGMRESSolver(), MFEMHypreADS::MFEMHypreADS(), MFEMHypreAMS::MFEMHypreAMS(), MFEMHypreBoomerAMG::MFEMHypreBoomerAMG(), MFEMHypreFGMRES::MFEMHypreFGMRES(), MFEMHypreGMRES::MFEMHypreGMRES(), MFEMHyprePCG::MFEMHyprePCG(), MFEMOperatorJacobiSmoother::MFEMOperatorJacobiSmoother(), MFEMSuperLU::MFEMSuperLU(), MooseObject::MooseObject(), UserObjectInterface::mooseObjectError(), MooseVariableInterface< Real >::MooseVariableInterface(), MultiApp::MultiApp(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), NodeFaceConstraint::NodeFaceConstraint(), OverlayMeshGenerator::OverlayMeshGenerator(), PenetrationAux::PenetrationAux(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), NEML2Action::printSummary(), ProjectedStatefulMaterialStorageAction::processProperty(), PropertyReadFile::PropertyReadFile(), PseudoTimestep::PseudoTimestep(), RandomIC::RandomIC(), ReferenceResidualConvergence::ReferenceResidualConvergence(), InputParameterWarehouse::removeInputParameters(), FEProblem::setInputParametersFEProblem(), FEProblemBase::setInputParametersFEProblem(), FEProblemBase::setResidualObjectParamsAndLog(), SideSetsGeneratorBase::setup(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), Moose::PetscSupport::storePetscOptions(), DumpObjectsProblem::stringifyParameters(), TaggingInterface::TaggingInterface(), Transfer::Transfer(), TransientBase::TransientBase(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), and VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl().

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

◆ paramInfo()

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

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

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

Definition at line 272 of file MooseBaseParameterInterface.h.

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

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

◆ paramWarning()

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

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

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

Definition at line 265 of file MooseBaseParameterInterface.h.

Referenced by GridPartitioner::_do_partition(), MultiAppTransfer::checkParentAppUserObjectExecuteOn(), EigenProblem::checkProblemIntegrity(), CombinerGenerator::copyIntoMesh(), DefaultMultiAppFixedPointConvergence::DefaultMultiAppFixedPointConvergence(), MultiAppNearestNodeTransfer::execute(), FEProblemSolve::FEProblemSolve(), UniqueExtraIDMeshGenerator::generate(), PlaneIDMeshGenerator::generate(), Terminator::initialSetup(), SampledOutput::initSample(), MooseMesh::MooseMesh(), FEProblemBase::setPreserveMatrixSparsityPattern(), and Terminator::Terminator().

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

◆ partitionerName()

const MooseEnum& MooseMesh::partitionerName ( ) const
inlineinherited

Definition at line 1021 of file MooseMesh.h.

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

◆ partitioning()

MooseEnum MooseMesh::partitioning ( )
staticinherited

returns MooseMesh partitioning options so other classes can use it

Definition at line 3896 of file MooseMesh.C.

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

◆ perfGraph()

PerfGraph & PerfGraphInterface::perfGraph ( )
inherited

Get the PerfGraph.

Definition at line 78 of file PerfGraphInterface.C.

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

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

◆ prepare()

bool MooseMesh::prepare ( const MeshBase mesh_to_clone)
inherited

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

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

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

Definition at line 407 of file MooseMesh.C.

408 {
409  TIME_SECTION("prepare", 2, "Preparing Mesh", true);
410 
411  bool called_prepare_for_use = false;
412 
413  mooseAssert(_mesh, "The MeshBase has not been constructed");
414 
415  if (!dynamic_cast<DistributedMesh *>(&getMesh()) || _is_nemesis)
416  // For whatever reason we do not want to allow renumbering here nor ever in the future?
417  getMesh().allow_renumbering(false);
418 
419  if (mesh_to_clone)
420  {
421  mooseAssert(mesh_to_clone->is_prepared(),
422  "The mesh we wish to clone from must already be prepared");
423  _mesh = mesh_to_clone->clone();
424  _moose_mesh_prepared = false;
425  }
426  else if (!_mesh->is_prepared())
427  {
428  _mesh->prepare_for_use();
429  _moose_mesh_prepared = false;
430  called_prepare_for_use = true;
431  }
432 
434  return called_prepare_for_use;
435 
436  // Collect (local) subdomain IDs
437  _mesh_subdomains.clear();
438  for (const auto & elem : getMesh().element_ptr_range())
440 
441  // add explicitly requested subdomains
442  if (isParamValid("add_subdomain_ids") && !isParamValid("add_subdomain_names"))
443  {
444  // only subdomain ids are explicitly given
445  const auto & add_subdomain_id = getParam<std::vector<SubdomainID>>("add_subdomain_ids");
446  _mesh_subdomains.insert(add_subdomain_id.begin(), add_subdomain_id.end());
447  }
448  else if (isParamValid("add_subdomain_ids") && isParamValid("add_subdomain_names"))
449  {
450  const auto add_subdomain =
451  getParam<SubdomainID, SubdomainName>("add_subdomain_ids", "add_subdomain_names");
452  for (const auto & [sub_id, sub_name] : add_subdomain)
453  {
454  // add subdomain id
455  _mesh_subdomains.insert(sub_id);
456  // set name of the subdomain just added
457  setSubdomainName(sub_id, sub_name);
458  }
459  }
460  else if (isParamValid("add_subdomain_names"))
461  {
462  // the user has defined add_subdomain_names, but not add_subdomain_ids
463  const auto & add_subdomain_names = getParam<std::vector<SubdomainName>>("add_subdomain_names");
464 
465  // to define subdomain ids, we need the largest subdomain id defined yet.
466  subdomain_id_type offset = 0;
467  if (!_mesh_subdomains.empty())
468  offset = *_mesh_subdomains.rbegin();
469 
470  // add all subdomains (and auto-assign ids)
471  for (const SubdomainName & sub_name : add_subdomain_names)
472  {
473  // to avoid two subdomains with the same ID (notably on recover)
475  continue;
476  const auto sub_id = ++offset;
477  // add subdomain id
478  _mesh_subdomains.insert(sub_id);
479  // set name of the subdomain just added
480  setSubdomainName(sub_id, sub_name);
481  }
482  }
483 
484  // Make sure nodesets have been generated
486 
487  // Collect (local) boundary IDs
488  const std::set<BoundaryID> & local_bids = getMesh().get_boundary_info().get_boundary_ids();
489  _mesh_boundary_ids.insert(local_bids.begin(), local_bids.end());
490 
491  const std::set<BoundaryID> & local_node_bids =
493  _mesh_nodeset_ids.insert(local_node_bids.begin(), local_node_bids.end());
494 
495  const std::set<BoundaryID> & local_side_bids =
497  _mesh_sideset_ids.insert(local_side_bids.begin(), local_side_bids.end());
498 
499  // Add explicitly requested sidesets/nodesets
500  // This is done *after* the side boundaries (e.g. "right", ...) have been generated.
501  auto add_sets = [this](const bool sidesets, auto & set_ids)
502  {
503  const std::string type = sidesets ? "sideset" : "nodeset";
504  const std::string id_param = "add_" + type + "_ids";
505  const std::string name_param = "add_" + type + "_names";
506 
507  if (isParamValid(id_param))
508  {
509  const auto & add_ids = getParam<std::vector<BoundaryID>>(id_param);
510  _mesh_boundary_ids.insert(add_ids.begin(), add_ids.end());
511  set_ids.insert(add_ids.begin(), add_ids.end());
512  if (isParamValid(name_param))
513  {
514  const auto & add_names = getParam<std::vector<BoundaryName>>(name_param);
515  mooseAssert(add_names.size() == add_ids.size(),
516  "Id and name sets must be the same size when adding.");
517  for (const auto i : index_range(add_ids))
518  setBoundaryName(add_ids[i], add_names[i]);
519  }
520  }
521  else if (isParamValid(name_param))
522  {
523  // the user has defined names, but not ids
524  const auto & add_names = getParam<std::vector<BoundaryName>>(name_param);
525 
526  auto & mesh_ids = sidesets ? _mesh_sideset_ids : _mesh_nodeset_ids;
527 
528  // to define ids, we need the largest id defined yet.
529  boundary_id_type offset = 0;
530  if (!mesh_ids.empty())
531  offset = *mesh_ids.rbegin();
532  if (!_mesh_boundary_ids.empty())
533  offset = std::max(offset, *_mesh_boundary_ids.rbegin());
534 
535  // add all sidesets/nodesets (and auto-assign ids)
536  for (const auto & name : add_names)
537  {
538  // to avoid two sets with the same ID (notably on recover)
540  continue;
541  const auto id = ++offset;
542  // add sideset id
543  _mesh_boundary_ids.insert(id);
544  set_ids.insert(id);
545  // set name of the sideset just added
546  setBoundaryName(id, name);
547  }
548  }
549  };
550 
551  add_sets(true, _mesh_sideset_ids);
552  add_sets(false, _mesh_nodeset_ids);
553 
554  // Communicate subdomain and boundary IDs if this is a parallel mesh
555  if (!getMesh().is_serial())
556  {
561  }
562 
564  {
565  if (!_coord_system_set)
566  setCoordSystem(_provided_coord_blocks, getParam<MultiMooseEnum>("coord_type"));
567  else if (_pars.isParamSetByUser("coord_type"))
568  mooseError(
569  "Trying to set coordinate system type information based on the user input file, but "
570  "the coordinate system type information has already been set programmatically! "
571  "Either remove your coordinate system type information from the input file, or contact "
572  "your application developer");
573  }
574 
575  // Set general axisymmetric axes if provided
576  if (isParamValid("rz_coord_blocks") && isParamValid("rz_coord_origins") &&
577  isParamValid("rz_coord_directions"))
578  {
579  const auto rz_coord_blocks = getParam<std::vector<SubdomainName>>("rz_coord_blocks");
580  const auto rz_coord_origins = getParam<std::vector<Point>>("rz_coord_origins");
581  const auto rz_coord_directions = getParam<std::vector<RealVectorValue>>("rz_coord_directions");
582  if (rz_coord_origins.size() == rz_coord_blocks.size() &&
583  rz_coord_directions.size() == rz_coord_blocks.size())
584  {
585  std::vector<std::pair<Point, RealVectorValue>> rz_coord_axes;
586  for (unsigned int i = 0; i < rz_coord_origins.size(); ++i)
587  rz_coord_axes.push_back(std::make_pair(rz_coord_origins[i], rz_coord_directions[i]));
588 
589  setGeneralAxisymmetricCoordAxes(rz_coord_blocks, rz_coord_axes);
590 
591  if (isParamSetByUser("rz_coord_axis"))
592  mooseError("The parameter 'rz_coord_axis' may not be provided if 'rz_coord_blocks', "
593  "'rz_coord_origins', and 'rz_coord_directions' are provided.");
594  }
595  else
596  mooseError("The parameters 'rz_coord_blocks', 'rz_coord_origins', and "
597  "'rz_coord_directions' must all have the same size.");
598  }
599  else if (isParamValid("rz_coord_blocks") || isParamValid("rz_coord_origins") ||
600  isParamValid("rz_coord_directions"))
601  mooseError("If any of the parameters 'rz_coord_blocks', 'rz_coord_origins', and "
602  "'rz_coord_directions' are provided, then all must be provided.");
603 
605 
606  update();
607 
608  // Check if there is subdomain name duplication for the same subdomain ID
610 
611  _moose_mesh_prepared = true;
612 
613  return called_prepare_for_use;
614 }
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:1469
std::vector< SubdomainName > _provided_coord_blocks
Set for holding user-provided coordinate system type block names.
Definition: MooseMesh.h:1874
bool is_prepared() const
void checkDuplicateSubdomainNames()
Loop through all subdomain IDs and check if there is name duplication used for the subdomains with sa...
Definition: MooseMesh.C:4335
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
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
void buildNodeListFromSideList()
Calls BoundaryInfo::build_node_list_from_side_list().
Definition: MooseMesh.C:2981
auto max(const L &left, const R &right)
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
const std::set< boundary_id_type > & get_node_boundary_ids() const
static const subdomain_id_type invalid_subdomain_id
bool _built_from_other_mesh
Whether or not this mesh was built from another mesh.
Definition: MooseMesh.h:1419
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:1747
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
void update()
Calls buildNodeListFromSideList(), buildNodeList(), and buildBndElemList().
Definition: MooseMesh.C:617
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:51
std::set< BoundaryID > _mesh_nodeset_ids
Definition: MooseMesh.h:1526
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:4079
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1524
bool _moose_mesh_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:1472
bool _coord_system_set
Whether the coordinate system has been set.
Definition: MooseMesh.h:1871
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:1778
bool isParamSetByUser(const std::string &nm) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
std::set< BoundaryID > _mesh_sideset_ids
Definition: MooseMesh.h:1525
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:4219
bool detectOrthogonalDimRanges(Real tol=1e-6)
This routine determines whether the Mesh is a regular orthogonal mesh (i.e.
Definition: MooseMesh.C:1923
subdomain_id_type subdomain_id() const
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
std::set< SubdomainID > _mesh_subdomains
A set of subdomain IDs currently present in the mesh.
Definition: MooseMesh.h:1516
auto index_range(const T &sizable)
BoundaryID getBoundaryID(const BoundaryName &boundary_name) const
Get the associated BoundaryID for the boundary name.
Definition: MooseMesh.C:1690
SubdomainID getSubdomainID(const SubdomainName &subdomain_name) const
Get the associated subdomain ID for the subdomain name.
Definition: MooseMesh.C:1729
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 3135 of file MooseMesh.C.

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

3136 {
3137  return _mesh->is_prepared() && _moose_mesh_prepared;
3138 }
bool _moose_mesh_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:1472
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433

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

3142 {
3143  if (state)
3144  mooseError("We don't have any right to tell the libmesh mesh that it *is* prepared. Only a "
3145  "call to prepare_for_use should tell us that");
3146 
3147  // Some people may call this even before we have a MeshBase object. This isn't dangerous really
3148  // because when the MeshBase object is born, it knows it's in an unprepared state
3149  if (_mesh)
3150  _mesh->set_isnt_prepared();
3151 
3152  // If the libMesh mesh isn't preparead, then our MooseMesh wrapper is also no longer prepared
3153  _moose_mesh_prepared = false;
3154 
3159  _regular_orthogonal_mesh = false;
3160 }
bool _moose_mesh_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:1472
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1577

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

Referenced by Adaptivity::adaptMesh().

3461 {
3462  os << '\n';
3463  getMesh().print_info(os, verbosity);
3464  os << std::flush;
3465 }
std::basic_ostream< charT, traits > * os
Definition: InfixIterator.h:33
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 3123 of file MooseMesh.C.

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

3124 {
3125  return getMesh().query_elem_ptr(i);
3126 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 3129 of file MooseMesh.C.

3130 {
3131  return getMesh().query_elem_ptr(i);
3132 }
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 858 of file MooseMesh.C.

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

859 {
860  if (i > getMesh().max_node_id())
861  {
862  auto it = _quadrature_nodes.find(i);
863  if (it == _quadrature_nodes.end())
864  return nullptr;
865  auto & node_ptr = it->second;
866  mooseAssert(node_ptr, "Uninitialized quadrature node");
867  return node_ptr;
868  }
869 
870  return getMesh().query_node_ptr(i);
871 }
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1547
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 874 of file MooseMesh.C.

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

◆ queryParam()

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

Query a parameter for the object.

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 222 of file MooseBaseParameterInterface.h.

223 {
224  return isParamValid(name) ? &getParam<T>(name) : nullptr;
225 }
std::string name(const ElemQuality q)
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.

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

Referenced by FEProblemBase::meshChanged().

930 {
931  return _refined_elements.get();
932 }
std::unique_ptr< ConstElemPointerRange > _refined_elements
The elements that were just refined.
Definition: MooseMesh.h:1475

◆ registerTimedSection() [1/2]

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

Call to register a named section for timing.

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

Definition at line 53 of file PerfGraphInterface.C.

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

◆ registerTimedSection() [2/2]

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

Call to register a named section for timing.

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

Definition at line 64 of file PerfGraphInterface.C.

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

◆ restartableName()

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

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

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

Definition at line 66 of file Restartable.C.

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

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

◆ safeClone()

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

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

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

Implements MooseMesh.

Definition at line 81 of file PatternedMesh.C.

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

◆ setAxisymmetricCoordAxis()

void MooseMesh::setAxisymmetricCoordAxis ( const MooseEnum rz_coord_axis)
inherited

For axisymmetric simulations, set the symmetry coordinate axis.

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

Definition at line 4211 of file MooseMesh.C.

Referenced by FEProblemBase::setAxisymmetricCoordAxis().

4212 {
4213  _rz_coord_axis = rz_coord_axis;
4214 
4216 }
void updateCoordTransform()
Update the coordinate transformation object based on our coordinate system data.
Definition: MooseMesh.C:4283
unsigned int _rz_coord_axis
Storage for RZ axis selection.
Definition: MooseMesh.h:1861

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

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

1779 {
1780  BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1781 
1782  // We need to figure out if this boundary is a sideset or nodeset
1783  if (boundary_info.get_side_boundary_ids().count(boundary_id))
1784  boundary_info.sideset_name(boundary_id) = name;
1785  else
1786  boundary_info.nodeset_name(boundary_id) = name;
1787 }
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
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 3199 of file MooseMesh.C.

3201 {
3202  _boundary_to_normal_map = std::move(boundary_map);
3203 }
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:1530

◆ setBoundaryToNormalMap() [2/2]

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

Definition at line 3206 of file MooseMesh.C.

3207 {
3208  mooseDeprecated("setBoundaryToNormalMap(std::map<BoundaryID, RealVectorValue> * boundary_map) is "
3209  "deprecated, use the unique_ptr version instead");
3210  _boundary_to_normal_map.reset(boundary_map);
3211 }
void mooseDeprecated(Args &&... args) const
std::unique_ptr< std::map< BoundaryID, RealVectorValue > > _boundary_to_normal_map
The boundary to normal map - valid only when AddAllSideSetsByNormals is active.
Definition: MooseMesh.h:1530

◆ setCoordData()

void MooseMesh::setCoordData ( const MooseMesh other_mesh)
inherited

Set the coordinate system data to that of other_mesh.

Definition at line 4320 of file MooseMesh.C.

Referenced by DisplacedProblem::DisplacedProblem().

4321 {
4322  _coord_sys = other_mesh._coord_sys;
4323  _rz_coord_axis = other_mesh._rz_coord_axis;
4325 }
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1858
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:1864
unsigned int _rz_coord_axis
Storage for RZ axis selection.
Definition: MooseMesh.h:1861

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

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

4081 {
4082  TIME_SECTION("setCoordSystem", 5, "Setting Coordinate System");
4084  {
4085  const std::string param_name = isParamValid("coord_block") ? "coord_block" : "block";
4086  mooseWarning("Supplied blocks in the 'setCoordSystem' method do not match the value of the "
4087  "'Mesh/",
4088  param_name,
4089  "' parameter. Did you provide different parameter values for 'Mesh/",
4090  param_name,
4091  "' and 'Problem/block'?. We will honor the parameter value from 'Mesh/",
4092  param_name,
4093  "'");
4094  mooseAssert(_coord_system_set,
4095  "If we are arriving here due to a bad specification in the Problem block, then we "
4096  "should have already set our coordinate system subdomains from the Mesh block");
4097  return;
4098  }
4099  if (_pars.isParamSetByUser("coord_type") && getParam<MultiMooseEnum>("coord_type") != coord_sys)
4100  mooseError("Supplied coordinate systems in the 'setCoordSystem' method do not match the value "
4101  "of the 'Mesh/coord_type' parameter. Did you provide different parameter values for "
4102  "'coord_type' to 'Mesh' and 'Problem'?");
4103 
4104  // If blocks contain ANY_BLOCK_ID, it should be the only block specified, and coord_sys should
4105  // have one and only one entry. In that case, the same coordinate system will be set for all
4106  // subdomains.
4107  if (blocks.size() == 1 && blocks[0] == "ANY_BLOCK_ID")
4108  {
4109  if (coord_sys.size() > 1)
4110  mooseError("If you specify ANY_BLOCK_ID as the only block, you must also specify a single "
4111  "coordinate system for it.");
4112  if (!_mesh->is_prepared())
4113  mooseError(
4114  "You cannot set the coordinate system for ANY_BLOCK_ID before the mesh is prepared. "
4115  "Please call this method after the mesh is prepared.");
4116  const auto coord_type = coord_sys.size() == 0
4118  : Moose::stringToEnum<Moose::CoordinateSystemType>(coord_sys[0]);
4119  for (const auto sid : meshSubdomains())
4120  _coord_sys[sid] = coord_type;
4121  return;
4122  }
4123 
4124  // If multiple blocks are specified, but one of them is ANY_BLOCK_ID, let's emit a helpful error
4125  if (std::find(blocks.begin(), blocks.end(), "ANY_BLOCK_ID") != blocks.end())
4126  mooseError("You cannot specify ANY_BLOCK_ID together with other blocks in the "
4127  "setCoordSystem() method. If you want to set the same coordinate system for all "
4128  "blocks, use ANY_BLOCK_ID as the only block.");
4129 
4130  auto subdomains = meshSubdomains();
4131  // It's possible that a user has called this API before the mesh is prepared and consequently we
4132  // don't yet have the subdomains in meshSubdomains()
4133  for (const auto & sub_name : blocks)
4134  {
4135  const auto sub_id = getSubdomainID(sub_name);
4136  subdomains.insert(sub_id);
4137  }
4138 
4139  if (coord_sys.size() <= 1)
4140  {
4141  // We will specify the same coordinate system for all blocks
4142  const auto coord_type = coord_sys.size() == 0
4144  : Moose::stringToEnum<Moose::CoordinateSystemType>(coord_sys[0]);
4145  for (const auto sid : subdomains)
4146  _coord_sys[sid] = coord_type;
4147  }
4148  else
4149  {
4150  if (blocks.size() != coord_sys.size())
4151  mooseError("Number of blocks and coordinate systems does not match.");
4152 
4153  for (const auto i : index_range(blocks))
4154  {
4155  SubdomainID sid = getSubdomainID(blocks[i]);
4156  Moose::CoordinateSystemType coord_type =
4157  Moose::stringToEnum<Moose::CoordinateSystemType>(coord_sys[i]);
4158  _coord_sys[sid] = coord_type;
4159  }
4160 
4161  for (const auto & sid : subdomains)
4162  if (_coord_sys.find(sid) == _coord_sys.end())
4163  mooseError("Subdomain '" + Moose::stringify(sid) +
4164  "' does not have a coordinate system specified.");
4165  }
4166 
4167  _coord_system_set = true;
4168 
4170 }
std::vector< SubdomainName > _provided_coord_blocks
Set for holding user-provided coordinate system type block names.
Definition: MooseMesh.h:1874
char ** blocks
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1858
unsigned int size() const
Return the number of active items in the MultiMooseEnum.
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
void updateCoordTransform()
Update the coordinate transformation object based on our coordinate system data.
Definition: MooseMesh.C:4283
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:1871
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was set by the user.
CoordinateSystemType
Definition: MooseTypes.h:809
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
auto index_range(const T &sizable)
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:3169
SubdomainID getSubdomainID(const SubdomainName &subdomain_name) const
Get the associated subdomain ID for the subdomain name.
Definition: MooseMesh.C:1729

◆ setCustomPartitioner()

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

Setter for custom partitioner.

Definition at line 3697 of file MooseMesh.C.

3698 {
3699  _custom_partitioner = partitioner->clone();
3700 }
virtual std::unique_ptr< Partitioner > clone() const=0
std::unique_ptr< libMesh::Partitioner > _custom_partitioner
The custom partitioner.
Definition: MooseMesh.h:1440

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

Referenced by MooseMesh::prepare().

4222 {
4223  // Set the axes for the given blocks
4224  mooseAssert(blocks.size() == axes.size(), "Blocks and axes vectors must be the same length.");
4225  for (const auto i : index_range(blocks))
4226  {
4227  const auto subdomain_id = getSubdomainID(blocks[i]);
4228  const auto it = _coord_sys.find(subdomain_id);
4229  if (it == _coord_sys.end())
4230  mooseError("The block '",
4231  blocks[i],
4232  "' has not set a coordinate system. Make sure to call setCoordSystem() before "
4233  "setGeneralAxisymmetricCoordAxes().");
4234  else
4235  {
4236  if (it->second == Moose::COORD_RZ)
4237  {
4238  const auto direction = axes[i].second;
4239  if (direction.is_zero())
4240  mooseError("Only nonzero vectors may be supplied for RZ directions.");
4241 
4242  _subdomain_id_to_rz_coord_axis[subdomain_id] =
4243  std::make_pair(axes[i].first, direction.unit());
4244  }
4245  else
4246  mooseError("The block '",
4247  blocks[i],
4248  "' was provided in setGeneralAxisymmetricCoordAxes(), but the coordinate system "
4249  "for this block is not 'RZ'.");
4250  }
4251  }
4252 
4253  // Make sure there are no RZ blocks that still do not have axes
4254  const auto all_subdomain_ids = meshSubdomains();
4255  for (const auto subdomain_id : all_subdomain_ids)
4256  if (getCoordSystem(subdomain_id) == Moose::COORD_RZ &&
4257  !_subdomain_id_to_rz_coord_axis.count(subdomain_id))
4258  mooseError("The block '",
4259  getSubdomainName(subdomain_id),
4260  "' was specified to use the 'RZ' coordinate system but was not given in "
4261  "setGeneralAxisymmetricCoordAxes().");
4262 
4264 }
char ** blocks
std::map< SubdomainID, Moose::CoordinateSystemType > & _coord_sys
Type of coordinate system per subdomain.
Definition: MooseMesh.h:1858
const std::string & getSubdomainName(SubdomainID subdomain_id) const
Return the name of a block given an id.
Definition: MooseMesh.C:1761
void updateCoordTransform()
Update the coordinate transformation object based on our coordinate system data.
Definition: MooseMesh.C:4283
const std::map< SubdomainID, Moose::CoordinateSystemType > & getCoordSystem() const
Get the map from subdomain ID to coordinate system type, e.g.
Definition: MooseMesh.C:4205
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::unordered_map< SubdomainID, std::pair< Point, RealVectorValue > > _subdomain_id_to_rz_coord_axis
Map of subdomain ID to general axisymmetric axis.
Definition: MooseMesh.h:1864
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:3169
SubdomainID getSubdomainID(const SubdomainName &subdomain_name) const
Get the associated subdomain ID for the subdomain name.
Definition: MooseMesh.C:1729

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

3234 {
3235  _ghosted_boundaries_inflation = inflation;
3236 }
std::vector< Real > _ghosted_boundaries_inflation
Definition: MooseMesh.h:1559

◆ setIsCustomPartitionerRequested()

void MooseMesh::setIsCustomPartitionerRequested ( bool  cpr)
inherited

Definition at line 3725 of file MooseMesh.C.

3726 {
3728 }
bool _custom_partitioner_requested
Definition: MooseMesh.h:1441

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

2867 {
2868  _mesh = std::move(mesh_base);
2869  _mesh->allow_remote_element_removal(_allow_remote_element_removal);
2870 }
bool _allow_remote_element_removal
Whether to allow removal of remote elements.
Definition: MooseMesh.h:1828
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433

◆ setMeshBoundaryIDs()

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

Sets the set of BoundaryIDs Is called by AddAllSideSetsByNormals.

Definition at line 3193 of file MooseMesh.C.

3194 {
3195  _mesh_boundary_ids = boundary_IDs;
3196 }
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:1524

◆ setParallelType()

void MooseMesh::setParallelType ( ParallelType  parallel_type)
inlineinherited

Allow to change parallel type.

Definition at line 2144 of file MooseMesh.h.

Referenced by MooseMesh::buildTypedMesh().

2145 {
2146  _parallel_type = parallel_type;
2148 }
ParallelType _parallel_type
Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.
Definition: MooseMesh.h:1423
void determineUseDistributedMesh()
Determine whether to use a distributed mesh.
Definition: MooseMesh.C:2826

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

Referenced by MooseMesh::setPartitionerHelper().

3643 {
3644  // Set the partitioner based on partitioner name
3645  switch (partitioner)
3646  {
3647  case -3: // default
3648  // We'll use the default partitioner, but notify the user of which one is being used...
3649  if (use_distributed_mesh)
3650  partitioner = "parmetis";
3651  else
3652  partitioner = "metis";
3653  break;
3654 
3655  // No need to explicitily create the metis or parmetis partitioners,
3656  // They are the default for serial and parallel mesh respectively
3657  case -2: // metis
3658  case -1: // parmetis
3659  break;
3660 
3661  case 0: // linear
3662  mesh_base.partitioner().reset(new libMesh::LinearPartitioner);
3663  break;
3664  case 1: // centroid
3665  {
3666  if (!params.isParamValid("centroid_partitioner_direction"))
3667  context_obj.paramError(
3668  "centroid_partitioner_direction",
3669  "If using the centroid partitioner you _must_ specify centroid_partitioner_direction!");
3670 
3671  MooseEnum direction = params.get<MooseEnum>("centroid_partitioner_direction");
3672 
3673  if (direction == "x")
3674  mesh_base.partitioner().reset(
3676  else if (direction == "y")
3677  mesh_base.partitioner().reset(
3679  else if (direction == "z")
3680  mesh_base.partitioner().reset(
3682  else if (direction == "radial")
3683  mesh_base.partitioner().reset(
3685  break;
3686  }
3687  case 2: // hilbert_sfc
3688  mesh_base.partitioner().reset(new libMesh::HilbertSFCPartitioner);
3689  break;
3690  case 3: // morton_sfc
3691  mesh_base.partitioner().reset(new libMesh::MortonSFCPartitioner);
3692  break;
3693  }
3694 }
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:33
void paramError(const std::string &param, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another, i.e.

◆ setPartitionerHelper()

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

Definition at line 3626 of file MooseMesh.C.

Referenced by MooseMesh::buildTypedMesh().

3627 {
3628  if (_use_distributed_mesh && (_partitioner_name != "default" && _partitioner_name != "parmetis"))
3629  {
3630  _partitioner_name = "parmetis";
3631  _partitioner_overridden = true;
3632  }
3633 
3635 }
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:3638
MooseEnum _partitioner_name
The partitioner used on this mesh.
Definition: MooseMesh.h:1436
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:1428
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
bool _partitioner_overridden
Definition: MooseMesh.h:1437
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.

◆ setPatchUpdateStrategy()

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

Set the patch size update strategy.

Definition at line 3405 of file MooseMesh.C.

3406 {
3407  _patch_update_strategy = patch_update_strategy;
3408 }
Moose::PatchUpdateType _patch_update_strategy
The patch update strategy.
Definition: MooseMesh.h:1571

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

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

1748 {
1749  mooseAssert(name != "ANY_BLOCK_ID", "Cannot set subdomain name to 'ANY_BLOCK_ID'");
1750  getMesh().subdomain_name(subdomain_id) = name;
1751 }
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
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 3220 of file MooseMesh.C.

3221 {
3222  _uniform_refine_level = level;
3224 }
unsigned int _uniform_refine_level
The level of uniform refinement requested (set to zero if AMR is disabled)
Definition: MooseMesh.h:1457
bool _skip_deletion_repartition_after_refine
Whether or not skip remote deletion and repartition after uniform refinements.
Definition: MooseMesh.h:1463

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

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

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

◆ sideWithBoundaryID()

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

Calls BoundaryInfo::side_with_boundary_id().

Definition at line 3019 of file MooseMesh.C.

3020 {
3021  return getMesh().get_boundary_info().side_with_boundary_id(elem, boundary_id);
3022 }
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:3446
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097

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

2139 {
2141 }
bool _skip_deletion_repartition_after_refine
Whether or not skip remote deletion and repartition after uniform refinements.
Definition: MooseMesh.h:1463

◆ skipNoncriticalPartitioning()

bool MooseMesh::skipNoncriticalPartitioning ( ) const
virtualinherited

Definition at line 4400 of file MooseMesh.C.

4401 {
4402  return _mesh->skip_noncritical_partitioning();
4403 }
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:1433

◆ skipPartitioning()

virtual bool MooseMesh::skipPartitioning ( ) const
inlinevirtualinherited

Definition at line 329 of file MooseMesh.h.

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

◆ skipRefineWhenUseSplit()

bool MooseMesh::skipRefineWhenUseSplit ( ) const
inlineinherited

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

Definition at line 585 of file MooseMesh.h.

585 { 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:1460

◆ spatialDimension()

virtual unsigned int MooseMesh::spatialDimension ( ) const
inlinevirtualinherited

Returns MeshBase::spatial_dimension.

Reimplemented in MFEMMesh.

Definition at line 182 of file MooseMesh.h.

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

◆ timedSectionName()

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

Optionally adds a prefix if one is defined.

Definition at line 47 of file PerfGraphInterface.C.

Referenced by PerfGraphInterface::registerTimedSection().

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

◆ type()

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

Get the type of this class.

Returns
the name of the type of this class

Definition at line 51 of file MooseBase.h.

Referenced by CreateProblemDefaultAction::act(), SetupDebugAction::act(), MaterialDerivativeTestAction::act(), MaterialOutputAction::act(), FEProblemBase::addAuxArrayVariable(), FEProblemBase::addAuxScalarVariable(), FEProblemBase::addAuxVariable(), FEProblemBase::addConvergence(), FEProblemBase::addDistribution(), MooseApp::addExecutor(), MooseApp::addExecutorParams(), MFEMProblem::addFunction(), FEProblemBase::addFunction(), FEProblemBase::addMeshDivision(), MooseApp::addMeshGenerator(), MeshGenerator::addMeshSubgenerator(), FEProblemBase::addObject(), MFEMProblem::addPostprocessor(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addTimeIntegrator(), MooseServer::addValuesToList(), DisplacedProblem::addVectorTag(), SubProblem::addVectorTag(), FEProblemBase::advanceMultiApps(), MooseApp::appendMeshGenerator(), AuxKernelTempl< Real >::AuxKernelTempl(), FEProblemBase::backupMultiApps(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), BoundaryPreservedMarker::BoundaryPreservedMarker(), DistributedRectilinearMeshGenerator::buildCube(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildLowerDMesh(), MooseMesh::buildPRefinementAndCoarseningMaps(), PhysicsBase::checkComponentType(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), ActionComponent::checkRequiredTasks(), PhysicsBase::checkRequiredTasks(), 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(), HFEMTestJump::computeQpOffDiagJacobian(), HFEMTrialJump::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(), HFEMTrialJump::computeQpResidual(), EqualValueBoundaryConstraint::computeQpResidual(), HFEMTestJump::computeQpResidual(), FEProblemBase::computeSystems(), FEProblemBase::computeUserObjectByName(), FEProblemBase::computeUserObjects(), FEProblemBase::computeUserObjectsInternal(), DisplacedProblem::createQRules(), FEProblemBase::createQRules(), MooseApp::createRecoverablePerfGraph(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), FEProblemBase::duplicateVariableCheck(), MooseBase::errorPrefix(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), FEProblemBase::execTransfers(), WebServerControl::execute(), SteadyBase::execute(), ActionWarehouse::executeActionsWithAction(), FEProblemBase::finishMultiAppStep(), FVScalarLagrangeMultiplierInterface::FVScalarLagrangeMultiplierInterface(), MooseServer::gatherDocumentReferencesLocations(), LowerDBlockFromSidesetGenerator::generate(), SubdomainPerElementGenerator::generate(), PatternedMeshGenerator::generate(), MeshGenerator::generateInternal(), MultiAppTransfer::getAppInfo(), TransfiniteMeshGenerator::getEdge(), ElementGenerator::getElemType(), MooseServer::getInputLookupDefinitionNodes(), FEProblemBase::getMaterial(), FEProblemBase::getMaterialData(), MaterialOutputAction::getParams(), ReporterData::getReporterInfo(), FEProblemBase::getTransfers(), DisplacedProblem::getVectorTags(), SubProblem::getVectorTags(), CommonOutputAction::hasConsole(), FEProblemBase::hasMultiApps(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), AdvancedOutput::initAvailableLists(), FunctorPositions::initialize(), FunctorTimes::initialize(), MultiAppConservativeTransfer::initialSetup(), LinearFVDiffusion::initialSetup(), LinearFVAdvection::initialSetup(), LinearFVAnisotropicDiffusion::initialSetup(), ArrayDGDiffusion::initQpResidual(), AdvancedOutput::initShowHideLists(), RelationshipManager::isType(), FEProblemBase::logAdd(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), MFEMProblem::mesh(), MooseObject::MooseObject(), MultiAppMFEMCopyTransfer::MultiAppMFEMCopyTransfer(), 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(), WebServerControl::startServer(), MooseBase::typeAndName(), ScalarKernelBase::uOld(), AuxScalarKernel::uOld(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), UserObjectInterface::userObjectType(), and AdvancedOutput::wantOutput().

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

◆ typeAndName()

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

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

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

Definition at line 27 of file MooseBase.C.

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

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

◆ uniformRefineLevel()

unsigned int MooseMesh::uniformRefineLevel ( ) const
inherited

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

Definition at line 3214 of file MooseMesh.C.

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

3215 {
3216  return _uniform_refine_level;
3217 }
unsigned int _uniform_refine_level
The level of uniform refinement requested (set to zero if AMR is disabled)
Definition: MooseMesh.h:1457

◆ uniqueName()

MooseObjectName MooseBaseParameterInterface::uniqueName ( ) const
inlineinherited

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

Definition at line 67 of file MooseBaseParameterInterface.h.

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

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

◆ uniqueParameterName()

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

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

Definition at line 52 of file MooseBaseParameterInterface.h.

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

◆ update()

void MooseMesh::update ( )
inherited

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

Definition at line 617 of file MooseMesh.C.

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

618 {
619  TIME_SECTION("update", 3, "Updating Mesh", true);
620 
621  // Rebuild the boundary conditions
623 
624  // Update the node to elem map
625  _node_to_elem_map.clear();
626  _node_to_elem_map_built = false;
629 
630  buildNodeList();
632  cacheInfo();
633  buildElemIDInfo();
634 
635  // this will make moose mesh aware of p-refinement added by mesh generators including
636  // a file mesh generator loading a restart checkpoint file
637  _max_p_level = 0;
638  _max_h_level = 0;
639  for (const auto & elem : getMesh().active_local_element_ptr_range())
640  {
641  if (elem->p_level() > _max_p_level)
643  if (elem->level() > _max_h_level)
644  _max_h_level = elem->level();
645  }
646  comm().max(_max_p_level);
647  comm().max(_max_h_level);
648 
649  // the flag might have been set by calling doingPRefinement(true)
651 
653 }
bool _node_to_elem_map_built
Definition: MooseMesh.h:1506
void buildElemIDInfo()
Build extra data for faster access to the information of extra element integers.
Definition: MooseMesh.C:1057
bool _finite_volume_info_dirty
Definition: MooseMesh.h:1615
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
A map of all of the current nodes to the elements that they are connected to.
Definition: MooseMesh.h:1505
bool _doing_p_refinement
Whether we have p-refinement (as opposed to h-refinement)
Definition: MooseMesh.h:1877
const Parallel::Communicator & comm() const
unsigned int p_level() const
bool _node_to_active_semilocal_elem_map_built
Definition: MooseMesh.h:1510
void cacheInfo()
Definition: MooseMesh.C:1405
void buildNodeListFromSideList()
Calls BoundaryInfo::build_node_list_from_side_list().
Definition: MooseMesh.C:2981
unsigned int _max_h_level
Maximum h-refinement level of all elements.
Definition: MooseMesh.h:1881
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3446
unsigned int level() const
void max(const T &r, T &o, Request &req) const
void buildBndElemList()
Definition: MooseMesh.C:1153
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:3097
void buildNodeList()
Calls BoundaryInfo::build_node_list()/build_side_list() and makes separate copies of Nodes/Elems in t...
Definition: MooseMesh.C:1023
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
A map of all of the current nodes to the active elements that they are connected to.
Definition: MooseMesh.h:1509
unsigned int _max_p_level
Maximum p-refinement level of all elements.
Definition: MooseMesh.h:1879

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

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

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

◆ usingGeneralAxisymmetricCoordAxes()

bool MooseMesh::usingGeneralAxisymmetricCoordAxes ( ) const
inherited

Returns true if general axisymmetric coordinate axes are being used.

Definition at line 4277 of file MooseMesh.C.

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

4278 {
4279  return _subdomain_id_to_rz_coord_axis.size() > 0;
4280 }
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:1864

◆ validParams()

InputParameters PatternedMesh::validParams ( )
static

Definition at line 22 of file PatternedMesh.C.

23 {
25  params.addRequiredParam<std::vector<MeshFileName>>("files",
26  "The name of the mesh files to read. "
27  " They are automatically assigned "
28  "ids starting with zero.");
29 
30  params.addRangeCheckedParam<Real>(
31  "x_width", 0, "x_width>=0", "The tile width in the x direction");
32  params.addRangeCheckedParam<Real>(
33  "y_width", 0, "y_width>=0", "The tile width in the y direction");
34  params.addRangeCheckedParam<Real>(
35  "z_width", 0, "z_width>=0", "The tile width in the z direction");
36 
37  // x boundary names
38  params.addParam<BoundaryName>("left_boundary", "left_boundary", "name of the left (x) boundary");
39  params.addParam<BoundaryName>(
40  "right_boundary", "right_boundary", "name of the right (x) boundary");
41 
42  // y boundary names
43  params.addParam<BoundaryName>("top_boundary", "top_boundary", "name of the top (y) boundary");
44  params.addParam<BoundaryName>(
45  "bottom_boundary", "bottom_boundary", "name of the bottom (y) boundary");
46 
47  params.addRequiredParam<std::vector<std::vector<unsigned int>>>(
48  "pattern", "A double-indexed array starting with the upper-left corner");
49 
50  params.addClassDescription("Creates a 2D mesh from a specified set of unique 'tiles' meshes and "
51  "a two-dimensional pattern.");
52 
53  return params;
54 }
static InputParameters validParams()
Typical "Moose-style" constructor and copy constructor.
Definition: MooseMesh.C:84
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...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object...
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)

Member Data Documentation

◆ _action_factory

ActionFactory& MooseBaseParameterInterface::_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 1494 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 1497 of file MooseMesh.h.

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

◆ _active_semilocal_node_range

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

◆ _app

MooseApp& MooseBase::_app
protectedinherited

The MOOSE application this is associated with.

Definition at line 84 of file MooseBase.h.

◆ _block_node_list

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

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

Definition at line 1553 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 1537 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 1530 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 1580 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 1419 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 1485 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 1478 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(), FEProblemBase::checkProblemIntegrity(), ReferenceResidualConvergence::checkRelativeConvergence(), 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(), FEProblemBase::finishMultiAppStep(), MeshRepairGenerator::fixOverlappingNodes(), CoarsenBlockGenerator::generate(), MeshGenerator::generateInternal(), VariableCondensationPreconditioner::getDofToCondense(), InversePowerMethod::init(), NonlinearEigen::init(), FEProblemBase::initialAdaptMesh(), DefaultMultiAppFixedPointConvergence::initialize(), EigenExecutionerBase::inversePowerIteration(), FEProblemBase::joinAndFinalize(), TransientBase::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), FEProblemBase::logAdd(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseBaseErrorInterface::mooseDeprecated(), MooseBaseErrorInterface::mooseInfo(), MooseBaseErrorInterface::mooseWarning(), MooseBaseErrorInterface::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(), Console::outputPostprocessors(), PseudoTimestep::outputPseudoTimestep(), Console::outputReporters(), DefaultMultiAppFixedPointConvergence::outputResidualNorm(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), BlockRestrictionDebugOutput::printBlockRestrictionMap(), 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(), NonlinearSystem::solve(), FixedPointSolve::solve(), LinearSystem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), LStableDirk4::solve(), AStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), FixedPointSolve::solveStep(), PerfGraphLivePrint::start(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), MFEMTransient::takeStep(), TransientBase::takeStep(), TerminateChainControl::terminate(), 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 1440 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 1429 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 51 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _extra_bnd_nodes

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

◆ _factory

Factory& MooseBaseParameterInterface::_factory
protectedinherited

◆ _files

const std::vector<MeshFileName>& PatternedMesh::_files
protected

Definition at line 44 of file PatternedMesh.h.

Referenced by buildMesh(), and PatternedMesh().

◆ _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 1413 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 1565 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 1466 of file MooseMesh.h.

◆ _is_nemesis

bool MooseMesh::_is_nemesis
protectedinherited

True if a Nemesis Mesh was read in.

Definition at line 1469 of file MooseMesh.h.

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

◆ _is_split

const bool MooseMesh::_is_split
protectedinherited

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

Definition at line 1586 of file MooseMesh.h.

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

◆ _local_node_range

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

Definition at line 1498 of file MooseMesh.h.

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

◆ _max_leaf_size

unsigned int MooseMesh::_max_leaf_size
protectedinherited

Definition at line 1568 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 1524 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 1526 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 1525 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 1516 of file MooseMesh.h.

Referenced by MooseMesh::buildLowerDMesh(), MooseMesh::cacheInfo(), MooseMesh::checkDuplicateSubdomainNames(), MooseMesh::meshSubdomains(), and MooseMesh::prepare().

◆ _meshes

std::vector<std::unique_ptr<ReplicatedMesh> > PatternedMesh::_meshes
protected

Definition at line 53 of file PatternedMesh.h.

Referenced by buildMesh(), and PatternedMesh().

◆ _moose_mesh_prepared

bool MooseMesh::_moose_mesh_prepared = false
protectedinherited

True if prepare has been called on the mesh.

Definition at line 1472 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 90 of file MooseBase.h.

Referenced by AddBCAction::act(), AddConstraintAction::act(), AddPostprocessorAction::act(), PartitionerAction::act(), AddMeshGeneratorAction::act(), AddDamperAction::act(), AddFunctorMaterialAction::act(), AddFVInterfaceKernelAction::act(), AddMultiAppAction::act(), AddVectorPostprocessorAction::act(), AddNodalKernelAction::act(), AddMaterialAction::act(), AddTransferAction::act(), AddDiracKernelAction::act(), ReadExecutorParamsAction::act(), AddUserObjectAction::act(), AddFVInitialConditionAction::act(), AddKernelAction::act(), AddInterfaceKernelAction::act(), AddDGKernelAction::act(), AddMarkerAction::act(), AddInitialConditionAction::act(), AddIndicatorAction::act(), AddScalarKernelAction::act(), AddPositionsAction::act(), AddReporterAction::act(), AddTimesAction::act(), AddFieldSplitAction::act(), AddFVKernelAction::act(), AddFVBCAction::act(), SetupTimeIntegratorAction::act(), AddFunctionAction::act(), AddConvergenceAction::act(), AddMeshDivisionAction::act(), AddHDGKernelAction::act(), AddTimeStepperAction::act(), AddDistributionAction::act(), SetupPreconditionerAction::act(), AddOutputAction::act(), AddLinearFVBCAction::act(), AddLinearFVKernelAction::act(), AddCorrectorAction::act(), AddMeshModifiersAction::act(), AddSamplerAction::act(), AddControlAction::act(), AddMFEMSolverAction::act(), AddMFEMPreconditionerAction::act(), AddMFEMSubMeshAction::act(), AddMFEMFESpaceAction::act(), AddPeriodicBCAction::act(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), PiecewiseTabularBase::buildFromFile(), PiecewiseTabularBase::buildFromXY(), PiecewiseLinearBase::buildInterpolation(), CombinerGenerator::CombinerGenerator(), Executor::Executor(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), QuadraturePointMultiApp::fillPositions(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), FunctionDT::FunctionDT(), FillBetweenSidesetsGenerator::generate(), FillBetweenPointVectorsGenerator::generate(), FillBetweenCurvesGenerator::generate(), NearestPointBase< LayeredSideDiffusiveFluxAverage, SideIntegralVariableUserObject >::name(), 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 1574 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 1556 of file MooseMesh.h.

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

◆ _node_to_active_semilocal_elem_map

std::map<dof_id_type, std::vector<dof_id_type> > MooseMesh::_node_to_active_semilocal_elem_map
protectedinherited

A map of all of the current nodes to the active elements that they are connected to.

Definition at line 1509 of file MooseMesh.h.

Referenced by MooseMesh::addQuadratureNode(), MooseMesh::nodeToActiveSemilocalElemMap(), and MooseMesh::update().

◆ _node_to_active_semilocal_elem_map_built

bool MooseMesh::_node_to_active_semilocal_elem_map_built
protectedinherited

Definition at line 1510 of file MooseMesh.h.

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

◆ _node_to_elem_map

std::map<dof_id_type, std::vector<dof_id_type> > MooseMesh::_node_to_elem_map
protectedinherited

A map of all of the current nodes to the elements that they are connected to.

Definition at line 1505 of file MooseMesh.h.

Referenced by MooseMesh::addQuadratureNode(), MooseMesh::nodeToElemMap(), and MooseMesh::update().

◆ _node_to_elem_map_built

bool MooseMesh::_node_to_elem_map_built
protectedinherited

Definition at line 1506 of file MooseMesh.h.

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

◆ _original_mesh

ReplicatedMesh* PatternedMesh::_original_mesh
protected

Definition at line 50 of file PatternedMesh.h.

◆ _paired_boundary

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

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

Definition at line 1583 of file MooseMesh.h.

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

◆ _parallel_type

ParallelType MooseMesh::_parallel_type
protectedinherited

Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.

Determines whether the underlying libMesh mesh is a ReplicatedMesh or DistributedMesh.

Definition at line 1423 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& MooseBaseParameterInterface::_pars
protectedinherited

Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.

Definition at line 173 of file MooseBaseParameterInterface.h.

Referenced by AddFVICAction::act(), AddICAction::act(), CreateProblemDefaultAction::act(), CreateProblemAction::act(), SetupMeshAction::act(), ComposeTimeStepperAction::act(), SetupDebugAction::act(), AddAuxKernelAction::act(), AddPeriodicBCAction::act(), CommonOutputAction::act(), FunctorMaterial::addFunctorPropertyByBlocks(), BreakMeshByBlockGeneratorBase::BreakMeshByBlockGeneratorBase(), PiecewiseTabularBase::buildFromFile(), PNGOutput::calculateRescalingValues(), MooseBaseParameterInterface::connectControllableParams(), Console::Console(), MaterialBase::declareADProperty(), MaterialBase::declareProperty(), FEProblemSolve::FEProblemSolve(), FunctionMaterialBase< is_ad >::FunctionMaterialBase(), FileMeshGenerator::generate(), MaterialBase::getGenericZeroMaterialProperty(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), MooseBaseParameterInterface::getParam(), MooseBaseParameterInterface::getRenamedParam(), MeshGenerator::hasGenerateData(), AddVariableAction::init(), AdvancedOutput::initExecutionTypes(), Console::initialSetup(), MooseBaseParameterInterface::isParamSetByUser(), MooseBaseParameterInterface::isParamValid(), MultiApp::keepSolutionDuringRestore(), MooseBaseParameterInterface::MooseBaseParameterInterface(), MooseBaseParameterInterface::paramErrorMsg(), GlobalParamsAction::parameters(), MooseBaseParameterInterface::parameters(), MooseMesh::prepare(), Eigenvalue::prepareSolverOptions(), MooseMesh::setCoordSystem(), MooseMesh::setPartitionerHelper(), SetupMeshAction::setupMesh(), TransientBase::setupTimeIntegrator(), MooseBaseParameterInterface::uniqueName(), and MooseBaseParameterInterface::uniqueParameterName().

◆ _partitioner_name

MooseEnum MooseMesh::_partitioner_name
protectedinherited

The partitioner used on this mesh.

Definition at line 1436 of file MooseMesh.h.

Referenced by MooseMesh::partitionerName(), and MooseMesh::setPartitionerHelper().

◆ _partitioner_overridden

bool MooseMesh::_partitioner_overridden
protectedinherited

◆ _patch_size

unsigned int MooseMesh::_patch_size
protectedinherited

The number of nodes to consider in the NearestNode neighborhood.

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

Referenced by MooseMesh::getPatchUpdateStrategy(), MooseMesh::MooseMesh(), and MooseMesh::setPatchUpdateStrategy().

◆ _pattern

const std::vector<std::vector<unsigned int> >& PatternedMesh::_pattern
protected

Definition at line 47 of file PatternedMesh.h.

Referenced by buildMesh().

◆ _pg_moose_app

MooseApp& PerfGraphInterface::_pg_moose_app
protectedinherited

The MooseApp that owns the PerfGraph.

Definition at line 124 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::perfGraph().

◆ _prefix

const std::string PerfGraphInterface::_prefix
protectedinherited

A prefix to use for all sections.

Definition at line 127 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::timedSectionName().

◆ _quadrature_nodes

std::map<dof_id_type, Node *> MooseMesh::_quadrature_nodes
protectedinherited

◆ _refined_elements

std::unique_ptr<ConstElemPointerRange> MooseMesh::_refined_elements
protectedinherited

The elements that were just refined.

Definition at line 1475 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 1577 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 1416 of file MooseMesh.h.

◆ _restartable_app

MooseApp& Restartable::_restartable_app
protectedinherited

Reference to the application.

Definition at line 227 of file Restartable.h.

Referenced by Restartable::registerRestartableDataOnApp(), and Restartable::registerRestartableNameWithFilterOnApp().

◆ _restartable_read_only

const bool Restartable::_restartable_read_only
protectedinherited

Flag for toggling read only status (see ReporterData)

Definition at line 236 of file Restartable.h.

Referenced by Restartable::registerRestartableDataOnApp().

◆ _restartable_system_name

const std::string Restartable::_restartable_system_name
protectedinherited

The system name this object is in.

Definition at line 230 of file Restartable.h.

Referenced by Restartable::restartableName().

◆ _restartable_tid

const THREAD_ID Restartable::_restartable_tid
protectedinherited

The thread ID for this object.

Definition at line 233 of file Restartable.h.

Referenced by Restartable::declareRestartableDataHelper().

◆ _row_meshes

std::vector<std::unique_ptr<ReplicatedMesh> > PatternedMesh::_row_meshes
protected

Definition at line 56 of file PatternedMesh.h.

Referenced by buildMesh().

◆ _semilocal_node_list

std::set<Node *> MooseMesh::_semilocal_node_list
protectedinherited

Used for generating the semilocal node range.

Definition at line 1488 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 1463 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 1460 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 1457 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 1428 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().

◆ _x_width

const Real PatternedMesh::_x_width
protected

Definition at line 58 of file PatternedMesh.h.

Referenced by buildMesh().

◆ _y_width

const Real PatternedMesh::_y_width
protected

Definition at line 59 of file PatternedMesh.h.

Referenced by buildMesh().

◆ _z_width

const Real PatternedMesh::_z_width
protected

Definition at line 60 of file PatternedMesh.h.


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