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

#include <FileMesh.h>

Inheritance diagram for FileMesh:
[legend]

Public Types

enum  ParallelType { ParallelType::DEFAULT, ParallelType::REPLICATED, ParallelType::DISTRIBUTED }
 
using PeriodicNodeInfo = std::pair< const Node *, BoundaryID >
 Helper type for building periodic node maps. More...
 

Public Member Functions

 FileMesh (const InputParameters &parameters)
 
 FileMesh (const FileMesh &other_mesh)
 
virtual ~FileMesh ()
 
virtual std::unique_ptr< MooseMeshsafeClone () const override
 A safer version of the clone() method that hands back an allocated object wrapped in a smart pointer. More...
 
virtual void buildMesh () override
 Must be overridden by child classes. More...
 
void read (const std::string &file_name)
 
virtual ExodusII_IO * exReader () const override
 Not implemented – always returns NULL. More...
 
void setFileName (const std::string &file_name)
 
virtual std::string getFileName () const override
 Returns the name of the mesh file read to produce this mesh if any or an empty string otherwise. More...
 
virtual MooseMeshclone () const
 Clone method. More...
 
std::unique_ptr< MeshBase > buildMeshBaseObject (ParallelType override_type=ParallelType::DEFAULT)
 Method to construct a libMesh::MeshBase object that is normally set and used by the MooseMesh object during the "init()" phase. 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_dimsension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh mesh object. More...
 
virtual unsigned int effectiveSpatialDimension () const
 Returns the effective spatial dimension determined by the coordinates actually used by the mesh. More...
 
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...
 
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 ()
 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::const_node_iterator localNodesBegin ()
 Calls local_nodes_begin/end() on the underlying libMesh mesh object. More...
 
MeshBase::const_node_iterator localNodesEnd ()
 
MeshBase::const_element_iterator activeLocalElementsBegin ()
 Calls active_local_nodes_begin/end() on the underlying libMesh mesh object. More...
 
const MeshBase::const_element_iterator activeLocalElementsEnd ()
 
virtual dof_id_type nNodes () const
 Calls n_nodes/elem() on the underlying libMesh mesh object. More...
 
virtual dof_id_type nElem () const
 
virtual dof_id_type maxNodeId () const
 Calls max_node/elem_id() on the underlying libMesh mesh object. More...
 
virtual dof_id_type maxElemId () const
 
virtual const Node & node (const dof_id_type i) const
 Various accessors (pointers/references) for Node "i". More...
 
virtual Node & node (const dof_id_type i)
 
virtual const Node & nodeRef (const dof_id_type i) const
 
virtual Node & nodeRef (const dof_id_type i)
 
virtual const Node * nodePtr (const dof_id_type i) const
 
virtual Node * nodePtr (const dof_id_type i)
 
virtual const Node * queryNodePtr (const dof_id_type i) const
 
virtual Node * queryNodePtr (const dof_id_type i)
 
virtual Elem * elem (const dof_id_type i)
 Various accessors (pointers/references) for Elem "i". More...
 
virtual const Elem * elem (const dof_id_type i) const
 
virtual Elem * elemPtr (const dof_id_type i)
 
virtual const Elem * elemPtr (const dof_id_type i) const
 
virtual Elem * queryElemPtr (const dof_id_type i)
 
virtual const Elem * queryElemPtr (const dof_id_type i) const
 
bool prepared () const
 Setter/getter for the _is_prepared flag. 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 elements. 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 RealVectorValue & getNormalByBoundaryID (BoundaryID id) const
 Returns the normal vector associated with a given BoundaryID. More...
 
void prepare (bool force=false)
 Calls prepare_for_use() if force=true on the underlying Mesh object, 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)
 Set uniform refinement level. 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...
 
unsigned int getPatchSize () const
 Getter for the patch_size parameter. More...
 
unsigned int getGhostingPatchSize () const
 Getter for the ghosting_patch_size parameter. More...
 
unsigned int getMaxLeafSize () const
 Getter for the maximum leaf size parameter. More...
 
void setPatchUpdateStrategy (Moose::PatchUpdateType patch_update_strategy)
 Set the patch size update strategy. More...
 
const Moose::PatchUpdateTypegetPatchUpdateStrategy () const
 Get the current patch update strategy. More...
 
BoundingBox getInflatedProcessorBoundingBox (Real inflation_multiplier=0.01) const
 Get a (slightly inflated) processor bounding box. More...
 
 operator libMesh::MeshBase & ()
 Implicit conversion operator from MooseMesh -> libMesh::MeshBase. More...
 
 operator const libMesh::MeshBase & () const
 
MeshBase & getMesh ()
 Accessor for the underlying libMesh Mesh object. More...
 
const MeshBase & getMesh () const
 
void printInfo (std::ostream &os=libMesh::out) const
 Calls print_info() on the underlying Mesh. More...
 
const std::set< SubdomainID > & getNodeBlockIds (const Node &node) const
 Return list of blocks to which the given node belongs. More...
 
const std::vector< dof_id_type > & getNodeList (boundary_id_type nodeset_id) const
 Return a writable reference to a vector of node IDs that belong to nodeset_id. More...
 
const Node * addUniqueNode (const Point &p, Real tol=1e-6)
 Add a new node to the mesh. More...
 
Node * addQuadratureNode (const Elem *elem, const unsigned short int side, const unsigned int qp, BoundaryID bid, const Point &point)
 Adds a fictitious "QuadratureNode". More...
 
Node * getQuadratureNode (const Elem *elem, const unsigned short int side, const unsigned int qp)
 Get a specified quadrature node. More...
 
void clearQuadratureNodes ()
 Clear out any existing quadrature nodes. More...
 
BoundaryID getBoundaryID (const BoundaryName &boundary_name) const
 Get the associated BoundaryID for the boundary name. More...
 
SubdomainID getSubdomainID (const SubdomainName &subdomain_name) const
 Get the associated subdomain ID for the subdomain name. More...
 
std::vector< SubdomainIDgetSubdomainIDs (const std::vector< SubdomainName > &subdomain_name) const
 Get the associated subdomainIDs for the subdomain names that are passed in. More...
 
void setSubdomainName (SubdomainID subdomain_id, const SubdomainName &name)
 This method sets the name for subdomain_id to name. More...
 
const std::string & getSubdomainName (SubdomainID subdomain_id)
 Return the name of a block given an id. More...
 
void setBoundaryName (BoundaryID boundary_id, BoundaryName name)
 This method returns a writable reference to a boundary name based on the id parameter. More...
 
const std::string & getBoundaryName (BoundaryID boundary_id)
 Return the name of the boundary given the id. More...
 
void buildPeriodicNodeMap (std::multimap< dof_id_type, dof_id_type > &periodic_node_map, unsigned int var_number, PeriodicBoundaries *pbs) const
 This routine builds a multimap of boundary ids to matching boundary ids across all periodic boundaries in the system. More...
 
void buildPeriodicNodeSets (std::map< BoundaryID, std::set< dof_id_type >> &periodic_node_sets, unsigned int var_number, PeriodicBoundaries *pbs) const
 This routine builds a datastructure of node ids organized by periodic boundary ids. More...
 
Real dimensionWidth (unsigned int component) const
 Returns the width of the requested dimension. More...
 
bool detectOrthogonalDimRanges (Real tol=1e-6)
 This routine determines whether the Mesh is a regular orthogonal mesh (i.e. More...
 
void addPeriodicVariable (unsigned int var_num, BoundaryID primary, BoundaryID secondary)
 For "regular orthogonal" meshes, determine if variable var_num is periodic with respect to the primary and secondary BoundaryIDs, record this fact in the _periodic_dim data structure. More...
 
bool isTranslatedPeriodic (unsigned int nonlinear_var_num, unsigned int component) const
 Returns whether this generated mesh is periodic in the given dimension for the given variable. More...
 
RealVectorValue minPeriodicVector (unsigned int nonlinear_var_num, Point p, Point q) const
 This function returns the minimum vector between two points on the mesh taking into account periodicity for the given variable number. More...
 
Real minPeriodicDistance (unsigned int nonlinear_var_num, Point p, Point q) const
 This function returns the distance between two points on the mesh taking into account periodicity for the given variable number. More...
 
const std::pair< BoundaryID, BoundaryID > * getPairedBoundaryMapping (unsigned int component)
 This function attempts to return the paired boundary ids for the given component. More...
 
void buildRefinementAndCoarseningMaps (Assembly *assembly)
 Create the refinement and coarsening maps necessary for projection of stateful material properties when using adaptivity. More...
 
const std::vector< std::vector< QpMap > > & getRefinementMap (const Elem &elem, int parent_side, int child, int child_side)
 Get the refinement map for a given element type. More...
 
const std::vector< std::pair< unsigned int, QpMap > > & getCoarseningMap (const Elem &elem, int input_side)
 Get the coarsening map for a given element type. More...
 
void changeBoundaryId (const boundary_id_type old_id, const boundary_id_type new_id, bool delete_prev)
 Change all the boundary IDs for a given side from old_id to new_id. More...
 
const std::set< BoundaryID > & getSubdomainBoundaryIds (SubdomainID subdomain_id) const
 Get the list of boundary ids associated with the given subdomain id. More...
 
bool isBoundaryNode (dof_id_type node_id) const
 Returns true if the requested node is in the list of boundary nodes, false otherwise. More...
 
bool isBoundaryNode (dof_id_type node_id, BoundaryID bnd_id) const
 Returns true if the requested node is in the list of boundary nodes for the specified boundary, false otherwise. More...
 
bool isBoundaryElem (dof_id_type elem_id) const
 Returns true if the requested element is in the list of boundary elements, false otherwise. More...
 
bool isBoundaryElem (dof_id_type elem_id, BoundaryID bnd_id) const
 Returns true if the requested element is in the list of boundary elements for the specified boundary, false otherwise. More...
 
void errorIfDistributedMesh (std::string name) const
 Generate a unified error message if the underlying libMesh mesh is a DistributedMesh. More...
 
bool isDistributedMesh () const
 Returns the final Mesh distribution type. More...
 
bool isParallelTypeForced () const
 Tell the user if the distribution was overriden for any reason. More...
 
const MooseEnumpartitionerName () const
 
bool isPartitionerForced () const
 Tell the user if the partitioner was overriden for any reason. More...
 
void allowRecovery (bool allow)
 Set whether or not this mesh is allowed to read a recovery file. More...
 
void setCustomPartitioner (Partitioner *partitioner)
 Setter for custom partitioner. More...
 
bool isRegularOrthogonal ()
 Getter to query if the mesh was detected to be regular and orthogonal. More...
 
bool hasSecondOrderElements ()
 check if the mesh has SECOND order elements More...
 
virtual std::unique_ptr< PointLocatorBase > getPointLocator () const
 Proxy function to get a (sub)PointLocator from either the underlying libMesh mesh (default), or to allow derived meshes to return a custom point locator. More...
 
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...
 
bool hasMeshBase () const
 Whether mesh base object was constructed or not. More...
 
const std::string & type () const
 Get the type of this object. More...
 
virtual const std::string & name () const
 Get the name of the object. More...
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
template<typename T >
const T & getParamTempl (const std::string &name) const
 Retrieve a 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...
 
MooseAppgetMooseApp () const
 Get the MooseApp this object is associated with. More...
 
virtual bool enabled () const
 Return the enabled status of the object. 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...
 
template<typename... Args>
void mooseError (Args &&... args) const
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
ConstElemRange * getActiveLocalElementRange ()
 Return pointers to range objects for various types of ranges (local nodes, boundary elems, etc.). More...
 
NodeRange * getActiveNodeRange ()
 
SemiLocalNodeRangegetActiveSemiLocalNodeRange () const
 
ConstNodeRange * getLocalNodeRange ()
 
StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > * getBoundaryNodeRange ()
 
StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > * getBoundaryElementRange ()
 
virtual Real getMinInDimension (unsigned int component) const
 Returns the min or max of the requested dimension respectively. More...
 
virtual Real getMaxInDimension (unsigned int component) const
 
bool isCustomPartitionerRequested () const
 Setter and getter for _custom_partitioner_requested. More...
 
void setIsCustomPartitionerRequested (bool cpr)
 

Static Public Member Functions

static InputParameters validParams ()
 
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 ()
 
template<typename T >
T & declareRestartableDataTempl (const std::string &data_name)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableDataTempl (const std::string &data_name, const T &init_value)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRestartableDataWithContext (const std::string &data_name, void *context)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableDataWithContext (const std::string &data_name, const T &init_value, void *context)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRestartableDataWithPrefixOverrideAndContext (const std::string &data_name, const std::string &prefix, void *context)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRecoverableData (const std::string &data_name)
 Declare a piece of data as "recoverable". More...
 
template<typename T >
T & declareRecoverableData (const std::string &data_name, const T &init_value)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context)
 Declare a piece of data as "restartable". More...
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level)
 Call to register a named section for timing. More...
 

Protected Attributes

std::string _file_name
 the file_name from whence this mesh came More...
 
std::unique_ptr< ExodusII_IO > _exreader
 Auxiliary object for restart. More...
 
const unsigned int _dim
 The requested dimension of the mesh. More...
 
const PerfID _read_mesh_timer
 Timers. More...
 
std::vector< std::unique_ptr< GhostingFunctor > > _ghosting_functors
 Deprecated (DO NOT USE) More...
 
std::vector< std::shared_ptr< RelationshipManager > > _relationship_managers
 The list of active geometric relationship managers (bound to the underlying MeshBase object). More...
 
ParallelType _parallel_type
 Can be set to DISTRIBUTED, REPLICATED, or DEFAULT. More...
 
bool _use_distributed_mesh
 False by default. More...
 
bool _distribution_overridden
 
bool _parallel_type_overridden
 
std::unique_ptr< libMesh::MeshBase > _mesh
 Pointer to underlying libMesh mesh object. More...
 
MooseEnum _partitioner_name
 The partitioner used on this mesh. More...
 
bool _partitioner_overridden
 
std::unique_ptr< Partitioner > _custom_partitioner
 The custom partitioner. More...
 
bool _custom_partitioner_requested
 
unsigned int _uniform_refine_level
 The level of uniform refinement requested (set to zero if AMR is disabled) More...
 
bool _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 _is_prepared
 True if prepare has been called on the mesh. More...
 
bool _needs_prepare_for_use
 True if prepare_for_use should be called when Mesh is prepared. More...
 
std::unique_ptr< ConstElemPointerRange_refined_elements
 The elements that were just refined. More...
 
std::unique_ptr< ConstElemPointerRange_coarsened_elements
 The elements that were just coarsened. More...
 
std::map< const Elem *, std::vector< const Elem * > > _coarsened_element_children
 Map of Parent elements to child elements for elements that were just coarsened. More...
 
std::set< Node * > _semilocal_node_list
 Used for generating the semilocal node range. More...
 
std::unique_ptr< ConstElemRange > _active_local_elem_range
 A range for use with threading. More...
 
std::unique_ptr< SemiLocalNodeRange_active_semilocal_node_range
 
std::unique_ptr< NodeRange > _active_node_range
 
std::unique_ptr< ConstNodeRange > _local_node_range
 
std::unique_ptr< StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
 
std::unique_ptr< StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
 
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
 A map of all of the current nodes to the elements that they are connected to. More...
 
bool _node_to_elem_map_built
 
std::map< dof_id_type, std::vector< dof_id_type > > _node_to_active_semilocal_elem_map
 A map of all of the current nodes to the active elements that they are connected to. More...
 
bool _node_to_active_semilocal_elem_map_built
 
std::set< SubdomainID_mesh_subdomains
 A set of subdomain IDs currently present in the mesh. More...
 
std::unique_ptr< std::map< BoundaryID, RealVectorValue > > _boundary_to_normal_map
 The boundary to normal map - valid only when AddAllSideSetsByNormals is active. More...
 
std::vector< BndNode * > _bnd_nodes
 array of boundary nodes More...
 
std::map< boundary_id_type, std::set< dof_id_type > > _bnd_node_ids
 Map of sets of node IDs in each boundary. More...
 
std::vector< BndElement * > _bnd_elems
 array of boundary elems More...
 
std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > _bnd_elem_ids
 Map of set of elem IDs connected to each boundary. More...
 
std::map< dof_id_type, Node * > _quadrature_nodes
 
std::map< dof_id_type, std::map< unsigned int, std::map< dof_id_type, Node * > > > _elem_to_side_to_qp_to_quadrature_nodes
 
std::vector< BndNode_extra_bnd_nodes
 
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
 list of nodes that belongs to a specified block (domain) More...
 
std::map< boundary_id_type, std::vector< dof_id_type > > _node_set_nodes
 list of nodes that belongs to a specified nodeset: indexing [nodeset_id] -> [array of node ids] More...
 
std::set< unsigned int > _ghosted_boundaries
 
std::vector< Real > _ghosted_boundaries_inflation
 
unsigned int _patch_size
 The number of nodes to consider in the NearestNode neighborhood. More...
 
unsigned int _ghosting_patch_size
 The number of nearest neighbors to consider for ghosting purposes when iteration patch update strategy is used. More...
 
unsigned int _max_leaf_size
 
Moose::PatchUpdateType _patch_update_strategy
 The patch update strategy. More...
 
std::vector< Node * > _node_map
 Vector of all the Nodes in the mesh for determining when to add a new point. More...
 
bool _regular_orthogonal_mesh
 Boolean indicating whether this mesh was detected to be regular and orthogonal. More...
 
std::vector< std::vector< Real > > _bounds
 The bounds in each dimension of the mesh for regular orthogonal meshes. More...
 
std::vector< std::pair< BoundaryID, BoundaryID > > _paired_boundary
 A vector holding the paired boundaries for a regular orthogonal mesh. More...
 
const InputParameters_pars
 Parameters of this object, references the InputParameters stored in the InputParametersWarehouse. More...
 
MooseApp_app
 The MooseApp this object is associated with. More...
 
const std::string & _type
 The type of this object (the Class name) More...
 
const std::string & _name
 The name of this object, reference to value stored in InputParameters. More...
 
const bool & _enabled
 Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects. More...
 
const InputParameters_pg_params
 Params. More...
 
PerfGraph_perf_graph
 The performance graph to add to. More...
 
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
 

Private Member Functions

void detectPairedSidesets ()
 This routine detects paired sidesets of a regular orthogonal mesh (.i.e. More...
 
void buildRefinementMap (const Elem &elem, QBase &qrule, QBase &qrule_face, int parent_side, int child, int child_side)
 Build the refinement map for a given element type. More...
 
void buildCoarseningMap (const Elem &elem, QBase &qrule, QBase &qrule_face, int input_side)
 Build the coarsening map for a given element type. More...
 
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". More...
 
void findAdaptivityQpMaps (const Elem *template_elem, QBase &qrule, QBase &qrule_face, std::vector< std::vector< QpMap >> &refinement_map, std::vector< std::pair< unsigned int, QpMap >> &coarsen_map, int parent_side, int child, int child_side)
 Given an elem type, get maps that tell us what qp's are closest to each other between a parent and it's children. More...
 
template<typename... Args>
std::string paramErrorMsg (const std::string &param, Args... args) const
 
RestartableDataValueregisterRestartableDataOnApp (const std::string &name, std::unique_ptr< RestartableDataValue > data, THREAD_ID tid)
 Helper function for actually registering the restartable data. More...
 
void registerRestartableNameWithFilterOnApp (const std::string &name, Moose::RESTARTABLE_FILTER filter)
 Helper function for actually registering the restartable data. More...
 

Private Attributes

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 specified variable numbers. More...
 
RealVectorValue _half_range
 A convenience vector used to hold values in each dimension representing half of the range. More...
 
std::vector< Node * > _extreme_nodes
 A vector containing the nodes at the corners of a regular orthogonal mesh. More...
 
std::map< std::pair< int, ElemType >, std::vector< std::vector< QpMap > > > _elem_type_to_refinement_map
 Holds mappings for volume to volume and parent side to child side. More...
 
std::map< ElemType, std::map< std::pair< int, int >, std::vector< std::vector< QpMap > > > > _elem_type_to_child_side_refinement_map
 Holds mappings for "internal" child sides to parent volume. The second key is (child, child_side). More...
 
std::map< std::pair< int, ElemType >, std::vector< std::pair< unsigned int, QpMap > > > _elem_type_to_coarsening_map
 Holds mappings for volume to volume and parent side to child side. More...
 
std::map< SubdomainID, std::set< BoundaryID > > _subdomain_boundary_ids
 Holds a map from subomdain ids to the boundary ids that are attached to it. More...
 
bool _allow_recovery
 Whether or not this Mesh is allowed to read a recovery file. More...
 
bool _construct_node_list_from_side_list
 Whether or not to allow generation of nodesets from sidesets. More...
 
PerfID _prepare_timer
 Timers. More...
 
PerfID _update_timer
 
PerfID _mesh_changed_timer
 
PerfID _cache_changed_lists_timer
 
PerfID _update_active_semi_local_node_range_timer
 
PerfID _build_node_list_timer
 
PerfID _build_bnd_elem_list_timer
 
PerfID _node_to_elem_map_timer
 
PerfID _node_to_active_semilocal_elem_map_timer
 
PerfID _get_active_local_element_range_timer
 
PerfID _get_active_node_range_timer
 
PerfID _get_local_node_range_timer
 
PerfID _get_boundary_node_range_timer
 
PerfID _get_boundary_element_range_timer
 
PerfID _cache_info_timer
 
PerfID _build_periodic_node_map_timer
 
PerfID _build_periodic_node_sets_timer
 
PerfID _detect_orthogonal_dim_ranges_timer
 
PerfID _detect_paired_sidesets_timer
 
PerfID _build_refinement_map_timer
 
PerfID _build_coarsening_map_timer
 
PerfID _find_adaptivity_qp_maps_timer
 
PerfID _build_refinement_and_coarsening_maps_timer
 
PerfID _change_boundary_id_timer
 
PerfID _init_timer
 
PerfID _read_recovered_mesh_timer
 
PerfID _ghost_ghosted_boundaries_timer
 
bool _need_delete
 Whether we need to delete remote elements after init'ing the EquationSystems. More...
 
std::set< Elem * > _ghost_elems_from_ghost_boundaries
 Set of elements ghosted by ghostGhostedBoundaries. More...
 
MooseApp_restartable_app
 Reference to the application. More...
 
std::string _restartable_name
 The name of the object. More...
 
std::string _restartable_system_name
 The system name this object is in. More...
 
THREAD_ID _restartable_tid
 The thread ID for this object. More...
 

Detailed Description

Definition at line 20 of file FileMesh.h.

Member Typedef Documentation

◆ bnd_elem_iterator_imp

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

Definition at line 1012 of file MooseMesh.h.

◆ bnd_node_iterator_imp

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

Definition at line 1005 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 1013 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 1006 of file MooseMesh.h.

◆ PeriodicNodeInfo

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

Helper type for building periodic node maps.

Definition at line 872 of file MooseMesh.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited

Convenience enums.

Enumerator

Definition at line 919 of file MooseMesh.h.

920  {
921  X = 0,
922  Y,
923  Z
924  };

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
MIN 
MAX 

Definition at line 925 of file MooseMesh.h.

926  {
927  MIN = 0,
928  MAX
929  };

◆ ParallelType

enum MooseMesh::ParallelType
stronginherited
Enumerator
DEFAULT 
REPLICATED 
DISTRIBUTED 

Definition at line 90 of file MooseMesh.h.

91  {
92  DEFAULT,
93  REPLICATED,
94  DISTRIBUTED
95  };

Constructor & Destructor Documentation

◆ FileMesh() [1/2]

FileMesh::FileMesh ( const InputParameters parameters)

Definition at line 33 of file FileMesh.C.

35  _file_name(getParam<MeshFileName>("file")),
36  _dim(getParam<MooseEnum>("dim")),
38 {
39 }

◆ FileMesh() [2/2]

FileMesh::FileMesh ( const FileMesh other_mesh)

Definition at line 41 of file FileMesh.C.

42  : MooseMesh(other_mesh),
43  _file_name(other_mesh._file_name),
44  _dim(other_mesh._dim),
46 {
47 }

◆ ~FileMesh()

FileMesh::~FileMesh ( )
virtual

Definition at line 49 of file FileMesh.C.

49 {}

Member Function Documentation

◆ activeLocalElementsBegin()

MeshBase::const_element_iterator MooseMesh::activeLocalElementsBegin ( )
inherited

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

Definition at line 2239 of file MooseMesh.C.

2240 {
2241  return getMesh().active_local_elements_begin();
2242 }

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

◆ activeLocalElementsEnd()

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

Definition at line 2245 of file MooseMesh.C.

2246 {
2247  return getMesh().active_local_elements_end();
2248 }

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

◆ addGhostedBoundary()

void MooseMesh::addGhostedBoundary ( BoundaryID  boundary_id)
inherited

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

Definition at line 2395 of file MooseMesh.C.

2396 {
2397  _ghosted_boundaries.insert(boundary_id);
2398 }

Referenced by FEProblemBase::addGhostedBoundary(), and SetupMeshAction::setupMesh().

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

1534 {
1536  return;
1537 
1538  _periodic_dim[var_num].resize(dimension());
1539 
1540  _half_range = Point(dimensionWidth(0) / 2.0, dimensionWidth(1) / 2.0, dimensionWidth(2) / 2.0);
1541 
1542  for (unsigned int component = 0; component < dimension(); ++component)
1543  {
1544  const std::pair<BoundaryID, BoundaryID> * boundary_ids = getPairedBoundaryMapping(component);
1545 
1546  if (boundary_ids != nullptr &&
1547  ((boundary_ids->first == primary && boundary_ids->second == secondary) ||
1548  (boundary_ids->first == secondary && boundary_ids->second == primary)))
1549  _periodic_dim[var_num][component] = true;
1550  }
1551 }

Referenced by AddPeriodicBCAction::setPeriodicVars().

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

962 {
963  Node * qnode;
964 
965  if (_elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].find(qp) ==
967  {
968  // Create a new node id starting from the max node id and counting down. This will be the least
969  // likely to collide with an existing node id.
970  // Note that we are using numeric_limits<unsigned>::max even
971  // though max_id is stored as a dof_id_type. I tried this with
972  // numeric_limits<dof_id_type>::max and it broke several tests in
973  // MOOSE. So, this is some kind of a magic number that we will
974  // just continue to use...
975  dof_id_type max_id = std::numeric_limits<unsigned int>::max() - 100;
976  dof_id_type new_id = max_id - _quadrature_nodes.size();
977 
978  if (new_id <= getMesh().max_node_id())
979  mooseError("Quadrature node id collides with existing node id!");
980 
981  qnode = new Node(point, new_id);
982 
983  // Keep track of this new node in two different ways for easy lookup
984  _quadrature_nodes[new_id] = qnode;
985  _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp] = qnode;
986 
987  if (elem->active())
988  {
989  _node_to_elem_map[new_id].push_back(elem->id());
990  _node_to_active_semilocal_elem_map[new_id].push_back(elem->id());
991  }
992  }
993  else
994  qnode = _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp];
995 
996  BndNode * bnode = new BndNode(qnode, bid);
997  _bnd_nodes.push_back(bnode);
998  _bnd_node_ids[bid].insert(qnode->id());
999 
1000  _extra_bnd_nodes.push_back(*bnode);
1001 
1002  // Do this so the range will be regenerated next time it is accessed
1003  _bnd_node_range.reset();
1004 
1005  return qnode;
1006 }

Referenced by GeometricSearchData::generateQuadratureNodes().

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

924 {
929  if (getMesh().n_nodes() != _node_map.size())
930  {
931  _node_map.clear();
932  _node_map.reserve(getMesh().n_nodes());
933  for (const auto & node : getMesh().node_ptr_range())
934  _node_map.push_back(node);
935  }
936 
937  Node * node = nullptr;
938  for (unsigned int i = 0; i < _node_map.size(); ++i)
939  {
940  if (p.relative_fuzzy_equals(*_node_map[i], tol))
941  {
942  node = _node_map[i];
943  break;
944  }
945  }
946  if (node == nullptr)
947  {
948  node = getMesh().add_node(new Node(p));
949  _node_map.push_back(node);
950  }
951 
952  mooseAssert(node != nullptr, "Node is NULL");
953  return node;
954 }

◆ allowRecovery()

void MooseMesh::allowRecovery ( bool  allow)
inlineinherited

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

Definition at line 829 of file MooseMesh.h.

829 { _allow_recovery = allow; }

◆ bndElemsBegin()

MooseMesh::bnd_elem_iterator MooseMesh::bndElemsBegin ( )
virtualinherited

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

Definition at line 908 of file MooseMesh.C.

909 {
910  Predicates::NotNull<bnd_elem_iterator_imp> p;
911  return bnd_elem_iterator(_bnd_elems.begin(), _bnd_elems.end(), p);
912 }

Referenced by MooseMesh::getBoundaryElementRange(), and MeshSideSet::modify().

◆ bndElemsEnd()

MooseMesh::bnd_elem_iterator MooseMesh::bndElemsEnd ( )
virtualinherited

Definition at line 916 of file MooseMesh.C.

917 {
918  Predicates::NotNull<bnd_elem_iterator_imp> p;
919  return bnd_elem_iterator(_bnd_elems.end(), _bnd_elems.end(), p);
920 }

Referenced by MooseMesh::getBoundaryElementRange(), and MeshSideSet::modify().

◆ bndNodesBegin()

MooseMesh::bnd_node_iterator MooseMesh::bndNodesBegin ( )
virtualinherited

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

Definition at line 892 of file MooseMesh.C.

893 {
894  Predicates::NotNull<bnd_node_iterator_imp> p;
895  return bnd_node_iterator(_bnd_nodes.begin(), _bnd_nodes.end(), p);
896 }

Referenced by MooseMesh::getBoundaryNodeRange().

◆ bndNodesEnd()

MooseMesh::bnd_node_iterator MooseMesh::bndNodesEnd ( )
virtualinherited

Definition at line 900 of file MooseMesh.C.

901 {
902  Predicates::NotNull<bnd_node_iterator_imp> p;
903  return bnd_node_iterator(_bnd_nodes.end(), _bnd_nodes.end(), p);
904 }

Referenced by MooseMesh::getBoundaryNodeRange().

◆ buildActiveSideList()

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

Calls BoundaryInfo::build_active_side_list.

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

Definition at line 2215 of file MooseMesh.C.

2216 {
2217  return getMesh().get_boundary_info().build_active_side_list();
2218 }

Referenced by PenetrationLocator::detectPenetration().

◆ buildBndElemList()

void MooseMesh::buildBndElemList ( )
inherited

Definition at line 685 of file MooseMesh.C.

686 {
687  TIME_SECTION(_build_bnd_elem_list_timer);
688  CONSOLE_TIMED_PRINT("Building element lists");
689 
690  freeBndElems();
691 
692  auto bc_tuples = getMesh().get_boundary_info().build_active_side_list();
693 
694  int n = bc_tuples.size();
695  _bnd_elems.clear();
696  _bnd_elems.reserve(n);
697  for (const auto & t : bc_tuples)
698  {
699  auto elem_id = std::get<0>(t);
700  auto side_id = std::get<1>(t);
701  auto bc_id = std::get<2>(t);
702 
703  _bnd_elems.push_back(new BndElement(getMesh().elem_ptr(elem_id), side_id, bc_id));
704  _bnd_elem_ids[bc_id].insert(elem_id);
705  }
706 }

Referenced by MeshSideSet::modify(), and MooseMesh::update().

◆ buildCoarseningMap()

void MooseMesh::buildCoarseningMap ( const Elem &  elem,
QBase &  qrule,
QBase &  qrule_face,
int  input_side 
)
privateinherited

Build 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.
qruleThe quadrature rule in use.
qrule_faceThe current face quadrature rule
input_sideThe side to map

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

1753 {
1754  TIME_SECTION(_build_coarsening_map_timer);
1755 
1756  std::pair<int, ElemType> the_pair(input_side, elem.type());
1757 
1758  if (_elem_type_to_coarsening_map.find(the_pair) != _elem_type_to_coarsening_map.end())
1759  mooseError("Already built a qp coarsening map!");
1760 
1761  std::vector<std::vector<QpMap>> refinement_map;
1762  std::vector<std::pair<unsigned int, QpMap>> & coarsen_map =
1763  _elem_type_to_coarsening_map[the_pair];
1764 
1765  // The -1 here is for a specific child. We don't do that for coarsening maps
1766  // Also note that we're always mapping the same side to the same side (which is guaranteed by
1767  // libMesh).
1769  &elem, qrule, qrule_face, refinement_map, coarsen_map, input_side, -1, input_side);
1770 
1777 }

Referenced by MooseMesh::buildRefinementAndCoarseningMaps().

◆ buildMesh()

void FileMesh::buildMesh ( )
overridevirtual

Must be overridden by child classes.

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

Implements MooseMesh.

Definition at line 58 of file FileMesh.C.

59 {
60  TIME_SECTION(_read_mesh_timer);
61 
62  getMesh().set_mesh_dimension(getParam<MooseEnum>("dim"));
63 
64  if (_is_nemesis)
65  {
66  // Nemesis_IO only takes a reference to DistributedMesh, so we can't be quite so short here.
67  DistributedMesh & pmesh = cast_ref<DistributedMesh &>(getMesh());
68  Nemesis_IO(pmesh).read(_file_name);
69 
70  getMesh().allow_renumbering(false);
71 
72  // Even if we want repartitioning when load balancing later, we'll
73  // begin with the default partitioning defined by the Nemesis
74  // file.
75  bool skip_partitioning_later = getMesh().skip_partitioning();
76  getMesh().skip_partitioning(true);
77  getMesh().prepare_for_use();
78  getMesh().skip_partitioning(skip_partitioning_later);
79  }
80  else // not reading Nemesis files
81  {
82  // See if the user has requested reading a solution from the file. If so, we'll need to read
83  // the mesh with the exodus reader instead of using mesh.read(). This will read the mesh on
84  // every processor
85 
86  if (_app.setFileRestart() && (_file_name.rfind(".exd") < _file_name.size() ||
87  _file_name.rfind(".e") < _file_name.size()))
88  {
90 
91  _exreader = libmesh_make_unique<ExodusII_IO>(getMesh());
92  _exreader->read(_file_name);
93 
94  getMesh().allow_renumbering(false);
95  getMesh().prepare_for_use();
96  }
97  else
98  {
99  // If we are reading a mesh while restarting, then we might have
100  // a solution file that relies on that mesh partitioning and/or
101  // numbering. In that case, we need to turn off repartitioning
102  // and renumbering, at least at first.
104  bool restarting = _file_name.rfind(".cpa") < _file_name.size() ||
105  _file_name.rfind(".cpr") < _file_name.size();
106 
107  const bool skip_partitioning_later = restarting && getMesh().skip_partitioning();
108  const bool allow_renumbering_later = restarting && getMesh().allow_renumbering();
109 
110  if (restarting)
111  {
112  getMesh().skip_partitioning(true);
113  getMesh().allow_renumbering(false);
114  }
115 
117  mooseError("cannot locate mesh file '", _file_name, "'");
118  getMesh().read(_file_name);
119 
120  if (restarting)
121  {
122  getMesh().allow_renumbering(allow_renumbering_later);
123  getMesh().skip_partitioning(skip_partitioning_later);
124  }
125  }
126  }
127 }

◆ buildMeshBaseObject()

std::unique_ptr< MeshBase > MooseMesh::buildMeshBaseObject ( ParallelType  override_type = ParallelType::DEFAULT)
inherited

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

Definition at line 2026 of file MooseMesh.C.

2027 {
2028  switch (_parallel_type)
2029  {
2030  case ParallelType::DEFAULT:
2031  // The user did not specify 'parallel_type = XYZ' in the input file,
2032  // so we allow the --distributed-mesh command line arg to possibly turn
2033  // on DistributedMesh. If the command line arg is not present, we pick ReplicatedMesh.
2035  _use_distributed_mesh = true;
2036  break;
2040  break;
2042  _use_distributed_mesh = true;
2043  break;
2044  }
2045 
2046  // If the user specifies 'nemesis = true' in the Mesh block, or they are using --use-split,
2047  // we must use DistributedMesh.
2048  if (_is_nemesis || _app.isUseSplit())
2049  _use_distributed_mesh = true;
2050 
2051  unsigned dim = getParam<MooseEnum>("dim");
2052 
2053  std::unique_ptr<MeshBase> mesh;
2055  {
2056  if (override_type == ParallelType::REPLICATED)
2057  mooseError("The requested override_type of \"Replicated\" may not be used when MOOSE is "
2058  "running with a DistributedMesh");
2059 
2060  mesh = libmesh_make_unique<DistributedMesh>(_communicator, dim);
2061  if (_partitioner_name != "default" && _partitioner_name != "parmetis")
2062  {
2063  _partitioner_name = "parmetis";
2064  _partitioner_overridden = true;
2065  }
2066  }
2067  else
2068  {
2069  if (override_type == ParallelType::DISTRIBUTED)
2070  mooseError("The requested override_type of \"Distributed\" may not be used when MOOSE is "
2071  "running with a ReplicatedMesh");
2072 
2073  mesh = libmesh_make_unique<ReplicatedMesh>(_communicator, dim);
2074  }
2075 
2076  if (!getParam<bool>("allow_renumbering"))
2077  mesh->allow_renumbering(false);
2078 
2079  return mesh;
2080 }

Referenced by MooseMesh::init().

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

651 {
652  TIME_SECTION(_build_node_list_timer);
653  CONSOLE_TIMED_PRINT("Building node lists");
654 
655  freeBndNodes();
656 
657  auto bc_tuples = getMesh().get_boundary_info().build_node_list();
658 
659  int n = bc_tuples.size();
660  _bnd_nodes.clear();
661  _bnd_nodes.reserve(n);
662  for (const auto & t : bc_tuples)
663  {
664  auto node_id = std::get<0>(t);
665  auto bc_id = std::get<1>(t);
666 
667  _bnd_nodes.push_back(new BndNode(getMesh().node_ptr(node_id), bc_id));
668  _node_set_nodes[bc_id].push_back(node_id);
669  _bnd_node_ids[bc_id].insert(node_id);
670  }
671 
672  _bnd_nodes.reserve(_bnd_nodes.size() + _extra_bnd_nodes.size());
673  for (unsigned int i = 0; i < _extra_bnd_nodes.size(); i++)
674  {
675  BndNode * bnode = new BndNode(_extra_bnd_nodes[i]._node, _extra_bnd_nodes[i]._bnd_id);
676  _bnd_nodes.push_back(bnode);
677  _bnd_node_ids[std::get<1>(bc_tuples[i])].insert(_extra_bnd_nodes[i]._node->id());
678  }
679 
680  // This sort is here so that boundary conditions are always applied in the same order
681  std::sort(_bnd_nodes.begin(), _bnd_nodes.end(), BndNodeCompare());
682 }

Referenced by MooseMesh::update().

◆ buildNodeListFromSideList()

void MooseMesh::buildNodeListFromSideList ( )
inherited

Calls BoundaryInfo::build_node_list_from_side_list().

Definition at line 2183 of file MooseMesh.C.

2184 {
2186  getMesh().get_boundary_info().build_node_list_from_side_list();
2187 }

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

◆ buildPeriodicNodeMap()

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

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

Definition at line 1220 of file MooseMesh.C.

1223 {
1224  TIME_SECTION(_build_periodic_node_map_timer);
1225 
1226  // clear existing map
1227  periodic_node_map.clear();
1228 
1229  // get periodic nodes
1230  std::vector<PeriodicNodeInfo> periodic_nodes;
1231  for (const auto & t : getMesh().get_boundary_info().build_node_list())
1232  {
1233  // unfortunately libMesh does not give us a pointer, so we have to look it up ourselves
1234  auto node = _mesh->node_ptr(std::get<0>(t));
1235  mooseAssert(node != nullptr,
1236  "libMesh::BoundaryInfo::build_node_list() returned an ID for a non-existing node");
1237  auto bc_id = std::get<1>(t);
1238  periodic_nodes.emplace_back(node, bc_id);
1239  }
1240 
1241  // sort by boundary id
1242  std::sort(periodic_nodes.begin(),
1243  periodic_nodes.end(),
1244  [](const PeriodicNodeInfo & a, const PeriodicNodeInfo & b) -> bool {
1245  return a.second > b.second;
1246  });
1247 
1248  // build kd-tree
1249  using KDTreeType = nanoflann::KDTreeSingleIndexAdaptor<
1250  nanoflann::L2_Simple_Adaptor<Real, PointListAdaptor<PeriodicNodeInfo>>,
1252  LIBMESH_DIM>;
1253  const unsigned int max_leaf_size = 20; // slightly affects runtime
1254  auto point_list =
1255  PointListAdaptor<PeriodicNodeInfo>(periodic_nodes.begin(), periodic_nodes.end());
1256  auto kd_tree = libmesh_make_unique<KDTreeType>(
1257  LIBMESH_DIM, point_list, nanoflann::KDTreeSingleIndexAdaptorParams(max_leaf_size));
1258  mooseAssert(kd_tree != nullptr, "KDTree was not properly initialized.");
1259  kd_tree->buildIndex();
1260 
1261  // data structures for kd-tree search
1262  nanoflann::SearchParams search_params;
1263  std::vector<std::pair<std::size_t, Real>> ret_matches;
1264 
1265  // iterate over periodic nodes (boundary ids are in contiguous blocks)
1266  PeriodicBoundaryBase * periodic = nullptr;
1267  BoundaryID current_bc_id = BoundaryInfo::invalid_id;
1268  for (auto & pair : periodic_nodes)
1269  {
1270  // entering a new block of boundary IDs
1271  if (pair.second != current_bc_id)
1272  {
1273  current_bc_id = pair.second;
1274  periodic = pbs->boundary(current_bc_id);
1275  if (periodic && !periodic->is_my_variable(var_number))
1276  periodic = nullptr;
1277  }
1278 
1279  // variable is not periodic at this node, skip
1280  if (!periodic)
1281  continue;
1282 
1283  // clear result buffer
1284  ret_matches.clear();
1285 
1286  // id of the current node
1287  const auto id = pair.first->id();
1288 
1289  // position where we expect a periodic partner for the current node and boundary
1290  Point search_point = periodic->get_corresponding_pos(*pair.first);
1291 
1292  // search at the expected point
1293  kd_tree->radiusSearch(&(search_point)(0), libMesh::TOLERANCE, ret_matches, search_params);
1294  for (auto & match_pair : ret_matches)
1295  {
1296  const auto & match = periodic_nodes[match_pair.first];
1297  // add matched node if the boundary id is the corresponding id in the periodic pair
1298  if (match.second == periodic->pairedboundary)
1299  periodic_node_map.emplace(id, match.first->id());
1300  }
1301  }
1302 }

◆ buildPeriodicNodeSets()

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

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

Definition at line 1305 of file MooseMesh.C.

1308 {
1309  TIME_SECTION(_build_periodic_node_sets_timer);
1310 
1311  periodic_node_sets.clear();
1312 
1313  // Loop over all the boundary nodes adding the periodic nodes to the appropriate set
1314  for (const auto & t : getMesh().get_boundary_info().build_node_list())
1315  {
1316  auto node_id = std::get<0>(t);
1317  auto bc_id = std::get<1>(t);
1318 
1319  // Is this current node on a known periodic boundary?
1320  if (periodic_node_sets.find(bc_id) != periodic_node_sets.end())
1321  periodic_node_sets[bc_id].insert(node_id);
1322  else // This still might be a periodic node but we just haven't seen this boundary_id yet
1323  {
1324  const PeriodicBoundaryBase * periodic = pbs->boundary(bc_id);
1325  if (periodic && periodic->is_my_variable(var_number))
1326  periodic_node_sets[bc_id].insert(node_id);
1327  }
1328  }
1329 }

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

1615 {
1617 
1618  std::map<ElemType, Elem *> canonical_elems;
1619 
1620  // First, loop over all elements and find a canonical element for each type
1621  // Doing it this way guarantees that this is going to work in parallel
1622  for (const auto & elem : getMesh().element_ptr_range()) // TODO: Thread this
1623  {
1624  ElemType type = elem->type();
1625 
1626  if (canonical_elems.find(type) ==
1627  canonical_elems.end()) // If we haven't seen this type of elem before save it
1628  canonical_elems[type] = elem;
1629  else
1630  {
1631  Elem * stored = canonical_elems[type];
1632  if (elem->id() < stored->id()) // Arbitrarily keep the one with a lower id
1633  canonical_elems[type] = elem;
1634  }
1635  }
1636  // Now build the maps using these templates
1637  // Note: This MUST be done NOT threaded!
1638  for (const auto & can_it : canonical_elems)
1639  {
1640  Elem * elem = can_it.second;
1641 
1642  // Need to do this just once to get the right qrules put in place
1643  assembly->setCurrentSubdomainID(elem->subdomain_id());
1644  assembly->reinit(elem);
1645  assembly->reinit(elem, 0);
1646  auto && qrule = assembly->writeableQRule();
1647  auto && qrule_face = assembly->writeableQRuleFace();
1648 
1649  // Volume to volume projection for refinement
1650  buildRefinementMap(*elem, *qrule, *qrule_face, -1, -1, -1);
1651 
1652  // Volume to volume projection for coarsening
1653  buildCoarseningMap(*elem, *qrule, *qrule_face, -1);
1654 
1655  // Map the sides of children
1656  for (unsigned int side = 0; side < elem->n_sides(); side++)
1657  {
1658  // Side to side for sides that match parent's sides
1659  buildRefinementMap(*elem, *qrule, *qrule_face, side, -1, side);
1660  buildCoarseningMap(*elem, *qrule, *qrule_face, side);
1661  }
1662 
1663  // Child side to parent volume mapping for "internal" child sides
1664  for (unsigned int child = 0; child < elem->n_children(); ++child)
1665  for (unsigned int side = 0; side < elem->n_sides();
1666  ++side) // Assume children have the same number of sides!
1667  if (!elem->is_child_on_side(child, side)) // Otherwise we already computed that map
1668  buildRefinementMap(*elem, *qrule, *qrule_face, -1, child, side);
1669  }
1670 }

Referenced by FEProblemBase::initialSetup().

◆ buildRefinementMap()

void MooseMesh::buildRefinementMap ( const Elem &  elem,
QBase &  qrule,
QBase &  qrule_face,
int  parent_side,
int  child,
int  child_side 
)
privateinherited

Build 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.
qruleThe quadrature rule in use.
qrule_faceThe current face quadrature rule
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)

Definition at line 1673 of file MooseMesh.C.

1679 {
1680  TIME_SECTION(_build_refinement_map_timer);
1681 
1682  if (child == -1) // Doing volume mapping or parent side mapping
1683  {
1684  mooseAssert(parent_side == child_side,
1685  "Parent side must match child_side if not passing a specific child!");
1686 
1687  std::pair<int, ElemType> the_pair(parent_side, elem.type());
1688 
1689  if (_elem_type_to_refinement_map.find(the_pair) != _elem_type_to_refinement_map.end())
1690  mooseError("Already built a qp refinement map!");
1691 
1692  std::vector<std::pair<unsigned int, QpMap>> coarsen_map;
1693  std::vector<std::vector<QpMap>> & refinement_map = _elem_type_to_refinement_map[the_pair];
1695  &elem, qrule, qrule_face, refinement_map, coarsen_map, parent_side, child, child_side);
1696  }
1697  else // Need to map a child side to parent volume qps
1698  {
1699  std::pair<int, int> child_pair(child, child_side);
1700 
1701  if (_elem_type_to_child_side_refinement_map.find(elem.type()) !=
1703  _elem_type_to_child_side_refinement_map[elem.type()].find(child_pair) !=
1705  mooseError("Already built a qp refinement map!");
1706 
1707  std::vector<std::pair<unsigned int, QpMap>> coarsen_map;
1708  std::vector<std::vector<QpMap>> & refinement_map =
1709  _elem_type_to_child_side_refinement_map[elem.type()][child_pair];
1711  &elem, qrule, qrule_face, refinement_map, coarsen_map, parent_side, child, child_side);
1712  }
1713 }

Referenced by MooseMesh::buildRefinementAndCoarseningMaps().

◆ buildSideList() [1/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 2209 of file MooseMesh.C.

2210 {
2211  return getMesh().get_boundary_info().build_side_list();
2212 }

◆ buildSideList() [2/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 2190 of file MooseMesh.C.

2193 {
2194 #ifdef LIBMESH_ENABLE_DEPRECATED
2195  mooseDeprecated("The version of MooseMesh::buildSideList() taking three arguments is "
2196  "deprecated, call the version that returns a vector of tuples instead.");
2197  getMesh().get_boundary_info().build_side_list(el, sl, il);
2198 #else
2199  libmesh_ignore(el);
2200  libmesh_ignore(sl);
2201  libmesh_ignore(il);
2202  mooseError("The version of MooseMesh::buildSideList() taking three "
2203  "arguments is not available in your version of libmesh, call the "
2204  "version that returns a vector of tuples instead.");
2205 #endif
2206 }

Referenced by InterfaceQpValueUserObject::initialize().

◆ cacheChangedLists()

void MooseMesh::cacheChangedLists ( )
inherited

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

Definition at line 538 of file MooseMesh.C.

539 {
540  TIME_SECTION(_cache_changed_lists_timer);
541 
542  ConstElemRange elem_range(getMesh().local_elements_begin(), getMesh().local_elements_end(), 1);
543  CacheChangedListsThread cclt(*this);
544  Threads::parallel_reduce(elem_range, cclt);
545 
547 
548  _refined_elements = libmesh_make_unique<ConstElemPointerRange>(cclt._refined_elements.begin(),
549  cclt._refined_elements.end());
550  _coarsened_elements = libmesh_make_unique<ConstElemPointerRange>(cclt._coarsened_elements.begin(),
551  cclt._coarsened_elements.end());
552  _coarsened_element_children = cclt._coarsened_element_children;
553 }

Referenced by FEProblemBase::meshChangedHelper().

◆ cacheInfo()

void MooseMesh::cacheInfo ( )
protectedinherited

Definition at line 848 of file MooseMesh.C.

849 {
850  TIME_SECTION(_cache_info_timer);
851  CONSOLE_TIMED_PRINT("Caching mesh information");
852 
853  _subdomain_boundary_ids.clear();
854  _block_node_list.clear();
855 
856  // TODO: Thread this!
857  for (const auto & elem : getMesh().element_ptr_range())
858  {
859  SubdomainID subdomain_id = elem->subdomain_id();
860 
861  for (unsigned int side = 0; side < elem->n_sides(); side++)
862  {
863  std::vector<BoundaryID> boundaryids = getBoundaryIDs(elem, side);
864 
865  std::set<BoundaryID> & subdomain_set = _subdomain_boundary_ids[subdomain_id];
866 
867  subdomain_set.insert(boundaryids.begin(), boundaryids.end());
868  }
869 
870  for (unsigned int nd = 0; nd < elem->n_nodes(); ++nd)
871  {
872  Node & node = *elem->node_ptr(nd);
873  _block_node_list[node.id()].insert(elem->subdomain_id());
874  }
875  }
876 }

Referenced by MooseMesh::update().

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

1963 {
1964  TIME_SECTION(_change_boundary_id_timer);
1965  changeBoundaryId(getMesh(), old_id, new_id, delete_prev);
1966 }

Referenced by MeshExtruder::changeID().

◆ changeBoundaryId() [2/2]

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

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

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

Definition at line 1969 of file MooseMesh.C.

1973 {
1974  // Get a reference to our BoundaryInfo object, we will use it several times below...
1975  BoundaryInfo & boundary_info = mesh.get_boundary_info();
1976 
1977  // Container to catch ids passed back from BoundaryInfo
1978  std::vector<boundary_id_type> old_ids;
1979 
1980  // Only level-0 elements store BCs. Loop over them.
1981  for (auto & elem : as_range(mesh.level_elements_begin(0), mesh.level_elements_end(0)))
1982  {
1983  unsigned int n_sides = elem->n_sides();
1984  for (unsigned int s = 0; s != n_sides; ++s)
1985  {
1986  boundary_info.boundary_ids(elem, s, old_ids);
1987  if (std::find(old_ids.begin(), old_ids.end(), old_id) != old_ids.end())
1988  {
1989  std::vector<boundary_id_type> new_ids(old_ids);
1990  std::replace(new_ids.begin(), new_ids.end(), old_id, new_id);
1991  if (delete_prev)
1992  {
1993  boundary_info.remove_side(elem, s);
1994  boundary_info.add_side(elem, s, new_ids);
1995  }
1996  else
1997  boundary_info.add_side(elem, s, new_ids);
1998  }
1999  }
2000  }
2001 
2002  // Remove any remaining references to the old ID from the
2003  // BoundaryInfo object. This prevents things like empty sidesets
2004  // from showing up when printing information, etc.
2005  if (delete_prev)
2006  boundary_info.remove_id(old_id);
2007 }

◆ clearQuadratureNodes()

void MooseMesh::clearQuadratureNodes ( )
inherited

Clear out any existing quadrature nodes.

Most likely called before re-adding them.

Definition at line 1027 of file MooseMesh.C.

1028 {
1029  // Delete all the quadrature nodes
1030  for (auto & it : _quadrature_nodes)
1031  delete it.second;
1032 
1033  _quadrature_nodes.clear();
1035  _extra_bnd_nodes.clear();
1036 }

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

◆ clone()

MooseMesh & MooseMesh::clone ( ) const
virtualinherited

Clone method.

Allocates memory you are responsible to clean up.

Definition at line 2020 of file MooseMesh.C.

2021 {
2022  mooseError("MooseMesh::clone() is no longer supported, use MooseMesh::safeClone() instead.");
2023 }

Referenced by TiledMesh::buildMesh().

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

569 {
570  auto elem_to_child_pair = _coarsened_element_children.find(elem);
571  mooseAssert(elem_to_child_pair != _coarsened_element_children.end(), "Missing element in map");
572  return elem_to_child_pair->second;
573 }

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

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

563 {
564  return _coarsened_elements.get();
565 }

Referenced by FEProblemBase::meshChangedHelper().

◆ declareRecoverableData() [1/2]

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

Declare a piece of data as "recoverable".

This means that in the event of a recovery 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)

Definition at line 295 of file Restartable.h.

296 {
297  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
298 
300 
301  return declareRestartableDataWithContext<T>(data_name, nullptr);
302 }

◆ declareRecoverableData() [2/2]

template<typename T >
T & Restartable::declareRecoverableData ( const std::string &  data_name,
const T &  init_value 
)
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 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)
init_valueThe initial value of the data

Definition at line 306 of file Restartable.h.

307 {
308  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
309 
311 
312  return declareRestartableDataWithContext<T>(data_name, init_value, nullptr);
313 }

◆ declareRestartableDataTempl() [1/2]

template<typename T >
T & Restartable::declareRestartableDataTempl ( const std::string &  data_name)
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)

Definition at line 222 of file Restartable.h.

223 {
224  return declareRestartableDataWithContext<T>(data_name, nullptr);
225 }

◆ declareRestartableDataTempl() [2/2]

template<typename T >
T & Restartable::declareRestartableDataTempl ( const std::string &  data_name,
const T &  init_value 
)
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)
init_valueThe initial value of the data

Definition at line 229 of file Restartable.h.

230 {
231  return declareRestartableDataWithContext<T>(data_name, init_value, nullptr);
232 }

◆ declareRestartableDataWithContext() [1/2]

template<typename T >
T & Restartable::declareRestartableDataWithContext ( const std::string &  data_name,
const T &  init_value,
void *  context 
)
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)
init_valueThe initial value of the data
contextContext pointer that will be passed to the load and store functions

Definition at line 250 of file Restartable.h.

253 {
254  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
255 
256  // Here we will create the RestartableData even though we may not use this instance.
257  // If it's already in use, the App will return a reference to the existing instance and we'll
258  // return that one instead. We might refactor this to have the app create the RestartableData
259  // at a later date.
260  auto data_ptr = libmesh_make_unique<RestartableData<T>>(full_name, context);
261  auto & restartable_data_ref = static_cast<RestartableData<T> &>(
262  registerRestartableDataOnApp(full_name, std::move(data_ptr), _restartable_tid));
263 
264  restartable_data_ref.set() = init_value;
265  return restartable_data_ref.get();
266 }

◆ declareRestartableDataWithContext() [2/2]

template<typename T >
T & Restartable::declareRestartableDataWithContext ( const std::string &  data_name,
void *  context 
)
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)
contextContext pointer that will be passed to the load and store functions

Definition at line 236 of file Restartable.h.

237 {
238  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
239  auto data_ptr = libmesh_make_unique<RestartableData<T>>(full_name, context);
240 
241  // See comment in overloaded version of this function with "init_value"
242  auto & restartable_data_ref = static_cast<RestartableData<T> &>(
243  registerRestartableDataOnApp(full_name, std::move(data_ptr), _restartable_tid));
244 
245  return restartable_data_ref.get();
246 }

◆ declareRestartableDataWithObjectName()

template<typename T >
T & Restartable::declareRestartableDataWithObjectName ( const std::string &  data_name,
const std::string &  object_name 
)
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.

Definition at line 270 of file Restartable.h.

272 {
273  return declareRestartableDataWithObjectNameWithContext<T>(data_name, object_name, nullptr);
274 }

◆ declareRestartableDataWithObjectNameWithContext()

template<typename T >
T & Restartable::declareRestartableDataWithObjectNameWithContext ( const std::string &  data_name,
const std::string &  object_name,
void *  context 
)
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

Definition at line 278 of file Restartable.h.

281 {
282  std::string old_name = _restartable_name;
283 
284  _restartable_name = object_name;
285 
286  T & value = declareRestartableDataWithContext<T>(data_name, context);
287 
288  _restartable_name = old_name;
289 
290  return value;
291 }

◆ declareRestartableDataWithPrefixOverrideAndContext()

template<typename T >
T& Restartable::declareRestartableDataWithPrefixOverrideAndContext ( const std::string &  data_name,
const std::string &  prefix,
void *  context 
)
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)
prefixThe prefix to prepend to the data_name, to retrieve data from another object.
contextContext pointer that will be passed to the load and store functions

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

1333 {
1335 
1337  return true;
1338 
1339  std::vector<Real> min(3, std::numeric_limits<Real>::max());
1340  std::vector<Real> max(3, std::numeric_limits<Real>::min());
1341  unsigned int dim = getMesh().mesh_dimension();
1342 
1343  // Find the bounding box of our mesh
1344  for (const auto & node : getMesh().node_ptr_range())
1345  // Check all coordinates, we don't know if this mesh might be lying in a higher dim even if the
1346  // mesh dimension is lower.
1347  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
1348  {
1349  if ((*node)(i) < min[i])
1350  min[i] = (*node)(i);
1351  if ((*node)(i) > max[i])
1352  max[i] = (*node)(i);
1353  }
1354 
1355  this->comm().max(max);
1356  this->comm().min(min);
1357 
1358  _extreme_nodes.resize(8); // 2^LIBMESH_DIM
1359  // Now make sure that there are actual nodes at all of the extremes
1360  std::vector<bool> extreme_matches(8, false);
1361  std::vector<unsigned int> comp_map(3);
1362  for (const auto & node : getMesh().node_ptr_range())
1363  {
1364  // See if the current node is located at one of the extremes
1365  unsigned int coord_match = 0;
1366 
1367  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
1368  {
1369  if (std::abs((*node)(i)-min[i]) < tol)
1370  {
1371  comp_map[i] = MIN;
1372  ++coord_match;
1373  }
1374  else if (std::abs((*node)(i)-max[i]) < tol)
1375  {
1376  comp_map[i] = MAX;
1377  ++coord_match;
1378  }
1379  }
1380 
1381  if (coord_match == LIBMESH_DIM) // Found a coordinate at one of the extremes
1382  {
1383  _extreme_nodes[comp_map[X] * 4 + comp_map[Y] * 2 + comp_map[Z]] = node;
1384  extreme_matches[comp_map[X] * 4 + comp_map[Y] * 2 + comp_map[Z]] = true;
1385  }
1386  }
1387 
1388  // See if we matched all of the extremes for the mesh dimension
1389  this->comm().max(extreme_matches);
1390  if (std::count(extreme_matches.begin(), extreme_matches.end(), true) == (1 << dim))
1391  _regular_orthogonal_mesh = true;
1392 
1393  // Set the bounds
1394  _bounds.resize(LIBMESH_DIM);
1395  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
1396  {
1397  _bounds[i].resize(2);
1398  _bounds[i][MIN] = min[i];
1399  _bounds[i][MAX] = max[i];
1400  }
1401 
1402  return _regular_orthogonal_mesh;
1403 }

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

◆ detectPairedSidesets()

void MooseMesh::detectPairedSidesets ( )
privateinherited

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

parallel sidesets "across" from one and other). The _paired_boundary datastructure is populated with this information.

Definition at line 1406 of file MooseMesh.C.

1407 {
1408  TIME_SECTION(_detect_paired_sidesets_timer);
1409 
1410  // Loop over level-0 elements (since boundary condition information
1411  // is only directly stored for them) and find sidesets with normals
1412  // that point in the -x, +x, -y, +y, and -z, +z direction. If there
1413  // is a unique sideset id for each direction, then the paired
1414  // sidesets consist of (-x,+x), (-y,+y), (-z,+z). If there are
1415  // multiple sideset ids for a given direction, then we can't pick a
1416  // single pair for that direction. In that case, we'll just return
1417  // as was done in the original algorithm.
1418 
1419  // Points used for direction comparison
1420  const Point minus_x(-1, 0, 0), plus_x(1, 0, 0), minus_y(0, -1, 0), plus_y(0, 1, 0),
1421  minus_z(0, 0, -1), plus_z(0, 0, 1);
1422 
1423  // we need to test all element dimensions from dim down to 1
1424  const unsigned int dim = getMesh().mesh_dimension();
1425 
1426  // boundary id sets for elements of different dimensions
1427  std::vector<std::set<BoundaryID>> minus_x_ids(dim), plus_x_ids(dim), minus_y_ids(dim),
1428  plus_y_ids(dim), minus_z_ids(dim), plus_z_ids(dim);
1429 
1430  std::vector<std::unique_ptr<FEBase>> fe_faces(dim);
1431  std::vector<std::unique_ptr<QGauss>> qfaces(dim);
1432  for (unsigned side_dim = 0; side_dim < dim; ++side_dim)
1433  {
1434  // Face is assumed to be flat, therefore normal is assumed to be
1435  // constant over the face, therefore only compute it at 1 qp.
1436  qfaces[side_dim] = std::unique_ptr<QGauss>(new QGauss(side_dim, CONSTANT));
1437 
1438  // A first-order Lagrange FE for the face.
1439  fe_faces[side_dim] = FEBase::build(side_dim + 1, FEType(FIRST, LAGRANGE));
1440  fe_faces[side_dim]->attach_quadrature_rule(qfaces[side_dim].get());
1441  }
1442 
1443  // We need this to get boundary ids for each boundary face we encounter.
1444  BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1445  std::vector<boundary_id_type> face_ids;
1446 
1447  for (auto & elem : as_range(getMesh().level_elements_begin(0), getMesh().level_elements_end(0)))
1448  {
1449  // dimension of the current element and its normals
1450  unsigned int side_dim = elem->dim() - 1;
1451  const std::vector<Point> & normals = fe_faces[side_dim]->get_normals();
1452 
1453  // loop over element sides
1454  for (unsigned int s = 0; s < elem->n_sides(); s++)
1455  {
1456  // If side is on the boundary
1457  if (elem->neighbor_ptr(s) == nullptr)
1458  {
1459  std::unique_ptr<Elem> side = elem->build_side_ptr(s);
1460 
1461  fe_faces[side_dim]->reinit(elem, s);
1462 
1463  // Get the boundary ID(s) for this side. If there is more
1464  // than 1 boundary id, then we already can't determine a
1465  // unique pairing of sides in this direction, but we'll just
1466  // keep going to keep the logic simple.
1467  boundary_info.boundary_ids(elem, s, face_ids);
1468 
1469  // x-direction faces
1470  if (normals[0].absolute_fuzzy_equals(minus_x))
1471  minus_x_ids[side_dim].insert(face_ids.begin(), face_ids.end());
1472  else if (normals[0].absolute_fuzzy_equals(plus_x))
1473  plus_x_ids[side_dim].insert(face_ids.begin(), face_ids.end());
1474 
1475  // y-direction faces
1476  else if (normals[0].absolute_fuzzy_equals(minus_y))
1477  minus_y_ids[side_dim].insert(face_ids.begin(), face_ids.end());
1478  else if (normals[0].absolute_fuzzy_equals(plus_y))
1479  plus_y_ids[side_dim].insert(face_ids.begin(), face_ids.end());
1480 
1481  // z-direction faces
1482  else if (normals[0].absolute_fuzzy_equals(minus_z))
1483  minus_z_ids[side_dim].insert(face_ids.begin(), face_ids.end());
1484  else if (normals[0].absolute_fuzzy_equals(plus_z))
1485  plus_z_ids[side_dim].insert(face_ids.begin(), face_ids.end());
1486  }
1487  }
1488  }
1489 
1490  for (unsigned side_dim = 0; side_dim < dim; ++side_dim)
1491  {
1492  // If unique pairings were found, fill up the _paired_boundary data
1493  // structure with that information.
1494  if (minus_x_ids[side_dim].size() == 1 && plus_x_ids[side_dim].size() == 1)
1495  _paired_boundary.emplace_back(
1496  std::make_pair(*(minus_x_ids[side_dim].begin()), *(plus_x_ids[side_dim].begin())));
1497 
1498  if (minus_y_ids[side_dim].size() == 1 && plus_y_ids[side_dim].size() == 1)
1499  _paired_boundary.emplace_back(
1500  std::make_pair(*(minus_y_ids[side_dim].begin()), *(plus_y_ids[side_dim].begin())));
1501 
1502  if (minus_z_ids[side_dim].size() == 1 && plus_z_ids[side_dim].size() == 1)
1503  _paired_boundary.emplace_back(
1504  std::make_pair(*(minus_z_ids[side_dim].begin()), *(plus_z_ids[side_dim].begin())));
1505  }
1506 }

Referenced by MooseMesh::getPairedBoundaryMapping().

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

1510 {
1511  return getMaxInDimension(component) - getMinInDimension(component);
1512 }

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

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

2155 {
2156  const Real abs_zero = 1e-12;
2157 
2158  // See if the mesh is completely containd in the z and y planes to calculate effective spatial
2159  // dim
2160  for (unsigned int dim = LIBMESH_DIM; dim >= 1; --dim)
2161  if (dimensionWidth(dim - 1) >= abs_zero)
2162  return dim;
2163 
2164  // If we get here, we have a 1D mesh on the x-axis.
2165  return 1;
2166 }

Referenced by Exodus::setOutputDimensionInExodusWriter().

◆ elem() [1/2]

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

◆ elem() [2/2]

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

Definition at line 2282 of file MooseMesh.C.

2283 {
2284  mooseDeprecated("MooseMesh::elem() is deprecated, please use MooseMesh::elemPtr() instead");
2285  return elemPtr(i);
2286 }

◆ elemPtr() [1/2]

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

◆ elemPtr() [2/2]

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

Definition at line 2295 of file MooseMesh.C.

2296 {
2297  return getMesh().elem_ptr(i);
2298 }

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 110 of file MooseObject.h.

110 { return _enabled; }

Referenced by EigenKernel::enabled().

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

2718 {
2720  mooseError("Cannot use ",
2721  name,
2722  " with DistributedMesh!\n",
2723  "Consider specifying parallel_type = 'replicated' in your input file\n",
2724  "to prevent it from being run with DistributedMesh.");
2725 }

Referenced by FEProblemBase::checkProblemIntegrity(), ElementsAlongLine::ElementsAlongLine(), ElementsAlongPlane::ElementsAlongPlane(), IntersectionPointsAlongLine::IntersectionPointsAlongLine(), BreakMeshByBlock::modify(), SideSetsFromPoints::modify(), SideSetsFromNormals::modify(), MeshSideSet::modify(), AddAllSideSetsByNormals::modify(), ParsedAddSideset::modify(), AddSideSetsFromBoundingBox::modify(), MultiAppInterpolationTransfer::MultiAppInterpolationTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), NodeElemConstraint::NodeElemConstraint(), NonlocalIntegratedBC::NonlocalIntegratedBC(), NonlocalKernel::NonlocalKernel(), PatternedMesh::PatternedMesh(), StitchedMesh::StitchedMesh(), and TiledMesh::TiledMesh().

◆ exReader()

virtual ExodusII_IO* FileMesh::exReader ( ) const
inlineoverridevirtual

Not implemented – always returns NULL.

Reimplemented from MooseMesh.

Definition at line 34 of file FileMesh.h.

34 { return _exreader.get(); }

◆ findAdaptivityQpMaps()

void MooseMesh::findAdaptivityQpMaps ( const Elem *  template_elem,
QBase &  qrule,
QBase &  qrule_face,
std::vector< std::vector< QpMap >> &  refinement_map,
std::vector< std::pair< unsigned int, QpMap >> &  coarsen_map,
int  parent_side,
int  child,
int  child_side 
)
privateinherited

Given an elem type, get maps that tell us what qp's are closest to each other between a parent and it's children.

This is mainly used for mapping stateful material properties during adaptivity.

There are 3 cases here:

  1. Volume to volume (parent_side = -1, child = -1, child_side = -1)
  2. Parent side to child side (parent_side = 0+, child = -1, child_side = 0+)
  3. Child side to parent volume (parent_side = -1, child = 0+, child_side = 0+)

Case 3 only happens under refinement (need to invent data at internal child sides).

Parameters
template_elemAn element of the type that we need to find the maps for
qruleThe quadrature rule that we need to find the maps for
qrule_faceThe face quadrature rule that we need to find the maps for
refinement_mapThe map to use when an element gets split
coarsen_mapThe map to use when an element is coarsened.
parent_side- the id of the parent's side
child- the id of the child element
child_side- The id of the child's side

Definition at line 1822 of file MooseMesh.C.

1830 {
1831  TIME_SECTION(_find_adaptivity_qp_maps_timer);
1832 
1833  ReplicatedMesh mesh(_communicator);
1834  mesh.skip_partitioning(true);
1835 
1836  unsigned int dim = template_elem->dim();
1837  mesh.set_mesh_dimension(dim);
1838 
1839  for (unsigned int i = 0; i < template_elem->n_nodes(); ++i)
1840  mesh.add_point(template_elem->point(i));
1841 
1842  Elem * elem = mesh.add_elem(Elem::build(template_elem->type()).release());
1843 
1844  for (unsigned int i = 0; i < template_elem->n_nodes(); ++i)
1845  elem->set_node(i) = mesh.node_ptr(i);
1846 
1847  std::unique_ptr<FEBase> fe(FEBase::build(dim, FEType()));
1848  fe->get_phi();
1849  const std::vector<Point> & q_points_volume = fe->get_xyz();
1850 
1851  std::unique_ptr<FEBase> fe_face(FEBase::build(dim, FEType()));
1852  fe_face->get_phi();
1853  const std::vector<Point> & q_points_face = fe_face->get_xyz();
1854 
1855  fe->attach_quadrature_rule(&qrule);
1856  fe_face->attach_quadrature_rule(&qrule_face);
1857 
1858  // The current q_points
1859  const std::vector<Point> * q_points;
1860 
1861  if (parent_side != -1)
1862  {
1863  fe_face->reinit(elem, parent_side);
1864  q_points = &q_points_face;
1865  }
1866  else
1867  {
1868  fe->reinit(elem);
1869  q_points = &q_points_volume;
1870  }
1871 
1872  std::vector<Point> parent_ref_points;
1873 
1874  FEInterface::inverse_map(elem->dim(), FEType(), elem, *q_points, parent_ref_points);
1875  MeshRefinement mesh_refinement(mesh);
1876  mesh_refinement.uniformly_refine(1);
1877 
1878  std::map<unsigned int, std::vector<Point>> child_to_ref_points;
1879 
1880  unsigned int n_children = elem->n_children();
1881 
1882  refinement_map.resize(n_children);
1883 
1884  std::vector<unsigned int> children;
1885 
1886  if (child != -1) // Passed in a child explicitly
1887  children.push_back(child);
1888  else
1889  {
1890  children.resize(n_children);
1891  for (unsigned int child = 0; child < n_children; ++child)
1892  children[child] = child;
1893  }
1894 
1895  for (unsigned int i = 0; i < children.size(); ++i)
1896  {
1897  unsigned int child = children[i];
1898 
1899  if ((parent_side != -1 && !elem->is_child_on_side(child, parent_side)))
1900  continue;
1901 
1902  const Elem * child_elem = elem->child_ptr(child);
1903 
1904  if (child_side != -1)
1905  {
1906  fe_face->reinit(child_elem, child_side);
1907  q_points = &q_points_face;
1908  }
1909  else
1910  {
1911  fe->reinit(child_elem);
1912  q_points = &q_points_volume;
1913  }
1914 
1915  std::vector<Point> child_ref_points;
1916 
1917  FEInterface::inverse_map(elem->dim(), FEType(), elem, *q_points, child_ref_points);
1918  child_to_ref_points[child] = child_ref_points;
1919 
1920  std::vector<QpMap> & qp_map = refinement_map[child];
1921 
1922  // Find the closest parent_qp to each child_qp
1923  mapPoints(child_ref_points, parent_ref_points, qp_map);
1924  }
1925 
1926  coarsen_map.resize(parent_ref_points.size());
1927 
1928  // For each parent qp find the closest child qp
1929  for (unsigned int child = 0; child < n_children; child++)
1930  {
1931  if (parent_side != -1 && !elem->is_child_on_side(child, child_side))
1932  continue;
1933 
1934  std::vector<Point> & child_ref_points = child_to_ref_points[child];
1935 
1936  std::vector<QpMap> qp_map;
1937 
1938  // Find all of the closest points from parent_qp to _THIS_ child's qp
1939  mapPoints(parent_ref_points, child_ref_points, qp_map);
1940 
1941  // Check those to see if they are closer than what we currently have for each point
1942  for (unsigned int parent_qp = 0; parent_qp < parent_ref_points.size(); ++parent_qp)
1943  {
1944  std::pair<unsigned int, QpMap> & child_and_map = coarsen_map[parent_qp];
1945  unsigned int & closest_child = child_and_map.first;
1946  QpMap & closest_map = child_and_map.second;
1947 
1948  QpMap & current_map = qp_map[parent_qp];
1949 
1950  if (current_map._distance < closest_map._distance)
1951  {
1952  closest_child = child;
1953  closest_map = current_map;
1954  }
1955  }
1956  }
1957 }

Referenced by MooseMesh::buildCoarseningMap(), and MooseMesh::buildRefinementMap().

◆ freeBndElems()

void MooseMesh::freeBndElems ( )
protectedinherited

Definition at line 341 of file MooseMesh.C.

342 {
343  // free memory
344  for (auto & belem : _bnd_elems)
345  delete belem;
346 
347  for (auto & it : _bnd_elem_ids)
348  it.second.clear();
349 
350  _bnd_elem_ids.clear();
351 }

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

◆ freeBndNodes()

void MooseMesh::freeBndNodes ( )
protectedinherited

Definition at line 323 of file MooseMesh.C.

324 {
325  // free memory
326  for (auto & bnode : _bnd_nodes)
327  delete bnode;
328 
329  for (auto & it : _node_set_nodes)
330  it.second.clear();
331 
332  _node_set_nodes.clear();
333 
334  for (auto & it : _bnd_node_ids)
335  it.second.clear();
336 
337  _bnd_node_ids.clear();
338 }

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

◆ getActiveLocalElementRange()

ConstElemRange * MooseMesh::getActiveLocalElementRange ( )
inherited

◆ getActiveNodeRange()

NodeRange * MooseMesh::getActiveNodeRange ( )
inherited

Definition at line 773 of file MooseMesh.C.

774 {
775  if (!_active_node_range)
776  {
777  TIME_SECTION(_get_active_node_range_timer);
778  CONSOLE_TIMED_PRINT("Caching active node range");
779 
780  _active_node_range = libmesh_make_unique<NodeRange>(
781  getMesh().active_nodes_begin(), getMesh().active_nodes_end(), GRAIN_SIZE);
782  }
783 
784  return _active_node_range.get();
785 }

Referenced by MooseMesh::meshChanged().

◆ getActiveSemiLocalNodeRange()

SemiLocalNodeRange * MooseMesh::getActiveSemiLocalNodeRange ( ) const
inherited

Definition at line 788 of file MooseMesh.C.

789 {
790  mooseAssert(_active_semilocal_node_range,
791  "_active_semilocal_node_range has not been created yet!");
792 
793  return _active_semilocal_node_range.get();
794 }

◆ getBoundariesToElems()

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

Returns a map of boundaries to elements.

Definition at line 842 of file MooseMesh.C.

843 {
844  return _bnd_elem_ids;
845 }

◆ getBoundaryElementRange()

ConstBndElemRange * MooseMesh::getBoundaryElementRange ( )
inherited

Definition at line 827 of file MooseMesh.C.

828 {
829  if (!_bnd_elem_range)
830  {
831  TIME_SECTION(_get_boundary_element_range_timer);
832  CONSOLE_TIMED_PRINT("Caching boundary element range");
833 
835  libmesh_make_unique<ConstBndElemRange>(bndElemsBegin(), bndElemsEnd(), GRAIN_SIZE);
836  }
837 
838  return _bnd_elem_range.get();
839 }

Referenced by AuxiliarySystem::computeElementalVarsHelper(), DMMooseGetEmbedding_Private(), GeometricSearchData::generateQuadratureNodes(), MultiAppNearestNodeTransfer::getLocalEntities(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), MooseMesh::meshChanged(), and GeometricSearchData::updateQuadratureNodes().

◆ getBoundaryID()

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

◆ getBoundaryIDs() [1/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 2177 of file MooseMesh.C.

2178 {
2179  return getMesh().get_boundary_info().get_boundary_ids();
2180 }

Referenced by MooseMesh::cacheInfo().

◆ getBoundaryIDs() [2/3]

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

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

If the conversion from a name to a number fails, that means that this must be a named boundary. We will look in the complete map for this sideset and create a new name/ID pair if requested.

Definition at line 1054 of file MooseMesh.C.

1056 {
1057  const BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1058  const std::map<BoundaryID, std::string> & sideset_map = boundary_info.get_sideset_name_map();
1059  const std::map<BoundaryID, std::string> & nodeset_map = boundary_info.get_nodeset_name_map();
1060 
1061  BoundaryID max_boundary_local_id = 0;
1062  /* It is required to generate a new ID for a given name. It is used often in mesh modifiers such
1063  * as SideSetsBetweenSubdomains. Then we need to check the current boundary ids since they are
1064  * changing during "mesh modify()", and figure out the right max boundary ID. Most of mesh
1065  * modifiers are running in serial, and we won't involve a global communication.
1066  */
1067  if (generate_unknown)
1068  {
1069  const std::set<BoundaryID> & local_bids = getMesh().get_boundary_info().get_boundary_ids();
1070  max_boundary_local_id = local_bids.empty() ? 0 : *(local_bids.rbegin());
1071  /* We should not hit this often */
1072  if (!getMesh().is_serial())
1073  _communicator.max(max_boundary_local_id);
1074  }
1075 
1076  BoundaryID max_boundary_id = _mesh_boundary_ids.empty() ? 0 : *(_mesh_boundary_ids.rbegin());
1077 
1078  max_boundary_id =
1079  max_boundary_id > max_boundary_local_id ? max_boundary_id : max_boundary_local_id;
1080 
1081  std::vector<BoundaryID> ids(boundary_name.size());
1082  for (unsigned int i = 0; i < boundary_name.size(); i++)
1083  {
1084  if (boundary_name[i] == "ANY_BOUNDARY_ID")
1085  {
1086  ids.assign(_mesh_boundary_ids.begin(), _mesh_boundary_ids.end());
1087  if (i)
1088  mooseWarning("You passed \"ANY_BOUNDARY_ID\" in addition to other boundary_names. This "
1089  "may be a logic error.");
1090  break;
1091  }
1092 
1093  BoundaryID id;
1094  std::istringstream ss(boundary_name[i]);
1095 
1096  if (!(ss >> id) || !ss.eof())
1097  {
1103  if (generate_unknown &&
1104  !MooseUtils::doesMapContainValue(sideset_map, std::string(boundary_name[i])) &&
1105  !MooseUtils::doesMapContainValue(nodeset_map, std::string(boundary_name[i])))
1106  id = ++max_boundary_id;
1107  else
1108  id = boundary_info.get_id_by_name(boundary_name[i]);
1109  }
1110 
1111  ids[i] = id;
1112  }
1113 
1114  return ids;
1115 }

◆ getBoundaryName()

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

Return the name of the boundary given the id.

Definition at line 1195 of file MooseMesh.C.

1196 {
1197  BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1198 
1199  std::vector<BoundaryID> side_boundaries;
1200  boundary_info.build_side_boundary_ids(side_boundaries);
1201 
1202  // We need to figure out if this boundary is a sideset or nodeset
1203  if (std::find(side_boundaries.begin(), side_boundaries.end(), boundary_id) !=
1204  side_boundaries.end())
1205  return boundary_info.get_sideset_name(boundary_id);
1206  else
1207  return boundary_info.get_nodeset_name(boundary_id);
1208 }

Referenced by MaterialPropertyDebugOutput::printMaterialMap().

◆ getBoundaryNodeRange()

ConstBndNodeRange * MooseMesh::getBoundaryNodeRange ( )
inherited

◆ getCheckedPointerParam()

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

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 91 of file MooseObject.h.

92  {
93  return parameters().getCheckedPointerParam<T>(name, error_string);
94  }

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

1781 {
1782  std::pair<int, ElemType> the_pair(input_side, elem.type());
1783 
1784  if (_elem_type_to_coarsening_map.find(the_pair) == _elem_type_to_coarsening_map.end())
1785  mooseError("Could not find a suitable qp refinement map!");
1786 
1787  return _elem_type_to_coarsening_map[the_pair];
1788 }

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

◆ getFileName()

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

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

Reimplemented from MooseMesh.

Definition at line 38 of file FileMesh.h.

38 { return _file_name; }

◆ getGhostedBoundaries()

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

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

Definition at line 2407 of file MooseMesh.C.

2408 {
2409  return _ghosted_boundaries;
2410 }

◆ getGhostedBoundaryInflation()

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

Return a writable reference to the _ghosted_boundaries_inflation vector.

Definition at line 2413 of file MooseMesh.C.

2414 {
2416 }

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

◆ getGhostingPatchSize()

unsigned int MooseMesh::getGhostingPatchSize ( ) const
inlineinherited

Getter for the ghosting_patch_size parameter.

Definition at line 484 of file MooseMesh.h.

484 { return _ghosting_patch_size; };

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

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

2577 {
2578  // Grab a bounding box to speed things up. Note that
2579  // local_bounding_box is *not* equivalent to processor_bounding_box
2580  // with processor_id() except in serial.
2581  BoundingBox bbox = MeshTools::create_local_bounding_box(getMesh());
2582 
2583  // Inflate the bbox just a bit to deal with roundoff
2584  // Adding 1% of the diagonal size in each direction on each end
2585  Real inflation_amount = inflation_multiplier * (bbox.max() - bbox.min()).norm();
2586  Point inflation(inflation_amount, inflation_amount, inflation_amount);
2587 
2588  bbox.first -= inflation; // min
2589  bbox.second += inflation; // max
2590 
2591  return bbox;
2592 }

Referenced by PointSamplerBase::execute().

◆ getLocalNodeRange()

ConstNodeRange * MooseMesh::getLocalNodeRange ( )
inherited

Definition at line 797 of file MooseMesh.C.

798 {
799  if (!_local_node_range)
800  {
801  TIME_SECTION(_get_local_node_range_timer);
802  CONSOLE_TIMED_PRINT("Caching local node range");
803 
804  _local_node_range = libmesh_make_unique<ConstNodeRange>(
805  getMesh().local_nodes_begin(), getMesh().local_nodes_end(), GRAIN_SIZE);
806  }
807 
808  return _local_node_range.get();
809 }

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

◆ getMaxInDimension()

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

Reimplemented in AnnularMesh, DistributedGeneratedMesh, and GeneratedMesh.

Definition at line 1524 of file MooseMesh.C.

1525 {
1526  mooseAssert(_mesh, "The MeshBase has not been constructed");
1527  mooseAssert(component < _bounds.size(), "Requested dimension out of bounds");
1528 
1529  return _bounds[component][MAX];
1530 }

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

◆ getMaxLeafSize()

unsigned int MooseMesh::getMaxLeafSize ( ) const
inlineinherited

Getter for the maximum leaf size parameter.

Definition at line 489 of file MooseMesh.h.

489 { return _max_leaf_size; };

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

◆ getMesh() [1/2]

MeshBase & MooseMesh::getMesh ( )
inherited

Accessor for the underlying libMesh Mesh object.

Definition at line 2599 of file MooseMesh.C.

2600 {
2601  mooseAssert(_mesh, "Mesh hasn't been created");
2602  return *_mesh;
2603 }

Referenced by MooseMesh::activeLocalElementsBegin(), MooseMesh::activeLocalElementsEnd(), Adaptivity::adaptMesh(), BreakMeshByBlock::addInterfaceBoundary(), MooseMesh::addQuadratureNode(), MooseMesh::addUniqueNode(), MultiAppConservativeTransfer::adjustTransferedSolution(), MultiAppConservativeTransfer::adjustTransferedSolutionNearestPoint(), Assembly::Assembly(), MooseMesh::buildActiveSideList(), MooseMesh::buildBndElemList(), TiledMesh::buildMesh(), buildMesh(), RinglebMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), AnnularMesh::buildMesh(), DistributedGeneratedMesh::buildMesh(), GeneratedMesh::buildMesh(), ConcentricCircleMesh::buildMesh(), StitchedMesh::buildMesh(), PatternedMesh::buildMesh(), ImageMesh::buildMesh2D(), ImageMesh::buildMesh3D(), MooseMesh::buildNodeList(), MooseMesh::buildNodeListFromSideList(), MooseMesh::buildPeriodicNodeMap(), MooseMesh::buildPeriodicNodeSets(), MooseMesh::buildRefinementAndCoarseningMaps(), MooseMesh::buildSideList(), MooseMesh::cacheChangedLists(), MooseMesh::cacheInfo(), MooseMesh::changeBoundaryId(), MeshExtruder::changeID(), FEProblemBase::checkCoordinateSystems(), FEProblemBase::checkProblemIntegrity(), NonlinearSystemBase::constraintJacobians(), NonlinearSystemBase::constraintResiduals(), MortarData::createMortarInterface(), MooseMesh::detectOrthogonalDimRanges(), MooseMesh::detectPairedSidesets(), MooseMesh::dimension(), DisplacedProblem::DisplacedProblem(), DumpObjectsProblem::dumpVariableHelper(), ElementalVariableValue::ElementalVariableValue(), MooseMesh::elemPtr(), NodalNormalsCorner::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), NodalNormalsPreprocessor::execute(), FEProblemBase::FEProblemBase(), CentroidMultiApp::fillPositions(), AddSideSetsBase::flood(), MooseMesh::getActiveLocalElementRange(), MooseMesh::getActiveNodeRange(), MooseMesh::getBoundaryID(), MooseMesh::getBoundaryIDs(), MooseMesh::getBoundaryName(), FEProblemBase::getEvaluableElementRange(), MooseMesh::getInflatedProcessorBoundingBox(), MultiAppNearestNodeTransfer::getLocalEntities(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), MooseMesh::getLocalNodeRange(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), MultiAppNearestNodeTransfer::getNearestNode(), MooseMesh::getNodeList(), MooseMesh::getPointLocator(), MooseMesh::getSubdomainID(), MooseMesh::getSubdomainIDs(), MooseMesh::getSubdomainName(), MooseMesh::ghostGhostedBoundaries(), UpdateDisplacedMeshThread::init(), MooseMesh::init(), VerifyNodalUniqueID::initialize(), VerifyElementUniqueID::initialize(), OversampleOutput::initOversample(), ElementSideNeighborLayers::internalInit(), MooseMesh::localNodesBegin(), MooseMesh::localNodesEnd(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), MooseMesh::maxElemId(), MooseMesh::maxNodeId(), GeometryBase::meshChanged(), GhostingUserObject::meshChanged(), Nemesis::meshChanged(), BreakMeshByBlock::modify(), BreakBoundaryOnSubdomain::modify(), SideSetsBetweenSubdomains::modify(), SideSetsFromNormals::modify(), SideSetsFromPoints::modify(), MeshExtruder::modify(), AddExtraNodeset::modify(), MeshSideSet::modify(), LowerDBlockFromSideset::modify(), SmoothMesh::modify(), AssignElementSubdomainID::modify(), AssignSubdomainID::modify(), AddAllSideSetsByNormals::modify(), ElementDeleterBase::modify(), SideSetsAroundSubdomain::modify(), ParsedAddSideset::modify(), RenameBlock::modify(), ParsedSubdomainMeshModifier::modify(), ImageSubdomain::modify(), OrientedSubdomainBoundingBox::modify(), BoundingBoxNodeSet::modify(), SubdomainBoundingBox::modify(), AddSideSetsFromBoundingBox::modify(), MooseMesh::MooseMesh(), MooseMesh::nElem(), MooseMesh::nNodes(), NodalPatchRecovery::NodalPatchRecovery(), NodalVariableValue::NodalVariableValue(), MooseMesh::nodePtr(), MooseMesh::nodeRef(), MooseMesh::nodeToActiveSemilocalElemMap(), MooseMesh::nodeToElemMap(), ComputeNodalUserObjectsThread::onNode(), ProxyRelationshipManager::operator()(), AugmentSparsityOnInterface::operator()(), XDA::output(), ConsoleUtils::outputMeshInformation(), MooseMesh::prepare(), EqualValueEmbeddedConstraint::prepareSlaveToMasterMap(), MooseMesh::printInfo(), MooseMesh::queryElemPtr(), MooseMesh::queryNodePtr(), read(), SubProblem::restrictionBoundaryCheckName(), SubProblem::restrictionSubdomainCheckName(), MooseMesh::setBoundaryName(), NonlinearSystemBase::setConstraintSlaveValues(), XFEMInterface::setDisplacedMesh(), XFEMInterface::setMesh(), Exodus::setOutputDimensionInExodusWriter(), MooseMesh::setPartitionerHelper(), MooseMesh::setSubdomainName(), ImageSampler::setupImageSampler(), SetupMeshAction::setupMesh(), MooseMesh::sideWithBoundaryID(), MultiAppFieldTransfer::transfer(), DisplacedProblem::undisplaceMesh(), MooseMesh::updateActiveSemiLocalNodeRange(), EqualValueBoundaryConstraint::updateConstrainedNodes(), Adaptivity::updateErrorVectors(), RandomData::updateGenerators(), and DisplacedProblem::updateMesh().

◆ getMesh() [2/2]

const MeshBase & MooseMesh::getMesh ( ) const
inherited

Definition at line 2606 of file MooseMesh.C.

2607 {
2608  mooseAssert(_mesh, "Mesh hasn't been created");
2609  return *_mesh;
2610 }

◆ getMinInDimension()

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

Returns the min or max of the requested dimension respectively.

Reimplemented in AnnularMesh, DistributedGeneratedMesh, and GeneratedMesh.

Definition at line 1515 of file MooseMesh.C.

1516 {
1517  mooseAssert(_mesh, "The MeshBase has not been constructed");
1518  mooseAssert(component < _bounds.size(), "Requested dimension out of bounds");
1519 
1520  return _bounds[component][MIN];
1521 }

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

◆ getMooseApp()

MooseApp& MooseObject::getMooseApp ( ) const
inlineinherited

Get the MooseApp this object is associated with.

Definition at line 105 of file MooseObject.h.

105 { return _app; }

Referenced by MortarData::createMortarInterface(), Executioner::Executioner(), and ConsoleUtils::outputMeshInformation().

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

880 {
881  std::map<dof_id_type, std::set<SubdomainID>>::const_iterator it =
882  _block_node_list.find(node.id());
883 
884  if (it == _block_node_list.end())
885  mooseError("Unable to find node: ", node.id(), " in any block list.");
886 
887  return it->second;
888 }

Referenced by BreakMeshByBlock::modify(), ComputeNodalUserObjectsThread::onNode(), ComputeNodalKernelsThread::onNode(), ComputeNodalKernelJacobiansThread::onNode(), ComputeInitialConditionThread::operator()(), and TopResidualDebugOutput::printTopResiduals().

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

2627 {
2628  std::map<boundary_id_type, std::vector<dof_id_type>>::const_iterator it =
2629  _node_set_nodes.find(nodeset_id);
2630 
2631  if (it == _node_set_nodes.end())
2632  {
2633  // On a distributed mesh we might not know about a remote nodeset,
2634  // so we'll return an empty vector and hope the nodeset exists
2635  // elsewhere.
2636  if (!getMesh().is_serial())
2637  {
2638  static const std::vector<dof_id_type> empty_vec;
2639  return empty_vec;
2640  }
2641  // On a replicated mesh we should know about every nodeset and if
2642  // we're asked for one that doesn't exist then it must be a bug.
2643  else
2644  {
2645  mooseError("Unable to nodeset ID: ", nodeset_id, '.');
2646  }
2647  }
2648 
2649  return it->second;
2650 }

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

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

2011 {
2012  mooseAssert(_boundary_to_normal_map.get() != nullptr, "Boundary To Normal Map not built!");
2013 
2014  // Note: Boundaries that are not in the map (existing boundaries) will default
2015  // construct a new RealVectorValue - (x,y,z)=(0, 0, 0)
2016  return (*_boundary_to_normal_map)[id];
2017 }

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

1597 {
1599  mooseError("Trying to retrieve automatic paired mapping for a mesh that is not regular and "
1600  "orthogonal");
1601 
1602  mooseAssert(component < dimension(), "Requested dimension out of bounds");
1603 
1604  if (_paired_boundary.empty())
1606 
1607  if (component < _paired_boundary.size())
1608  return &_paired_boundary[component];
1609  else
1610  return nullptr;
1611 }

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

◆ getParamTempl()

template<typename T >
const T & MooseObject::getParamTempl ( const std::string &  name) const
inherited

◆ getPatchSize()

unsigned int MooseMesh::getPatchSize ( ) const
inherited

Getter for the patch_size parameter.

Definition at line 2558 of file MooseMesh.C.

2559 {
2560  return _patch_size;
2561 }

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

◆ getPatchUpdateStrategy()

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

Get the current patch update strategy.

Definition at line 2570 of file MooseMesh.C.

2571 {
2572  return _patch_update_strategy;
2573 }

Referenced by FEProblemBase::possiblyRebuildGeomSearchPatches().

◆ getPointLocator()

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

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

Definition at line 2823 of file MooseMesh.C.

2824 {
2825  return getMesh().sub_point_locator();
2826 }

Referenced by MultiAppVariableValueSamplePostprocessorTransfer::execute(), PointValue::execute(), MultiAppVariableValueSampleTransfer::execute(), IntersectionPointsAlongLine::execute(), ElementsAlongLine::execute(), FindValueOnLine::initialize(), PointSamplerBase::initialize(), and EqualValueEmbeddedConstraint::prepareSlaveToMasterMap().

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

1012 {
1013  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes.find(elem->id()) !=
1015  "Elem has no quadrature nodes!");
1016  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes[elem->id()].find(side) !=
1018  "Side has no quadrature nodes!");
1019  mooseAssert(_elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].find(qp) !=
1020  _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side].end(),
1021  "qp not found on side!");
1022 
1023  return _elem_to_side_to_qp_to_quadrature_nodes[elem->id()][side][qp];
1024 }

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

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

1717 {
1718  if (child == -1) // Doing volume mapping or parent side mapping
1719  {
1720  mooseAssert(parent_side == child_side,
1721  "Parent side must match child_side if not passing a specific child!");
1722 
1723  std::pair<int, ElemType> the_pair(parent_side, elem.type());
1724 
1725  if (_elem_type_to_refinement_map.find(the_pair) == _elem_type_to_refinement_map.end())
1726  mooseError("Could not find a suitable qp refinement map!");
1727 
1728  return _elem_type_to_refinement_map[the_pair];
1729  }
1730  else // Need to map a child side to parent volume qps
1731  {
1732  std::pair<int, int> child_pair(child, child_side);
1733 
1734  if (_elem_type_to_child_side_refinement_map.find(elem.type()) ==
1736  _elem_type_to_child_side_refinement_map[elem.type()].find(child_pair) ==
1738  mooseError("Could not find a suitable qp refinement map!");
1739 
1740  return _elem_type_to_child_side_refinement_map[elem.type()][child_pair];
1741  }
1742 
1749 }

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

◆ getSubdomainBoundaryIds()

const std::set< BoundaryID > & MooseMesh::getSubdomainBoundaryIds ( 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 2653 of file MooseMesh.C.

2654 {
2655  std::map<SubdomainID, std::set<BoundaryID>>::const_iterator it =
2656  _subdomain_boundary_ids.find(subdomain_id);
2657 
2658  if (it == _subdomain_boundary_ids.end())
2659  mooseError("Unable to find subdomain ID: ", subdomain_id, '.');
2660 
2661  return it->second;
2662 }

Referenced by FEProblemBase::prepareMaterials().

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

1119 {
1120  if (subdomain_name == "ANY_BLOCK_ID")
1121  mooseError("Please use getSubdomainIDs() when passing \"ANY_BLOCK_ID\"");
1122 
1124  std::istringstream ss(subdomain_name);
1125 
1126  if (!(ss >> id) || !ss.eof())
1127  id = getMesh().get_id_by_name(subdomain_name);
1128 
1129  return id;
1130 }

Referenced by ConstraintWarehouse::addObject(), SystemBase::addVariable(), AugmentSparsityOnInterface::operator()(), and FEProblemBase::setCoordSystem().

◆ getSubdomainIDs()

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

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

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

Definition at line 1133 of file MooseMesh.C.

1134 {
1135  std::vector<SubdomainID> ids(subdomain_name.size());
1136 
1137  for (unsigned int i = 0; i < subdomain_name.size(); i++)
1138  {
1139  if (subdomain_name[i] == "ANY_BLOCK_ID")
1140  {
1141  ids.assign(_mesh_subdomains.begin(), _mesh_subdomains.end());
1142  if (i)
1143  mooseWarning("You passed \"ANY_BLOCK_ID\" in addition to other block names. This may be a "
1144  "logic error.");
1145  break;
1146  }
1147 
1149  std::istringstream ss(subdomain_name[i]);
1150 
1151  if (!(ss >> id) || !ss.eof())
1152  id = getMesh().get_id_by_name(subdomain_name[i]);
1153 
1154  ids[i] = id;
1155  }
1156 
1157  return ids;
1158 }

Referenced by BlockWeightedPartitioner::BlockWeightedPartitioner(), BlockRestrictable::hasBlocks(), BlockRestrictable::initializeBlockRestrictable(), LayeredBase::LayeredBase(), SideSetsBetweenSubdomains::modify(), SideSetsAroundSubdomain::modify(), RenameBlock::modify(), and LibmeshPartitioner::prepare_blocks_for_subdomain_partitioner().

◆ getSubdomainName()

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

Return the name of a block given an id.

Definition at line 1173 of file MooseMesh.C.

1174 {
1175  return getMesh().subdomain_name(subdomain_id);
1176 }

Referenced by BreakMeshByBlockBase::generateBoundaryName(), MaterialPropertyDebugOutput::printMaterialMap(), and TopResidualDebugOutput::printTopResiduals().

◆ ghostGhostedBoundaries()

void MooseMesh::ghostGhostedBoundaries ( )
inherited

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

Definition at line 2477 of file MooseMesh.C.

2478 {
2479  // No need to do this if using a serial mesh
2480  if (!_use_distributed_mesh)
2481  return;
2482 
2483  TIME_SECTION(_ghost_ghosted_boundaries_timer);
2484 
2485  DistributedMesh & mesh = dynamic_cast<DistributedMesh &>(getMesh());
2486 
2487  // We clear ghosted elements that were added by previous invocations of this
2488  // method but leave ghosted elements that were added by other code, e.g.
2489  // OversampleOutput, untouched
2490  mesh.clear_extra_ghost_elems(_ghost_elems_from_ghost_boundaries);
2492 
2493  std::set<const Elem *, CompareElemsByLevel> boundary_elems_to_ghost;
2494  std::set<Node *> connected_nodes_to_ghost;
2495 
2496  std::vector<const Elem *> family_tree;
2497 
2498  for (const auto & t : mesh.get_boundary_info().build_side_list())
2499  {
2500  auto elem_id = std::get<0>(t);
2501  auto bc_id = std::get<2>(t);
2502 
2503  if (_ghosted_boundaries.find(bc_id) != _ghosted_boundaries.end())
2504  {
2505  Elem * elem = mesh.elem_ptr(elem_id);
2506 
2507 #ifdef LIBMESH_ENABLE_AMR
2508  elem->family_tree(family_tree);
2509  Elem * parent = elem->parent();
2510  while (parent)
2511  {
2512  family_tree.push_back(parent);
2513  parent = parent->parent();
2514  }
2515 #else
2516  family_tree.clear();
2517  family_tree.push_back(elem);
2518 #endif
2519  for (const auto & felem : family_tree)
2520  {
2521  boundary_elems_to_ghost.insert(felem);
2522 
2523  // The entries of connected_nodes_to_ghost need to be
2524  // non-constant, so that they will work in things like
2525  // UpdateDisplacedMeshThread. The container returned by
2526  // family_tree contains const Elems even when the Elem
2527  // it is called on is non-const, so once that interface
2528  // gets fixed we can remove this const_cast.
2529  for (unsigned int n = 0; n < felem->n_nodes(); ++n)
2530  connected_nodes_to_ghost.insert(const_cast<Node *>(felem->node_ptr(n)));
2531  }
2532  }
2533  }
2534 
2535  // We really do want to store this by value instead of by reference
2536  const auto prior_ghost_elems = mesh.extra_ghost_elems();
2537 
2538  mesh.comm().allgather_packed_range(&mesh,
2539  connected_nodes_to_ghost.begin(),
2540  connected_nodes_to_ghost.end(),
2541  extra_ghost_elem_inserter<Node>(mesh));
2542  mesh.comm().allgather_packed_range(&mesh,
2543  boundary_elems_to_ghost.begin(),
2544  boundary_elems_to_ghost.end(),
2545  extra_ghost_elem_inserter<Elem>(mesh));
2546 
2547  const auto & current_ghost_elems = mesh.extra_ghost_elems();
2548 
2549  std::set_difference(current_ghost_elems.begin(),
2550  current_ghost_elems.end(),
2551  prior_ghost_elems.begin(),
2552  prior_ghost_elems.end(),
2553  std::inserter(_ghost_elems_from_ghost_boundaries,
2555 }

Referenced by FEProblemBase::ghostGhostedBoundaries(), and SetupMeshAction::setupMesh().

◆ hasMeshBase()

bool MooseMesh::hasMeshBase ( ) const
inlineinherited

Whether mesh base object was constructed or not.

Definition at line 887 of file MooseMesh.h.

887 { return _mesh.get() != nullptr; }

Referenced by MeshGeneratorMesh::buildMesh().

◆ hasSecondOrderElements()

bool MooseMesh::hasSecondOrderElements ( )
inherited

check if the mesh has SECOND order elements

Definition at line 2801 of file MooseMesh.C.

2802 {
2803  bool mesh_has_second_order_elements = false;
2804  for (auto it = activeLocalElementsBegin(), end = activeLocalElementsEnd(); it != end; ++it)
2805  if ((*it)->default_order() == SECOND)
2806  {
2807  mesh_has_second_order_elements = true;
2808  break;
2809  }
2810 
2811  // We checked our local elements, so take the max over all processors.
2812  comm().max(mesh_has_second_order_elements);
2813  return mesh_has_second_order_elements;
2814 }

Referenced by Assembly::Assembly().

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

2090 {
2097  if (!_mesh)
2099 
2101  mooseError("You cannot use the mesh splitter capability with DistributedMesh!");
2102 
2103  TIME_SECTION(_init_timer);
2104 
2106  {
2107  // Check of partitioner is supplied (not allowed if custom partitioner is used)
2108  if (!parameters().isParamSetByAddParam("partitioner"))
2109  mooseError("If partitioner block is provided, partitioner keyword cannot be used!");
2110  // Set custom partitioner
2111  if (!_custom_partitioner.get())
2112  mooseError("Custom partitioner requested but not set!");
2113  getMesh().partitioner().reset(_custom_partitioner.release());
2114  }
2115  else
2117 
2119  {
2120  // Some partitioners are not idempotent. Some recovery data
2121  // files require partitioning to match mesh partitioning. This
2122  // means that, when recovering, we can't safely repartition.
2123  const bool skip_partitioning_later = getMesh().skip_partitioning();
2124  getMesh().skip_partitioning(true);
2125  const bool allow_renumbering_later = getMesh().allow_renumbering();
2126  getMesh().allow_renumbering(false);
2127 
2128  // For now, only read the recovery mesh on the Ultimate Master..
2129  // sub-apps need to just build their mesh like normal
2130  {
2131  TIME_SECTION(_read_recovered_mesh_timer);
2132  CONSOLE_TIMED_PRINT("Rcovering mesh");
2133  getMesh().read(_app.getRestartRecoverFileBase() + "_mesh." +
2135  }
2136 
2137  getMesh().allow_renumbering(allow_renumbering_later);
2138  getMesh().skip_partitioning(skip_partitioning_later);
2139  }
2140  else // Normally just build the mesh
2141  {
2142  CONSOLE_TIMED_PRINT("Building mesh");
2143  buildMesh();
2144  }
2145 }

Referenced by GridPartitioner::_do_partition().

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

2692 {
2693  bool found_elem = false;
2694  for (const auto & it : _bnd_elem_ids)
2695  {
2696  if (it.second.find(elem_id) != it.second.end())
2697  {
2698  found_elem = true;
2699  break;
2700  }
2701  }
2702  return found_elem;
2703 }

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

2707 {
2708  bool found_elem = false;
2709  auto it = _bnd_elem_ids.find(bnd_id);
2710  if (it != _bnd_elem_ids.end())
2711  if (it->second.find(elem_id) != it->second.end())
2712  found_elem = true;
2713  return found_elem;
2714 }

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

2666 {
2667  bool found_node = false;
2668  for (const auto & it : _bnd_node_ids)
2669  {
2670  if (it.second.find(node_id) != it.second.end())
2671  {
2672  found_node = true;
2673  break;
2674  }
2675  }
2676  return found_node;
2677 }

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

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

2681 {
2682  bool found_node = false;
2683  std::map<boundary_id_type, std::set<dof_id_type>>::const_iterator it = _bnd_node_ids.find(bnd_id);
2684  if (it != _bnd_node_ids.end())
2685  if (it->second.find(node_id) != it->second.end())
2686  found_node = true;
2687  return found_node;
2688 }

◆ isCustomPartitionerRequested()

bool MooseMesh::isCustomPartitionerRequested ( ) const
inherited

Setter and getter for _custom_partitioner_requested.

Definition at line 2795 of file MooseMesh.C.

2796 {
2798 }

◆ isDistributedMesh()

bool MooseMesh::isDistributedMesh ( ) const
inlineinherited

◆ isParallelTypeForced()

bool MooseMesh::isParallelTypeForced ( ) const
inlineinherited

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

Definition at line 814 of file MooseMesh.h.

814 { return _parallel_type_overridden; }

Referenced by ConsoleUtils::outputMeshInformation().

◆ isParamValid()

bool MooseObject::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 100 of file MooseObject.h.

100 { return _pars.isParamValid(name); }

Referenced by AdvancedOutput::AdvancedOutput(), BicubicSplineFunction::BicubicSplineFunction(), GeneratedMesh::buildMesh(), DistributedGeneratedMesh::buildMesh(), CartesianMeshGenerator::CartesianMeshGenerator(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), ConstantVectorPostprocessor::ConstantVectorPostprocessor(), CSVReader::CSVReader(), DGKernelBase::DGKernelBase(), MultiAppNearestNodeTransfer::execute(), Executioner::Executioner(), Exodus::Exodus(), FEProblemBase::FEProblemBase(), FileOutput::FileOutput(), MultiApp::fillPositions(), FunctionDT::FunctionDT(), ExtraNodesetGenerator::generate(), RenameBoundaryGenerator::generate(), RenameBlockGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), ElementSubdomainIDGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), MeshSideSetGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), MeshExtruderGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), MultiAppNearestNodeTransfer::getLocalEntities(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), MeshGenerator::getMesh(), MultiAppNearestNodeTransfer::getNearestNode(), EigenExecutionerBase::init(), IterationAdaptiveDT::init(), AdvancedOutput::initExecutionTypes(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), SolutionScalarAux::initialSetup(), SolutionAux::initialSetup(), MooseParsedVectorFunction::initialSetup(), Console::initialSetup(), Receiver::initialSetup(), SolutionFunction::initialSetup(), MooseParsedGradFunction::initialSetup(), MooseParsedFunction::initialSetup(), AdvancedOutput::initialSetup(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), MatDiffusionBase< Real >::MatDiffusionBase(), MeshGeneratorMesh::MeshGeneratorMesh(), BreakBoundaryOnSubdomain::modify(), MeshExtruder::modify(), MeshSideSet::modify(), LowerDBlockFromSideset::modify(), AssignElementSubdomainID::modify(), ParsedSubdomainMeshModifier::modify(), RenameBlock::modify(), SubdomainBoundingBox::modify(), MooseMesh::MooseMesh(), EigenExecutionerBase::normalizeSolution(), Output::Output(), PetscOutput::PetscOutput(), PiecewiseBase::PiecewiseBase(), SolutionUserObject::readExodusII(), RenameBlock::RenameBlock(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), SolutionUserObject::SolutionUserObject(), and TimePeriod::TimePeriod().

◆ isPartitionerForced()

bool MooseMesh::isPartitionerForced ( ) const
inlineinherited

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

Definition at line 824 of file MooseMesh.h.

824 { return _partitioner_overridden; }

Referenced by ConsoleUtils::outputMeshInformation().

◆ isRegularOrthogonal()

bool MooseMesh::isRegularOrthogonal ( )
inlineinherited

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

Definition at line 854 of file MooseMesh.h.

854 { return _regular_orthogonal_mesh; }

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

618 {
619  return _semilocal_node_list.find(node) != _semilocal_node_list.end();
620 }

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

1555 {
1556  mooseAssert(component < dimension(), "Requested dimension out of bounds");
1557 
1558  if (_periodic_dim.find(nonlinear_var_num) != _periodic_dim.end())
1559  return _periodic_dim.at(nonlinear_var_num)[component];
1560  else
1561  return false;
1562 }

Referenced by MooseMesh::minPeriodicVector().

◆ localNodesBegin()

MeshBase::const_node_iterator MooseMesh::localNodesBegin ( )
inherited

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

Definition at line 2227 of file MooseMesh.C.

2228 {
2229  return getMesh().local_nodes_begin();
2230 }

Referenced by MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppNearestNodeTransfer::getNearestNode(), TopResidualDebugOutput::printTopResiduals(), and OversampleOutput::updateOversample().

◆ localNodesEnd()

MeshBase::const_node_iterator MooseMesh::localNodesEnd ( )
inherited

◆ mapPoints()

void MooseMesh::mapPoints ( const std::vector< Point > &  from,
const std::vector< Point > &  to,
std::vector< QpMap > &  qp_map 
)
privateinherited

Find the closest points that map "from" to "to" and fill up "qp_map".

Essentially, for each point in "from" find the closest point in "to".

Parameters
fromThe reference positions in the parent of the the points we're mapping from
toThe reference positions in the parent of the the points we're mapping to
qp_mapThis will be filled with QpMap objects holding the mappings.

Definition at line 1791 of file MooseMesh.C.

1794 {
1795  unsigned int n_from = from.size();
1796  unsigned int n_to = to.size();
1797 
1798  qp_map.resize(n_from);
1799 
1800  for (unsigned int i = 0; i < n_from; ++i)
1801  {
1802  const Point & from_point = from[i];
1803 
1804  QpMap & current_map = qp_map[i];
1805 
1806  for (unsigned int j = 0; j < n_to; ++j)
1807  {
1808  const Point & to_point = to[j];
1809  Real distance = (from_point - to_point).norm();
1810 
1811  if (distance < current_map._distance)
1812  {
1813  current_map._distance = distance;
1814  current_map._from = i;
1815  current_map._to = j;
1816  }
1817  }
1818  }
1819 }

Referenced by MooseMesh::findAdaptivityQpMaps().

◆ maxElemId()

dof_id_type MooseMesh::maxElemId ( ) const
virtualinherited

Definition at line 2269 of file MooseMesh.C.

2270 {
2271  return getMesh().max_elem_id();
2272 }

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

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

2264 {
2265  return getMesh().max_node_id();
2266 }

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

2345 {
2346  return _mesh_boundary_ids;
2347 }

Referenced by AddPeriodicBCAction::autoTranslationBoundaries(), BoundaryRestrictable::isBoundarySubset(), and AddAllSideSetsByNormals::modify().

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

508 {
509  TIME_SECTION(_mesh_changed_timer);
510 
511  update();
512 
513  // Delete all of the cached ranges
514  _active_local_elem_range.reset();
515  _active_node_range.reset();
517  _local_node_range.reset();
518  _bnd_node_range.reset();
519  _bnd_elem_range.reset();
520 
521  // Rebuild the ranges
527 
528  // Call the callback function onMeshChanged
529  onMeshChanged();
530 }

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

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

2357 {
2358  return _mesh_nodeset_ids;
2359 }

Referenced by BoundaryRestrictable::initializeBoundaryRestrictable().

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

2351 {
2352  return _mesh_sideset_ids;
2353 }

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

◆ meshSubdomains()

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

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

1591 {
1592  return minPeriodicVector(nonlinear_var_num, p, q).norm();
1593 }

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

1566 {
1567  for (unsigned int i = 0; i < dimension(); ++i)
1568  {
1569  // check to see if we're closer in real or periodic space in x, y, and z
1570  if (isTranslatedPeriodic(nonlinear_var_num, i))
1571  {
1572  // Need to test order before differencing
1573  if (p(i) > q(i))
1574  {
1575  if (p(i) - q(i) > _half_range(i))
1576  p(i) -= _half_range(i) * 2;
1577  }
1578  else
1579  {
1580  if (q(i) - p(i) > _half_range(i))
1581  p(i) += _half_range(i) * 2;
1582  }
1583  }
1584  }
1585 
1586  return q - p;
1587 }

Referenced by MooseMesh::minPeriodicDistance().

◆ mooseDeprecated()

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

Definition at line 156 of file MooseObject.h.

157  {
158  moose::internal::mooseDeprecatedStream(_console, false, std::forward<Args>(args)...);
159  }

Referenced by FEProblemBase::addArrayVariable(), FEProblemBase::addAuxArrayVariable(), FEProblemBase::addAuxScalarVariable(), FEProblemBase::addAuxVariable(), FEProblemBase::addScalarVariable(), FEProblemBase::addVariable(), ADFunctionPresetBC< compute_stage >::ADFunctionPresetBC(), ADPresetBC< compute_stage >::ADPresetBC(), ADPresetNodalBC< compute_stage >::ADPresetNodalBC(), FEProblemBase::advanceMultiApps(), MultiApp::appProblem(), MooseMesh::buildSideList(), ChangeOverTimestepPostprocessor::ChangeOverTimestepPostprocessor(), FEProblemBase::computeResidual(), MaterialBase::declarePropertyOlderTempl(), MaterialBase::declarePropertyOldTempl(), MooseMesh::elem(), MultiAppTransfer::execFlags(), UserForcingFunction::f(), FaceFaceConstraint< compute_stage >::FaceFaceConstraint(), FunctionDT::FunctionDT(), FunctionPresetBC::FunctionPresetBC(), RandomICBase::generateRandom(), Control::getExecuteOptions(), FEProblemBase::getNonlinearSystem(), Sampler::getSamples(), FEProblemBase::getUserObjects(), FEProblemBase::getVectorPostprocessorValue(), FEProblemBase::getVectorPostprocessorValueOld(), MatDiffusionBase< Real >::MatDiffusionBase(), NodalScalarKernel::NodalScalarKernel(), MooseMesh::node(), PercentChangePostprocessor::PercentChangePostprocessor(), PresetBC::PresetBC(), PresetNodalBC::PresetNodalBC(), Sampler::rand(), ReferenceResidualProblem::ReferenceResidualProblem(), MooseMesh::setBoundaryToNormalMap(), Exodus::setOutputDimension(), and UserForcingFunction::UserForcingFunction().

◆ mooseError()

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

Definition at line 141 of file MooseObject.h.

142  {
143  std::ostringstream oss;
144  moose::internal::mooseStreamAll(oss, std::forward<Args>(args)...);
145  std::string msg = oss.str();
146  callMooseErrorRaw(msg, &_app);
147  }

Referenced by GridPartitioner::_do_partition(), PetscExternalPartitioner::_do_partition(), FEProblemBase::addConstraint(), ADDGKernel< compute_stage >::ADDGKernel(), FEProblemBase::addInitialCondition(), FEProblem::addLineSearch(), FEProblemBase::addLineSearch(), FEProblemBase::addOutput(), DiracKernel::addPointWithValidId(), FEProblemBase::addPostprocessor(), MooseMesh::addQuadratureNode(), FEProblemBase::addVectorPostprocessor(), MultiAppConservativeTransfer::adjustTransferedSolution(), MultiAppConservativeTransfer::adjustTransferedSolutionNearestPoint(), ADKernelTempl< T, compute_stage >::ADKernelTempl(), ADPiecewiseLinearInterpolationMaterial< compute_stage >::ADPiecewiseLinearInterpolationMaterial(), Output::advancedExecuteOn(), MooseVariableBase::allDofIndices(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), ArrayConstantIC::ArrayConstantIC(), ArrayDGKernel::ArrayDGKernel(), ArrayDiffusion::ArrayDiffusion(), ArrayFunctionIC::ArrayFunctionIC(), ArrayReaction::ArrayReaction(), ArrayTimeDerivative::ArrayTimeDerivative(), Function::average(), Axisymmetric2D3DSolutionFunction::Axisymmetric2D3DSolutionFunction(), BicubicSplineFunction::BicubicSplineFunction(), BoundingValueElementDamper::BoundingValueElementDamper(), BoundingValueNodalDamper::BoundingValueNodalDamper(), BoundsAux::BoundsAux(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), BreakMeshByBlockGeneratorBase::BreakMeshByBlockGeneratorBase(), MooseMesh::buildCoarseningMap(), PiecewiseBase::buildFromFile(), PiecewiseBase::buildFromXY(), PiecewiseLinearBase::buildInterpolation(), TiledMesh::buildMesh(), buildMesh(), DistributedGeneratedMesh::buildMesh(), GeneratedMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), ImageMeshGenerator::buildMesh3D(), ImageMesh::buildMesh3D(), MooseMesh::buildMeshBaseObject(), MooseMesh::buildRefinementMap(), MooseMesh::buildSideList(), CartesianMeshGenerator::CartesianMeshGenerator(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), EigenExecutionerBase::chebyshev(), SubProblem::checkBlockMatProps(), SubProblem::checkBoundaryMatProps(), FEProblemBase::checkCoordinateSystems(), FEProblemBase::checkDependMaterialsHelper(), FEProblemBase::checkDisplacementOrders(), MaterialBase::checkExecutionStage(), BreakMeshByBlockBase::checkInputParameter(), Steady::checkIntegrity(), EigenExecutionerBase::checkIntegrity(), ExplicitTimeIntegrator::checkLinearConvergence(), FEProblemBase::checkProblemIntegrity(), MaterialBase::checkStatefulSanity(), FEProblemBase::checkUserObjects(), MultiAppTransfer::checkVariable(), LibmeshPartitioner::clone(), MooseMesh::clone(), ComparisonPostprocessor::comparisonIsTrue(), CompositeFunction::CompositeFunction(), ElementLpNormAux::compute(), ElementH1ErrorFunctionAux::compute(), NodalPatchRecovery::compute(), KernelBase::computeADOffDiagJacobian(), BlockWeightedPartitioner::computeElementWeight(), ArrayDGKernel::computeElemNeighJacobian(), ArrayDGKernel::computeElemNeighResidual(), TimeSequenceStepperBase::computeFailedDT(), IterationAdaptiveDT::computeFailedDT(), TimeStepper::computeFailedDT(), HistogramVectorPostprocessor::computeHistogram(), ArrayKernel::computeJacobian(), ArrayIntegratedBC::computeJacobian(), ArrayIntegratedBC::computeJacobianBlock(), ArrayDGKernel::computeOffDiagElemNeighJacobian(), ArrayKernel::computeOffDiagJacobian(), MaterialBase::computeProperties(), CoupledTiedValueConstraint::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), KernelValue::computeQpResidual(), ArrayKernel::computeResidual(), ArrayIntegratedBC::computeResidual(), FEProblemBase::computeResidualInternal(), FEProblemBase::computeResidualTag(), FEProblemBase::computeResidualType(), StatisticsVectorPostprocessor::computeStatValue(), MaterialBase::computeSubdomainProperties(), ActuallyExplicitEuler::computeTimeDerivatives(), ExplicitEuler::computeTimeDerivatives(), ImplicitEuler::computeTimeDerivatives(), BDF2::computeTimeDerivatives(), NewmarkBeta::computeTimeDerivatives(), CrankNicolson::computeTimeDerivatives(), LStableDirk2::computeTimeDerivatives(), LStableDirk3::computeTimeDerivatives(), ImplicitMidpoint::computeTimeDerivatives(), ExplicitTVDRK2::computeTimeDerivatives(), AStableDirk4::computeTimeDerivatives(), LStableDirk4::computeTimeDerivatives(), ExplicitRK2::computeTimeDerivatives(), PenetrationAux::computeValue(), ConcentricCircleMesh::ConcentricCircleMesh(), ConditionalEnableControl::ConditionalEnableControl(), TimeStepper::constrainStep(), CoupledForce::CoupledForce(), CoupledForceNodalKernel::CoupledForceNodalKernel(), SidesetInfoVectorPostprocessor::dataHelper(), DebugResidualAux::DebugResidualAux(), FunctorRelationshipManager::delete_remote_elements(), BicubicSplineFunction::derivative(), DerivativeSumMaterial::DerivativeSumMaterial(), DGKernel::DGKernel(), FunctorRelationshipManager::dofmap_reinit(), FEProblemBase::duplicateVariableCheck(), EigenProblem::EigenProblem(), Eigenvalues::Eigenvalues(), ElementalVariableValue::ElementalVariableValue(), ElementIntegerAux::ElementIntegerAux(), ElementQualityAux::ElementQualityAux(), MooseMesh::errorIfDistributedMesh(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), MultiAppPostprocessorTransfer::execute(), DiscreteElementUserObject::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), ElementQualityChecker::execute(), NodalValueSampler::execute(), GreaterThanLessThanPostprocessor::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), InterfaceQpValueUserObject::execute(), PointValue::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), FindValueOnLine::execute(), MultiAppNearestNodeTransfer::execute(), TimeExtremeValue::execute(), VectorPostprocessorComparison::execute(), LeastSquaresFit::execute(), LeastSquaresFitHistory::execute(), FEProblemBase::executeControls(), MultiAppVectorPostprocessorTransfer::executeFromMultiapp(), MultiAppVectorPostprocessorTransfer::executeToMultiapp(), Exodus::Exodus(), ExplicitSSPRungeKutta::ExplicitSSPRungeKutta(), FileOutput::FileOutput(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), VerifyElementUniqueID::finalize(), VerifyNodalUniqueID::finalize(), DiscreteElementUserObject::finalize(), ElementQualityChecker::finalize(), MemoryUsage::finalize(), PointSamplerBase::finalize(), NearestPointIntegralVariablePostprocessor::finalize(), Transfer::find_sys(), BreakMeshByBlockBase::findFreeBoundaryId(), BreakMeshByBlockGeneratorBase::findFreeBoundaryId(), FunctionDT::FunctionDT(), FunctionMaterialBase::FunctionMaterialBase(), ParsedMaterialHelper::functionParse(), FunctionScalarAux::FunctionScalarAux(), FunctionScalarIC::FunctionScalarIC(), GapValueAux::GapValueAux(), WorkBalance::gather(), ExtraNodesetGenerator::generate(), RenameBoundaryGenerator::generate(), RenameBlockGenerator::generate(), ElementSubdomainIDGenerator::generate(), GeneratedMeshGenerator::generate(), CombinerGenerator::generate(), SideSetsFromBoundingBoxGenerator::generate(), MeshExtruderGenerator::generate(), StackGenerator::generate(), SpiralAnnularMeshGenerator::generate(), PatternedMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), BoundingBoxNodeSetGenerator::generate(), GeneratedMesh::GeneratedMesh(), GeneratedMeshGenerator::GeneratedMeshGenerator(), RandomICBase::generateRandom(), GenericConstantMaterial::GenericConstantMaterial(), GenericFunctionMaterial::GenericFunctionMaterial(), DisplacedProblem::getArrayVariable(), FEProblemBase::getArrayVariable(), MooseMesh::getBoundaryID(), MultiApp::getBoundingBox(), MooseMesh::getCoarseningMap(), Control::getControllableParameterByName(), FEProblemBase::getCoordSystem(), PiecewiseConstant::getDirection(), FEProblemBase::getDistribution(), GhostingUserObject::getElementalValue(), ElementGenerator::getElemType(), MultiApp::getExecutioner(), FEProblemBase::getFunction(), SolutionUserObject::getLocalVarIndex(), SubProblem::getMatrixTagID(), AnnularMesh::getMaxInDimension(), DistributedGeneratedMesh::getMaxInDimension(), GeneratedMesh::getMaxInDimension(), FEProblemBase::getMaxQps(), FEProblemBase::getMaxShapeFunctions(), AnnularMesh::getMinInDimension(), DistributedGeneratedMesh::getMinInDimension(), GeneratedMesh::getMinInDimension(), MooseMesh::getNodeBlockIds(), MooseMesh::getNodeList(), FEProblemBase::getNonlinearSystem(), MooseMesh::getPairedBoundaryMapping(), ImageMesh::GetPixelInfo(), ImageMeshGenerator::GetPixelInfo(), InterfaceQpValueUserObject::getQpValue(), MaterialStdVectorAux::getRealValue(), MooseMesh::getRefinementMap(), FEProblemBase::getSampler(), DisplacedProblem::getScalarVariable(), FEProblemBase::getScalarVariable(), DisplacedProblem::getStandardVariable(), FEProblemBase::getStandardVariable(), MooseMesh::getSubdomainBoundaryIds(), MooseMesh::getSubdomainID(), DisplacedProblem::getSystem(), FEProblemBase::getSystem(), FEProblemBase::getUserObjectBase(), FEProblemBase::getUserObjectTempl(), NumRelationshipManagers::getValue(), PerformanceData::getValue(), Residual::getValue(), PerfGraphData::getValue(), LineValueSampler::getValue(), FindValueOnLine::getValueAtPoint(), SubProblem::getVariableHelper(), SubProblem::getVectorTagID(), DisplacedProblem::getVectorVariable(), FEProblemBase::getVectorVariable(), GhostingAux::GhostingAux(), MultiApp::globalAppToLocal(), MooseParsedVectorFunction::gradient(), AdvancedOutput::hasOutputHelper(), CrankNicolson::init(), CSVTimeSequenceStepper::init(), EigenExecutionerBase::init(), IterationAdaptiveDT::init(), Transient::init(), MooseMesh::init(), Sampler::init(), FEProblemBase::init(), NumPicardIterations::initialize(), PiecewiseLinearBase::initialSetup(), ReferenceResidualProblem::initialSetup(), MultiAppConservativeTransfer::initialSetup(), FullSolveMultiApp::initialSetup(), SolutionScalarAux::initialSetup(), SolutionAux::initialSetup(), Axisymmetric2D3DSolutionFunction::initialSetup(), Exodus::initialSetup(), SolutionFunction::initialSetup(), SolutionUserObject::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initShowHideLists(), MaterialBase::initStatefulProperties(), Function::integral(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), InterfaceTimeKernel::InterfaceTimeKernel(), AugmentSparsityOnInterface::internalInit(), EigenExecutionerBase::inversePowerIteration(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), LayeredSideIntegral::LayeredSideIntegral(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), LinearCombinationFunction::LinearCombinationFunction(), LinearCombinationPostprocessor::LinearCombinationPostprocessor(), LinearNodalConstraint::LinearNodalConstraint(), LineMaterialSamplerBase< Real >::LineMaterialSamplerBase(), LineSearch::lineSearch(), LineValueSampler::LineValueSampler(), LowerBoundNodalKernel::LowerBoundNodalKernel(), PNGOutput::makePNG(), MaterialRealTensorValueAux::MaterialRealTensorValueAux(), MaterialRealVectorValueAux::MaterialRealVectorValueAux(), MaterialStdVectorRealGradientAux::MaterialStdVectorRealGradientAux(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), FunctorRelationshipManager::mesh_reinit(), SubProblem::meshChanged(), MeshExtruder::MeshExtruder(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshSideSetGenerator::MeshSideSetGenerator(), SideSetsFromNormals::modify(), SideSetsFromPoints::modify(), AddExtraNodeset::modify(), BreakMeshByBlockBase::modify(), MeshExtruder::modify(), AssignElementSubdomainID::modify(), SmoothMesh::modify(), AddAllSideSetsByNormals::modify(), ElementDeleterBase::modify(), ParsedSubdomainMeshModifier::modify(), RenameBlock::modify(), ImageSubdomain::modify(), OrientedSubdomainBoundingBox::modify(), BoundingBoxNodeSet::modify(), AddSideSetsFromBoundingBox::modify(), SubdomainBoundingBox::modify(), MooseGhostPointNeighbors::MooseGhostPointNeighbors(), MooseMesh::MooseMesh(), MooseVariableBase::MooseVariableBase(), MortarConstraintBase::MortarConstraintBase(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), NearestNodeDistanceAux::NearestNodeDistanceAux(), NearestNodeValueAux::NearestNodeValueAux(), RenameBlockGenerator::newBlockID(), RenameBlock::newBlockID(), RenameBlockGenerator::newBlockName(), RenameBlock::newBlockName(), NewmarkBeta::NewmarkBeta(), NodalConstraint::NodalConstraint(), NodalScalarKernel::NodalScalarKernel(), NodalVariableValue::NodalVariableValue(), NumDOFs::NumDOFs(), NumNonlinearIterations::NumNonlinearIterations(), NumVars::NumVars(), FunctorRelationshipManager::operator()(), RelationshipManager::operator==(), XDA::output(), SolutionHistory::output(), Exodus::output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), Console::outputVectorPostprocessors(), AdvancedOutput::outputVectorPostprocessors(), MooseObject::paramError(), PiecewiseBilinear::parse(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), ExplicitTimeIntegrator::performExplicitSolve(), PetscExternalPartitioner::PetscExternalPartitioner(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), PiecewiseBase::PiecewiseBase(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseMulticonstant::PiecewiseMulticonstant(), PiecewiseMultiInterpolation::PiecewiseMultiInterpolation(), SolutionUserObject::pointValueGradientWrapper(), SolutionUserObject::pointValueWrapper(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), ImplicitMidpoint::postResidual(), ExplicitTVDRK2::postResidual(), AStableDirk4::postResidual(), LStableDirk4::postResidual(), ExplicitRK2::postResidual(), Eigenvalue::postSolve(), Predictor::Predictor(), Transient::preExecute(), SolutionUserObject::readExodusII(), SolutionUserObject::readXda(), DerivativeParsedMaterialHelper::recurseDerivative(), FunctorRelationshipManager::redistribute(), ReferenceResidualProblem::ReferenceResidualProblem(), EqualValueEmbeddedConstraint::reinitConstraint(), RelativeSolutionDifferenceNorm::RelativeSolutionDifferenceNorm(), RenameBlock::RenameBlock(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), RinglebMesh::RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), ScalarComponentIC::ScalarComponentIC(), BicubicSplineFunction::secondDerivative(), FEProblemBase::setCoordSystem(), PiecewiseBase::setData(), EigenProblem::setEigenproblemType(), FEProblemSolve::setInnerSolve(), Sampler::setNumberOfCols(), Sampler::setNumberOfRandomSeeds(), Sampler::setNumberOfRows(), Exodus::setOutputDimensionInExodusWriter(), Split::setup(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SideSetsFromNormals::SideSetsFromNormals(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPoints::SideSetsFromPoints(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SolutionTimeAdaptiveDT::SolutionTimeAdaptiveDT(), SolutionUserObject::SolutionUserObject(), PicardSolve::solve(), FullSolveMultiApp::solveStep(), SpatialAverageBase::SpatialAverageBase(), NearestPointIntegralVariablePostprocessor::spatialValue(), UserObject::spatialValue(), SpiralAnnularMesh::SpiralAnnularMesh(), SpiralAnnularMeshGenerator::SpiralAnnularMeshGenerator(), StitchedMesh::StitchedMesh(), NodalUserObject::subdomainSetup(), GeneralUserObject::subdomainSetup(), Constraint::subdomainSetup(), MaterialBase::subdomainSetup(), Console::systemInfoFlags(), TagMatrixAux::TagMatrixAux(), TagVectorAux::TagVectorAux(), Terminator::Terminator(), TestSetupPostprocessorDataActionFunction::TestSetupPostprocessorDataActionFunction(), ThreadedGeneralUserObject::ThreadedGeneralUserObject(), ThreadedGeneralUserObject::threadJoin(), DiscreteElementUserObject::threadJoin(), GeneralUserObject::threadJoin(), TiledMeshGenerator::TiledMeshGenerator(), Function::timeDerivative(), TimeExtremeValue::TimeExtremeValue(), TimePeriod::TimePeriod(), VectorPostprocessorVisualizationAux::timestepSetup(), MultiAppFieldTransfer::transfer(), MultiAppMeshFunctionTransfer::transferVariable(), MooseVariableScalar::uDot(), MooseVariableScalar::uDotDot(), MooseVariableScalar::uDotDotOld(), FEProblemBase::uDotDotOldRequested(), MooseVariableScalar::uDotOld(), FEProblemBase::uDotOldRequested(), EqualValueBoundaryConstraint::updateConstrainedNodes(), SolutionUserObject::updateExodusBracketingTimeIndices(), UpperBoundNodalKernel::UpperBoundNodalKernel(), NearestPointIntegralVariablePostprocessor::userObjectValue(), BoundingBoxIC::value(), Axisymmetric2D3DSolutionFunction::value(), ValueRangeMarker::ValueRangeMarker(), ValueThresholdMarker::ValueThresholdMarker(), MultiAppTransfer::variableIntegrityCheck(), VariableTimeIntegrationAux::VariableTimeIntegrationAux(), VectorNodalBC::VectorNodalBC(), VectorOfPostprocessors::VectorOfPostprocessors(), VectorPostprocessorFunction::VectorPostprocessorFunction(), MooseParsedGradFunction::vectorValue(), MooseParsedFunction::vectorValue(), VolumeHistogram::VolumeHistogram(), VTKOutput::VTKOutput(), DOFMapOutput::writeStreamToFile(), and Console::writeStreamToFile().

◆ mooseInfo()

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

◆ mooseWarning()

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

◆ name()

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

Get the name of the object.

Returns
The name of the object TODO:MooseVariableToMooseObject (see #10601)

Reimplemented in MooseVariableBase.

Definition at line 70 of file MooseObject.h.

70 { return _name; }

Referenced by GridPartitioner::_do_partition(), FEProblemBase::addADJacobianInterfaceMaterial(), FEProblemBase::addADJacobianMaterial(), FEProblemBase::addADKernel(), FEProblemBase::addADResidualInterfaceMaterial(), FEProblemBase::addADResidualMaterial(), Executioner::addAttributeReporter(), DumpObjectsProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarKernel(), DisplacedProblem::addAuxVariable(), DumpObjectsProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), DumpObjectsProblem::addDGKernel(), FEProblemBase::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), ADDGKernel< compute_stage >::ADDGKernel(), FEProblemBase::addIndicator(), DumpObjectsProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), DumpObjectsProblem::addKernel(), FEProblemBase::addKernel(), FEProblemBase::addMarker(), DumpObjectsProblem::addMaterial(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addNodalKernel(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), DisplacedProblem::addVariable(), FEProblemBase::addVectorPostprocessor(), ADKernelTempl< T, compute_stage >::ADKernelTempl(), Output::advancedExecuteOn(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), ArrayDGKernel::ArrayDGKernel(), DerivativeParsedMaterialHelper::assembleDerivatives(), AStableDirk4::AStableDirk4(), Function::average(), MultiApp::backup(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), FEProblemBase::checkDependMaterialsHelper(), Damper::checkMinDamping(), MaterialBase::checkStatefulSanity(), CoarsenedPiecewiseLinear::CoarsenedPiecewiseLinear(), CompositeFunction::CompositeFunction(), MaterialBase::computeProperties(), MaterialBase::computeSubdomainProperties(), FEProblemBase::computeUserObjectByName(), VectorPostprocessorVisualizationAux::computeValue(), MultiApp::createApp(), MeshGenerator::declareMeshProperty(), FEProblemBase::declareVectorPostprocessorVector(), DOFMapOutput::demangle(), DerivativeSumMaterial::DerivativeSumMaterial(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DumpObjectsProblem::dumpObjectHelper(), ElementValueSampler::ElementValueSampler(), MooseMesh::errorIfDistributedMesh(), AB2PredictorCorrector::estimateTimeError(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), MultiAppPostprocessorTransfer::execute(), StatisticsVectorPostprocessor::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppVectorPostprocessorTransfer::execute(), MultiAppCopyTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), PointValue::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppNearestNodeTransfer::execute(), HistogramVectorPostprocessor::execute(), MultiAppProjectionTransfer::execute(), Exodus::Exodus(), FancyExtruderGenerator::FancyExtruderGenerator(), MultiApp::fillPositions(), PointSamplerBase::finalize(), FunctionDT::FunctionDT(), FunctionPresetBC::FunctionPresetBC(), GeneralUserObject::GeneralUserObject(), LowerDBlockFromSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), StitchedMeshGenerator::generate(), Material::getADMaterialPropertyTempl(), MultiApp::getBoundingBox(), MooseObject::getCheckedPointerParam(), Control::getControllableParameterByName(), Control::getControllableValue(), Control::getControllableValueByName(), DistributionInterface::getDistribution(), FEProblemBase::getDistribution(), DistributionInterface::getDistributionByName(), MultiApp::getExecutioner(), OutputWarehouse::getFileNumbers(), FEProblemBase::getFunction(), FEProblemBase::getInterfaceMaterial(), SolutionUserObject::getLocalVarIndex(), Marker::getMarkerValue(), FEProblemBase::getMaterial(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), Material::getMaterialPropertyOlderTempl(), InterfaceMaterial::getMaterialPropertyOlderTempl(), NodalPatchRecovery::getMaterialPropertyOlderTempl(), AuxKernelTempl< ComputeValueType >::getMaterialPropertyOlderTempl(), Material::getMaterialPropertyOldTempl(), InterfaceMaterial::getMaterialPropertyOldTempl(), NodalPatchRecovery::getMaterialPropertyOldTempl(), AuxKernelTempl< ComputeValueType >::getMaterialPropertyOldTempl(), Material::getMaterialPropertyTempl(), InterfaceMaterial::getMaterialPropertyTempl(), NodalPatchRecovery::getMaterialPropertyTempl(), AuxKernelTempl< ComputeValueType >::getMaterialPropertyTempl(), MeshGenerator::getMesh(), InterfaceMaterial::getNeighborMaterialPropertyOld(), InterfaceMaterial::getNeighborMaterialPropertyOlder(), InterfaceMaterial::getNeighborMaterialPropertyTempl(), OutputWarehouse::getOutput(), MooseObject::getParamTempl(), GeneralUserObject::getPostprocessorValue(), FEProblemBase::getPostprocessorValue(), GeneralUserObject::getPostprocessorValueByName(), FEProblemBase::getPostprocessorValueOld(), FEProblemBase::getPostprocessorValueOlder(), FEProblemBase::getSampler(), FEProblemBase::getScatterVectorPostprocessorValue(), FEProblemBase::getScatterVectorPostprocessorValueOld(), Transient::getTimeStepperName(), InitialConditionBase::getUserObjectBase(), FEProblemBase::getUserObjectBase(), InitialConditionBase::getUserObjectByNameTempl(), InitialConditionBase::getUserObjectTempl(), FEProblemBase::getUserObjectTempl(), GeneralUserObject::getVectorPostprocessorValue(), FEProblemBase::getVectorPostprocessorValue(), GeneralUserObject::getVectorPostprocessorValueByName(), FEProblemBase::getVectorPostprocessorValueOld(), FEProblemBase::hasFunction(), AdvancedOutput::hasOutputHelper(), FEProblemBase::hasPostprocessor(), FEProblemBase::hasUserObject(), FEProblemBase::hasVectorPostprocessor(), FEProblemBase::init(), AdvancedOutput::initExecutionTypes(), AttribName::initFrom(), CSVReader::initialize(), StatisticsVectorPostprocessor::initialize(), HistogramVectorPostprocessor::initialize(), SolutionScalarAux::initialSetup(), MultiAppProjectionTransfer::initialSetup(), DerivativeFunctionMaterialBase::initialSetup(), MultiApp::initialSetup(), SolutionUserObject::initialSetup(), AdvancedOutput::initOutputList(), FEProblemBase::initPostprocessorData(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), MaterialBase::initStatefulProperties(), FEProblemBase::initVectorPostprocessorData(), Function::integral(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), Registry::isADObj(), MooseObject::isParamValid(), Registry::isRegisteredObj(), LinearCombinationFunction::LinearCombinationFunction(), Marker::Marker(), MatDiffusionBase< Real >::MatDiffusionBase(), MaterialDerivativeTestKernelBase< Real >::MaterialDerivativeTestKernelBase(), MaterialOutputAction::materialOutputHelper(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), MemoryUsageReporter::MemoryUsageReporter(), MeshSideSetGenerator::MeshSideSetGenerator(), ElementDeleterBase::modify(), MooseVariableInterface< Real >::MooseVariableInterface(), NodalValueSampler::NodalValueSampler(), NodalVariableValue::NodalVariableValue(), Registry::objData(), DOFMapOutput::output(), Output::Output(), AdvancedOutput::outputElementalVariables(), ConsoleUtils::outputExecutionInformation(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), ConsoleUtils::outputOutputInformation(), Nemesis::outputPostprocessors(), Exodus::outputPostprocessors(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputScalarVariables(), OversampleOutput::outputStep(), Output::outputStep(), AdvancedOutput::outputSystemInformation(), AdvancedOutput::outputVectorPostprocessors(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PointSamplerBase::PointSamplerBase(), MultiAppConservativeTransfer::postExecute(), PresetBC::PresetBC(), PresetNodalBC::PresetNodalBC(), Registry::registerObjectsTo(), FEProblemBase::registerRandomInterface(), MaterialBase::resetQpProperties(), MultiApp::restore(), ScalarComponentIC::ScalarComponentIC(), MooseMesh::setBoundaryName(), Control::setControllableValue(), Control::setControllableValueByName(), OutputWarehouse::setFileNumbers(), MooseMesh::setSubdomainName(), Split::setup(), TransientMultiApp::setupApp(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SideValueSampler::SideValueSampler(), TransientMultiApp::solveStep(), SpatialAverageBase::SpatialAverageBase(), UserObject::spatialValue(), StitchedMesh::StitchedMesh(), SubProblem::storeBoundaryDelayedCheckMatProp(), SubProblem::storeBoundaryMatPropName(), SubProblem::storeBoundaryZeroMatProp(), SubProblem::storeSubdomainDelayedCheckMatProp(), SubProblem::storeSubdomainMatPropName(), SubProblem::storeSubdomainZeroMatProp(), MaterialBase::subdomainSetup(), TaggingInterface::TaggingInterface(), ThreadedGeneralUserObject::ThreadedGeneralUserObject(), Function::timeDerivative(), VectorPostprocessorVisualizationAux::timestepSetup(), TransientMultiApp::TransientMultiApp(), MultiAppTransfer::variableIntegrityCheck(), and AdvancedOutput::wantOutput().

◆ 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 MeshModifiers (i.e. Element deletion).

Definition at line 2332 of file MooseMesh.C.

2333 {
2334  _needs_prepare_for_use = true;
2335 }

Referenced by LowerDBlockFromSideset::modify(), and ElementDeleterBase::modify().

◆ needsRemoteElemDeletion() [1/2]

bool MooseMesh::needsRemoteElemDeletion ( ) const
inlineinherited

Whether we need to delete remote elements.

Definition at line 882 of file MooseMesh.h.

882 { return _need_delete; }

◆ needsRemoteElemDeletion() [2/2]

void MooseMesh::needsRemoteElemDeletion ( bool  need_delete)
inlineinherited

Set whether we need to delete remote elements.

Definition at line 877 of file MooseMesh.h.

877 { _need_delete = need_delete; }

◆ nElem()

dof_id_type MooseMesh::nElem ( ) const
virtualinherited

Definition at line 2257 of file MooseMesh.C.

2258 {
2259  return getMesh().n_elem();
2260 }

◆ nNodes()

dof_id_type MooseMesh::nNodes ( ) const
virtualinherited

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

Definition at line 2251 of file MooseMesh.C.

2252 {
2253  return getMesh().n_nodes();
2254 }

◆ node() [1/2]

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

Definition at line 446 of file MooseMesh.C.

447 {
448  mooseDeprecated("MooseMesh::node() is deprecated, please use MooseMesh::nodeRef() instead");
449  return nodeRef(i);
450 }

◆ node() [2/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 439 of file MooseMesh.C.

440 {
441  mooseDeprecated("MooseMesh::node() is deprecated, please use MooseMesh::nodeRef() instead");
442  return nodeRef(i);
443 }

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

◆ nodePtr() [1/2]

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

Definition at line 480 of file MooseMesh.C.

481 {
482  if (i > getMesh().max_node_id())
483  return _quadrature_nodes[i];
484 
485  return getMesh().node_ptr(i);
486 }

◆ nodePtr() [2/2]

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

Definition at line 471 of file MooseMesh.C.

472 {
473  if (i > getMesh().max_node_id())
474  return (*_quadrature_nodes.find(i)).second;
475 
476  return getMesh().node_ptr(i);
477 }

Referenced by dataLoad().

◆ nodeRef() [1/2]

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

Definition at line 462 of file MooseMesh.C.

463 {
464  if (i > getMesh().max_node_id())
465  return *_quadrature_nodes[i];
466 
467  return getMesh().node_ref(i);
468 }

◆ nodeRef() [2/2]

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

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

733 {
734  if (!_node_to_active_semilocal_elem_map_built) // Guard the creation with a double checked lock
735  {
736  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
737 
739  CONSOLE_TIMED_PRINT("Building active semilocal element map");
740 
742  {
743  for (const auto & elem :
744  as_range(getMesh().semilocal_elements_begin(), getMesh().semilocal_elements_end()))
745  if (elem->active())
746  for (unsigned int n = 0; n < elem->n_nodes(); n++)
747  _node_to_active_semilocal_elem_map[elem->node_id(n)].push_back(elem->id());
748 
750  true; // MUST be set at the end for double-checked locking to work!
751  }
752  }
753 
755 }

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

710 {
711  if (!_node_to_elem_map_built) // Guard the creation with a double checked lock
712  {
713  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
714 
716  {
717  TIME_SECTION(_node_to_elem_map_timer);
718  CONSOLE_TIMED_PRINT("Building node to element map");
719 
720  for (const auto & elem : getMesh().active_element_ptr_range())
721  for (unsigned int n = 0; n < elem->n_nodes(); n++)
722  _node_to_elem_map[elem->node_id(n)].push_back(elem->id());
723 
724  _node_to_elem_map_built = true; // MUST be set at the end for double-checked locking to work!
725  }
726  }
727 
728  return _node_to_elem_map;
729 }

Referenced by MultiAppConservativeTransfer::adjustTransferedSolution(), NodalPatchRecovery::compute(), PenetrationLocator::detectPenetration(), DMMooseGetEmbedding_Private(), NonlinearSystemBase::findImplicitGeometricCouplingEntries(), NearestNodeLocator::findNodes(), LinearNodalConstraint::LinearNodalConstraint(), BreakMeshByBlock::modify(), EqualValueBoundaryConstraint::updateConstrainedNodes(), RandomData::updateGenerators(), and NearestNodeLocator::updatePatch().

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

534 {
535 }

Referenced by MooseMesh::meshChanged().

◆ operator const libMesh::MeshBase &()

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

Definition at line 2596 of file MooseMesh.C.

2596 { return getMesh(); }

◆ operator libMesh::MeshBase &()

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

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

Definition at line 2594 of file MooseMesh.C.

2594 { return getMesh(); }

◆ paramError()

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

216 {
217  Moose::show_trace = false;
218  mooseError(paramErrorMsg(param, std::forward<Args>(args)...));
219  Moose::show_trace = true;
220 }

Referenced by ADDGKernel< compute_stage >::ADDGKernel(), ADIntegratedBCTempl< T, compute_stage >::ADIntegratedBCTempl(), ADKernelTempl< T, compute_stage >::ADKernelTempl(), ADVectorFunctionDirichletBC< compute_stage >::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), ArrayDGKernel::ArrayDGKernel(), ArrayIntegratedBC::ArrayIntegratedBC(), ArrayKernel::ArrayKernel(), BlockWeightedPartitioner::BlockWeightedPartitioner(), checkComponent(), Coupleable::checkVar(), MultiAppTransfer::checkVariable(), CombinerGenerator::CombinerGenerator(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), ConstantVectorPostprocessor::ConstantVectorPostprocessor(), Coupleable::Coupleable(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), Eigenvalue::Eigenvalue(), ElementValueSampler::ElementValueSampler(), Executioner::Executioner(), FancyExtruderGenerator::FancyExtruderGenerator(), RenameBoundaryGenerator::generate(), MeshCollectionGenerator::generate(), StackGenerator::generate(), StitchedMeshGenerator::generate(), CombinerGenerator::generate(), Sampler::getGlobalSamples(), Sampler::getLocalSamples(), Sampler::getNextLocalRow(), MultiApp::init(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), IntegratedBC::IntegratedBC(), InversePowerMethod::InversePowerMethod(), Kernel::Kernel(), PNGOutput::makeMeshFunc(), MeshCollectionGenerator::MeshCollectionGenerator(), MultiAppConservativeTransfer::MultiAppConservativeTransfer(), MultiAppInterpolationTransfer::MultiAppInterpolationTransfer(), MultiAppMeshFunctionTransfer::MultiAppMeshFunctionTransfer(), MultiAppNearestNodeTransfer::MultiAppNearestNodeTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorToAuxScalarTransfer::MultiAppPostprocessorToAuxScalarTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppProjectionTransfer::MultiAppProjectionTransfer(), MultiAppScalarToAuxScalarTransfer::MultiAppScalarToAuxScalarTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), MultiAppVectorPostprocessorTransfer::MultiAppVectorPostprocessorTransfer(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalValueSampler::NodalValueSampler(), PatchMeshGenerator::PatchMeshGenerator(), PatternedMeshGenerator::PatternedMeshGenerator(), PiecewiseFunctionTabulate::PiecewiseFunctionTabulate(), PlaneDeletionGenerator::PlaneDeletionGenerator(), RandomIC::RandomIC(), MooseMesh::setPartitioner(), MultiAppFieldTransfer::transfer(), Transfer::Transfer(), TransientMultiApp::TransientMultiApp(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), and VectorFunctionIC::VectorFunctionIC().

◆ paramErrorMsg()

template<typename... Args>
std::string MooseObject::paramErrorMsg ( const std::string &  param,
Args...  args 
) const
inlineprivateinherited

Definition at line 185 of file MooseObject.h.

186  {
187  auto prefix = paramErrorPrefix(_pars, param);
188  std::ostringstream oss;
189  moose::internal::mooseStreamAll(oss, std::forward<Args>(args)...);
190  std::string msg = oss.str();
191 
192  // Wrap error message to a separate line from prefix if it is about to
193  // blow past 100 chars. But only wrap if the prefix is long enough (12
194  // chars) for the wrap to buy us much extra length.
195  if ((prefix.size() > 12 && msg.size() + prefix.size() > 99) ||
196  msg.find("\n") != std::string::npos)
197  {
198  if (prefix.size() > 0 && prefix[prefix.size() - 1] != ':')
199  prefix += ":";
200  return prefix + "\n " + MooseUtils::replaceAll(msg, "\n", "\n ");
201  }
202  return prefix + " " + msg;
203  }

Referenced by MooseObject::paramError(), MooseObject::paramInfo(), and MooseObject::paramWarning().

◆ parameters()

const InputParameters& MooseObject::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 76 of file MooseObject.h.

76 { return _pars; }

Referenced by FEProblemBase::addADJacobianInterfaceMaterial(), FEProblemBase::addADJacobianMaterial(), FEProblemBase::addADKernel(), FEProblemBase::addADResidualInterfaceMaterial(), FEProblemBase::addADResidualMaterial(), DumpObjectsProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarKernel(), DisplacedProblem::addAuxVariable(), DumpObjectsProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), DumpObjectsProblem::addDGKernel(), FEProblemBase::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), FEProblemBase::addIndicator(), DumpObjectsProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), DumpObjectsProblem::addKernel(), FEProblemBase::addKernel(), FEProblem::addLineSearch(), FEProblemBase::addMarker(), DumpObjectsProblem::addMaterial(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addNodalKernel(), FEProblemBase::addOutput(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), DisplacedProblem::addVariable(), FEProblemBase::addVectorPostprocessor(), ADPiecewiseLinearInterpolationMaterial< compute_stage >::ADPiecewiseLinearInterpolationMaterial(), AdvancedOutput::AdvancedOutput(), ADVectorFunctionDirichletBC< compute_stage >::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), assemble_l2(), Moose::assemble_matrix(), AuxKernelTempl< ComputeValueType >::AuxKernelTempl(), AuxScalarKernel::AuxScalarKernel(), BoundsAux::BoundsAux(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), Moose::compute_bounds(), Moose::compute_jacobian(), Moose::compute_nearnullspace(), Moose::compute_nullspace(), Moose::compute_postcheck(), Moose::compute_transpose_nullspace(), Console::Console(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), Exodus::Exodus(), FEProblem::FEProblem(), GapValueAux::GapValueAux(), MooseObject::getCheckedPointerParam(), GhostingUserObject::GhostingUserObject(), MooseMesh::init(), BlockRestrictable::initializeBlockRestrictable(), FEProblemBase::initNullSpaceVectors(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), isValid(), LayeredSideIntegral::LayeredSideIntegral(), MooseVariableInterface< Real >::MooseVariableInterface(), NodeFaceConstraint::NodeFaceConstraint(), PatchMeshGenerator::PatchMeshGenerator(), PenetrationAux::PenetrationAux(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), MultiAppProjectionTransfer::projectSolution(), RandomIC::RandomIC(), InputParameterWarehouse::removeInputParameters(), EigenProblem::scaleEigenvector(), FEProblem::setInputParametersFEProblem(), FEProblemBase::setInputParametersFEProblem(), DumpObjectsProblem::stringifyParameters(), Transient::Transient(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), and VectorFunctionIC::VectorFunctionIC().

◆ paramInfo()

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

232 {
233  mooseInfo(paramErrorMsg(param, std::forward<Args>(args)...));
234 }

Referenced by TransientMultiApp::TransientMultiApp().

◆ paramWarning()

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

225 {
226  mooseWarning(paramErrorMsg(param, std::forward<Args>(args)...));
227 }

Referenced by Executioner::Executioner().

◆ partitionerName()

const MooseEnum& MooseMesh::partitionerName ( ) const
inlineinherited

Definition at line 819 of file MooseMesh.h.

819 { return _partitioner_name; }

Referenced by ConsoleUtils::outputMeshInformation().

◆ prepare()

void MooseMesh::prepare ( bool  force = false)
inherited

Calls prepare_for_use() if force=true on the underlying Mesh object, then communicates various boundary information on parallel meshes.

Also calls update() internally.

Definition at line 354 of file MooseMesh.C.

355 {
356  TIME_SECTION(_prepare_timer);
357 
358  mooseAssert(_mesh, "The MeshBase has not been constructed");
359 
360  if (dynamic_cast<DistributedMesh *>(&getMesh()) && !_is_nemesis)
361  {
362  // Call prepare_for_use() and don't mess with the renumbering
363  // setting
364  if (force || _needs_prepare_for_use)
365  {
366  CONSOLE_TIMED_PRINT("Preparing for use");
367 
368  getMesh().prepare_for_use();
369  }
370  }
371  else
372  {
373  CONSOLE_TIMED_PRINT("Preparing for use");
374 
375  // Call prepare_for_use() and DO NOT allow renumbering
376  getMesh().allow_renumbering(false);
377  if (force || _needs_prepare_for_use)
378  getMesh().prepare_for_use();
379  }
380 
381  // Collect (local) subdomain IDs
382  _mesh_subdomains.clear();
383  for (const auto & elem : getMesh().element_ptr_range())
384  _mesh_subdomains.insert(elem->subdomain_id());
385 
386  // Make sure nodesets have been generated
388 
389  // Collect (local) boundary IDs
390  const std::set<BoundaryID> & local_bids = getMesh().get_boundary_info().get_boundary_ids();
391  _mesh_boundary_ids.insert(local_bids.begin(), local_bids.end());
392 
393  const std::set<BoundaryID> & local_node_bids =
394  getMesh().get_boundary_info().get_node_boundary_ids();
395  _mesh_nodeset_ids.insert(local_node_bids.begin(), local_node_bids.end());
396 
397  const std::set<BoundaryID> & local_side_bids =
398  getMesh().get_boundary_info().get_side_boundary_ids();
399  _mesh_sideset_ids.insert(local_side_bids.begin(), local_side_bids.end());
400 
401  // Communicate subdomain and boundary IDs if this is a parallel mesh
402  if (!getMesh().is_serial())
403  {
404  _communicator.set_union(_mesh_subdomains);
405  _communicator.set_union(_mesh_boundary_ids);
406  _communicator.set_union(_mesh_nodeset_ids);
407  _communicator.set_union(_mesh_sideset_ids);
408  }
409 
411 
412  update();
413 
414  // Prepared has been called
415  _is_prepared = true;
416  _needs_prepare_for_use = false;
417 }

Referenced by SetupMeshCompleteAction::completeSetup(), and MeshModifier::modifyMeshHelper().

◆ prepared() [1/2]

bool MooseMesh::prepared ( ) const
inherited

◆ 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, DistributedGeneratedMesh, and GeneratedMesh.

Definition at line 2319 of file MooseMesh.C.

2320 {
2321  _is_prepared = state;
2322 
2327  if (!state)
2328  _regular_orthogonal_mesh = false;
2329 }

◆ printInfo()

void MooseMesh::printInfo ( std::ostream &  os = libMesh::out) const
inherited

Calls print_info() on the underlying Mesh.

Definition at line 2620 of file MooseMesh.C.

2621 {
2622  getMesh().print_info(os);
2623 }

Referenced by Adaptivity::adaptMesh().

◆ queryElemPtr() [1/2]

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

Definition at line 2301 of file MooseMesh.C.

2302 {
2303  return getMesh().query_elem_ptr(i);
2304 }

Referenced by EqualValueBoundaryConstraint::updateConstrainedNodes().

◆ queryElemPtr() [2/2]

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

Definition at line 2307 of file MooseMesh.C.

2308 {
2309  return getMesh().query_elem_ptr(i);
2310 }

◆ queryNodePtr() [1/2]

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

Definition at line 498 of file MooseMesh.C.

499 {
500  if (i > getMesh().max_node_id())
501  return _quadrature_nodes[i];
502 
503  return getMesh().query_node_ptr(i);
504 }

◆ queryNodePtr() [2/2]

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

Definition at line 489 of file MooseMesh.C.

490 {
491  if (i > getMesh().max_node_id())
492  return (*_quadrature_nodes.find(i)).second;
493 
494  return getMesh().query_node_ptr(i);
495 }

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

◆ read()

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

Definition at line 130 of file FileMesh.C.

131 {
132  if (dynamic_cast<DistributedMesh *>(&getMesh()) && !_is_nemesis)
133  getMesh().read(file_name, /*mesh_data=*/NULL, /*skip_renumber=*/false);
134  else
135  getMesh().read(file_name, /*mesh_data=*/NULL, /*skip_renumber=*/true);
136 }

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

557 {
558  return _refined_elements.get();
559 }

Referenced by FEProblemBase::meshChangedHelper().

◆ registerRestartableDataOnApp()

RestartableDataValue & Restartable::registerRestartableDataOnApp ( const std::string &  name,
std::unique_ptr< RestartableDataValue data,
THREAD_ID  tid 
)
privateinherited

Helper function for actually registering the restartable data.

Definition at line 48 of file Restartable.C.

51 {
52  return _restartable_app.registerRestartableData(name, std::move(data), tid, false, false);
53 }

Referenced by Restartable::declareRestartableDataWithContext().

◆ registerRestartableNameWithFilterOnApp()

void Restartable::registerRestartableNameWithFilterOnApp ( const std::string &  name,
Moose::RESTARTABLE_FILTER  filter 
)
privateinherited

Helper function for actually registering the restartable data.

Definition at line 56 of file Restartable.C.

58 {
60 }

Referenced by Restartable::declareRecoverableData().

◆ registerTimedSection()

PerfID PerfGraphInterface::registerTimedSection ( const std::string &  section_name,
const unsigned int  level 
)
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 51 of file PerfGraphInterface.C.

52 {
53  if (_prefix != "")
54  return _perf_graph.registerSection(_prefix + "::" + section_name, level);
55  else
56  return _perf_graph.registerSection(section_name, level);
57 }

◆ safeClone()

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

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

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

Implements MooseMesh.

Definition at line 52 of file FileMesh.C.

53 {
54  return libmesh_make_unique<FileMesh>(*this);
55 }

◆ setBoundaryName()

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

This method returns a writable reference to a boundary name based on the id parameter.

Definition at line 1179 of file MooseMesh.C.

1180 {
1181  BoundaryInfo & boundary_info = getMesh().get_boundary_info();
1182 
1183  std::vector<BoundaryID> side_boundaries;
1184  boundary_info.build_side_boundary_ids(side_boundaries);
1185 
1186  // We need to figure out if this boundary is a sideset or nodeset
1187  if (std::find(side_boundaries.begin(), side_boundaries.end(), boundary_id) !=
1188  side_boundaries.end())
1189  boundary_info.sideset_name(boundary_id) = name;
1190  else
1191  boundary_info.nodeset_name(boundary_id) = name;
1192 }

Referenced by SetupMeshAction::setupMesh().

◆ setBoundaryToNormalMap() [1/2]

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

Definition at line 2375 of file MooseMesh.C.

2376 {
2377  mooseDeprecated("setBoundaryToNormalMap(std::map<BoundaryID, RealVectorValue> * boundary_map) is "
2378  "deprecated, use the unique_ptr version instead");
2379  _boundary_to_normal_map.reset(boundary_map);
2380 }

◆ setBoundaryToNormalMap() [2/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 2368 of file MooseMesh.C.

2370 {
2371  _boundary_to_normal_map = std::move(boundary_map);
2372 }

Referenced by AddAllSideSetsByNormals::modify().

◆ setCustomPartitioner()

void MooseMesh::setCustomPartitioner ( Partitioner *  partitioner)
inherited

Setter for custom partitioner.

Definition at line 2789 of file MooseMesh.C.

2790 {
2791  _custom_partitioner = partitioner->clone();
2792 }

◆ setFileName()

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

Definition at line 37 of file FileMesh.h.

37 { _file_name = file_name; }

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

2402 {
2403  _ghosted_boundaries_inflation = inflation;
2404 }

Referenced by SetupMeshAction::setupMesh().

◆ setIsCustomPartitionerRequested()

void MooseMesh::setIsCustomPartitionerRequested ( bool  cpr)
inherited

Definition at line 2817 of file MooseMesh.C.

2818 {
2820 }

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

2084 {
2085  _mesh = std::move(mesh_base);
2086 }

◆ setMeshBoundaryIDs()

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

Sets the set of BoundaryIDs Is called by AddAllSideSetsByNormals.

Definition at line 2362 of file MooseMesh.C.

2363 {
2364  _mesh_boundary_ids = boundary_IDs;
2365 }

Referenced by AddAllSideSetsByNormals::modify().

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

2739 {
2740  // Set the partitioner based on partitioner name
2741  switch (partitioner)
2742  {
2743  case -3: // default
2744  // We'll use the default partitioner, but notify the user of which one is being used...
2745  if (use_distributed_mesh)
2746  partitioner = "parmetis";
2747  else
2748  partitioner = "metis";
2749  break;
2750 
2751  // No need to explicitily create the metis or parmetis partitioners,
2752  // They are the default for serial and parallel mesh respectively
2753  case -2: // metis
2754  case -1: // parmetis
2755  break;
2756 
2757  case 0: // linear
2758  mesh_base.partitioner().reset(new LinearPartitioner);
2759  break;
2760  case 1: // centroid
2761  {
2762  if (!params.isParamValid("centroid_partitioner_direction"))
2763  context_obj.paramError(
2764  "centroid_partitioner_direction",
2765  "If using the centroid partitioner you _must_ specify centroid_partitioner_direction!");
2766 
2767  MooseEnum direction = params.get<MooseEnum>("centroid_partitioner_direction");
2768 
2769  if (direction == "x")
2770  mesh_base.partitioner().reset(new CentroidPartitioner(CentroidPartitioner::X));
2771  else if (direction == "y")
2772  mesh_base.partitioner().reset(new CentroidPartitioner(CentroidPartitioner::Y));
2773  else if (direction == "z")
2774  mesh_base.partitioner().reset(new CentroidPartitioner(CentroidPartitioner::Z));
2775  else if (direction == "radial")
2776  mesh_base.partitioner().reset(new CentroidPartitioner(CentroidPartitioner::RADIAL));
2777  break;
2778  }
2779  case 2: // hilbert_sfc
2780  mesh_base.partitioner().reset(new HilbertSFCPartitioner);
2781  break;
2782  case 3: // morton_sfc
2783  mesh_base.partitioner().reset(new MortonSFCPartitioner);
2784  break;
2785  }
2786 }

Referenced by MooseMesh::setPartitionerHelper().

◆ setPartitionerHelper()

void MooseMesh::setPartitionerHelper ( )
protectedinherited

Definition at line 2728 of file MooseMesh.C.

2729 {
2731 }

Referenced by MooseMesh::init().

◆ setPatchUpdateStrategy()

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

Set the patch size update strategy.

Definition at line 2564 of file MooseMesh.C.

2565 {
2566  _patch_update_strategy = patch_update_strategy;
2567 }

◆ setSubdomainName() [1/2]

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

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

Definition at line 1167 of file MooseMesh.C.

1168 {
1169  mesh.subdomain_name(subdomain_id) = name;
1170 }

◆ setSubdomainName() [2/2]

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

This method sets the name for subdomain_id to name.

Definition at line 1161 of file MooseMesh.C.

1162 {
1163  getMesh().subdomain_name(subdomain_id) = name;
1164 }

Referenced by MooseMesh::MooseMesh(), and SetupMeshAction::setupMesh().

◆ setUniformRefineLevel()

void MooseMesh::setUniformRefineLevel ( unsigned int  level)
inherited

Set uniform refinement level.

Definition at line 2389 of file MooseMesh.C.

2390 {
2391  _uniform_refine_level = level;
2392 }

Referenced by SetupMeshAction::setupMesh().

◆ sideWithBoundaryID()

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

Calls BoundaryInfo::side_with_boundary_id().

Definition at line 2221 of file MooseMesh.C.

2222 {
2223  return getMesh().get_boundary_info().side_with_boundary_id(elem, boundary_id);
2224 }

◆ type()

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

Get the type of this object.

Returns
the name of the type of this object

Definition at line 63 of file MooseObject.h.

63 { return _type; }

Referenced by FEProblemBase::addArrayVariable(), FEProblemBase::addAuxArrayVariable(), DumpObjectsProblem::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarVariable(), FEProblemBase::addAuxVariable(), DumpObjectsProblem::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), DumpObjectsProblem::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), DumpObjectsProblem::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), DumpObjectsProblem::addKernel(), DumpObjectsProblem::addMaterial(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarVariable(), PhysicsBasedPreconditioner::addSystem(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addVariable(), FEProblemBase::advanceMultiApps(), FEProblemBase::backupMultiApps(), MooseMesh::buildRefinementAndCoarseningMaps(), FEProblemBase::computeAuxiliaryKernels(), DGKernel::computeElemNeighJacobian(), ArrayDGKernel::computeElemNeighJacobian(), ElemElemConstraint::computeElemNeighJacobian(), DGKernel::computeElemNeighResidual(), ElemElemConstraint::computeElemNeighResidual(), ArrayDGKernel::computeElemNeighResidual(), FEProblemBase::computeMultiAppsDT(), DGKernel::computeOffDiagElemNeighJacobian(), ArrayDGKernel::computeOffDiagElemNeighJacobian(), DGConvection::computeQpJacobian(), ArrayDGDiffusion::computeQpJacobian(), InterfaceReaction::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), DGDiffusion::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), ArrayDGKernel::computeQpOffDiagJacobian(), DGConvection::computeQpResidual(), ArrayDGDiffusion::computeQpResidual(), InterfaceReaction::computeQpResidual(), TiedValueConstraint::computeQpResidual(), CoupledTiedValueConstraint::computeQpResidual(), LinearNodalConstraint::computeQpResidual(), DGDiffusion::computeQpResidual(), EqualValueBoundaryConstraint::computeQpResidual(), EqualValueEmbeddedConstraint::computeQpResidual(), FEProblemBase::computeUserObjectByName(), FEProblemBase::computeUserObjects(), FEProblemBase::computeUserObjectsInternal(), DisplacedProblem::createQRules(), FEProblemBase::createQRules(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), FEProblemBase::duplicateVariableCheck(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), FEProblemBase::execTransfers(), FEProblemBase::finishMultiAppStep(), ElementSubdomainIDGenerator::generate(), ElementGenerator::getElemType(), FEProblemBase::getInterfaceMaterial(), FEProblemBase::getMaterial(), FEProblemBase::getMaterialData(), FEProblemBase::getTransfers(), FEProblemBase::hasMultiApps(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), AdvancedOutput::initAvailableLists(), AdvancedOutput::initShowHideLists(), RelationshipManager::isType(), AssignElementSubdomainID::modify(), ControlOutput::output(), Gnuplot::output(), CSV::output(), Exodus::output(), Console::output(), Nemesis::output(), AdvancedOutput::output(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), FEProblemBase::restoreMultiApps(), FEProblemBase::setCoupling(), PerfGraphOutput::shouldOutput(), FileOutput::shouldOutput(), Output::shouldOutput(), AdvancedOutput::shouldOutput(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), and AdvancedOutput::wantOutput().

◆ uniformRefineLevel()

unsigned int MooseMesh::uniformRefineLevel ( ) const
inherited

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

Definition at line 2383 of file MooseMesh.C.

2384 {
2385  return _uniform_refine_level;
2386 }

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

◆ update()

void MooseMesh::update ( )
inherited

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

Definition at line 420 of file MooseMesh.C.

421 {
422  TIME_SECTION(_update_timer);
423 
424  // Rebuild the boundary conditions
426 
427  // Update the node to elem map
428  _node_to_elem_map.clear();
429  _node_to_elem_map_built = false;
432 
433  buildNodeList();
435  cacheInfo();
436 }

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

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

577 {
579 
580  _semilocal_node_list.clear();
581 
582  // First add the nodes connected to local elems
583  ConstElemRange * active_local_elems = getActiveLocalElementRange();
584  for (const auto & elem : *active_local_elems)
585  {
586  for (unsigned int n = 0; n < elem->n_nodes(); ++n)
587  {
588  // Since elem is const here but we require a non-const Node * to
589  // store in the _semilocal_node_list (otherwise things like
590  // UpdateDisplacedMeshThread don't work), we are using a
591  // const_cast. A more long-term fix would be to have
592  // getActiveLocalElementRange return a non-const ElemRange.
593  Node * node = const_cast<Node *>(elem->node_ptr(n));
594 
595  _semilocal_node_list.insert(node);
596  }
597  }
598 
599  // Now add the nodes connected to ghosted_elems
600  for (const auto & ghost_elem_id : ghosted_elems)
601  {
602  Elem * elem = getMesh().elem_ptr(ghost_elem_id);
603  for (unsigned int n = 0; n < elem->n_nodes(); n++)
604  {
605  Node * node = elem->node_ptr(n);
606 
607  _semilocal_node_list.insert(node);
608  }
609  }
610 
611  // Now create the actual range
612  _active_semilocal_node_range = libmesh_make_unique<SemiLocalNodeRange>(
614 }

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

◆ validParams()

InputParameters FileMesh::validParams ( )
static

Definition at line 25 of file FileMesh.C.

26 {
28  params.addRequiredParam<MeshFileName>("file", "The name of the mesh file to read");
29  params.addClassDescription("Read a mesh from a file.");
30  return params;
31 }

Referenced by SetupMeshAction::modifyParamsForUseSplit().

Member Data Documentation

◆ _active_local_elem_range

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

A range for use with threading.

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

Definition at line 966 of file MooseMesh.h.

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

◆ _active_node_range

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

Definition at line 969 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

◆ _allow_recovery

bool MooseMesh::_allow_recovery
privateinherited

Whether or not this Mesh is allowed to read a recovery file.

Definition at line 1170 of file MooseMesh.h.

Referenced by MooseMesh::allowRecovery(), and MooseMesh::init().

◆ _app

MooseApp& MooseObject::_app
protectedinherited

The MooseApp this object is associated with.

Definition at line 172 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), AB2PredictorCorrector::AB2PredictorCorrector(), Executioner::addAttributeReporter(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), FEProblemBase::addOutput(), FEProblemBase::allowOutput(), AStableDirk4::AStableDirk4(), buildMesh(), MeshGeneratorMesh::buildMesh(), MooseMesh::buildMeshBaseObject(), FEProblemBase::checkNonlinearConvergence(), OversampleOutput::cloneMesh(), FEProblemBase::computeJacobianTags(), FEProblemBase::computeResidualTags(), Console::Console(), TimeStepper::constrainStep(), MultiApp::createApp(), MeshGenerator::declareMeshProperty(), DumpObjectsProblem::dumpObjectHelper(), DumpObjectsProblem::dumpVariableHelper(), EigenExecutionerBase::EigenExecutionerBase(), EigenKernel::EigenKernel(), NonlinearEigen::execute(), InversePowerMethod::execute(), Transient::execute(), Steady::execute(), FileOutput::FileOutput(), FEProblemBase::forceOutput(), MeshGenerator::getMesh(), MeshGenerator::getMeshByName(), MooseObject::getMooseApp(), NumRelationshipManagers::getValue(), GhostingUserObject::GhostingUserObject(), NonlinearEigen::init(), InversePowerMethod::init(), Transient::init(), Steady::init(), MooseMesh::init(), NumPicardIterations::initialize(), TimePeriod::initialSetup(), Console::initialSetup(), MultiApp::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initOutputList(), FEProblemBase::initPetscOutput(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), ElementSideNeighborLayers::internalInit(), MeshGeneratorMesh::MeshGeneratorMesh(), MooseObject::mooseError(), EigenExecutionerBase::normalizeSolution(), AugmentSparsityOnInterface::operator()(), PerfGraphOutput::output(), Tecplot::output(), Exodus::output(), Nemesis::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Exodus::outputEmptyTimestep(), Console::outputInput(), Exodus::outputInput(), Exodus::outputNodalVariables(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), Console::outputSystemInformation(), MultiApp::parentOutputPositionChanged(), PerformanceData::PerformanceData(), PetscOutput::petscLinearOutput(), PetscOutput::petscNonlinearOutput(), Eigenvalue::postSolve(), Transient::preExecute(), FEProblemBase::projectSolution(), FEProblemBase::setRestartFile(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), TransientMultiApp::solveStep(), FEProblemBase::subdomainSetup(), FEProblemBase::theWarehouse(), TimeExtremeValue::TimeExtremeValue(), TimePeriod::TimePeriod(), FEProblemBase::timestepSetup(), Transient::Transient(), and Console::write().

◆ _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 1024 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

Map of set of elem IDs connected to each boundary.

Definition at line 1016 of file MooseMesh.h.

Referenced by MooseMesh::buildBndElemList(), MooseMesh::freeBndElems(), MooseMesh::getBoundariesToElems(), and MooseMesh::isBoundaryElem().

◆ _bnd_elem_range

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

Definition at line 973 of file MooseMesh.h.

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

◆ _bnd_elems

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

array of boundary elems

Definition at line 1011 of file MooseMesh.h.

Referenced by MooseMesh::bndElemsBegin(), MooseMesh::bndElemsEnd(), MooseMesh::buildBndElemList(), and MooseMesh::freeBndElems().

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

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

◆ _bnd_node_range

std::unique_ptr<StoredRange<MooseMesh::const_bnd_node_iterator, const BndNode *> > MooseMesh::_bnd_node_range
protectedinherited

◆ _bnd_nodes

std::vector<BndNode *> MooseMesh::_bnd_nodes
protectedinherited

◆ _boundary_to_normal_map

std::unique_ptr<std::map<BoundaryID, RealVectorValue> > MooseMesh::_boundary_to_normal_map
protectedinherited

The boundary to normal map - valid only when AddAllSideSetsByNormals is active.

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

Referenced by MooseMesh::detectOrthogonalDimRanges(), MooseMesh::getMaxInDimension(), MooseMesh::getMinInDimension(), and MooseMesh::MooseMesh().

◆ _build_bnd_elem_list_timer

PerfID MooseMesh::_build_bnd_elem_list_timer
privateinherited

Definition at line 1182 of file MooseMesh.h.

Referenced by MooseMesh::buildBndElemList().

◆ _build_coarsening_map_timer

PerfID MooseMesh::_build_coarsening_map_timer
privateinherited

Definition at line 1196 of file MooseMesh.h.

Referenced by MooseMesh::buildCoarseningMap().

◆ _build_node_list_timer

PerfID MooseMesh::_build_node_list_timer
privateinherited

Definition at line 1181 of file MooseMesh.h.

Referenced by MooseMesh::buildNodeList().

◆ _build_periodic_node_map_timer

PerfID MooseMesh::_build_periodic_node_map_timer
privateinherited

Definition at line 1191 of file MooseMesh.h.

Referenced by MooseMesh::buildPeriodicNodeMap().

◆ _build_periodic_node_sets_timer

PerfID MooseMesh::_build_periodic_node_sets_timer
privateinherited

Definition at line 1192 of file MooseMesh.h.

Referenced by MooseMesh::buildPeriodicNodeSets().

◆ _build_refinement_and_coarsening_maps_timer

PerfID MooseMesh::_build_refinement_and_coarsening_maps_timer
privateinherited

Definition at line 1198 of file MooseMesh.h.

Referenced by MooseMesh::buildRefinementAndCoarseningMaps().

◆ _build_refinement_map_timer

PerfID MooseMesh::_build_refinement_map_timer
privateinherited

Definition at line 1195 of file MooseMesh.h.

Referenced by MooseMesh::buildRefinementMap().

◆ _cache_changed_lists_timer

PerfID MooseMesh::_cache_changed_lists_timer
privateinherited

Definition at line 1179 of file MooseMesh.h.

Referenced by MooseMesh::cacheChangedLists().

◆ _cache_info_timer

PerfID MooseMesh::_cache_info_timer
privateinherited

Definition at line 1190 of file MooseMesh.h.

Referenced by MooseMesh::cacheInfo().

◆ _change_boundary_id_timer

PerfID MooseMesh::_change_boundary_id_timer
privateinherited

Definition at line 1199 of file MooseMesh.h.

Referenced by MooseMesh::changeBoundaryId().

◆ _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 957 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 950 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(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), SimplePredictor::apply(), MultiApp::backup(), FEProblemBase::backupMultiApps(), ReferenceResidualProblem::checkNonlinearConvergence(), FEProblemBase::checkProblemIntegrity(), CoarsenedPiecewiseLinear::CoarsenedPiecewiseLinear(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeResidualTags(), NonlinearSystem::computeScaling(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), MultiApp::createApp(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppVectorPostprocessorTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppCopyTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppProjectionTransfer::execute(), Steady::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), ElementQualityChecker::finalize(), FEProblemBase::finishMultiAppStep(), MultiApp::globalAppToLocal(), InversePowerMethod::init(), NonlinearEigen::init(), Steady::init(), FEProblemBase::initialAdaptMesh(), FEProblemBase::initialSetup(), EigenExecutionerBase::inversePowerIteration(), Transient::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseObject::mooseDeprecated(), MooseObject::mooseInfo(), MooseObject::mooseWarning(), PerfGraphOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), MultiAppConservativeTransfer::postExecute(), EigenExecutionerBase::postExecute(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), EigenExecutionerBase::printEigenvalue(), MaterialPropertyDebugOutput::printMaterialMap(), AutomaticMortarGeneration::projectMasterNodesSinglePair(), AutomaticMortarGeneration::projectSlaveNodesSinglePair(), SolutionTimeAdaptiveDT::rejectStep(), DT2::rejectStep(), MultiApp::restore(), FEProblemBase::restoreMultiApps(), SimplePredictor::shouldApply(), PicardSolve::solve(), NonlinearSystem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), AStableDirk4::solve(), LStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), PicardSolve::solveStep(), DT2::step(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), Transient::takeStep(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _construct_node_list_from_side_list

bool MooseMesh::_construct_node_list_from_side_list
privateinherited

Whether or not to allow generation of nodesets from sidesets.

Definition at line 1173 of file MooseMesh.h.

Referenced by MooseMesh::buildNodeListFromSideList().

◆ _custom_partitioner

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

The custom partitioner.

Definition at line 915 of file MooseMesh.h.

Referenced by MooseMesh::init(), and MooseMesh::setCustomPartitioner().

◆ _custom_partitioner_requested

bool MooseMesh::_custom_partitioner_requested
protectedinherited

◆ _detect_orthogonal_dim_ranges_timer

PerfID MooseMesh::_detect_orthogonal_dim_ranges_timer
privateinherited

Definition at line 1193 of file MooseMesh.h.

Referenced by MooseMesh::detectOrthogonalDimRanges().

◆ _detect_paired_sidesets_timer

PerfID MooseMesh::_detect_paired_sidesets_timer
privateinherited

Definition at line 1194 of file MooseMesh.h.

Referenced by MooseMesh::detectPairedSidesets().

◆ _dim

const unsigned int FileMesh::_dim
protected

The requested dimension of the mesh.

For some file meshes, this is not required may be implied from the element type(s).

Definition at line 49 of file FileMesh.h.

◆ _distribution_overridden

bool MooseMesh::_distribution_overridden
protectedinherited

Definition at line 904 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

◆ _elem_type_to_child_side_refinement_map

std::map<ElemType, std::map<std::pair<int, int>, std::vector<std::vector<QpMap> > > > MooseMesh::_elem_type_to_child_side_refinement_map
privateinherited

Holds mappings for "internal" child sides to parent volume. The second key is (child, child_side).

Definition at line 1160 of file MooseMesh.h.

Referenced by MooseMesh::buildRefinementMap(), and MooseMesh::getRefinementMap().

◆ _elem_type_to_coarsening_map

std::map<std::pair<int, ElemType>, std::vector<std::pair<unsigned int, QpMap> > > MooseMesh::_elem_type_to_coarsening_map
privateinherited

Holds mappings for volume to volume and parent side to child side.

Definition at line 1164 of file MooseMesh.h.

Referenced by MooseMesh::buildCoarseningMap(), and MooseMesh::getCoarseningMap().

◆ _elem_type_to_refinement_map

std::map<std::pair<int, ElemType>, std::vector<std::vector<QpMap> > > MooseMesh::_elem_type_to_refinement_map
privateinherited

Holds mappings for volume to volume and parent side to child side.

Definition at line 1156 of file MooseMesh.h.

Referenced by MooseMesh::buildRefinementMap(), and MooseMesh::getRefinementMap().

◆ _enabled

const bool& MooseObject::_enabled
protectedinherited

Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects.

Definition at line 181 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _exreader

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

Auxiliary object for restart.

Definition at line 45 of file FileMesh.h.

Referenced by buildMesh(), and exReader().

◆ _extra_bnd_nodes

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

◆ _extreme_nodes

std::vector<Node *> MooseMesh::_extreme_nodes
privateinherited

A vector containing the nodes at the corners of a regular orthogonal mesh.

Definition at line 1074 of file MooseMesh.h.

Referenced by MooseMesh::detectOrthogonalDimRanges().

◆ _file_name

std::string FileMesh::_file_name
protected

the file_name from whence this mesh came

Definition at line 42 of file FileMesh.h.

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

◆ _find_adaptivity_qp_maps_timer

PerfID MooseMesh::_find_adaptivity_qp_maps_timer
privateinherited

Definition at line 1197 of file MooseMesh.h.

Referenced by MooseMesh::findAdaptivityQpMaps().

◆ _get_active_local_element_range_timer

PerfID MooseMesh::_get_active_local_element_range_timer
privateinherited

Definition at line 1185 of file MooseMesh.h.

Referenced by MooseMesh::getActiveLocalElementRange().

◆ _get_active_node_range_timer

PerfID MooseMesh::_get_active_node_range_timer
privateinherited

Definition at line 1186 of file MooseMesh.h.

Referenced by MooseMesh::getActiveNodeRange().

◆ _get_boundary_element_range_timer

PerfID MooseMesh::_get_boundary_element_range_timer
privateinherited

Definition at line 1189 of file MooseMesh.h.

Referenced by MooseMesh::getBoundaryElementRange().

◆ _get_boundary_node_range_timer

PerfID MooseMesh::_get_boundary_node_range_timer
privateinherited

Definition at line 1188 of file MooseMesh.h.

Referenced by MooseMesh::getBoundaryNodeRange().

◆ _get_local_node_range_timer

PerfID MooseMesh::_get_local_node_range_timer
privateinherited

Definition at line 1187 of file MooseMesh.h.

Referenced by MooseMesh::getLocalNodeRange().

◆ _ghost_elems_from_ghost_boundaries

std::set<Elem *> MooseMesh::_ghost_elems_from_ghost_boundaries
privateinherited

Set of elements ghosted by ghostGhostedBoundaries.

Definition at line 1208 of file MooseMesh.h.

Referenced by MooseMesh::ghostGhostedBoundaries().

◆ _ghost_ghosted_boundaries_timer

PerfID MooseMesh::_ghost_ghosted_boundaries_timer
privateinherited

Definition at line 1202 of file MooseMesh.h.

Referenced by MooseMesh::ghostGhostedBoundaries().

◆ _ghosted_boundaries

std::set<unsigned int> MooseMesh::_ghosted_boundaries
protectedinherited

◆ _ghosted_boundaries_inflation

std::vector<Real> MooseMesh::_ghosted_boundaries_inflation
protectedinherited

◆ _ghosting_functors

std::vector<std::unique_ptr<GhostingFunctor> > MooseMesh::_ghosting_functors
protectedinherited

Deprecated (DO NOT USE)

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

Referenced by MooseMesh::getGhostingPatchSize().

◆ _half_range

RealVectorValue MooseMesh::_half_range
privateinherited

A convenience vector used to hold values in each dimension representing half of the range.

Definition at line 1071 of file MooseMesh.h.

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

◆ _init_timer

PerfID MooseMesh::_init_timer
privateinherited

Definition at line 1200 of file MooseMesh.h.

Referenced by MooseMesh::init().

◆ _is_changed

bool MooseMesh::_is_changed
protectedinherited

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

Definition at line 935 of file MooseMesh.h.

◆ _is_nemesis

bool MooseMesh::_is_nemesis
protectedinherited

True if a Nemesis Mesh was read in.

Definition at line 938 of file MooseMesh.h.

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

◆ _is_prepared

bool MooseMesh::_is_prepared
protectedinherited

True if prepare has been called on the mesh.

Definition at line 941 of file MooseMesh.h.

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

◆ _local_node_range

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

Definition at line 970 of file MooseMesh.h.

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

◆ _max_leaf_size

unsigned int MooseMesh::_max_leaf_size
protectedinherited

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

Referenced by MooseMesh::getBoundaryIDs(), MooseMesh::meshBoundaryIds(), MooseMesh::prepare(), and MooseMesh::setMeshBoundaryIDs().

◆ _mesh_changed_timer

PerfID MooseMesh::_mesh_changed_timer
privateinherited

Definition at line 1178 of file MooseMesh.h.

Referenced by MooseMesh::meshChanged().

◆ _mesh_nodeset_ids

std::set<BoundaryID> MooseMesh::_mesh_nodeset_ids
protectedinherited

Definition at line 997 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 996 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 987 of file MooseMesh.h.

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

◆ _name

const std::string& MooseObject::_name
protectedinherited

◆ _need_delete

bool MooseMesh::_need_delete
privateinherited

Whether we need to delete remote elements after init'ing the EquationSystems.

Definition at line 1205 of file MooseMesh.h.

Referenced by MooseMesh::needsRemoteElemDeletion().

◆ _needs_prepare_for_use

bool MooseMesh::_needs_prepare_for_use
protectedinherited

True if prepare_for_use should be called when Mesh is prepared.

Definition at line 944 of file MooseMesh.h.

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

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

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

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

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

◆ _node_to_active_semilocal_elem_map_timer

PerfID MooseMesh::_node_to_active_semilocal_elem_map_timer
privateinherited

Definition at line 1184 of file MooseMesh.h.

Referenced by MooseMesh::nodeToActiveSemilocalElemMap().

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

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

◆ _node_to_elem_map_timer

PerfID MooseMesh::_node_to_elem_map_timer
privateinherited

Definition at line 1183 of file MooseMesh.h.

Referenced by MooseMesh::nodeToElemMap().

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

Referenced by MooseMesh::buildMeshBaseObject().

◆ _parallel_type_overridden

bool MooseMesh::_parallel_type_overridden
protectedinherited

Definition at line 905 of file MooseMesh.h.

Referenced by MooseMesh::buildMeshBaseObject(), and MooseMesh::isParallelTypeForced().

◆ _pars

const InputParameters& MooseObject::_pars
protectedinherited

◆ _partitioner_name

MooseEnum MooseMesh::_partitioner_name
protectedinherited

The partitioner used on this mesh.

Definition at line 911 of file MooseMesh.h.

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

◆ _partitioner_overridden

bool MooseMesh::_partitioner_overridden
protectedinherited

Definition at line 912 of file MooseMesh.h.

Referenced by MooseMesh::buildMeshBaseObject(), and MooseMesh::isPartitionerForced().

◆ _patch_size

unsigned int MooseMesh::_patch_size
protectedinherited

The number of nodes to consider in the NearestNode neighborhood.

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

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

◆ _perf_graph

PerfGraph& PerfGraphInterface::_perf_graph
protectedinherited

The performance graph to add to.

Definition at line 67 of file PerfGraphInterface.h.

Referenced by PerfGraphData::getValue(), and PerfGraphInterface::registerTimedSection().

◆ _periodic_dim

std::map<unsigned int, std::vector<bool> > MooseMesh::_periodic_dim
privateinherited

A map of vectors indicating which dimensions are periodic in a regular orthogonal mesh for the specified variable numbers.

This data structure is populated by addPeriodicVariable.

Definition at line 1066 of file MooseMesh.h.

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

◆ _pg_params

const InputParameters* PerfGraphInterface::_pg_params
protectedinherited

Params.

Definition at line 64 of file PerfGraphInterface.h.

◆ _prefix

std::string PerfGraphInterface::_prefix
protectedinherited

A prefix to use for all sections.

Definition at line 70 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::registerTimedSection().

◆ _prepare_timer

PerfID MooseMesh::_prepare_timer
privateinherited

Timers.

Definition at line 1176 of file MooseMesh.h.

Referenced by MooseMesh::prepare().

◆ _quadrature_nodes

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

◆ _read_mesh_timer

const PerfID FileMesh::_read_mesh_timer
protected

Timers.

Definition at line 52 of file FileMesh.h.

Referenced by buildMesh().

◆ _read_recovered_mesh_timer

PerfID MooseMesh::_read_recovered_mesh_timer
privateinherited

Definition at line 1201 of file MooseMesh.h.

Referenced by MooseMesh::init().

◆ _refined_elements

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

The elements that were just refined.

Definition at line 947 of file MooseMesh.h.

Referenced by MooseMesh::cacheChangedLists(), and MooseMesh::refinedElementRange().

◆ _regular_orthogonal_mesh

bool MooseMesh::_regular_orthogonal_mesh
protectedinherited

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

◆ _restartable_app

MooseApp& Restartable::_restartable_app
privateinherited

Reference to the application.

Definition at line 208 of file Restartable.h.

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

◆ _restartable_name

std::string Restartable::_restartable_name
privateinherited

◆ _restartable_system_name

std::string Restartable::_restartable_system_name
privateinherited

The system name this object is in.

Definition at line 214 of file Restartable.h.

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

◆ _restartable_tid

THREAD_ID Restartable::_restartable_tid
privateinherited

The thread ID for this object.

Definition at line 217 of file Restartable.h.

Referenced by Restartable::declareRestartableDataWithContext().

◆ _semilocal_node_list

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

Used for generating the semilocal node range.

Definition at line 960 of file MooseMesh.h.

Referenced by MooseMesh::isSemiLocal(), and MooseMesh::updateActiveSemiLocalNodeRange().

◆ _subdomain_boundary_ids

std::map<SubdomainID, std::set<BoundaryID> > MooseMesh::_subdomain_boundary_ids
privateinherited

Holds a map from subomdain ids to the boundary ids that are attached to it.

Definition at line 1167 of file MooseMesh.h.

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

◆ _type

const std::string& MooseObject::_type
protectedinherited

The type of this object (the Class name)

Definition at line 175 of file MooseObject.h.

Referenced by FEProblemBase::init(), and MooseObject::type().

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

Referenced by MooseMesh::setUniformRefineLevel(), and MooseMesh::uniformRefineLevel().

◆ _update_active_semi_local_node_range_timer

PerfID MooseMesh::_update_active_semi_local_node_range_timer
privateinherited

Definition at line 1180 of file MooseMesh.h.

Referenced by MooseMesh::updateActiveSemiLocalNodeRange().

◆ _update_timer

PerfID MooseMesh::_update_timer
privateinherited

Definition at line 1177 of file MooseMesh.h.

Referenced by MooseMesh::update().

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

Referenced by MooseMesh::buildMeshBaseObject(), MooseMesh::errorIfDistributedMesh(), MooseMesh::ghostGhostedBoundaries(), MooseMesh::init(), MooseMesh::isDistributedMesh(), and MooseMesh::setPartitionerHelper().


The documentation for this class was generated from the following files:
InputParameters::getParamHelper
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type)
Definition: InputParameters.h:1517
MooseMesh::_build_node_list_timer
PerfID _build_node_list_timer
Definition: MooseMesh.h:1181
MooseMesh::elemPtr
virtual Elem * elemPtr(const dof_id_type i)
Definition: MooseMesh.C:2289
MooseMesh::_block_node_list
std::map< dof_id_type, std::set< SubdomainID > > _block_node_list
list of nodes that belongs to a specified block (domain)
Definition: MooseMesh.h:1024
MooseMesh::_construct_node_list_from_side_list
bool _construct_node_list_from_side_list
Whether or not to allow generation of nodesets from sidesets.
Definition: MooseMesh.h:1173
MooseMesh::_build_refinement_and_coarsening_maps_timer
PerfID _build_refinement_and_coarsening_maps_timer
Definition: MooseMesh.h:1198
BndNode
Definition: BndNode.h:19
MooseMesh::nodeRef
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:453
MooseMesh::_max_leaf_size
unsigned int _max_leaf_size
Definition: MooseMesh.h:1039
MooseApp::getDistributedMeshOnCommandLine
bool getDistributedMeshOnCommandLine() const
Returns true if the user specified –distributed-mesh (or –parallel-mesh, for backwards compatibility)...
Definition: MooseApp.h:342
comm
MPI_Comm comm
Definition: PetscDMMoose.C:1505
MooseMesh::_coarsened_elements
std::unique_ptr< ConstElemPointerRange > _coarsened_elements
The elements that were just coarsened.
Definition: MooseMesh.h:950
MooseMesh::getActiveNodeRange
NodeRange * getActiveNodeRange()
Definition: MooseMesh.C:773
PerfGraphInterface::_perf_graph
PerfGraph & _perf_graph
The performance graph to add to.
Definition: PerfGraphInterface.h:67
MooseObject::mooseInfo
void mooseInfo(Args &&... args) const
Definition: MooseObject.h:162
MooseMesh::ParallelType::DISTRIBUTED
MooseApp::setFileRestart
bool & setFileRestart()
Returns a writable Boolean to determine whether or not we need to use a separate reader to read the m...
Definition: MooseApp.h:325
MooseMesh::setPartitionerHelper
void setPartitionerHelper()
Definition: MooseMesh.C:2728
MooseMesh::dimensionWidth
Real dimensionWidth(unsigned int component) const
Returns the width of the requested dimension.
Definition: MooseMesh.C:1509
MooseMesh::_parallel_type
ParallelType _parallel_type
Can be set to DISTRIBUTED, REPLICATED, or DEFAULT.
Definition: MooseMesh.h:898
MooseMesh::onMeshChanged
virtual void onMeshChanged()
Declares a callback function that is executed at the conclusion of meshChanged().
Definition: MooseMesh.C:533
MooseMesh::Z
Definition: MooseMesh.h:923
FileMesh::_file_name
std::string _file_name
the file_name from whence this mesh came
Definition: FileMesh.h:42
MooseMesh::_semilocal_node_list
std::set< Node * > _semilocal_node_list
Used for generating the semilocal node range.
Definition: MooseMesh.h:960
moose::internal::mooseStreamAll
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:88
MooseMesh::_prepare_timer
PerfID _prepare_timer
Timers.
Definition: MooseMesh.h:1176
MooseMesh::_build_refinement_map_timer
PerfID _build_refinement_map_timer
Definition: MooseMesh.h:1195
MooseMesh::_mesh_boundary_ids
std::set< BoundaryID > _mesh_boundary_ids
A set of boundary IDs currently present in the mesh.
Definition: MooseMesh.h:995
MooseObject::mooseError
void mooseError(Args &&... args) const
Definition: MooseObject.h:141
Moose::RelationshipManagerType::DEFAULT
MooseMesh::_node_to_active_semilocal_elem_map_built
bool _node_to_active_semilocal_elem_map_built
Definition: MooseMesh.h:981
MooseMesh::_parallel_type_overridden
bool _parallel_type_overridden
Definition: MooseMesh.h:905
MooseMesh::bndNodesEnd
virtual bnd_node_iterator bndNodesEnd()
Definition: MooseMesh.C:900
MooseObject::_type
const std::string & _type
The type of this object (the Class name)
Definition: MooseObject.h:175
Assembly::writeableQRuleFace
QBase *const & writeableQRuleFace()
Returns the reference to the current quadrature being used on a current face.
Definition: Assembly.h:247
MooseMesh::_build_periodic_node_map_timer
PerfID _build_periodic_node_map_timer
Definition: MooseMesh.h:1191
Restartable::_restartable_name
std::string _restartable_name
The name of the object.
Definition: Restartable.h:211
MooseMesh::_boundary_to_normal_map
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:1001
MooseMesh::_build_periodic_node_sets_timer
PerfID _build_periodic_node_sets_timer
Definition: MooseMesh.h:1192
Assembly::writeableQRule
QBase *const & writeableQRule()
Returns the reference to the current quadrature being used.
Definition: Assembly.h:174
MooseMesh::_change_boundary_id_timer
PerfID _change_boundary_id_timer
Definition: MooseMesh.h:1199
MooseMesh::_partitioner_name
MooseEnum _partitioner_name
The partitioner used on this mesh.
Definition: MooseMesh.h:911
MooseMesh::activeLocalElementsBegin
MeshBase::const_element_iterator activeLocalElementsBegin()
Calls active_local_nodes_begin/end() on the underlying libMesh mesh object.
Definition: MooseMesh.C:2239
MooseMesh::_is_prepared
bool _is_prepared
True if prepare has been called on the mesh.
Definition: MooseMesh.h:941
MooseMesh::getActiveLocalElementRange
ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems,...
Definition: MooseMesh.C:758
MooseMesh::_is_nemesis
bool _is_nemesis
True if a Nemesis Mesh was read in.
Definition: MooseMesh.h:938
MooseMesh::_node_set_nodes
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:1027
MooseMesh::_partitioner_overridden
bool _partitioner_overridden
Definition: MooseMesh.h:912
MooseMesh::_bounds
std::vector< std::vector< Real > > _bounds
The bounds in each dimension of the mesh for regular orthogonal meshes.
Definition: MooseMesh.h:1051
MooseObject::type
const std::string & type() const
Get the type of this object.
Definition: MooseObject.h:63
QpMap::_to
unsigned int _to
The qp to map to.
Definition: MooseMesh.h:64
std::abs
MetaPhysicL::DualNumber< T, D > abs(const MetaPhysicL::DualNumber< T, D > &in)
MooseMesh::changeBoundaryId
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:1960
MooseMesh::_node_to_elem_map
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:976
Assembly::setCurrentSubdomainID
void setCurrentSubdomainID(SubdomainID i)
set the current subdomain ID
Definition: Assembly.h:314
MooseMesh::_ghosted_boundaries
std::set< unsigned int > _ghosted_boundaries
Definition: MooseMesh.h:1029
MooseMesh::_update_timer
PerfID _update_timer
Definition: MooseMesh.h:1177
MooseEnum
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:31
Restartable::registerRestartableDataOnApp
RestartableDataValue & registerRestartableDataOnApp(const std::string &name, std::unique_ptr< RestartableDataValue > data, THREAD_ID tid)
Helper function for actually registering the restartable data.
Definition: Restartable.C:48
MooseMesh::_bnd_node_ids
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:1008
MooseMesh::_allow_recovery
bool _allow_recovery
Whether or not this Mesh is allowed to read a recovery file.
Definition: MooseMesh.h:1170
MooseMesh::_periodic_dim
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:1066
MooseMesh::_init_timer
PerfID _init_timer
Definition: MooseMesh.h:1200
PerfGraph::registerSection
PerfID registerSection(const std::string &section_name, unsigned int level)
Registers a named section of code.
Definition: PerfGraph.C:45
MooseObject::parameters
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:76
MooseMesh::_get_boundary_element_range_timer
PerfID _get_boundary_element_range_timer
Definition: MooseMesh.h:1189
MooseMesh::setPartitioner
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:2734
Assembly::reinit
void reinit(const Elem *elem)
Reinitialize objects (JxW, q_points, ...) for an elements.
Definition: Assembly.C:1628
MooseMesh::_detect_orthogonal_dim_ranges_timer
PerfID _detect_orthogonal_dim_ranges_timer
Definition: MooseMesh.h:1193
MooseMesh::_ghost_ghosted_boundaries_timer
PerfID _ghost_ghosted_boundaries_timer
Definition: MooseMesh.h:1202
MooseMesh::MIN
Definition: MooseMesh.h:927
MooseObject::_enabled
const bool & _enabled
Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects.
Definition: MooseObject.h:181
RestartableData::set
T & set()
Definition: RestartableData.h:97
MooseMesh::freeBndNodes
void freeBndNodes()
Definition: MooseMesh.C:323
moose::internal::mooseInfoStream
void mooseInfoStream(S &oss, Args &&... args)
Definition: MooseError.h:165
MooseMesh::_needs_prepare_for_use
bool _needs_prepare_for_use
True if prepare_for_use should be called when Mesh is prepared.
Definition: MooseMesh.h:944
MooseApp::isUseSplit
bool isUseSplit() const
Whether or not we are running with pre-split (distributed mesh)
Definition: MooseApp.C:952
FileMesh::_read_mesh_timer
const PerfID _read_mesh_timer
Timers.
Definition: FileMesh.h:52
MooseMesh::bndNodesBegin
virtual bnd_node_iterator bndNodesBegin()
Return iterators to the beginning/end of the boundary nodes list.
Definition: MooseMesh.C:892
QpMap::_from
unsigned int _from
The qp to map from.
Definition: MooseMesh.h:61
MooseMesh::findAdaptivityQpMaps
void findAdaptivityQpMaps(const Elem *template_elem, QBase &qrule, QBase &qrule_face, std::vector< std::vector< QpMap >> &refinement_map, std::vector< std::pair< unsigned int, QpMap >> &coarsen_map, int parent_side, int child, int child_side)
Given an elem type, get maps that tell us what qp's are closest to each other between a parent and it...
Definition: MooseMesh.C:1822
MooseMesh::_bnd_nodes
std::vector< BndNode * > _bnd_nodes
array of boundary nodes
Definition: MooseMesh.h:1004
MooseMesh::ParallelType::DEFAULT
MooseMesh::_ghosted_boundaries_inflation
std::vector< Real > _ghosted_boundaries_inflation
Definition: MooseMesh.h:1030
MooseMesh::_find_adaptivity_qp_maps_timer
PerfID _find_adaptivity_qp_maps_timer
Definition: MooseMesh.h:1197
MooseMesh::_refined_elements
std::unique_ptr< ConstElemPointerRange > _refined_elements
The elements that were just refined.
Definition: MooseMesh.h:947
MooseMesh::getBoundaryElementRange
StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > * getBoundaryElementRange()
Definition: MooseMesh.C:827
MooseObject::paramError
void paramError(const std::string &param, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
Definition: MooseObject.h:215
ConsoleStreamInterface::_console
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
Definition: ConsoleStreamInterface.h:31
MooseMesh::buildCoarseningMap
void buildCoarseningMap(const Elem &elem, QBase &qrule, QBase &qrule_face, int input_side)
Build the coarsening map for a given element type.
Definition: MooseMesh.C:1752
InputParameters
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Definition: InputParameters.h:53
MooseMesh::X
Definition: MooseMesh.h:921
MooseApp::isUltimateMaster
bool isUltimateMaster()
Whether or not this app is the ultimate master app.
Definition: MooseApp.h:561
MooseMesh::_node_to_active_semilocal_elem_map_timer
PerfID _node_to_active_semilocal_elem_map_timer
Definition: MooseMesh.h:1184
moose::internal::mooseDeprecatedStream
void mooseDeprecatedStream(S &oss, bool expired, Args &&... args)
Definition: MooseError.h:177
MooseMesh::getLocalNodeRange
ConstNodeRange * getLocalNodeRange()
Definition: MooseMesh.C:797
MooseMesh::_build_bnd_elem_list_timer
PerfID _build_bnd_elem_list_timer
Definition: MooseMesh.h:1182
MooseMesh::_subdomain_boundary_ids
std::map< SubdomainID, std::set< BoundaryID > > _subdomain_boundary_ids
Holds a map from subomdain ids to the boundary ids that are attached to it.
Definition: MooseMesh.h:1167
MooseMesh::_need_delete
bool _need_delete
Whether we need to delete remote elements after init'ing the EquationSystems.
Definition: MooseMesh.h:1205
MooseMesh::_patch_size
unsigned int _patch_size
The number of nodes to consider in the NearestNode neighborhood.
Definition: MooseMesh.h:1033
MooseMesh::node
virtual const Node & node(const dof_id_type i) const
Various accessors (pointers/references) for Node "i".
Definition: MooseMesh.C:439
MooseMesh::_extra_bnd_nodes
std::vector< BndNode > _extra_bnd_nodes
Definition: MooseMesh.h:1021
MooseMesh::_custom_partitioner_requested
bool _custom_partitioner_requested
Definition: MooseMesh.h:916
MooseMesh::_cache_info_timer
PerfID _cache_info_timer
Definition: MooseMesh.h:1190
PerfGraphInterface::_prefix
std::string _prefix
A prefix to use for all sections.
Definition: PerfGraphInterface.h:70
paramErrorPrefix
std::string paramErrorPrefix(const InputParameters &params, const std::string &param)
Generates a canonical paramError prefix for param-related error/warning/info messages.
Definition: MooseObject.C:24
MooseMesh::buildNodeListFromSideList
void buildNodeListFromSideList()
Calls BoundaryInfo::build_node_list_from_side_list().
Definition: MooseMesh.C:2183
MooseMesh::_bnd_elems
std::vector< BndElement * > _bnd_elems
array of boundary elems
Definition: MooseMesh.h:1011
FileMesh::_exreader
std::unique_ptr< ExodusII_IO > _exreader
Auxiliary object for restart.
Definition: FileMesh.h:45
MooseMesh::bndElemsBegin
virtual bnd_elem_iterator bndElemsBegin()
Return iterators to the beginning/end of the boundary elements list.
Definition: MooseMesh.C:908
PerfGraphInterface::registerTimedSection
PerfID registerTimedSection(const std::string &section_name, const unsigned int level)
Call to register a named section for timing.
Definition: PerfGraphInterface.C:51
MooseMesh::_local_node_range
std::unique_ptr< ConstNodeRange > _local_node_range
Definition: MooseMesh.h:970
MooseMesh::getMesh
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:2599
MooseMesh::_mesh_sideset_ids
std::set< BoundaryID > _mesh_sideset_ids
Definition: MooseMesh.h:996
MooseMesh::_use_distributed_mesh
bool _use_distributed_mesh
False by default.
Definition: MooseMesh.h:903
MooseMesh::MAX
Definition: MooseMesh.h:928
InputParameters::isParamValid
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another,...
Definition: InputParameters.C:257
BoundaryID
boundary_id_type BoundaryID
Definition: AutomaticMortarGeneration.h:47
MooseMesh::getBoundaryIDs
const std::set< BoundaryID > & getBoundaryIDs() const
Returns a const reference to a set of all user-specified boundary IDs.
Definition: MooseMesh.C:2177
MooseMesh::_elem_to_side_to_qp_to_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
Definition: MooseMesh.h:1020
MooseMesh::getMaxInDimension
virtual Real getMaxInDimension(unsigned int component) const
Definition: MooseMesh.C:1524
MooseMesh::cacheInfo
void cacheInfo()
Definition: MooseMesh.C:848
MooseMesh::_patch_update_strategy
Moose::PatchUpdateType _patch_update_strategy
The patch update strategy.
Definition: MooseMesh.h:1042
GRAIN_SIZE
static const int GRAIN_SIZE
Definition: MooseMesh.C:59
MooseApp::getRestartRecoverFileBase
std::string getRestartRecoverFileBase() const
The file_base for the recovery file.
Definition: MooseApp.h:376
MooseMesh::_node_to_elem_map_built
bool _node_to_elem_map_built
Definition: MooseMesh.h:977
MooseMesh::buildRefinementMap
void buildRefinementMap(const Elem &elem, QBase &qrule, QBase &qrule_face, int parent_side, int child, int child_side)
Build the refinement map for a given element type.
Definition: MooseMesh.C:1673
MooseMesh::_extreme_nodes
std::vector< Node * > _extreme_nodes
A vector containing the nodes at the corners of a regular orthogonal mesh.
Definition: MooseMesh.h:1074
MooseMesh::elem
virtual Elem * elem(const dof_id_type i)
Various accessors (pointers/references) for Elem "i".
Definition: MooseMesh.C:2275
InputParameters::addClassDescription
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.
Definition: InputParameters.C:70
MooseMesh::_regular_orthogonal_mesh
bool _regular_orthogonal_mesh
Boolean indicating whether this mesh was detected to be regular and orthogonal.
Definition: MooseMesh.h:1048
MooseMesh::detectOrthogonalDimRanges
bool detectOrthogonalDimRanges(Real tol=1e-6)
This routine determines whether the Mesh is a regular orthogonal mesh (i.e.
Definition: MooseMesh.C:1332
Moose::INVALID_BLOCK_ID
const SubdomainID INVALID_BLOCK_ID
Definition: MooseTypes.C:18
MooseMesh::PeriodicNodeInfo
std::pair< const Node *, BoundaryID > PeriodicNodeInfo
Helper type for building periodic node maps.
Definition: MooseMesh.h:872
MooseApp::registerRestartableData
RestartableDataValue & registerRestartableData(const std::string &name, std::unique_ptr< RestartableDataValue > data, THREAD_ID tid, bool mesh_meta_data, bool read_only)
Definition: MooseApp.C:1156
callMooseErrorRaw
void callMooseErrorRaw(std::string &msg, MooseApp *app)
Definition: MooseObject.C:70
MooseMesh::ParallelType::REPLICATED
MooseMesh::getBoundaryNodeRange
StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > * getBoundaryNodeRange()
Definition: MooseMesh.C:812
MooseMesh::_node_to_elem_map_timer
PerfID _node_to_elem_map_timer
Definition: MooseMesh.h:1183
MooseMesh::_coarsened_element_children
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:957
SubdomainID
subdomain_id_type SubdomainID
Definition: AutomaticMortarGeneration.h:48
MooseMesh::dimension
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimsension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh m...
Definition: MooseMesh.C:2148
MooseMesh::_bnd_elem_range
std::unique_ptr< StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > > _bnd_elem_range
Definition: MooseMesh.h:973
MooseMesh::_get_active_node_range_timer
PerfID _get_active_node_range_timer
Definition: MooseMesh.h:1186
MooseMesh::getPairedBoundaryMapping
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:1596
MooseMesh::_elem_type_to_coarsening_map
std::map< std::pair< int, ElemType >, std::vector< std::pair< unsigned int, QpMap > > > _elem_type_to_coarsening_map
Holds mappings for volume to volume and parent side to child side.
Definition: MooseMesh.h:1164
MooseMesh::_elem_type_to_refinement_map
std::map< std::pair< int, ElemType >, std::vector< std::vector< QpMap > > > _elem_type_to_refinement_map
Holds mappings for volume to volume and parent side to child side.
Definition: MooseMesh.h:1156
MooseMesh::buildBndElemList
void buildBndElemList()
Definition: MooseMesh.C:685
MooseMesh::_detect_paired_sidesets_timer
PerfID _detect_paired_sidesets_timer
Definition: MooseMesh.h:1194
MooseApp::isRecovering
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition: MooseApp.C:934
MooseMesh::_node_map
std::vector< Node * > _node_map
Vector of all the Nodes in the mesh for determining when to add a new point.
Definition: MooseMesh.h:1045
MooseMesh::_bnd_elem_ids
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:1016
FileMesh::_dim
const unsigned int _dim
The requested dimension of the mesh.
Definition: FileMesh.h:49
MooseUtils::replaceAll
std::string replaceAll(std::string str, const std::string &from, const std::string &to)
Replaces all occurences of from in str with to and returns the result.
Definition: MooseUtils.C:45
MooseMesh::_get_active_local_element_range_timer
PerfID _get_active_local_element_range_timer
Definition: MooseMesh.h:1185
MooseMesh::isTranslatedPeriodic
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:1554
MooseMesh::MooseMesh
MooseMesh()=delete
MooseMesh::_cache_changed_lists_timer
PerfID _cache_changed_lists_timer
Definition: MooseMesh.h:1179
MooseMesh::_get_boundary_node_range_timer
PerfID _get_boundary_node_range_timer
Definition: MooseMesh.h:1188
MooseMesh::_bnd_node_range
std::unique_ptr< StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > > _bnd_node_range
Definition: MooseMesh.h:971
QpMap
Helper object for holding qp mapping info.
Definition: MooseMesh.h:55
MooseMesh::_get_local_node_range_timer
PerfID _get_local_node_range_timer
Definition: MooseMesh.h:1187
InputParameters::getCheckedPointerParam
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.
Definition: InputParameters.h:1162
MooseUtils::pathExists
bool pathExists(const std::string &path)
Definition: MooseUtils.C:151
MooseUtils::checkFileReadable
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true)
Checks to see if a file is readable (exists and permissions)
Definition: MooseUtils.C:158
MooseMesh::_node_to_active_semilocal_elem_map
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:980
MooseMesh::activeLocalElementsEnd
const MeshBase::const_element_iterator activeLocalElementsEnd()
Definition: MooseMesh.C:2245
Restartable::_restartable_app
MooseApp & _restartable_app
Reference to the application.
Definition: Restartable.h:208
MooseUtils::doesMapContainValue
bool doesMapContainValue(const std::map< T1, T2 > &the_map, const T2 &value)
This routine is a simple helper function for searching a map by values instead of keys.
Definition: MooseUtils.h:211
Restartable::_restartable_tid
THREAD_ID _restartable_tid
The thread ID for this object.
Definition: Restartable.h:217
BndElement
Definition: BndElement.h:19
MooseMesh::_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:1036
MooseMesh::_active_semilocal_node_range
std::unique_ptr< SemiLocalNodeRange > _active_semilocal_node_range
Definition: MooseMesh.h:968
MooseMesh::_update_active_semi_local_node_range_timer
PerfID _update_active_semi_local_node_range_timer
Definition: MooseMesh.h:1180
MooseApp::isSplitMesh
bool isSplitMesh() const
Whether or not this is a split mesh operation.
Definition: MooseApp.C:946
MooseMesh::buildNodeList
void buildNodeList()
Calls BoundaryInfo::build_node_list()/build_side_list() and makes separate copies of Nodes/Elems in t...
Definition: MooseMesh.C:650
MooseMesh::_mesh_nodeset_ids
std::set< BoundaryID > _mesh_nodeset_ids
Definition: MooseMesh.h:997
MooseMesh::buildMesh
virtual void buildMesh()=0
Must be overridden by child classes.
Moose::show_trace
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:572
MooseMesh::_active_node_range
std::unique_ptr< NodeRange > _active_node_range
Definition: MooseMesh.h:969
Moose::RESTARTABLE_FILTER::RECOVERABLE
MooseMesh::_mesh_changed_timer
PerfID _mesh_changed_timer
Definition: MooseMesh.h:1178
MooseMesh::Y
Definition: MooseMesh.h:922
MooseUtils::convertLatestCheckpoint
std::string convertLatestCheckpoint(std::string orig, bool base_only=true)
Replaces "LATEST" placeholders with the latest checkpoint file name.
Definition: MooseUtils.C:57
MooseApp::registerRestartableNameWithFilter
void registerRestartableNameWithFilter(const std::string &name, Moose::RESTARTABLE_FILTER filter)
NOTE: This is an internal function meant for MOOSE use only!
Definition: MooseApp.C:972
MooseMesh::_read_recovered_mesh_timer
PerfID _read_recovered_mesh_timer
Definition: MooseMesh.h:1201
MooseMesh::_paired_boundary
std::vector< std::pair< BoundaryID, BoundaryID > > _paired_boundary
A vector holding the paired boundaries for a regular orthogonal mesh.
Definition: MooseMesh.h:1054
MooseMesh::freeBndElems
void freeBndElems()
Definition: MooseMesh.C:341
MooseMesh::_mesh
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer to underlying libMesh mesh object.
Definition: MooseMesh.h:908
MooseObject::_name
const std::string & _name
The name of this object, reference to value stored in InputParameters.
Definition: MooseObject.h:178
MooseMesh::buildMeshBaseObject
std::unique_ptr< MeshBase > buildMeshBaseObject(ParallelType override_type=ParallelType::DEFAULT)
Method to construct a libMesh::MeshBase object that is normally set and used by the MooseMesh object ...
Definition: MooseMesh.C:2026
MooseObject::_pars
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:169
MooseMesh::update
void update()
Calls buildNodeListFromSideList(), buildNodeList(), and buildBndElemList().
Definition: MooseMesh.C:420
MooseMesh::_ghost_elems_from_ghost_boundaries
std::set< Elem * > _ghost_elems_from_ghost_boundaries
Set of elements ghosted by ghostGhostedBoundaries.
Definition: MooseMesh.h:1208
CacheChangedListsThread
Definition: CacheChangedListsThread.h:16
moose::internal::mooseWarningStream
void mooseWarningStream(S &oss, Args &&... args)
Definition: MooseError.h:136
MooseApp::getRestartRecoverFileSuffix
std::string getRestartRecoverFileSuffix() const
The suffix for the recovery file.
Definition: MooseApp.h:399
MooseMesh::bndElemsEnd
virtual bnd_elem_iterator bndElemsEnd()
Definition: MooseMesh.C:916
MooseMesh::minPeriodicVector
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:1565
MooseMesh::_custom_partitioner
std::unique_ptr< Partitioner > _custom_partitioner
The custom partitioner.
Definition: MooseMesh.h:915
MooseMesh::_active_local_elem_range
std::unique_ptr< ConstElemRange > _active_local_elem_range
A range for use with threading.
Definition: MooseMesh.h:966
MooseMesh::mapPoints
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:1791
QpMap::_distance
Real _distance
The distance between them.
Definition: MooseMesh.h:67
RestartableData
Concrete definition of a parameter value for a specified type.
Definition: RestartableData.h:76
Moose::INVALID_BOUNDARY_ID
const BoundaryID INVALID_BOUNDARY_ID
Definition: MooseTypes.C:20
MooseObject::mooseDeprecated
void mooseDeprecated(Args &&... args) const
Definition: MooseObject.h:156
MooseMesh::_elem_type_to_child_side_refinement_map
std::map< ElemType, std::map< std::pair< int, int >, std::vector< std::vector< QpMap > > > > _elem_type_to_child_side_refinement_map
Holds mappings for "internal" child sides to parent volume. The second key is (child,...
Definition: MooseMesh.h:1160
InputParameters::addRequiredParam
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...
Definition: InputParameters.h:1176
MooseObject::_app
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:172
MooseMesh::validParams
static InputParameters validParams()
Typical "Moose-style" constructor and copy constructor.
Definition: MooseMesh.C:65
MooseMesh::_half_range
RealVectorValue _half_range
A convenience vector used to hold values in each dimension representing half of the range.
Definition: MooseMesh.h:1071
MooseMesh::_quadrature_nodes
std::map< dof_id_type, Node * > _quadrature_nodes
Definition: MooseMesh.h:1018
MooseMesh::_uniform_refine_level
unsigned int _uniform_refine_level
The level of uniform refinement requested (set to zero if AMR is disabled)
Definition: MooseMesh.h:932
BndNodeCompare
Helper class for sorting Boundary Nodes so that we always get the same order of application for bound...
Definition: MooseMesh.C:626
Restartable::_restartable_system_name
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:214
MooseObject::mooseWarning
void mooseWarning(Args &&... args) const
Definition: MooseObject.h:150
MooseObject::paramErrorMsg
std::string paramErrorMsg(const std::string &param, Args... args) const
Definition: MooseObject.h:185
MooseObject::name
virtual const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:70
MooseMesh::_build_coarsening_map_timer
PerfID _build_coarsening_map_timer
Definition: MooseMesh.h:1196
RestartableData::get
T & get()
Definition: RestartableData.h:92
Restartable::registerRestartableNameWithFilterOnApp
void registerRestartableNameWithFilterOnApp(const std::string &name, Moose::RESTARTABLE_FILTER filter)
Helper function for actually registering the restartable data.
Definition: Restartable.C:56
MooseMesh::getMinInDimension
virtual Real getMinInDimension(unsigned int component) const
Returns the min or max of the requested dimension respectively.
Definition: MooseMesh.C:1515
MooseMesh::detectPairedSidesets
void detectPairedSidesets()
This routine detects paired sidesets of a regular orthogonal mesh (.i.e.
Definition: MooseMesh.C:1406
MooseMesh::_mesh_subdomains
std::set< SubdomainID > _mesh_subdomains
A set of subdomain IDs currently present in the mesh.
Definition: MooseMesh.h:987
PointListAdaptor
Definition: PointListAdaptor.h:19
n
PetscInt n
Definition: PetscDMMoose.C:1504