https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
MeshDiagnosticsGenerator Class Reference

#include <MeshDiagnosticsGenerator.h>

Inheritance diagram for MeshDiagnosticsGenerator:
[legend]

Public Types

using DataFileParameterType = DataFileName
 The parameter type this interface expects for a data file name.
 

Public Member Functions

 MeshDiagnosticsGenerator (const InputParameters &parameters)
 
std::unique_ptr< MeshBase > generate () override
 Generate / modify the mesh.
 
bool hasGenerateData () const
 
bool hasGenerateCSG () const
 
std::unique_ptr< CSG::CSGBasegenerateInternalCSG ()
 Internal generation method for CSG object generation.
 
std::unique_ptr< MeshBase > generateInternal ()
 Internal generation method - this is what is actually called within MooseApp to execute the MeshGenerator.
 
const std::set< MeshGeneratorName > & getRequestedMeshGenerators () const
 
const std::set< MeshGeneratorName > & getRequestedMeshGeneratorsForSub () const
 
void addParentMeshGenerator (const MeshGenerator &mg, const AddParentChildKey)
 Adds the MeshGenerator mg as a parent.
 
void addChildMeshGenerator (const MeshGenerator &mg, const AddParentChildKey)
 Adds the MeshGenerator mg as a child.
 
const std::set< const MeshGenerator *, Comparator > & getParentMeshGenerators () const
 Gets the MeshGenerators that are parents to this MeshGenerator.
 
const std::set< const MeshGenerator *, Comparator > & getChildMeshGenerators () const
 Gets the MeshGenerators that are children to this MeshGenerator.
 
const std::set< const MeshGenerator *, Comparator > & getSubMeshGenerators () const
 Gets the MeshGenerators that are children to this MeshGenerator.
 
bool isParentMeshGenerator (const MeshGeneratorName &name, const bool direct=true) const
 
bool isChildMeshGenerator (const MeshGeneratorName &name, const bool direct=true) const
 
bool isNullMeshName (const MeshGeneratorName &name) const
 
bool hasSaveMesh () const
 Return whether or not to save the current mesh.
 
bool hasOutput () const
 
const std::string & getSavedMeshName () const
 Return the name of the saved mesh.
 
bool isDataOnly () const
 
virtual bool enabled () const
 Return the enabled status of the object.
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 Get another shared pointer to this object that has the same ownership group.
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 Get whether this object is a Kokkos functor The parameter MooseBase::kokkos_object_param is set by the Kokkos base classes.
 
MooseAppgetMooseApp () const
 Get the MooseApp this class is associated with.
 
const std::string & type () const
 Get the type of this class.
 
const std::string & name () const
 Get the name of the class.
 
std::string typeAndName () const
 Get the class's combined type and name; useful in error handling.
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 Get the parameters of the object.
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object.
 
template<typename T1 , typename T2 >
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 Retrieve two parameters and provide pair of parameters for the object.
 
template<typename T >
const T * queryParam (const std::string &name) const
 Query a parameter for the object.
 
template<typename T >
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 Retrieve a renamed parameter for the object.
 
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.
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid.
 
bool isParamSetByUser (const std::string &name) const
 Test if the supplied parameter is set by a user, as opposed to not set or set to default.
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 Connect controllable parameter of this action with the controllable parameters of the objects added by this action.
 
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.
 
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.
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args) const
 
template<typename... Args>
void paramInfo (const std::string &param, Args... args) const
 Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 Deprecated message prefix; the error type is no longer used.
 
template<typename... Args>
void mooseError (Args &&... args) const
 Emits an error prefixed with object name and type and optionally a file path to the top-level block parameter if available.
 
template<typename... Args>
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
template<typename... Args>
void mooseErrorNonPrefixed (Args &&... args) const
 Emits an error without the prefixing included in mooseError().
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 Emits a warning prefixed with object name and type.
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 Emits a warning without the prefixing included in mooseWarning().
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 Emits a deprecation warning prefixed with the object name and type, and a stack trace.
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseDeprecatedNoTrace (Args &&... args) const
 Emits a deprecation warning prefixed with the object name and type, and no stack trace.
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 External method for calling moose error with added object context.
 
const Parallel::Communicatorcomm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
std::string getDataFileName (const std::string &param) const
 Deprecated method.
 
std::string getDataFileNameByName (const std::string &relative_path) const
 Deprecated method.
 
std::string getDataFilePath (const std::string &relative_path) const
 Returns the path of a data file for a given relative file path.
 

Static Public Member Functions

static InputParameters validParams ()
 
static void setHasGenerateData (InputParameters &params)
 Sets that a mesh generator has a generateData() implementation.
 
static bool hasGenerateData (const InputParameters &params)
 
static void setHasGenerateCSG (InputParameters &params)
 Sets that a mesh generator has a generateCSG() implementation.
 
static bool hasGenerateCSG (const InputParameters &params)
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 External method for calling moose error with added object context.
 

Public Attributes

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

Static Public Attributes

static const std::string data_only_param = "_data_only"
 The name of the private parameter for setting data only.
 
static const std::string type_param = "_type"
 The name of the parameter that contains the object type.
 
static const std::string name_param = "_object_name"
 The name of the parameter that contains the object name.
 
static const std::string unique_name_param = "_unique_name"
 The name of the parameter that contains the unique object name.
 
static const std::string app_param = "_moose_app"
 The name of the parameter that contains the MooseApp.
 
static const std::string moose_base_param = "_moose_base"
 The name of the parameter that contains the moose system base.
 
static const std::string kokkos_object_param = "_kokkos_object"
 The name of the parameter that indicates an object is a Kokkos functor.
 
static constexpr auto SYSTEM = "MeshMetaData"
 The system name used when initializing the Restartable interface.
 
static constexpr auto NAME = "<empty>"
 The data name used when initializing the Restartable interface for non-MeshGenerator objects.
 

Protected Member Functions

virtual void generateData ()
 Generate the mesh data.
 
virtual std::unique_ptr< CSG::CSGBasegenerateCSG ()
 Generate the CSG representation of the mesh (or meshing operation) created by this mesh generator.
 
template<typename T >
T & copyMeshProperty (const std::string &target_data_name, const std::string &source_data_name, const std::string &source_mesh)
 Method for copying attribute from input mesh meta-data store to current mesh meta-data store.
 
template<typename T >
T & copyMeshProperty (const std::string &source_data_name, const std::string &source_mesh)
 Method for copying attribute from input mesh meta-data store to current mesh meta-data store, keeping source and target data names the same.
 
std::unique_ptr< MeshBase > & getMesh (const std::string &param_name, const bool allow_invalid=false)
 Takes the name of a MeshGeneratorName parameter and then gets a pointer to the Mesh that MeshGenerator is going to create.
 
std::vector< std::unique_ptr< MeshBase > * > getMeshes (const std::string &param_name)
 Like getMesh(), but for multiple generators.
 
std::unique_ptr< MeshBase > & getMeshByName (const MeshGeneratorName &mesh_generator_name)
 Like getMesh(), but takes the name of another MeshGenerator directly.
 
std::vector< std::unique_ptr< MeshBase > * > getMeshesByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 Like getMeshByName(), but for multiple generators.
 
std::unique_ptr< CSG::CSGBase > & getCSGBase (const std::string &param_name)
 Takes the name of a MeshGeneratorName parameter and then gets a pointer to the CSGBase object that MeshGenerator has created.
 
std::unique_ptr< CSG::CSGBase > & getCSGBaseByName (const MeshGeneratorName &mesh_generator_name)
 Like getCSGBase(), but takes the name of another MeshGenerator directly.
 
std::vector< std::unique_ptr< CSG::CSGBase > * > getCSGBases (const std::string &param_name)
 Like getCSGBase(), but for multiple generators.
 
std::vector< std::unique_ptr< CSG::CSGBase > * > getCSGBasesByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 Like getCSGBaseByName(), but for multiple generators.
 
void declareMeshForSub (const std::string &param_name)
 Declares that a MeshGenerator referenced in the InputParameters is to be used as a dependency of a sub MeshGenerator created by this MeshGenerator (see addSubMeshGenerator)
 
void declareMeshesForSub (const std::string &param_name)
 Like declareMeshForSub(), but for multiple generators.
 
void declareMeshForSubByName (const MeshGeneratorName &mesh_generator_name)
 Like declareMeshForSub(), but takes the name of another MeshGenerator directly.
 
void declareMeshesForSubByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 Like declareMeshForSubByName(), but for multiple generators.
 
std::unique_ptr< MeshBase > buildMeshBaseObject (unsigned int dim=libMesh::invalid_uint)
 Build a MeshBase object whose underlying type will be determined by the Mesh input file block.
 
std::unique_ptr< ReplicatedMesh > buildReplicatedMesh (unsigned int dim=libMesh::invalid_uint)
 Build a replicated mesh.
 
std::unique_ptr< DistributedMesh > buildDistributedMesh (unsigned int dim=libMesh::invalid_uint)
 Build a distributed mesh that has correct remote element removal behavior and geometric ghosting functors based on the simulation objects.
 
template<typename... Ts>
void addMeshSubgenerator (const std::string &type, const std::string &name, Ts... extra_input_parameters)
 Construct a "subgenerator", a different MeshGenerator subclass that will be added to the same MooseApp on the fly.
 
void addMeshSubgenerator (const std::string &type, const std::string &name, InputParameters params)
 Construct a "subgenerator", as above.
 
void declareNullMeshName (const MeshGeneratorName &name)
 Registers the name name as a "null" mesh, which is a MeshGenerator used in InputParameters that will not represent an input mesh when requested via getMesh.
 
template<bool warning>
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 Set solution invalid mark for the given solution ID.
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
template<typename T >
const T & getMeshProperty (const std::string &data_name, const std::string &prefix)
 Method for retrieving a property with the given type and name exists in the mesh meta-data store.
 
template<typename T >
const T & getMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
template<typename T >
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
template<typename T >
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
template<typename T , typename... Args>
T & declareMeshProperty (const std::string &data_name, Args &&... args)
 Methods for writing out attributes to the mesh meta-data store, which can be retrieved from most other MOOSE systems and is recoverable.
 
template<typename T >
T & declareMeshProperty (const std::string &data_name, const T &data_value)
 
template<typename T , typename... Args>
T & setMeshProperty (const std::string &data_name, Args &&... args)
 Method for updating attributes to the mesh meta-data store, which can only be invoked in the MeshGenerator generate routine only if the mesh generator property has already been declared.
 
template<typename T >
T & setMeshProperty (const std::string &data_name, const T &data_value)
 

Static Protected Member Functions

static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

std::unique_ptr< MeshBase > & _input
 the input mesh to be diagnosed
 
MooseMesh *const _mesh
 Pointer to the owning mesh.
 
const bool & _enabled
 Reference to the "enable" InputParameters, used by Controls for toggling on/off MooseObjects.
 
MooseApp_app
 The MOOSE application this is associated with.
 
Factory_factory
 The Factory associated with the MooseApp.
 
ActionFactory_action_factory
 Builds Actions.
 
const std::string & _type
 The type of this class.
 
const std::string & _name
 The name of this class.
 
const InputParameters_pars
 The object's parameters.
 
const Parallel::Communicator_communicator
 

Private Member Functions

void checkSidesetsOrientation (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check sideset orientation near subdomains.
 
void checkWatertightSidesets (const std::unique_ptr< MeshBase > &mesh) const
 
void checkWatertightNodesets (const std::unique_ptr< MeshBase > &mesh) const
 
std::vector< boundary_id_type > findBoundaryOverlap (const std::vector< boundary_id_type > &watertight_boundaries, std::vector< boundary_id_type > &boundary_ids) const
 Helper function that finds the intersection between the given vectors.
 
void checkElementVolumes (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check the element volumes.
 
void checkElementTypes (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check the element types in each subdomain.
 
void checkElementOverlap (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether elements overlap in the mesh.
 
void checkNonPlanarSides (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether there are non-planar sides in the mesh.
 
void checkNonConformalMesh (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether a mesh presents non-conformality.
 
void checkNonConformingFaces (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check for element faces that border material but match no neighbor face.
 
void checkNonConformalMeshFromAdaptivity (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether a mesh presents non-conformality born from adaptivity.
 
void checkLocalJacobians (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether the Jacobians (elem and side) are not negative.
 
void checkNonMatchingEdges (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check for non matching edges.
 
void checkPolygons (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check for non-convex polygons.
 
void diagnosticsLog (std::string msg, const MooseEnum &log_level, bool problem_detected) const
 Utility routine to output the final diagnostics level in the desired mode.
 
virtual std::string meshPropertyPrefix (const std::string &) const override final
 Override of the default prefix to use when getting mesh properties.
 
void checkGetMesh (const MeshGeneratorName &mesh_generator_name, const std::string &param_name) const
 Helper for performing error checking in the getMesh methods.
 
const MeshGeneratorName * getMeshGeneratorNameFromParam (const std::string &param_name, const bool allow_invalid) const
 Helper for getting a MeshGeneratorName parameter.
 
const std::vector< MeshGeneratorName > & getMeshGeneratorNamesFromParam (const std::string &param_name) const
 Helper for getting a std::vector<MeshGeneratorName> parameter.
 
RestartableDataValuesetMeshPropertyHelper (const std::string &data_name)
 Helper for getting a writable reference to a mesh property, used in declareMeshProperty and setMeshProperty.
 
const RestartableDataValuegetMeshPropertyInternal (const std::string &data_name, const std::string &prefix) const
 Helper for getting a mesh property.
 
template<typename... Args>
void mooseErrorInternal (Args &&... args) const
 Helper for forwarding a mooseError to an object's mooseError if it is available (said error will provide more context: object name and type)
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 Internal method for getting a hit node (if available) given a set of parameters.
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 Internal method for getting the message prefix for an object (object type, name, etc).
 

Private Attributes

const MooseEnum _check_sidesets_orientation
 whether to check that sidesets are consistently oriented using neighbor subdomains
 
const MooseEnum _check_watertight_sidesets
 whether to check that each external side is assigned to a sideset
 
const MooseEnum _check_watertight_nodesets
 whether to check that each external node is assigned to a nodeset
 
std::vector< BoundaryName > _watertight_boundary_names
 Names of boundaries to be checked in watertight checks.
 
std::vector< BoundaryID_watertight_boundaries
 IDs of boundaries to be checked in watertight checks.
 
const MooseEnum _check_element_volumes
 whether to check element volumes
 
const Real _min_volume
 minimum size for element volume to be counted as a tiny element
 
const Real _max_volume
 maximum size for element volume to be counted as a big element
 
const MooseEnum _check_element_types
 whether to check different element types in the same sub-domain
 
const MooseEnum _check_element_overlap
 whether to check for intersecting elements
 
const MooseEnum _check_non_planar_sides
 whether to check for elements in different planes (non_planar)
 
const MooseEnum _check_non_conformal_mesh
 whether to check for non-conformal meshes
 
const Real _non_conformality_tol
 tolerance for detecting when meshes are not conformal
 
const MooseEnum _check_nonconforming_faces
 whether to check for element faces that border material but match no neighbor face
 
const MooseEnum _check_non_matching_edges
 
const Real _non_matching_edge_tol
 
const MooseEnum _check_adaptivity_non_conformality
 whether to check for the adaptivity of non-conformal meshes
 
const MooseEnum _check_local_jacobian
 whether to check for negative jacobians in the domain
 
const MooseEnum _check_polygons
 whether to check for non-convex polygons in the mesh
 
const unsigned int _num_outputs
 number of logs to output at most for each check
 
std::set< MeshGeneratorName > _requested_mesh_generators
 The names of the MeshGenerators that were requested in the getMesh methods.
 
std::set< MeshGeneratorName > _requested_mesh_generators_for_sub
 The names of the MeshGenerators that were requested in the declareMeshForSub methods.
 
std::vector< std::pair< std::string, std::unique_ptr< MeshBase > * > > _requested_meshes
 The meshes that were requested by this MeshGenerator; used to verify that any input meshes that are requested are properly released after generation.
 
std::vector< std::pair< std::string, std::unique_ptr< CSG::CSGBase > * > > _requested_csg_bases
 The CSGBase objects that were requested by this MeshGenerator; used to verify that any input meshes that are requested are properly released after generation.
 
std::unique_ptr< MeshBase > _null_mesh = nullptr
 A nullptr to use for when inputs aren't specified.
 
std::unique_ptr< CSG::CSGBase_null_csg_base = nullptr
 A nullptr to use for when inputs aren't specified.
 
std::set< const MeshGenerator *, Comparator_parent_mesh_generators
 The MeshGenerators that are parents to this MeshGenerator.
 
std::set< const MeshGenerator *, Comparator_child_mesh_generators
 The MeshGenerators that are children to this MeshGenerator.
 
std::set< const MeshGenerator *, Comparator_sub_mesh_generators
 The sub MeshGenerators constructed by this MeshGenerator.
 
std::set< std::string > _null_mesh_names
 The declared "null" mesh names that will not represent a mesh in input; see declareNullMeshName()
 
const std::string & _save_with_name
 A user-defined name to save the mesh.
 
const bool _data_only
 Whether or not this mesh generator will run in data only mode.
 
const ParallelParamObject_parent
 
const MooseBase_si_moose_base
 The MooseBase that owns this interface.
 
const FEProblemBase_si_problem
 A pointer to FEProblem base.
 
MooseApp_meta_data_app
 Reference to the application.
 
const MooseObject *const _meta_data_object
 The MooseObject (if any); used for better error handling.
 

Detailed Description

Definition at line 18 of file MeshDiagnosticsGenerator.h.

Member Typedef Documentation

◆ DataFileParameterType

using DataFileInterface::DataFileParameterType = DataFileName
inherited

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

Definition at line 27 of file DataFileInterface.h.

Constructor & Destructor Documentation

◆ MeshDiagnosticsGenerator()

MeshDiagnosticsGenerator::MeshDiagnosticsGenerator ( const InputParameters parameters)

Definition at line 107 of file MeshDiagnosticsGenerator.C.

109 _input(getMesh("input")),
110 _check_sidesets_orientation(getParam<MooseEnum>("examine_sidesets_orientation")),
111 _check_watertight_sidesets(getParam<MooseEnum>("check_for_watertight_sidesets")),
112 _check_watertight_nodesets(getParam<MooseEnum>("check_for_watertight_nodesets")),
113 _watertight_boundary_names(getParam<std::vector<BoundaryName>>("boundaries_to_check")),
114 _check_element_volumes(getParam<MooseEnum>("examine_element_volumes")),
115 _min_volume(getParam<Real>("minimum_element_volumes")),
116 _max_volume(getParam<Real>("maximum_element_volumes")),
117 _check_element_types(getParam<MooseEnum>("examine_element_types")),
118 _check_element_overlap(getParam<MooseEnum>("examine_element_overlap")),
119 _check_non_planar_sides(getParam<MooseEnum>("examine_nonplanar_sides")),
120 _check_non_conformal_mesh(getParam<MooseEnum>("examine_non_conformality")),
121 _non_conformality_tol(getParam<Real>("nonconformal_tol")),
122 _check_nonconforming_faces(getParam<MooseEnum>("examine_nonconforming_faces")),
123 _check_non_matching_edges(getParam<MooseEnum>("examine_non_matching_edges")),
124 _non_matching_edge_tol(getParam<Real>("intersection_tol")),
126 getParam<MooseEnum>("search_for_adaptivity_nonconformality")),
127 _check_local_jacobian(getParam<MooseEnum>("check_local_jacobian")),
128 _check_polygons(getParam<MooseEnum>("check_polygons")),
129 _num_outputs(getParam<unsigned int>("log_length_limit"))
130{
131 // Check that no secondary parameters have been passed with the main check disabled
132 if ((isParamSetByUser("minimum_element_volumes") ||
133 isParamSetByUser("maximum_element_volumes")) &&
134 _check_element_volumes == "NO_CHECK")
135 paramError("examine_element_volumes",
136 "You must set this parameter to true to trigger element size checks");
137 if (isParamSetByUser("nonconformal_tol") && _check_non_conformal_mesh == "NO_CHECK")
138 paramError("examine_non_conformality",
139 "You must set this parameter to true to trigger mesh conformality check");
140 if (_check_sidesets_orientation == "NO_CHECK" && _check_watertight_sidesets == "NO_CHECK" &&
141 _check_watertight_nodesets == "NO_CHECK" && _check_element_volumes == "NO_CHECK" &&
142 _check_element_types == "NO_CHECK" && _check_element_overlap == "NO_CHECK" &&
143 _check_non_planar_sides == "NO_CHECK" && _check_non_conformal_mesh == "NO_CHECK" &&
144 _check_adaptivity_non_conformality == "NO_CHECK" && _check_local_jacobian == "NO_CHECK" &&
145 _check_non_matching_edges == "NO_CHECK" && _check_nonconforming_faces == "NO_CHECK" &&
146 _check_polygons == "NO_CHECK")
147 mooseError("You need to turn on at least one diagnostic. Did you misspell a parameter?");
148}
const MooseEnum _check_element_volumes
whether to check element volumes
const MooseEnum _check_sidesets_orientation
whether to check that sidesets are consistently oriented using neighbor subdomains
const MooseEnum _check_adaptivity_non_conformality
whether to check for the adaptivity of non-conformal meshes
const Real _non_conformality_tol
tolerance for detecting when meshes are not conformal
const MooseEnum _check_element_overlap
whether to check for intersecting elements
const MooseEnum _check_polygons
whether to check for non-convex polygons in the mesh
std::vector< BoundaryName > _watertight_boundary_names
Names of boundaries to be checked in watertight checks.
const MooseEnum _check_watertight_sidesets
whether to check that each external side is assigned to a sideset
const MooseEnum _check_non_planar_sides
whether to check for elements in different planes (non_planar)
std::unique_ptr< MeshBase > & _input
the input mesh to be diagnosed
const MooseEnum _check_non_conformal_mesh
whether to check for non-conformal meshes
const unsigned int _num_outputs
number of logs to output at most for each check
const MooseEnum _check_nonconforming_faces
whether to check for element faces that border material but match no neighbor face
const Real _max_volume
maximum size for element volume to be counted as a big element
const MooseEnum _check_watertight_nodesets
whether to check that each external node is assigned to a nodeset
const MooseEnum _check_element_types
whether to check different element types in the same sub-domain
const Real _min_volume
minimum size for element volume to be counted as a tiny element
const MooseEnum _check_local_jacobian
whether to check for negative jacobians in the domain
MeshGenerators are objects that can modify or add to an existing mesh.
std::unique_ptr< MeshBase > & getMesh(const std::string &param_name, const bool allow_invalid=false)
Takes the name of a MeshGeneratorName parameter and then gets a pointer to the Mesh that MeshGenerato...
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
void paramError(const std::string &param, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
Definition MooseBase.h:457
bool isParamSetByUser(const std::string &name) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
Definition MooseBase.h:205
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition MooseBase.h:271
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition MooseBase.h:406

Member Function Documentation

◆ addChildMeshGenerator()

void MeshGenerator::addChildMeshGenerator ( const MeshGenerator mg,
const AddParentChildKey   
)
inherited

Adds the MeshGenerator mg as a child.

Protected by the AddParentChildKey so that parents can only be added by the MooseApp.

Definition at line 471 of file MeshGenerator.C.

472{
473 mooseAssert(_app.constructingMeshGenerators(), "Should only be called at construction");
474 _child_mesh_generators.insert(&mg);
475}
std::set< const MeshGenerator *, Comparator > _child_mesh_generators
The MeshGenerators that are children to this MeshGenerator.
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition MooseApp.C:3500
MooseApp & _app
The MOOSE application this is associated with.
Definition MooseBase.h:375

◆ addMeshSubgenerator() [1/2]

void MeshGenerator::addMeshSubgenerator ( const std::string &  type,
const std::string &  name,
InputParameters  params 
)
protectedinherited

Construct a "subgenerator", as above.

User code is responsible for constructing valid InputParameters.

Parameters
typeThe type of MeshGenerator
nameThe name of the MeshGenerator
paramsThe parameters to use to construct the MeshGenerator

Definition at line 440 of file MeshGenerator.C.

443{
445 mooseError("Can only call addMeshSubgenerator() during MeshGenerator construction");
446
447 // In case the user forgot it
449
450 // Set this to be data-only if this generator is data only
451 params.set<bool>(data_only_param) = isDataOnly();
452
453 _app.addMeshGenerator(type, name, params);
454 _sub_mesh_generators.insert(&std::as_const(_app).getMeshGenerator(name));
455}
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
std::set< const MeshGenerator *, Comparator > _sub_mesh_generators
The sub MeshGenerators constructed by this MeshGenerator.
static const std::string data_only_param
The name of the private parameter for setting data only.
bool isDataOnly() const
Base class for MOOSE-based applications.
Definition MooseApp.h:110
void addMeshGenerator(const std::string &type, const std::string &name, const InputParameters &params)
Add a mesh generator that will act on the meshes in the system.
Definition MooseApp.h:902
const std::string & type() const
Get the type of this class.
Definition MooseBase.h:93
const std::string & name() const
Get the name of the class.
Definition MooseBase.h:103
static const std::string app_param
The name of the parameter that contains the MooseApp.
Definition MooseBase.h:59

◆ addMeshSubgenerator() [2/2]

template<typename... Ts>
void MeshGenerator::addMeshSubgenerator ( const std::string &  type,
const std::string &  name,
Ts...  extra_input_parameters 
)
protectedinherited

Construct a "subgenerator", a different MeshGenerator subclass that will be added to the same MooseApp on the fly.

Parameters
typeThe type of MeshGenerator
nameThe name of the MeshGenerator
extra_input_parameters... Additional InputParameters to pass

Sub generators must be added in the order that they are executed.

Any input dependencies for a sub generator that come from inputs for this generator must first be declared with the declareMesh(es)ForSub() method.

You can use the output of a sub generator as a mesh in this generator by calling getMesh() with the sub generator's name after adding said sub generator.

Definition at line 593 of file MeshGenerator.h.

596{
597 InputParameters subgenerator_params = _app.getFactory().getValidParams(type);
598
599 subgenerator_params.setParameters(extra_input_parameters...);
600
601 addMeshSubgenerator(type, name, subgenerator_params);
602}
InputParameters getValidParams(const std::string &name) const
Get valid parameters for the object.
Definition Factory.C:68
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
void setParameters(const std::string &name, const T &value, Ts... extra_input_parameters)
Given a series of parameters names and values, sets each name to the corresponding value.
void addMeshSubgenerator(const std::string &type, const std::string &name, Ts... extra_input_parameters)
Construct a "subgenerator", a different MeshGenerator subclass that will be added to the same MooseAp...
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
Definition MooseApp.h:407

Referenced by MeshGenerator::addMeshSubgenerator(), OverlayMeshGenerator::OverlayMeshGenerator(), and SideSetExtruderGenerator::SideSetExtruderGenerator().

◆ addParentMeshGenerator()

void MeshGenerator::addParentMeshGenerator ( const MeshGenerator mg,
const AddParentChildKey   
)
inherited

Adds the MeshGenerator mg as a parent.

Protected by the AddParentChildKey so that parents can only be added by the MooseApp.

Definition at line 464 of file MeshGenerator.C.

465{
466 mooseAssert(_app.constructingMeshGenerators(), "Should only be called at construction");
467 _parent_mesh_generators.insert(&mg);
468}
std::set< const MeshGenerator *, Comparator > _parent_mesh_generators
The MeshGenerators that are parents to this MeshGenerator.

◆ buildDistributedMesh()

std::unique_ptr< DistributedMesh > MeshGenerator::buildDistributedMesh ( unsigned int  dim = libMesh::invalid_uint)
protectedinherited

Build a distributed mesh that has correct remote element removal behavior and geometric ghosting functors based on the simulation objects.

Parameters
dimThe logical dimension of the mesh, e.g. 3 for hexes/tets, 2 for quads/tris. If the caller doesn't specify a value for dim, then the value in the Mesh input file block will be used

Definition at line 333 of file MeshGenerator.C.

334{
335 mooseAssert(_mesh, "Need a MooseMesh object");
336 return _mesh->buildTypedMesh<DistributedMesh>(dim);
337}
unsigned int dim
MooseMesh *const _mesh
Pointer to the owning mesh.
std::unique_ptr< T > buildTypedMesh(unsigned int dim=libMesh::invalid_uint)
Shortcut method to construct a unique pointer to a libMesh mesh instance.
Definition MooseMesh.h:2264

Referenced by DistributedRectilinearMeshGenerator::generate().

◆ buildMeshBaseObject()

std::unique_ptr< MeshBase > MeshGenerator::buildMeshBaseObject ( unsigned int  dim = libMesh::invalid_uint)
protectedinherited

Build a MeshBase object whose underlying type will be determined by the Mesh input file block.

Parameters
dimThe logical dimension of the mesh, e.g. 3 for hexes/tets, 2 for quads/tris. If the caller doesn't specify a value for dim, then the value in the Mesh input file block will be used

Definition at line 319 of file MeshGenerator.C.

320{
321 mooseAssert(_mesh, "Need a MooseMesh object");
322 return _mesh->buildMeshBaseObject(dim);
323}
std::unique_ptr< MeshBase > buildMeshBaseObject(unsigned int dim=libMesh::invalid_uint)
Method to construct a libMesh::MeshBase object that is normally set and used by the MooseMesh object ...
Definition MooseMesh.C:2918

Referenced by Boundary2DDelaunayGenerator::General2DDelaunay(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), AdvancedExtruderGenerator::generate(), AnnularMeshGenerator::generate(), BlockToMeshConverterGenerator::generate(), Boundary2DDelaunayGenerator::generate(), CartesianMeshGenerator::generate(), ElementGenerator::generate(), ExamplePatchMeshGenerator::generate(), FileMeshGenerator::generate(), GeneratedMeshGenerator::generate(), MeshExtruderGenerator::generate(), PolyLineMeshFollowingNodeSetGenerator::generate(), PolyLineMeshGenerator::generate(), ProjectSideSetOntoLevelSetGenerator::generate(), SphereMeshGenerator::generate(), SubdomainsFromPartitionerGenerator::generate(), and TransfiniteMeshGenerator::generate().

◆ buildReplicatedMesh()

std::unique_ptr< ReplicatedMesh > MeshGenerator::buildReplicatedMesh ( unsigned int  dim = libMesh::invalid_uint)
protectedinherited

Build a replicated mesh.

Parameters
dimThe logical dimension of the mesh, e.g. 3 for hexes/tets, 2 for quads/tris. If the caller doesn't specify a value for dim, then the value in the Mesh input file block will be used

Definition at line 326 of file MeshGenerator.C.

327{
328 mooseAssert(_mesh, "Need a MooseMesh object");
329 return _mesh->buildTypedMesh<ReplicatedMesh>(dim);
330}

Referenced by BSplineCurveGenerator::generate(), ConcentricCircleMeshGenerator::generate(), FillBetweenCurvesGenerator::generate(), FillBetweenPointVectorsGenerator::generate(), FillBetweenSidesetsGenerator::generate(), ImageMeshGenerator::generate(), ParsedCurveGenerator::generate(), RinglebMeshGenerator::generate(), SpiralAnnularMeshGenerator::generate(), and SurfaceSubdomainsDelaunayRemesher::generate().

◆ callMooseError() [1/2]

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

External method for calling moose error with added object context.

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

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

Definition at line 114 of file MooseBase.C.

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

◆ callMooseError() [2/2]

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

External method for calling moose error with added object context.

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

Definition at line 105 of file MooseBase.C.

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

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

◆ checkElementOverlap()

void MeshDiagnosticsGenerator::checkElementOverlap ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check whether elements overlap in the mesh.

Definition at line 566 of file MeshDiagnosticsGenerator.C.

567{
568 {
569 unsigned int num_elem_overlaps = 0;
570 auto pl = mesh->sub_point_locator();
571 // loop on nodes, assumed replicated mesh
572 for (auto & node : mesh->node_ptr_range())
573 {
574 // find all the elements around this node
575 std::set<const Elem *> elements;
576 (*pl)(*node, elements);
577
578 for (auto & elem : elements)
579 {
580 if (!elem->contains_point(*node))
581 continue;
582
583 // not overlapping inside the element if part of its nodes
584 bool found = false;
585 for (auto & elem_node : elem->node_ref_range())
586 if (*node == elem_node)
587 {
588 found = true;
589 break;
590 }
591 // not overlapping inside the element if right on its side
592 bool on_a_side = false;
593 for (const auto & elem_side_index : elem->side_index_range())
594 if (elem->side_ptr(elem_side_index)->contains_point(*node, _non_conformality_tol))
595 on_a_side = true;
596 if (!found && !on_a_side)
597 {
598 num_elem_overlaps++;
599 if (num_elem_overlaps < _num_outputs)
600 _console << "Element overlap detected at : " << *node << std::endl;
601 else if (num_elem_overlaps == _num_outputs)
602 _console << "Maximum output reached, log is silenced" << std::endl;
603 }
604 }
605 }
606
607 diagnosticsLog("Number of elements overlapping (node-based heuristics): " +
608 Moose::stringify(num_elem_overlaps),
610 num_elem_overlaps);
611 num_elem_overlaps = 0;
612
613 // loop on all elements in mesh: assumes a replicated mesh
614 for (auto & elem : mesh->active_element_ptr_range())
615 {
616 // find all the elements around the centroid of this element
617 std::set<const Elem *> overlaps;
618 (*pl)(elem->vertex_average(), overlaps);
619
620 if (overlaps.size() > 1)
621 {
622 num_elem_overlaps++;
623 if (num_elem_overlaps < _num_outputs)
624 _console << "Element overlap detected with element : " << elem->id() << " near point "
625 << elem->vertex_average() << std::endl;
626 else if (num_elem_overlaps == _num_outputs)
627 _console << "Maximum output reached, log is silenced" << std::endl;
628 }
629 }
630 diagnosticsLog("Number of elements overlapping (centroid-based heuristics): " +
631 Moose::stringify(num_elem_overlaps),
633 num_elem_overlaps);
634 }
635}
if(!dmm->_nl) SETERRQ(PETSC_COMM_WORLD
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
void diagnosticsLog(std::string msg, const MooseEnum &log_level, bool problem_detected) const
Utility routine to output the final diagnostics level in the desired mode.
MeshBase & mesh
std::string stringify(const T &t)
conversion to string
Definition Conversion.h:64

Referenced by generate().

◆ checkElementTypes()

void MeshDiagnosticsGenerator::checkElementTypes ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check the element types in each subdomain.

Definition at line 538 of file MeshDiagnosticsGenerator.C.

539{
540 std::set<subdomain_id_type> ids;
541 mesh->subdomain_ids(ids);
542 // loop on sub-domain
543 for (auto & id : ids)
544 {
545 // ElemType defines an enum for geometric element types
546 std::set<ElemType> types;
547 // loop on elements within this sub-domain
548 for (auto & elem : mesh->active_subdomain_elements_ptr_range(id))
549 types.insert(elem->type());
550
551 std::string elem_type_names = "";
552 for (auto & elem_type : types)
553 elem_type_names += " " + Moose::stringify(elem_type);
554
555 _console << "Element type in subdomain " + mesh->subdomain_name(id) + " (" +
556 std::to_string(id) + ") :" + elem_type_names
557 << std::endl;
558 if (types.size() > 1)
559 diagnosticsLog("Two different element types in subdomain " + std::to_string(id),
561 true);
562 }
563}
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
std::string stringify(MOOSEIOType type)
Definition NEML2Utils.C:18

Referenced by generate().

◆ checkElementVolumes()

void MeshDiagnosticsGenerator::checkElementVolumes ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check the element volumes.

Definition at line 486 of file MeshDiagnosticsGenerator.C.

487{
488 unsigned int num_tiny_elems = 0;
489 unsigned int num_negative_elems = 0;
490 unsigned int num_big_elems = 0;
491 // loop elements within the mesh (assumes replicated)
492 for (auto & elem : mesh->active_element_ptr_range())
493 {
494 Real vol = elem->volume();
495
496 if (vol <= _min_volume)
497 {
498 if (num_tiny_elems < _num_outputs)
499 _console << "Element with volume below threshold detected : \n"
500 << "id " << elem->id() << " near point " << elem->vertex_average() << std::endl;
501 else if (num_tiny_elems == _num_outputs)
502 _console << "Maximum output reached, log is silenced" << std::endl;
503 num_tiny_elems++;
504 }
505 if (vol < 0)
506 {
507 if (num_negative_elems < _num_outputs)
508 _console << "Element with negative volume detected : \n"
509 << "id " << elem->id() << " near point " << elem->vertex_average() << std::endl;
510 else if (num_negative_elems == _num_outputs)
511 _console << "Maximum output reached, log is silenced" << std::endl;
512 num_negative_elems++;
513 }
514 if (vol >= _max_volume)
515 {
516 if (num_big_elems < _num_outputs)
517 _console << "Element with volume above threshold detected : \n"
518 << elem->get_info() << std::endl;
519 else if (num_big_elems == _num_outputs)
520 _console << "Maximum output reached, log is silenced" << std::endl;
521 num_big_elems++;
522 }
523 }
524 diagnosticsLog("Number of elements below prescribed minimum volume : " +
525 std::to_string(num_tiny_elems),
527 num_tiny_elems);
528 diagnosticsLog("Number of elements with negative volume : " + std::to_string(num_negative_elems),
530 num_negative_elems);
531 diagnosticsLog("Number of elements above prescribed maximum volume : " +
532 std::to_string(num_big_elems),
534 num_big_elems);
535}
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Referenced by generate().

◆ checkGetMesh()

void MeshGenerator::checkGetMesh ( const MeshGeneratorName &  mesh_generator_name,
const std::string &  param_name 
) const
privateinherited

Helper for performing error checking in the getMesh methods.

Definition at line 158 of file MeshGenerator.C.

160{
161 mooseAssert(!mesh_generator_name.empty(), "Empty name");
162 const auto & mg_sys = _app.getMeshGeneratorSystem();
164 mooseError("Cannot get a mesh outside of construction");
165 if (!mg_sys.hasMeshGenerator(mesh_generator_name) && !isNullMeshName(mesh_generator_name))
166 {
167 std::stringstream error;
168 error << "The requested MeshGenerator with name '" << mesh_generator_name << "' ";
169 if (mg_sys.hasMeshGeneratorParams(mesh_generator_name))
170 error << "was found, but has not been constructed yet.\n\nThis can occur when your "
171 "dependencies are not properly defined and we cannot infer the proper construction "
172 "order of your MeshGenerators.\n\nThe most likely case is a sub generator whose "
173 "input(s) are not declared as a sub dependency in the generator creating them.";
174 else
175 error << "was not found.\nMesh generators that can be found: "
176 << Moose::stringify(mg_sys.getMeshGeneratorNames());
177
178 if (param_name.size())
179 paramError(param_name, error.str());
180 else
181 mooseError(error.str());
182 }
183
184#ifdef MOOSE_MFEM_ENABLED
185 if (mg_sys.hasMeshGenerator(mesh_generator_name))
186 {
187 const auto is_mfem = [](const InputParameters & pars)
188 {
189 const auto * const flag = pars.queryParam<bool>("_mfem_mesh_generator");
190 return flag && *flag;
191 };
192 const auto & parent = mg_sys.getMeshGenerator(mesh_generator_name);
193 const bool parent_is_mfem = is_mfem(parent.parameters());
194 const bool this_is_mfem = is_mfem(parameters());
195 if (parent_is_mfem != this_is_mfem)
196 {
197 const auto & mfem_name = parent_is_mfem ? mesh_generator_name : name();
198 const auto & mfem_type = parent_is_mfem ? parent.type() : type();
199 const auto & libmesh_name = parent_is_mfem ? name() : mesh_generator_name;
200 const auto & libmesh_type = parent_is_mfem ? type() : parent.type();
201 const std::string msg = "Cannot chain MFEM-native mesh generator '" + mfem_name +
202 "' of type '" + mfem_type + "' with libMesh-native mesh generator '" +
203 libmesh_name + "' of type '" + libmesh_type +
204 "'. MFEM and libMesh mesh generators cannot be mixed within the "
205 "same generator chain.";
206 if (param_name.size())
207 paramError(param_name, msg);
208 else
209 mooseError(msg);
210 }
211 }
212#endif
213}
bool hasGenerateCSG() const
bool isNullMeshName(const MeshGeneratorName &name) const
MeshGeneratorSystem & getMeshGeneratorSystem()
Gets the system that manages the MeshGenerators.
Definition MooseApp.h:886

Referenced by MeshGenerator::declareMeshForSubByName(), MeshGenerator::getCSGBaseByName(), MeshGenerator::getMeshByName(), MeshGenerator::getMeshGeneratorNameFromParam(), and MeshGenerator::getMeshGeneratorNamesFromParam().

◆ checkLocalJacobians()

void MeshDiagnosticsGenerator::checkLocalJacobians ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check whether the Jacobians (elem and side) are not negative.

Definition at line 1416 of file MeshDiagnosticsGenerator.C.

1417{
1418 unsigned int num_bad_elem_qp_jacobians = 0;
1419 // Get a high-ish order quadrature
1420 auto qrule_dimension = mesh->mesh_dimension();
1421 libMesh::QGauss qrule(qrule_dimension, FIFTH);
1422
1423 // Use a constant monomial
1424 const libMesh::FEType fe_type(CONSTANT, libMesh::MONOMIAL);
1425
1426 // Initialize a basic constant monomial shape function everywhere
1427 std::unique_ptr<libMesh::FEBase> fe_elem;
1428 if (mesh->mesh_dimension() == 1)
1429 fe_elem = std::make_unique<libMesh::FEMonomial<1>>(fe_type);
1430 if (mesh->mesh_dimension() == 2)
1431 fe_elem = std::make_unique<libMesh::FEMonomial<2>>(fe_type);
1432 else
1433 fe_elem = std::make_unique<libMesh::FEMonomial<3>>(fe_type);
1434
1435 fe_elem->get_JxW();
1436 fe_elem->attach_quadrature_rule(&qrule);
1437
1438 // Check elements (assumes serialized mesh)
1439 for (const auto & elem : mesh->element_ptr_range())
1440 {
1441 // Handle mixed-dimensional meshes
1442 if (qrule_dimension != elem->dim())
1443 {
1444 // Re-initialize a quadrature
1445 qrule_dimension = elem->dim();
1446 qrule = libMesh::QGauss(qrule_dimension, FIFTH);
1447
1448 // Re-initialize a monomial FE
1449 if (elem->dim() == 1)
1450 fe_elem = std::make_unique<libMesh::FEMonomial<1>>(fe_type);
1451 if (elem->dim() == 2)
1452 fe_elem = std::make_unique<libMesh::FEMonomial<2>>(fe_type);
1453 else
1454 fe_elem = std::make_unique<libMesh::FEMonomial<3>>(fe_type);
1455
1456 fe_elem->get_JxW();
1457 fe_elem->attach_quadrature_rule(&qrule);
1458 }
1459
1460 try
1461 {
1462 fe_elem->reinit(elem);
1463 }
1464 catch (std::exception & e)
1465 {
1466 if (!strstr(e.what(), "Jacobian"))
1467 throw;
1468
1469 num_bad_elem_qp_jacobians++;
1470 if (num_bad_elem_qp_jacobians < _num_outputs)
1471 _console << "Bad Jacobian found in element " << elem->id() << " near point "
1472 << elem->vertex_average() << std::endl;
1473 else if (num_bad_elem_qp_jacobians == _num_outputs)
1474 _console << "Maximum log output reached, silencing output" << std::endl;
1475 }
1476 }
1477 diagnosticsLog("Number of elements with a bad Jacobian: " +
1478 Moose::stringify(num_bad_elem_qp_jacobians),
1480 num_bad_elem_qp_jacobians);
1481
1482 unsigned int num_bad_side_qp_jacobians = 0;
1483 // Get a high-ish order side quadrature
1484 auto qrule_side_dimension = mesh->mesh_dimension() - 1;
1485 libMesh::QGauss qrule_side(qrule_side_dimension, FIFTH);
1486
1487 // Use the side quadrature now
1488 fe_elem->attach_quadrature_rule(&qrule_side);
1489
1490 // Check element sides
1491 for (const auto & elem : mesh->element_ptr_range())
1492 {
1493 // Handle mixed-dimensional meshes
1494 if (int(qrule_side_dimension) != elem->dim() - 1)
1495 {
1496 qrule_side_dimension = elem->dim() - 1;
1497 qrule_side = libMesh::QGauss(qrule_side_dimension, FIFTH);
1498
1499 // Re-initialize a side FE
1500 if (elem->dim() == 1)
1501 fe_elem = std::make_unique<libMesh::FEMonomial<1>>(fe_type);
1502 if (elem->dim() == 2)
1503 fe_elem = std::make_unique<libMesh::FEMonomial<2>>(fe_type);
1504 else
1505 fe_elem = std::make_unique<libMesh::FEMonomial<3>>(fe_type);
1506
1507 fe_elem->get_JxW();
1508 fe_elem->attach_quadrature_rule(&qrule_side);
1509 }
1510
1511 for (const auto & side : elem->side_index_range())
1512 {
1513 try
1514 {
1515 fe_elem->reinit(elem, side);
1516 }
1517 catch (std::exception & e)
1518 {
1519 // In 2D dbg/devel modes libMesh could hit
1520 // libmesh_assert_not_equal_to on a side reinit
1521 if (!strstr(e.what(), "Jacobian") && !strstr(e.what(), "det != 0"))
1522 throw;
1523
1524 num_bad_side_qp_jacobians++;
1525 if (num_bad_side_qp_jacobians < _num_outputs)
1526 _console << "Bad Jacobian found in side " << side << " of element" << elem->id()
1527 << " near point " << elem->vertex_average() << std::endl;
1528 else if (num_bad_side_qp_jacobians == _num_outputs)
1529 _console << "Maximum log output reached, silencing output" << std::endl;
1530 }
1531 }
1532 }
1533 diagnosticsLog("Number of element sides with bad Jacobians: " +
1534 Moose::stringify(num_bad_side_qp_jacobians),
1536 num_bad_side_qp_jacobians);
1537}
virtual_for_inffe const std::vector< Real > & get_JxW() const

Referenced by generate().

◆ checkNonConformalMesh()

void MeshDiagnosticsGenerator::checkNonConformalMesh ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check whether a mesh presents non-conformality.

Definition at line 699 of file MeshDiagnosticsGenerator.C.

700{
701 unsigned int num_nonconformal_nodes = 0;
703 mesh, _console, _num_outputs, _non_conformality_tol, num_nonconformal_nodes);
704 diagnosticsLog("Number of non-conformal nodes: " + Moose::stringify(num_nonconformal_nodes),
706 num_nonconformal_nodes);
707}
void checkNonConformalMesh(const std::unique_ptr< libMesh::MeshBase > &mesh, const ConsoleStream &console, const unsigned int num_outputs, const Real conformality_tol, unsigned int &num_nonconformal_nodes)

Referenced by generate().

◆ checkNonConformalMeshFromAdaptivity()

void MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check whether a mesh presents non-conformality born from adaptivity.

Definition at line 768 of file MeshDiagnosticsGenerator.C.

770{
771 unsigned int num_likely_AMR_created_nonconformality = 0;
772 auto pl = mesh->sub_point_locator();
773 pl->set_close_to_point_tol(_non_conformality_tol);
774
775 // We have to make a copy because adding the new parent element to the mesh
776 // will modify the mesh for the analysis of the next nodes
777 // Make a copy of the mesh, add this element
778 auto mesh_copy = mesh->clone();
779 libMesh::MeshRefinement mesh_refiner(*mesh_copy);
780
781 // loop on nodes, assumes a replicated mesh
782 for (auto & node : mesh->node_ptr_range())
783 {
784 // find all the elements around this node
785 std::set<const Elem *> elements_around;
786 (*pl)(*node, elements_around);
787
788 // Keep track of the refined elements and the coarse element
789 std::set<const Elem *> fine_elements;
790 std::set<const Elem *> coarse_elements;
791
792 // loop through the set of elements near this node
793 for (auto elem : elements_around)
794 {
795 // If the node is not part of this element's nodes, it is a
796 // case of non-conformality
797 bool node_on_elem = false;
798
799 if (elem->get_node_index(node) != libMesh::invalid_uint)
800 {
801 node_on_elem = true;
802 // non-vertex nodes are not cause for the kind of non-conformality we are looking for
803 if (!elem->is_vertex(elem->get_node_index(node)))
804 continue;
805 }
806
807 // Keep track of all the elements this node is a part of. They are potentially the
808 // 'fine' (refined) elements next to a coarser element
809 if (node_on_elem)
810 fine_elements.insert(elem);
811 // Else, the node is not part of the element considered, so if the element had been part
812 // of an AMR-created non-conformality, this element is on the coarse side
813 if (!node_on_elem)
814 coarse_elements.insert(elem);
815 }
816
817 // all the elements around contained the node as one of their nodes
818 // if the coarse and refined sides are not stitched together, this check can fail,
819 // as nodes that are physically near one element are not part of it because of the lack of
820 // stitching (overlapping nodes)
821 if (fine_elements.size() == elements_around.size())
822 continue;
823
824 if (fine_elements.empty())
825 continue;
826
827 // Depending on the type of element, we already know the number of elements we expect
828 // to be part of this set of likely refined candidates for a given non-conformal node to
829 // examine. We can only decide if it was born out of AMR if it's the center node of the face
830 // of a coarse element near refined elements
831 const auto elem_type = (*fine_elements.begin())->type();
832 if ((elem_type == QUAD4 || elem_type == QUAD8 || elem_type == QUAD9) &&
833 fine_elements.size() != 2)
834 continue;
835 else if ((elem_type == HEX8 || elem_type == HEX20 || elem_type == HEX27) &&
836 fine_elements.size() != 4)
837 continue;
838 else if ((elem_type == TRI3 || elem_type == TRI6 || elem_type == TRI7) &&
839 fine_elements.size() != 3)
840 continue;
841 else if ((elem_type == TET4 || elem_type == TET10 || elem_type == TET14) &&
842 (fine_elements.size() % 2 != 0))
843 continue;
844
845 // only one coarse element in front of refined elements except for tets. Whatever we're
846 // looking at is not the interface between coarse and refined elements
847 // Tets are split on their edges (rather than the middle of a face) so there could be any
848 // number of coarse elements in front of the node non-conformality created by refinement
849 if (elem_type != TET4 && elem_type != TET10 && elem_type != TET14 && coarse_elements.size() > 1)
850 continue;
851
852 // There exists non-conformality, the node should have been a node of all the elements
853 // that are close enough to the node, and it is not
854
855 // Nodes of the tentative parent element
856 std::vector<const Node *> tentative_coarse_nodes;
857
858 // For quads and hexes, there is one (quad) or four (hexes) sides that are tied to this node
859 // at the non-conformal interface between the refined elements and a coarse element
860 if (elem_type == QUAD4 || elem_type == QUAD8 || elem_type == QUAD9 || elem_type == HEX8 ||
861 elem_type == HEX20 || elem_type == HEX27)
862 {
863 const auto elem = *fine_elements.begin();
864
865 // Find which sides (of the elements) the node considered is part of
866 std::vector<Elem *> node_on_sides;
867 unsigned int side_inside_parent = std::numeric_limits<unsigned int>::max();
868 for (auto i : make_range(elem->n_sides()))
869 {
870 const auto side = elem->side_ptr(i);
871 std::vector<const Node *> other_nodes_on_side;
872 bool node_on_side = false;
873 for (const auto & elem_node : side->node_ref_range())
874 {
875 if (*node == elem_node)
876 node_on_side = true;
877 else
878 other_nodes_on_side.emplace_back(&elem_node);
879 }
880 // node is on the side, but is it the side that goes away from the coarse element?
881 if (node_on_side)
882 {
883 // if all the other nodes on this side are in one of the other potentially refined
884 // elements, it's one of the side(s) (4 sides in a 3D hex for example) inside the
885 // parent
886 bool all_side_nodes_are_shared = true;
887 for (const auto & other_node : other_nodes_on_side)
888 {
889 bool shared_with_a_fine_elem = false;
890 for (const auto & other_elem : fine_elements)
891 if (other_elem != elem &&
892 other_elem->get_node_index(other_node) != libMesh::invalid_uint)
893 shared_with_a_fine_elem = true;
894
895 if (!shared_with_a_fine_elem)
896 all_side_nodes_are_shared = false;
897 }
898 if (all_side_nodes_are_shared)
899 {
900 side_inside_parent = i;
901 // We stop examining sides, it does not matter which side we pick inside the parent
902 break;
903 }
904 }
905 }
906 if (side_inside_parent == std::numeric_limits<unsigned int>::max())
907 continue;
908
909 // Gather the other potential elements in the refined element:
910 // they are point neighbors of the node that is shared between all the elements flagged
911 // for the non-conformality
912 // Find shared node
913 const auto interior_side = elem->side_ptr(side_inside_parent);
914 const Node * interior_node = nullptr;
915 for (const auto & other_node : interior_side->node_ref_range())
916 {
917 if (other_node == *node)
918 continue;
919 bool in_all_node_neighbor_elements = true;
920 for (auto other_elem : fine_elements)
921 {
922 if (other_elem->get_node_index(&other_node) == libMesh::invalid_uint)
923 in_all_node_neighbor_elements = false;
924 }
925 if (in_all_node_neighbor_elements)
926 {
927 interior_node = &other_node;
928 break;
929 }
930 }
931 // Did not find interior node. Probably not AMR
932 if (!interior_node)
933 continue;
934
935 // Add point neighbors of interior node to list of potentially refined elements
936 std::set<const Elem *> all_elements;
937 elem->find_point_neighbors(*interior_node, all_elements);
938
939 if (elem_type == QUAD4 || elem_type == QUAD8 || elem_type == QUAD9)
940 {
942 *interior_node, *node, *elem, tentative_coarse_nodes, fine_elements);
943 if (!success)
944 continue;
945 }
946 // For hexes we first look at the fine-neighbors of the non-conformality
947 // then the fine elements neighbors of the center 'node' of the potential parent
948 else
949 {
950 // Get the coarse neighbor side to be able to recognize nodes that should become part of
951 // the coarse parent
952 const auto & coarse_elem = *coarse_elements.begin();
953 unsigned short coarse_side_i = 0;
954 for (const auto & coarse_side_index : coarse_elem->side_index_range())
955 {
956 const auto coarse_side_ptr = coarse_elem->side_ptr(coarse_side_index);
957 // The side of interest is the side that contains the non-conformality
958 if (!coarse_side_ptr->close_to_point(*node, 10 * _non_conformality_tol))
959 continue;
960 else
961 {
962 coarse_side_i = coarse_side_index;
963 break;
964 }
965 }
966 const auto coarse_side = coarse_elem->side_ptr(coarse_side_i);
967
968 // We did not find the side of the coarse neighbor near the refined elements
969 // Try again at another node
970 if (!coarse_side)
971 continue;
972
973 // We cant directly use the coarse neighbor nodes
974 // - The user might be passing a disjoint mesh
975 // - There could two levels of refinement separating the coarse neighbor and its refined
976 // counterparts
977 // We use the fine element nodes
978 unsigned int i = 0;
979 tentative_coarse_nodes.resize(4);
980 for (const auto & elem_1 : fine_elements)
981 for (const auto & coarse_node : elem_1->node_ref_range())
982 {
983 bool node_shared = false;
984 for (const auto & elem_2 : fine_elements)
985 {
986 if (elem_2 != elem_1)
987 if (elem_2->get_node_index(&coarse_node) != libMesh::invalid_uint)
988 node_shared = true;
989 }
990 // A node for the coarse parent will appear in only one fine neighbor (not shared)
991 // and will lay on the side of the coarse neighbor
992 // We only care about the coarse neighbor vertex nodes
993 if (!node_shared && coarse_side->close_to_point(coarse_node, _non_conformality_tol) &&
994 elem_1->is_vertex(elem_1->get_node_index(&coarse_node)))
995 tentative_coarse_nodes[i++] = &coarse_node;
996 mooseAssert(i <= 5, "We went too far in this index");
997 }
998
999 // We did not find 4 coarse nodes. Mesh might be disjoint and the coarse element does not
1000 // contain the fine elements nodes we found
1001 if (i != 4)
1002 continue;
1003
1004 // Need to order these nodes to form a valid quad / base of an hex
1005 // We go around the axis formed by the node and the interior node
1006 Point axis = *interior_node - *node;
1007 const auto start_circle = elem->vertex_average();
1009 tentative_coarse_nodes, *interior_node, start_circle, axis);
1010 tentative_coarse_nodes.resize(8);
1011
1012 // Use the neighbors of the fine elements that contain these nodes to get the vertex
1013 // nodes
1014 for (const auto & elem : fine_elements)
1015 {
1016 // Find the index of the coarse node for the starting element
1017 unsigned int node_index = 0;
1018 for (const auto & coarse_node : tentative_coarse_nodes)
1019 {
1020 if (elem->get_node_index(coarse_node) != libMesh::invalid_uint)
1021 break;
1022 node_index++;
1023 }
1024
1025 // Get the neighbor element that is part of the fine elements to coarsen together
1026 for (const auto & neighbor : elem->neighbor_ptr_range())
1027 if (all_elements.count(neighbor) && !fine_elements.count(neighbor))
1028 {
1029 // Find the coarse node for the neighbor
1030 const Node * coarse_elem_node = nullptr;
1031 for (const auto & fine_node : neighbor->node_ref_range())
1032 {
1033 if (!neighbor->is_vertex(neighbor->get_node_index(&fine_node)))
1034 continue;
1035 bool node_shared = false;
1036 for (const auto & elem_2 : all_elements)
1037 if (elem_2 != neighbor &&
1038 elem_2->get_node_index(&fine_node) != libMesh::invalid_uint)
1039 node_shared = true;
1040 if (!node_shared)
1041 {
1042 coarse_elem_node = &fine_node;
1043 break;
1044 }
1045 }
1046 // Insert the coarse node at the right place
1047 tentative_coarse_nodes[node_index + 4] = coarse_elem_node;
1048 mooseAssert(node_index + 4 < tentative_coarse_nodes.size(), "Indexed too far");
1049 mooseAssert(coarse_elem_node, "Did not find last coarse element node");
1050 }
1051 }
1052 }
1053
1054 // No need to separate fine elements near the non-conformal node and away from it
1055 fine_elements = all_elements;
1056 }
1057 // For TRI elements, we use the fine triangle element at the center of the potential
1058 // coarse triangle element
1059 else if (elem_type == TRI3 || elem_type == TRI6 || elem_type == TRI7)
1060 {
1061 // Find the center element
1062 // It's the only element that shares a side with both of the other elements near the node
1063 // considered
1064 const Elem * center_elem = nullptr;
1065 for (const auto refined_elem_1 : fine_elements)
1066 {
1067 unsigned int num_neighbors = 0;
1068 for (const auto refined_elem_2 : fine_elements)
1069 {
1070 if (refined_elem_1 == refined_elem_2)
1071 continue;
1072 if (refined_elem_1->has_neighbor(refined_elem_2))
1073 num_neighbors++;
1074 }
1075 if (num_neighbors >= 2)
1076 center_elem = refined_elem_1;
1077 }
1078 // Did not find the center fine element, probably not AMR
1079 if (!center_elem)
1080 continue;
1081 // Now get the tentative coarse element nodes
1082 for (const auto refined_elem : fine_elements)
1083 {
1084 if (refined_elem == center_elem)
1085 continue;
1086 for (const auto & other_node : refined_elem->node_ref_range())
1087 if (center_elem->get_node_index(&other_node) == libMesh::invalid_uint &&
1088 refined_elem->is_vertex(refined_elem->get_node_index(&other_node)))
1089 tentative_coarse_nodes.push_back(&other_node);
1090 }
1091
1092 // Get the final tentative new coarse element node, on the other side of the center
1093 // element from the non-conformality
1094 unsigned int center_side_opposite_node = std::numeric_limits<unsigned int>::max();
1095 for (auto side_index : center_elem->side_index_range())
1096 if (center_elem->side_ptr(side_index)->get_node_index(node) == libMesh::invalid_uint)
1097 center_side_opposite_node = side_index;
1098 const auto neighbor_on_other_side_of_opposite_center_side =
1099 center_elem->neighbor_ptr(center_side_opposite_node);
1100
1101 // Element is on a boundary, cannot form a coarse element
1102 if (!neighbor_on_other_side_of_opposite_center_side)
1103 continue;
1104
1105 fine_elements.insert(neighbor_on_other_side_of_opposite_center_side);
1106 for (const auto & tri_node : neighbor_on_other_side_of_opposite_center_side->node_ref_range())
1107 if (neighbor_on_other_side_of_opposite_center_side->is_vertex(
1108 neighbor_on_other_side_of_opposite_center_side->get_node_index(&tri_node)) &&
1109 center_elem->side_ptr(center_side_opposite_node)->get_node_index(&tri_node) ==
1111 tentative_coarse_nodes.push_back(&tri_node);
1112
1113 mooseAssert(center_side_opposite_node != std::numeric_limits<unsigned int>::max(),
1114 "Did not find the side opposite the non-conformality");
1115 mooseAssert(tentative_coarse_nodes.size() == 3,
1116 "We are forming a coarsened triangle element");
1117 }
1118 // For TET elements, it's very different because the non-conformality does not happen inside
1119 // of a face, but on an edge of one or more coarse elements
1120 else if (elem_type == TET4 || elem_type == TET10 || elem_type == TET14)
1121 {
1122 // There are 4 tets on the tips of the coarsened tet and 4 tets inside
1123 // let's identify all of them
1124 std::set<const Elem *> tips_tets;
1125 std::set<const Elem *> inside_tets;
1126
1127 // pick a coarse element and work with its fine neighbors
1128 const Elem * coarse_elem = nullptr;
1129 std::set<const Elem *> fine_tets;
1130 for (auto & coarse_one : coarse_elements)
1131 {
1132 for (const auto & elem : fine_elements)
1133 // for two levels of refinement across, this is not working
1134 // we would need a "has_face_embedded_in_this_other_ones_face" routine
1135 if (elem->has_neighbor(coarse_one))
1136 fine_tets.insert(elem);
1137
1138 if (fine_tets.size())
1139 {
1140 coarse_elem = coarse_one;
1141 break;
1142 }
1143 }
1144 // There's no coarse element neighbor to a group of finer tets, not AMR
1145 if (!coarse_elem)
1146 continue;
1147
1148 // There is one last point neighbor of the node that is sandwiched between two neighbors
1149 for (const auto & elem : fine_elements)
1150 {
1151 int num_face_neighbors = 0;
1152 for (const auto & tet : fine_tets)
1153 if (tet->has_neighbor(elem))
1154 num_face_neighbors++;
1155 if (num_face_neighbors == 2)
1156 {
1157 fine_tets.insert(elem);
1158 break;
1159 }
1160 }
1161
1162 // There should be two other nodes with non-conformality near this coarse element
1163 // Find both, as they will be nodes of the rest of the elements to add to the potential
1164 // fine tet list. They are shared by two of the fine tets we have already found
1165 std::set<const Node *> other_nodes;
1166 for (const auto & tet_1 : fine_tets)
1167 {
1168 for (const auto & node_1 : tet_1->node_ref_range())
1169 {
1170 if (&node_1 == node)
1171 continue;
1172 if (!tet_1->is_vertex(tet_1->get_node_index(&node_1)))
1173 continue;
1174 for (const auto & tet_2 : fine_tets)
1175 {
1176 if (tet_2 == tet_1)
1177 continue;
1178 if (tet_2->get_node_index(&node_1) != libMesh::invalid_uint)
1179 // check that it's near the coarse element as well
1180 if (coarse_elem->close_to_point(node_1, 10 * _non_conformality_tol))
1181 other_nodes.insert(&node_1);
1182 }
1183 }
1184 }
1185 mooseAssert(other_nodes.size() == 2,
1186 "Should find only two extra non-conformal nodes near the coarse element");
1187
1188 // Now we can go towards this tip element next to two non-conformalities
1189 for (const auto & tet_1 : fine_tets)
1190 {
1191 for (const auto & neighbor : tet_1->neighbor_ptr_range())
1192 if (neighbor->get_node_index(*other_nodes.begin()) != libMesh::invalid_uint &&
1193 neighbor->is_vertex(neighbor->get_node_index(*other_nodes.begin())) &&
1194 neighbor->get_node_index(*other_nodes.rbegin()) != libMesh::invalid_uint &&
1195 neighbor->is_vertex(neighbor->get_node_index(*other_nodes.rbegin())))
1196 fine_tets.insert(neighbor);
1197 }
1198 // Now that the element next to the time is in the fine_tets, we can get the tip
1199 for (const auto & tet_1 : fine_tets)
1200 {
1201 for (const auto & neighbor : tet_1->neighbor_ptr_range())
1202 if (neighbor->get_node_index(*other_nodes.begin()) != libMesh::invalid_uint &&
1203 neighbor->is_vertex(neighbor->get_node_index(*other_nodes.begin())) &&
1204 neighbor->get_node_index(*other_nodes.rbegin()) != libMesh::invalid_uint &&
1205 neighbor->is_vertex(neighbor->get_node_index(*other_nodes.rbegin())))
1206 fine_tets.insert(neighbor);
1207 }
1208
1209 // Get the sandwiched tets between the tets we already found
1210 for (const auto & tet_1 : fine_tets)
1211 for (const auto & neighbor : tet_1->neighbor_ptr_range())
1212 for (const auto & tet_2 : fine_tets)
1213 if (tet_1 != tet_2 && tet_2->has_neighbor(neighbor) && neighbor != coarse_elem)
1214 fine_tets.insert(neighbor);
1215
1216 // tips tests are the only ones to have a node that is shared by no other tet in the group
1217 for (const auto & tet_1 : fine_tets)
1218 {
1219 unsigned int unshared_nodes = 0;
1220 for (const auto & other_node : tet_1->node_ref_range())
1221 {
1222 if (!tet_1->is_vertex(tet_1->get_node_index(&other_node)))
1223 continue;
1224 bool node_shared = false;
1225 for (const auto & tet_2 : fine_tets)
1226 if (tet_2 != tet_1 && tet_2->get_node_index(&other_node) != libMesh::invalid_uint)
1227 node_shared = true;
1228 if (!node_shared)
1229 unshared_nodes++;
1230 }
1231 if (unshared_nodes == 1)
1232 tips_tets.insert(tet_1);
1233 else if (unshared_nodes == 0)
1234 inside_tets.insert(tet_1);
1235 else
1236 mooseError("Did not expect a tet to have two unshared vertex nodes here");
1237 }
1238
1239 // Finally grab the last tip of the tentative coarse tet. It shares:
1240 // - 3 nodes with the other tips, only one with each
1241 // - 1 face with only one tet of the fine tet group
1242 // - it has a node that no other fine tet shares (the tip node)
1243 for (const auto & tet : inside_tets)
1244 {
1245 for (const auto & neighbor : tet->neighbor_ptr_range())
1246 {
1247 // Check that it shares a face with no other potential fine tet
1248 bool shared_with_another_tet = false;
1249 for (const auto & tet_2 : fine_tets)
1250 {
1251 if (tet_2 == tet)
1252 continue;
1253 if (tet_2->has_neighbor(neighbor))
1254 shared_with_another_tet = true;
1255 }
1256 if (shared_with_another_tet)
1257 continue;
1258
1259 // Used to count the nodes shared with tip tets. Can only be 1 per tip tet
1260 std::vector<const Node *> tip_nodes_shared;
1261 unsigned int unshared_nodes = 0;
1262 for (const auto & other_node : neighbor->node_ref_range())
1263 {
1264 if (!neighbor->is_vertex(neighbor->get_node_index(&other_node)))
1265 continue;
1266
1267 // Check for being a node-neighbor of the 3 other tip tets
1268 for (const auto & tip_tet : tips_tets)
1269 {
1270 if (neighbor == tip_tet)
1271 continue;
1272
1273 // we could break here but we want to check that no other tip shares that node
1274 if (tip_tet->get_node_index(&other_node) != libMesh::invalid_uint)
1275 tip_nodes_shared.push_back(&other_node);
1276 }
1277 // Check for having a node shared with no other tet
1278 bool node_shared = false;
1279 for (const auto & tet_2 : fine_tets)
1280 if (tet_2 != neighbor && tet_2->get_node_index(&other_node) != libMesh::invalid_uint)
1281 node_shared = true;
1282 if (!node_shared)
1283 unshared_nodes++;
1284 }
1285 if (tip_nodes_shared.size() == 3 && unshared_nodes == 1)
1286 tips_tets.insert(neighbor);
1287 }
1288 }
1289
1290 // append the missing fine tets (inside the coarse element, away from the node considered)
1291 // into the fine elements set for the check on "did it refine the tentative coarse tet
1292 // onto the same fine tets"
1293 fine_elements.clear();
1294 for (const auto & elem : tips_tets)
1295 fine_elements.insert(elem);
1296 for (const auto & elem : inside_tets)
1297 fine_elements.insert(elem);
1298
1299 // get the vertex of the coarse element from the tip tets
1300 for (const auto & tip : tips_tets)
1301 {
1302 for (const auto & node : tip->node_ref_range())
1303 {
1304 bool outside = true;
1305
1306 const auto id = tip->get_node_index(&node);
1307 if (!tip->is_vertex(id))
1308 continue;
1309 for (const auto & tet : inside_tets)
1310 if (tet->get_node_index(&node) != libMesh::invalid_uint)
1311 outside = false;
1312 if (outside)
1313 {
1314 tentative_coarse_nodes.push_back(&node);
1315 // only one tip node per tip tet
1316 break;
1317 }
1318 }
1319 }
1320
1321 std::sort(tentative_coarse_nodes.begin(), tentative_coarse_nodes.end());
1322 tentative_coarse_nodes.erase(
1323 std::unique(tentative_coarse_nodes.begin(), tentative_coarse_nodes.end()),
1324 tentative_coarse_nodes.end());
1325
1326 // The group of fine elements ended up having less or more than 4 tips, so it's clearly
1327 // not forming a coarse tetrahedral
1328 if (tentative_coarse_nodes.size() != 4)
1329 continue;
1330 }
1331 else
1332 {
1333 mooseInfo("Unsupported element type ",
1334 elem_type,
1335 ". Skipping detection for this node and all future nodes near only this "
1336 "element type");
1337 continue;
1338 }
1339
1340 // Check the fine element types: if not all the same then it's not uniform AMR
1341 for (auto elem : fine_elements)
1342 if (elem->type() != elem_type)
1343 continue;
1344
1345 // Check the number of coarse element nodes gathered
1346 for (const auto & check_node : tentative_coarse_nodes)
1347 if (check_node == nullptr)
1348 continue;
1349
1350 // Form a parent, of a low order type as we only have the extreme vertex nodes
1351 std::unique_ptr<Elem> parent = Elem::build(Elem::first_order_equivalent_type(elem_type));
1352 auto parent_ptr = mesh_copy->add_elem(parent.release());
1353
1354 // Set the nodes to the coarse element
1355 for (auto i : index_range(tentative_coarse_nodes))
1356 parent_ptr->set_node(i, mesh_copy->node_ptr(tentative_coarse_nodes[i]->id()));
1357
1358 // Refine this parent
1359 parent_ptr->set_refinement_flag(Elem::REFINE);
1360 parent_ptr->refine(mesh_refiner);
1361 const auto num_children = parent_ptr->n_children();
1362
1363 // Compare with the original set of elements
1364 // We already know the child share the exterior node. If they share the same vertex
1365 // average as the group of unrefined elements we will call this good enough for now
1366 // For tetrahedral elements we cannot rely on the children all matching as the choice in
1367 // the diagonal selection can be made differently. We'll just say 4 matching children is
1368 // good enough for the heuristic
1369 unsigned int num_children_match = 0;
1370 for (const auto & child : parent_ptr->child_ref_range())
1371 {
1372 for (const auto & potential_children : fine_elements)
1373 if (MooseUtils::absoluteFuzzyEqual(child.vertex_average()(0),
1374 potential_children->vertex_average()(0),
1376 MooseUtils::absoluteFuzzyEqual(child.vertex_average()(1),
1377 potential_children->vertex_average()(1),
1379 MooseUtils::absoluteFuzzyEqual(child.vertex_average()(2),
1380 potential_children->vertex_average()(2),
1382 {
1383 num_children_match++;
1384 break;
1385 }
1386 }
1387
1388 if (num_children_match == num_children ||
1389 ((elem_type == TET4 || elem_type == TET10 || elem_type == TET14) &&
1390 num_children_match == 4))
1391 {
1392 num_likely_AMR_created_nonconformality++;
1393 if (num_likely_AMR_created_nonconformality < _num_outputs)
1394 {
1395 _console << "Detected non-conformality likely created by AMR near" << *node
1396 << Moose::stringify(elem_type)
1397 << " elements that could be merged into a coarse element:" << std::endl;
1398 for (const auto & elem : fine_elements)
1399 _console << elem->id() << " ";
1400 _console << std::endl;
1401 }
1402 else if (num_likely_AMR_created_nonconformality == _num_outputs)
1403 _console << "Maximum log output reached, silencing output" << std::endl;
1404 }
1405 }
1406
1408 "Number of non-conformal nodes likely due to mesh refinement detected by heuristic: " +
1409 Moose::stringify(num_likely_AMR_created_nonconformality),
1411 num_likely_AMR_created_nonconformality);
1412 pl->unset_close_to_point_tol();
1413}
unsigned int count
Definition MortarUtils.C:53
for(PetscInt i=0;i< nvars;++i)
void mooseInfo(Args &&... args) const
Definition MooseBase.h:334
void reorderNodes(std::vector< const libMesh::Node * > &nodes, const libMesh::Point &origin, const libMesh::Point &clock_start, libMesh::Point &axis)
Utility routine to re-order a vector of nodes so that they can form a valid quad element.
bool getFineElementsFromInteriorNode(const libMesh::Node &interior_node, const libMesh::Node &reference_node, const libMesh::Elem &elem, std::vector< const libMesh::Node * > &tentative_coarse_nodes, std::set< const libMesh::Elem * > &fine_elements)
Utility routine to gather vertex nodes for, and elements contained in, for a coarse QUAD or HEX eleme...
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
auto index_range(const T &sizable)
const unsigned int invalid_uint
IntRange< T > make_range(T beg, T end)

Referenced by generate().

◆ checkNonConformingFaces()

void MeshDiagnosticsGenerator::checkNonConformingFaces ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check for element faces that border material but match no neighbor face.

Definition at line 710 of file MeshDiagnosticsGenerator.C.

711{
712 // A conforming internal interface has a matching face on each side, so libMesh assigns a
713 // neighbor across it. This check finds element faces that have NO neighbor on a side,
714 // (considered external) yet have material on the other side -- i.e. the face is covered by
715 // neighbor faces that share only part of it, such as a HEX8 quad face abutting two TET4
716 // triangle faces. All corners are shared in that situation, so no node lies on another
717 // element's face and the hanging-node 'examine_non_conformality' check does not detect it.
718 //
719 // For each external (no-neighbor) face, we probe a point just outside it, along the outward
720 // direction from the element centroid. If the point locator finds another element there, the
721 // face borders material but matched no neighbor face, so the interface is non-conforming.
722 auto pl = mesh->sub_point_locator();
723 pl->enable_out_of_mesh_mode();
724 unsigned int num_nonconforming_faces = 0;
725 for (const auto elem : mesh->active_element_ptr_range())
726 {
727 const Point elem_center = elem->vertex_average();
728 for (const auto s : elem->side_index_range())
729 {
730 // Skip faces that already have a matching neighbor; those are conforming.
731 if (elem->neighbor_ptr(s) != nullptr)
732 continue;
733 const auto side = elem->side_ptr(s);
734 const Point side_center = side->vertex_average();
735 // Just outside the face (1% of the centroid-to-face distance beyond it).
736 const Point probe = side_center + 0.01 * (side_center - elem_center);
737 std::set<const Elem *> found;
738 (*pl)(probe, found);
739 bool material_outside = false;
740 for (const auto other : found)
741 if (other != elem && other->active())
742 {
743 material_outside = true;
744 break;
745 }
746 if (material_outside)
747 {
748 if (num_nonconforming_faces < _num_outputs)
749 _console << "Non-conforming element face (borders another cell but matches no neighbor "
750 "element across the face) on "
751 "element "
752 << elem->id() << " side " << s << " near " << side_center << std::endl;
753 num_nonconforming_faces++;
754 }
755 }
756 }
757 pl->disable_out_of_mesh_mode();
759 "Number of non-conforming element faces (border another cell but match no neighbor "
760 "element across the face): " +
761 std::to_string(num_nonconforming_faces),
764 num_nonconforming_faces);
765}

Referenced by generate().

◆ checkNonMatchingEdges()

void MeshDiagnosticsGenerator::checkNonMatchingEdges ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check for non matching edges.

Definition at line 1540 of file MeshDiagnosticsGenerator.C.

1541{
1542 /*Algorithm Overview
1543 1)Prechecks
1544 a)This algorithm only works for 3D so check for that first
1545 2)Loop
1546 a)Loop through every element
1547 b)For each element get the edges associated with it
1548 c)For each edge check overlap with any edges of nearby elements
1549 d)Have check to make sure the same pair of edges are not being tested twice for overlap
1550 3)Overlap check
1551 a)Shortest line that connects both lines is perpendicular to both lines
1552 b)A good overview of the math for finding intersecting lines can be found
1553 here->paulbourke.net/geometry/pointlineplane/
1554 */
1555 if (mesh->mesh_dimension() != 3)
1556 {
1557 mooseWarning("The edge intersection algorithm only works with 3D meshes. "
1558 "'examine_non_matching_edges' is skipped");
1559 return;
1560 }
1561 if (!mesh->is_serial())
1562 mooseError("Only serialized/replicated meshes are supported");
1563 unsigned int num_intersecting_edges = 0;
1564
1565 // Create map of element to bounding box to avoing reinitializing the same bounding box multiple
1566 // times
1567 std::unordered_map<Elem *, BoundingBox> bounding_box_map;
1568 for (const auto elem : mesh->active_element_ptr_range())
1569 {
1570 const auto boundingBox = elem->loose_bounding_box();
1571 bounding_box_map.insert({elem, boundingBox});
1572 }
1573
1574 std::unique_ptr<PointLocatorBase> point_locator = mesh->sub_point_locator();
1575 std::set<std::array<dof_id_type, 4>> overlapping_edges_nodes;
1576 for (const auto elem : mesh->active_element_ptr_range())
1577 {
1578 // loop through elem's nodes and find nearby elements with it
1579 std::set<const Elem *> candidate_elems;
1580 std::set<const Elem *> nearby_elems;
1581 for (unsigned int i = 0; i < elem->n_nodes(); i++)
1582 {
1583 (*point_locator)(elem->point(i), candidate_elems);
1584 nearby_elems.insert(candidate_elems.begin(), candidate_elems.end());
1585 }
1586 std::vector<std::unique_ptr<const Elem>> elem_edges(elem->n_edges());
1587 for (auto i : elem->edge_index_range())
1588 elem_edges[i] = elem->build_edge_ptr(i);
1589 for (const auto other_elem : nearby_elems)
1590 {
1591 // If they're the same element then there's no need to check for overlap
1592 if (elem->id() >= other_elem->id())
1593 continue;
1594
1595 std::vector<std::unique_ptr<const Elem>> other_edges(other_elem->n_edges());
1596 for (auto j : other_elem->edge_index_range())
1597 other_edges[j] = other_elem->build_edge_ptr(j);
1598 for (auto & edge : elem_edges)
1599 {
1600 for (auto & other_edge : other_edges)
1601 {
1602 // Get nodes from edges
1603 const Node * n1 = edge->get_nodes()[0];
1604 const Node * n2 = edge->get_nodes()[1];
1605 const Node * n3 = other_edge->get_nodes()[0];
1606 const Node * n4 = other_edge->get_nodes()[1];
1607
1608 // Create array<dof_id_type, 4> to check against set
1609 std::array<dof_id_type, 4> node_id_array = {n1->id(), n2->id(), n3->id(), n4->id()};
1610 std::sort(node_id_array.begin(), node_id_array.end());
1611
1612 // Check if the edges have already been added to our check_edges list
1613 if (overlapping_edges_nodes.count(node_id_array))
1614 {
1615 continue;
1616 }
1617
1618 // Check element/edge type
1619 if (edge->type() != EDGE2)
1620 {
1621 std::string element_message = "Edge of type " + Utility::enum_to_string(edge->type()) +
1622 " was found in cell " + std::to_string(elem->id()) +
1623 " which is of type " +
1624 Utility::enum_to_string(elem->type()) + '\n' +
1625 "The edge intersection check only works for EDGE2 "
1626 "elements.\nThis message will not be output again";
1627 mooseDoOnce(_console << element_message << std::endl);
1628 continue;
1629 }
1630 if (other_edge->type() != EDGE2)
1631 continue;
1632
1633 // Now compare edge with other_edge
1634 Point intersection_coords;
1636 *edge, *other_edge, intersection_coords, _non_matching_edge_tol);
1637 if (overlap)
1638 {
1639 // Add the nodes that make up the 2 edges to the vector overlapping_edges_nodes
1640 overlapping_edges_nodes.insert(node_id_array);
1641 num_intersecting_edges += 2;
1642 if (num_intersecting_edges < _num_outputs)
1643 {
1644 // Print error message
1645 std::string elem_id = std::to_string(elem->id());
1646 std::string other_elem_id = std::to_string(other_elem->id());
1647 std::string x_coord = std::to_string(intersection_coords(0));
1648 std::string y_coord = std::to_string(intersection_coords(1));
1649 std::string z_coord = std::to_string(intersection_coords(2));
1650 std::string message = "Intersecting edges found between elements " + elem_id +
1651 " and " + other_elem_id + " near point (" + x_coord + ", " +
1652 y_coord + ", " + z_coord + ")";
1653 _console << message << std::endl;
1654 }
1655 }
1656 }
1657 }
1658 }
1659 }
1660 diagnosticsLog("Number of intersecting element edges: " +
1661 Moose::stringify(num_intersecting_edges),
1663 num_intersecting_edges);
1664}
void mooseWarning(Args &&... args) const
bool checkFirstOrderEdgeOverlap(const Elem &edge1, const Elem &edge2, Point &intersection_point, const Real intersection_tol)
std::string enum_to_string(const T e)

Referenced by generate().

◆ checkNonPlanarSides()

void MeshDiagnosticsGenerator::checkNonPlanarSides ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check whether there are non-planar sides in the mesh.

Definition at line 638 of file MeshDiagnosticsGenerator.C.

639{
640 unsigned int sides_non_planar = 0;
641 // loop on all elements in mesh: assumes a replicated mesh
642 for (auto & elem : mesh->active_element_ptr_range())
643 {
644 for (auto i : make_range(elem->n_sides()))
645 {
646 auto side = elem->side_ptr(i);
647 std::vector<const Point *> nodes;
648 for (auto & node : side->node_ref_range())
649 nodes.emplace_back(&node);
650
651 if (nodes.size() <= 3)
652 continue;
653 // First vector of the base
654 const RealVectorValue v1 = *nodes[0] - *nodes[1];
655
656 // Find another node so that we can form a basis. It should just be node 0, 1, 2
657 // to form two independent vectors, but degenerate elements can make them aligned
658 bool aligned = true;
659 unsigned int third_node_index = 2;
661 while (aligned && third_node_index < nodes.size())
662 {
663 v2 = *nodes[0] - *nodes[third_node_index++];
664 aligned = MooseUtils::absoluteFuzzyEqual(v1 * v2 - v1.norm() * v2.norm(), 0);
665 }
666
667 // Degenerate element, could not find a third node that is not aligned
668 if (aligned)
669 continue;
670
671 bool found_non_planar = false;
672
673 for (auto node_offset : make_range(nodes.size() - 3))
674 {
675 RealVectorValue v3 = *nodes[0] - *nodes[node_offset + 3];
676 bool planar = MooseUtils::absoluteFuzzyEqual(v2.cross(v1) * v3, 0);
677 if (!planar)
678 found_non_planar = true;
679 }
680
681 if (found_non_planar)
682 {
683 sides_non_planar++;
684 if (sides_non_planar < _num_outputs)
685 _console << "Nonplanar side detected for side " << i
686 << " of element :" << elem->get_info() << std::endl;
687 else if (sides_non_planar == _num_outputs)
688 _console << "Maximum output reached, log is silenced" << std::endl;
689 }
690 }
691 }
692 diagnosticsLog("Number of non-planar element sides detected: " +
693 Moose::stringify(sides_non_planar),
695 sides_non_planar);
696}
VectorValue< Real > RealVectorValue
Definition SubProblem.h:34

Referenced by generate().

◆ checkPolygons()

void MeshDiagnosticsGenerator::checkPolygons ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check for non-convex polygons.

Definition at line 1667 of file MeshDiagnosticsGenerator.C.

1668{
1669 unsigned int num_polygons = 0;
1670 unsigned int num_nonconvex = 0;
1671 unsigned int num_nonplanar = 0;
1672 unsigned int num_flat_consecutive_sides = 0;
1673
1674 for (const auto & elem : mesh->element_ptr_range())
1675 if (elem->type() == libMesh::C0POLYGON)
1676 {
1677 num_polygons++;
1678 const auto n_nodes = elem->n_nodes();
1679 Point base_top_dir(0, 0, 0);
1680 bool nonconvex = false;
1681 bool nonplanar = false;
1682 for (const auto & i : make_range(n_nodes))
1683 {
1684 const auto n1 = elem->point(i);
1685 const auto n2 = elem->point((i + 1) % n_nodes);
1686 const auto n3 = elem->point((i + 2) % n_nodes);
1687 // can't be const with unit
1688 Point top_dir = (n2 - n1).cross(n3 - n2);
1689
1690 if (top_dir.norm_sq() > 0 && base_top_dir.norm() == 0)
1691 {
1692 base_top_dir = top_dir.unit();
1693 continue;
1694 }
1695 if (base_top_dir * top_dir < 0)
1696 nonconvex = true;
1697 if (top_dir.norm_sq() > 0)
1698 top_dir = top_dir.unit();
1699 else
1700 num_flat_consecutive_sides++;
1701 if (!MooseUtils::absoluteFuzzyEqual((top_dir - base_top_dir).norm_sq(), 0, TOLERANCE) &&
1702 !MooseUtils::absoluteFuzzyEqual((top_dir + base_top_dir).norm_sq(), 0, TOLERANCE))
1703 nonplanar = true;
1704 }
1705
1706 if (nonconvex)
1707 {
1708 num_nonconvex++;
1709 if (num_nonconvex < _num_outputs)
1710 _console << "Non convex C0 polygon detected:" << elem->get_info() << std::endl;
1711 else if (num_nonconvex == _num_outputs)
1712 _console << "Ouptut limit reached for non-convex polygons" << std::endl;
1713 }
1714 if (nonplanar)
1715 {
1716 num_nonplanar++;
1717 if (num_nonconvex < _num_outputs)
1718 _console << "Non planar C0 polygon detected:" << elem->get_info() << std::endl;
1719 else if (num_nonconvex == _num_outputs)
1720 _console << "Ouptut limit reached for non-planar polygons" << std::endl;
1721 }
1722 }
1723
1724 if (!num_polygons)
1725 mooseWarning("No C0 polygons in geometry: polyon check did nothing");
1726 else
1727 {
1728 diagnosticsLog("Number of non convex polygons: " + Moose::stringify(num_nonconvex),
1730 num_nonconvex);
1731 diagnosticsLog("Number of non planar polygons: " + Moose::stringify(num_nonplanar),
1733 num_nonplanar);
1734 diagnosticsLog("Number of colinear consecutive sides of polygons: " +
1735 Moose::stringify(num_flat_consecutive_sides),
1737 num_flat_consecutive_sides);
1738 }
1739}
auto norm_sq(const T &a)
const dof_id_type n_nodes

Referenced by generate().

◆ checkSidesetsOrientation()

void MeshDiagnosticsGenerator::checkSidesetsOrientation ( const std::unique_ptr< MeshBase > &  mesh) const
private

Routine to check sideset orientation near subdomains.

Definition at line 216 of file MeshDiagnosticsGenerator.C.

217{
218 auto & boundary_info = mesh->get_boundary_info();
219 auto side_tuples = boundary_info.build_side_list();
220
221 for (const auto bid : boundary_info.get_boundary_ids())
222 {
223 // This check only looks at subdomains on both sides of the sideset
224 // it wont pick up if the sideset is changing orientations while inside of a subdomain
225 std::set<std::pair<subdomain_id_type, subdomain_id_type>> block_neighbors;
226 for (const auto index : index_range(side_tuples))
227 {
228 if (std::get<2>(side_tuples[index]) != bid)
229 continue;
230 const auto elem_ptr = mesh->elem_ptr(std::get<0>(side_tuples[index]));
231 if (elem_ptr->neighbor_ptr(std::get<1>(side_tuples[index])))
232 block_neighbors.insert(std::make_pair(
233 elem_ptr->subdomain_id(),
234 elem_ptr->neighbor_ptr(std::get<1>(side_tuples[index]))->subdomain_id()));
235 }
236
237 // Check that there is no flipped pair
238 std::set<std::pair<subdomain_id_type, subdomain_id_type>> flipped_pairs;
239 for (const auto & block_pair_1 : block_neighbors)
240 for (const auto & block_pair_2 : block_neighbors)
241 if (block_pair_1 != block_pair_2)
242 if (block_pair_1.first == block_pair_2.second &&
243 block_pair_1.second == block_pair_2.first)
244 flipped_pairs.insert(block_pair_1);
245
246 std::string message;
247 const std::string sideset_full_name =
248 boundary_info.sideset_name(bid) + " (" + std::to_string(bid) + ")";
249 if (!flipped_pairs.empty())
250 {
251 std::string block_pairs_string = "";
252 for (const auto & pair : flipped_pairs)
253 block_pairs_string +=
254 " [" + mesh->subdomain_name(pair.first) + " (" + std::to_string(pair.first) + "), " +
255 mesh->subdomain_name(pair.second) + " (" + std::to_string(pair.second) + ")]";
256 message = "Inconsistent orientation of sideset " + sideset_full_name +
257 " with regards to subdomain pairs" + block_pairs_string;
258 }
259 else
260 message = "Sideset " + sideset_full_name +
261 " is consistently oriented with regards to the blocks it neighbors";
262
263 diagnosticsLog(message, _check_sidesets_orientation, flipped_pairs.size());
264
265 // Now check that there is no sideset radically flipping from one side's normal to another
266 // side next to it, in the same sideset
267 // We'll consider pi / 2 to be the most steep angle we'll pass
268 unsigned int num_normals_flipping = 0;
269 Real steepest_side_angles = 0;
270 for (const auto & [elem_id, side_id, side_bid] : side_tuples)
271 {
272 if (side_bid != bid)
273 continue;
274 const auto & elem_ptr = mesh->elem_ptr(elem_id);
275
276 // Get side normal
277 const std::unique_ptr<const Elem> face = elem_ptr->build_side_ptr(side_id);
278 std::unique_ptr<libMesh::FEBase> fe(
279 libMesh::FEBase::build(elem_ptr->dim(), libMesh::FEType(elem_ptr->default_order())));
280 libMesh::QGauss qface(elem_ptr->dim() - 1, CONSTANT);
281 fe->attach_quadrature_rule(&qface);
282 const auto & normals = fe->get_normals();
283 fe->reinit(elem_ptr, side_id);
284 mooseAssert(normals.size() == 1, "We expected only one normal here");
285 const auto & side_normal = normals[0];
286
287 // Compare to the sideset normals of neighbor sides in that sideset
288 for (const auto neighbor : elem_ptr->neighbor_ptr_range())
289 if (neighbor)
290 for (const auto neigh_side_index : neighbor->side_index_range())
291 {
292 // Check that the neighbor side is also in the sideset being examined
293 if (!boundary_info.has_boundary_id(neighbor, neigh_side_index, bid))
294 continue;
295
296 // We re-init everything for the neighbor in case it's a different dimension
297 std::unique_ptr<libMesh::FEBase> fe_neighbor(libMesh::FEBase::build(
298 neighbor->dim(), libMesh::FEType(neighbor->default_order())));
299 libMesh::QGauss qface(neighbor->dim() - 1, CONSTANT);
300 fe_neighbor->attach_quadrature_rule(&qface);
301 const auto & neigh_normals = fe_neighbor->get_normals();
302 fe_neighbor->reinit(neighbor, neigh_side_index);
303 mooseAssert(neigh_normals.size() == 1, "We expected only one normal here");
304 const auto & neigh_side_normal = neigh_normals[0];
305
306 // Check the angle by computing the dot product
307 if (neigh_side_normal * side_normal <= 0)
308 {
309 num_normals_flipping++;
310 steepest_side_angles =
311 std::max(std::acos(neigh_side_normal * side_normal), steepest_side_angles);
312 if (num_normals_flipping <= _num_outputs)
313 _console << "Side normals changed by more than pi/2 for sideset "
314 << sideset_full_name << " between side " << side_id << " of element "
315 << elem_ptr->id() << " and side " << neigh_side_index
316 << " of neighbor element " << neighbor->id() << std::endl;
317 else if (num_normals_flipping == _num_outputs + 1)
318 _console << "Maximum output reached for sideset normal flipping check. Silencing "
319 "output from now on"
320 << std::endl;
321 }
322 }
323 }
324
325 if (num_normals_flipping)
326 message = "Sideset " + sideset_full_name +
327 " has two neighboring sides with a very large angle. Largest angle detected: " +
328 std::to_string(steepest_side_angles) + " rad (" +
329 std::to_string(steepest_side_angles * 180 / libMesh::pi) + " degrees).";
330 else
331 message = "Sideset " + sideset_full_name +
332 " does not appear to have side-to-neighbor-side orientation flips. All neighbor "
333 "sides normal differ by less than pi/2";
334
335 diagnosticsLog(message, _check_sidesets_orientation, num_normals_flipping);
336 }
337}
std::unique_ptr< FEGenericBase< Real > > build(const unsigned int dim, const FEType &fet)
const Real pi
const boundary_id_type side_id

Referenced by generate().

◆ checkWatertightNodesets()

void MeshDiagnosticsGenerator::checkWatertightNodesets ( const std::unique_ptr< MeshBase > &  mesh) const
private

Definition at line 405 of file MeshDiagnosticsGenerator.C.

406{
407 /*
408 Diagnostic Overview:
409 1) Mesh precheck
410 2) Loop through all elements
411 3) Loop through all sides of that element
412 4) If side is external loop through its nodes
413 5) If node is not associated with any nodeset add to list
414 6) Print out node id
415 */
416 if (mesh->mesh_dimension() < 2)
417 mooseError("The nodeset check only works for 2D and 3D meshes");
418 auto & boundary_info = mesh->get_boundary_info();
419 unsigned int num_nodes_without_nodeset = 0;
420 std::set<dof_id_type> checked_nodes_id;
421
422 for (const auto elem : mesh->active_element_ptr_range())
423 {
424 for (const auto i : elem->side_index_range())
425 {
426 // Check if side is external
427 if (elem->neighbor_ptr(i) == nullptr)
428 {
429 // Side is external, now check nodes
430 auto side = elem->side_ptr(i);
431 const auto & node_list = side->get_nodes();
432 for (unsigned int j = 0; j < side->n_nodes(); j++)
433 {
434 const auto node = node_list[j];
435 if (checked_nodes_id.count(node->id()))
436 continue;
437 // get vector of node's boundaries (in most cases it will only have one)
438 std::vector<boundary_id_type> boundary_ids;
439 boundary_info.boundary_ids(node, boundary_ids);
440 std::vector<boundary_id_type> intersection =
442
443 bool no_specified_ids = boundary_info.n_boundary_ids(node) == 0;
444 bool specified_ids = !_watertight_boundaries.empty() && intersection.empty();
445 std::string message =
446 "Node " + std::to_string(node->id()) +
447 " is on an external boundary of the mesh, but has not been assigned to ";
448 if (no_specified_ids)
449 message = message + "a nodeset";
450 else if (specified_ids)
451 message = message + "one of the specified nodesets";
452 if ((no_specified_ids || specified_ids) && num_nodes_without_nodeset < _num_outputs)
453 {
454 checked_nodes_id.insert(node->id());
455 num_nodes_without_nodeset++;
456 _console << message << std::endl;
457 }
458 }
459 }
460 }
461 }
462 std::string message;
463 message = "Number of external nodes that have not been assigned to a nodeset: " +
464 std::to_string(num_nodes_without_nodeset);
465 diagnosticsLog(message, _check_watertight_nodesets, num_nodes_without_nodeset);
466}
std::vector< BoundaryID > _watertight_boundaries
IDs of boundaries to be checked in watertight checks.
std::vector< boundary_id_type > findBoundaryOverlap(const std::vector< boundary_id_type > &watertight_boundaries, std::vector< boundary_id_type > &boundary_ids) const
Helper function that finds the intersection between the given vectors.

Referenced by generate().

◆ checkWatertightSidesets()

void MeshDiagnosticsGenerator::checkWatertightSidesets ( const std::unique_ptr< MeshBase > &  mesh) const
private

Definition at line 340 of file MeshDiagnosticsGenerator.C.

341{
342 /*
343 Algorithm Overview:
344 1) Loop through all elements
345 2) For each element loop through all its sides
346 3) If it has no neighbors it's an external side
347 4) If external check if it's part of a sideset
348 */
349 if (mesh->mesh_dimension() < 2)
350 mooseError("The sideset check only works for 2D and 3D meshes");
351 auto & boundary_info = mesh->get_boundary_info();
352 boundary_info.build_side_list();
353 const auto sideset_map = boundary_info.get_sideset_map();
354 unsigned int num_faces_without_sideset = 0;
355
356 for (const auto elem : mesh->active_element_ptr_range())
357 {
358 for (auto i : elem->side_index_range())
359 {
360 // Check if side is external
361 if (elem->neighbor_ptr(i) == nullptr)
362 {
363 // If external get the boundary ids associated with this side
364 std::vector<boundary_id_type> boundary_ids;
365 auto side_range = sideset_map.equal_range(elem);
366 for (const auto & itr : as_range(side_range))
367 if (itr.second.first == i)
368 boundary_ids.push_back(i);
369 // get intersection of boundary_ids and _watertight_boundaries
370 std::vector<boundary_id_type> intersections =
372
373 bool no_specified_ids = boundary_ids.empty();
374 bool specified_ids = !_watertight_boundaries.empty() && intersections.empty();
375 std::string message;
376 if (mesh->mesh_dimension() == 3)
377 message = "Element " + std::to_string(elem->id()) +
378 " contains an external face which has not been assigned to ";
379 else
380 message = "Element " + std::to_string(elem->id()) +
381 " contains an external edge which has not been assigned to ";
382 if (no_specified_ids)
383 message = message + "a sideset";
384 else if (specified_ids)
385 message = message + "one of the specified sidesets";
386 if ((no_specified_ids || specified_ids) && num_faces_without_sideset < _num_outputs)
387 {
388 _console << message << std::endl;
389 num_faces_without_sideset++;
390 }
391 }
392 }
393 }
394 std::string message;
395 if (mesh->mesh_dimension() == 3)
396 message = "Number of external element faces that have not been assigned to a sideset: " +
397 std::to_string(num_faces_without_sideset);
398 else
399 message = "Number of external element edges that have not been assigned to a sideset: " +
400 std::to_string(num_faces_without_sideset);
401 diagnosticsLog(message, _check_watertight_sidesets, num_faces_without_sideset);
402}
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)

Referenced by generate().

◆ connectControllableParams()

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

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

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

Definition at line 77 of file MooseBase.C.

81{
82 auto & factory = _app.getFactory();
83 auto & ip_warehouse = _app.getInputParameterWarehouse();
84
85 MooseObjectParameterName primary_name(uniqueName(), parameter);
86 const auto base_type = factory.getValidParams(object_type).getBase();
87 MooseObjectParameterName secondary_name(base_type, object_name, object_parameter);
88 ip_warehouse.addControllableParameterConnection(primary_name, secondary_name);
89
90 const auto & tags = _pars.get<std::vector<std::string>>("control_tags");
91 for (const auto & tag : tags)
92 {
93 if (!tag.empty())
94 {
95 // Only adds the parameter with the different control tags if the derived class
96 // properly registers the parameter to its own syntax
97 MooseObjectParameterName tagged_name(tag, name(), parameter);
98 ip_warehouse.addControllableParameterConnection(
99 tagged_name, secondary_name, /*error_on_empty=*/false);
100 }
101 }
102}
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
InputParameterWarehouse & getInputParameterWarehouse()
Get the InputParameterWarehouse for MooseObjects.
Definition MooseApp.C:2873
MooseObjectName uniqueName() const
Definition MooseBase.C:69
A class for storing an input parameter name.

◆ copyMeshProperty() [1/2]

template<typename T >
T & MeshGenerator::copyMeshProperty ( const std::string &  source_data_name,
const std::string &  source_mesh 
)
inlineprotectedinherited

Method for copying attribute from input mesh meta-data store to current mesh meta-data store, keeping source and target data names the same.

This may often be avoided as getMeshProperty calls can traverse the tree of mesh generators to find a metadata instance

Definition at line 276 of file MeshGenerator.h.

277 {
278 return copyMeshProperty<T>(source_data_name, source_data_name, source_mesh);
279 }

◆ copyMeshProperty() [2/2]

template<typename T >
T & MeshGenerator::copyMeshProperty ( const std::string &  target_data_name,
const std::string &  source_data_name,
const std::string &  source_mesh 
)
inlineprotectedinherited

Method for copying attribute from input mesh meta-data store to current mesh meta-data store.

This may often be avoided as getMeshProperty calls can traverse the tree of mesh generators to find a metadata instance

Definition at line 263 of file MeshGenerator.h.

266 {
267 return declareMeshProperty(target_data_name, getMeshProperty<T>(source_data_name, source_mesh));
268 }
T & declareMeshProperty(const std::string &data_name, Args &&... args)
Methods for writing out attributes to the mesh meta-data store, which can be retrieved from most othe...

◆ declareMeshesForSub()

void MeshGenerator::declareMeshesForSub ( const std::string &  param_name)
protectedinherited

Like declareMeshForSub(), but for multiple generators.

Definition at line 295 of file MeshGenerator.C.

296{
298}
const std::vector< MeshGeneratorName > & getMeshGeneratorNamesFromParam(const std::string &param_name) const
Helper for getting a std::vector<MeshGeneratorName> parameter.
void declareMeshesForSubByName(const std::vector< MeshGeneratorName > &mesh_generator_names)
Like declareMeshForSubByName(), but for multiple generators.

◆ declareMeshesForSubByName()

void MeshGenerator::declareMeshesForSubByName ( const std::vector< MeshGeneratorName > &  mesh_generator_names)
protectedinherited

Like declareMeshForSubByName(), but for multiple generators.

Definition at line 311 of file MeshGenerator.C.

313{
314 for (const auto & name : mesh_generator_names)
316}
void declareMeshForSubByName(const MeshGeneratorName &mesh_generator_name)
Like declareMeshForSub(), but takes the name of another MeshGenerator directly.

Referenced by MeshGenerator::declareMeshesForSub().

◆ declareMeshForSub()

void MeshGenerator::declareMeshForSub ( const std::string &  param_name)
protectedinherited

Declares that a MeshGenerator referenced in the InputParameters is to be used as a dependency of a sub MeshGenerator created by this MeshGenerator (see addSubMeshGenerator)

You must declare all such MeshGenerators that are passed by parameter to this MeshGenerator but instead used in a sub MeshGenerator. This is in order to declare the intention to use an input mesh as a dependency for a sub generator instead of this one.

Definition at line 289 of file MeshGenerator.C.

290{
292}
const MeshGeneratorName * getMeshGeneratorNameFromParam(const std::string &param_name, const bool allow_invalid) const
Helper for getting a MeshGeneratorName parameter.

Referenced by OverlayMeshGenerator::OverlayMeshGenerator(), and SideSetExtruderGenerator::SideSetExtruderGenerator().

◆ declareMeshForSubByName()

void MeshGenerator::declareMeshForSubByName ( const MeshGeneratorName &  mesh_generator_name)
protectedinherited

Like declareMeshForSub(), but takes the name of another MeshGenerator directly.

Definition at line 301 of file MeshGenerator.C.

302{
303 checkGetMesh(mesh_generator_name, "");
304 if (isNullMeshName(mesh_generator_name))
305 return;
306
307 _requested_mesh_generators_for_sub.insert(mesh_generator_name);
308}
std::set< MeshGeneratorName > _requested_mesh_generators_for_sub
The names of the MeshGenerators that were requested in the declareMeshForSub methods.
void checkGetMesh(const MeshGeneratorName &mesh_generator_name, const std::string &param_name) const
Helper for performing error checking in the getMesh methods.

Referenced by MeshGenerator::declareMeshesForSubByName(), and MeshGenerator::declareMeshForSub().

◆ declareMeshProperty() [1/2]

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

Methods for writing out attributes to the mesh meta-data store, which can be retrieved from most other MOOSE systems and is recoverable.

Definition at line 535 of file MeshGenerator.h.

536{
538 mooseError("Can only call declareMeshProperty() during MeshGenerator construction");
539
540 // We sort construction ordering so that we _must_ declare before retrieving
541 if (hasMeshProperty(data_name))
542 mooseError("While declaring mesh property '",
543 data_name,
544 "' with type '",
545 MooseUtils::prettyCppType<T>(),
546 "',\nsaid property has already been declared with type '",
547 setMeshPropertyHelper(data_name).type(),
548 "'");
549
550 const auto full_name = meshPropertyName(data_name);
551 auto new_T_value =
552 std::make_unique<RestartableData<T>>(full_name, nullptr, std::forward<Args>(args)...);
553 auto value =
554 &_app.registerRestartableData(std::move(new_T_value), 0, false, MooseApp::MESH_META_DATA);
555 mooseAssert(value->declared(), "Should be declared");
556
557 RestartableData<T> * T_value = dynamic_cast<RestartableData<T> *>(value);
558 mooseAssert(T_value, "Bad cast");
559
560 return T_value->set();
561}
RestartableDataValue & setMeshPropertyHelper(const std::string &data_name)
Helper for getting a writable reference to a mesh property, used in declareMeshProperty and setMeshPr...
bool hasMeshProperty(const std::string &data_name, const std::string &prefix) const
static std::string meshPropertyName(const std::string &data_name, const std::string &prefix)
RestartableDataValue & registerRestartableData(std::unique_ptr< RestartableDataValue > data, THREAD_ID tid, bool read_only, const RestartableDataMapName &metaname="")
Definition MooseApp.C:2455
static const RestartableDataMapName MESH_META_DATA
Definition MooseApp.h:136
Concrete definition of a parameter value for a specified type.
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

Referenced by AddMetaDataGenerator::AddMetaDataGenerator(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), MeshGenerator::copyMeshProperty(), DistributedRectilinearMeshGenerator::DistributedRectilinearMeshGenerator(), ImageMeshGenerator::ImageMeshGenerator(), RinglebMeshGenerator::RinglebMeshGenerator(), and SpiralAnnularMeshGenerator::SpiralAnnularMeshGenerator().

◆ declareMeshProperty() [2/2]

template<typename T >
T & MeshGenerator::declareMeshProperty ( const std::string &  data_name,
const T &  data_value 
)
inlineprotectedinherited

Definition at line 236 of file MeshGenerator.h.

237 {
238 return declareMeshProperty<T, const T &>(data_name, data_value);
239 }

◆ declareNullMeshName()

void MeshGenerator::declareNullMeshName ( const MeshGeneratorName &  name)
protectedinherited

Registers the name name as a "null" mesh, which is a MeshGenerator used in InputParameters that will not represent an input mesh when requested via getMesh.

An example use case for this is when you as a developer want users to represent a hole in a mesh pattern that is defined in input.

Definition at line 504 of file MeshGenerator.C.

505{
506 mooseAssert(_app.constructingMeshGenerators(), "Should only be called at construction");
507 mooseAssert(!_null_mesh_names.count(name), "Already declared");
508 _null_mesh_names.insert(name);
509}
std::set< std::string > _null_mesh_names
The declared "null" mesh names that will not represent a mesh in input; see declareNullMeshName()

◆ diagnosticsLog()

void MeshDiagnosticsGenerator::diagnosticsLog ( std::string  msg,
const MooseEnum log_level,
bool  problem_detected 
) const
private

Utility routine to output the final diagnostics level in the desired mode.

Parameters
msgthe message to output
log_levelthe log level to output the message at
problem_detectedif set to false, prevents erroring from the log, despite the log level problem_detected is used to avoid erroring when the log is requested but there are no issues so it should just say "0 problems" with an info message

Definition at line 1742 of file MeshDiagnosticsGenerator.C.

1745{
1746 mooseAssert(log_level != "NO_CHECK",
1747 "We should not be outputting logs if the check had been disabled");
1748 if (log_level == "INFO" || !problem_detected)
1749 mooseInfoRepeated(msg);
1750 else if (log_level == "WARNING")
1751 mooseWarning(msg);
1752 else if (log_level == "ERROR")
1753 mooseError(msg);
1754 else
1755 mooseError("Should not reach here");
1756}
void mooseInfoRepeated(Args &&... args)
Emit an informational message with the given stringified, concatenated args.
Definition MooseError.h:409

Referenced by checkElementOverlap(), checkElementTypes(), checkElementVolumes(), checkLocalJacobians(), checkNonConformalMesh(), checkNonConformalMeshFromAdaptivity(), checkNonConformingFaces(), checkNonMatchingEdges(), checkNonPlanarSides(), checkPolygons(), checkSidesetsOrientation(), checkWatertightNodesets(), and checkWatertightSidesets().

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 49 of file MooseObject.h.

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

Referenced by EigenKernel::enabled(), BlockRestrictionDebugOutput::printBlockRestrictionGroups(), BlockRestrictionDebugOutput::printBoundaryRestrictionGroups(), and NodeFaceConstraint::validParams().

◆ errorPrefix()

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

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

Definition at line 264 of file MooseBase.h.

264{ return messagePrefix(); }

◆ findBoundaryOverlap()

std::vector< boundary_id_type > MeshDiagnosticsGenerator::findBoundaryOverlap ( const std::vector< boundary_id_type > &  watertight_boundaries,
std::vector< boundary_id_type > &  boundary_ids 
) const
private

Helper function that finds the intersection between the given vectors.

Definition at line 469 of file MeshDiagnosticsGenerator.C.

472{
473 // Only the boundary_ids vector is sorted here. watertight_boundaries has to be sorted beforehand
474 // Returns their intersection (elements that they share)
475 std::sort(boundary_ids.begin(), boundary_ids.end());
476 std::vector<boundary_id_type> boundary_intersection;
477 std::set_intersection(watertight_boundaries.begin(),
478 watertight_boundaries.end(),
479 boundary_ids.begin(),
480 boundary_ids.end(),
481 std::back_inserter(boundary_intersection));
482 return boundary_intersection;
483}

Referenced by checkWatertightNodesets(), and checkWatertightSidesets().

◆ flagInvalidSolutionInternal()

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

Set solution invalid mark for the given solution ID.

Definition at line 41 of file SolutionInvalidInterface.C.

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

◆ generate()

std::unique_ptr< MeshBase > MeshDiagnosticsGenerator::generate ( )
overridevirtual

Generate / modify the mesh.

Implements MeshGenerator.

Definition at line 151 of file MeshDiagnosticsGenerator.C.

152{
153 std::unique_ptr<MeshBase> mesh = std::move(_input);
154
155 // Most of the checks assume we have the full mesh
156 if (!mesh->is_serial())
157 mooseError("Only serialized meshes are supported");
158
159 // We prepare for use at the beginning to facilitate diagnosis
160 // This deliberately does not trust the mesh to know whether it's already prepared or not
161 mesh->prepare_for_use();
162
163 // check that specified boundary is valid, convert BoundaryNames to BoundaryIDs, and sort
164 for (const auto & boundary_name : _watertight_boundary_names)
165 {
166 if (!MooseMeshUtils::hasBoundaryNameOrID(*mesh, boundary_name))
167 mooseError("User specified boundary_to_check \'", boundary_name, "\' does not exist");
168 }
170 std::sort(_watertight_boundaries.begin(), _watertight_boundaries.end());
171
172 if (_check_sidesets_orientation != "NO_CHECK")
174
175 if (_check_watertight_sidesets != "NO_CHECK")
177
178 if (_check_watertight_nodesets != "NO_CHECK")
180
181 if (_check_element_volumes != "NO_CHECK")
183
184 if (_check_element_types != "NO_CHECK")
185 checkElementTypes(mesh);
186
187 if (_check_element_overlap != "NO_CHECK")
189
190 if (_check_non_planar_sides != "NO_CHECK")
192
193 if (_check_non_conformal_mesh != "NO_CHECK")
195
196 if (_check_nonconforming_faces != "NO_CHECK" ||
197 (_check_non_conformal_mesh != "NO_CHECK" && !isParamSetByUser("examine_nonconforming_faces")))
199
200 if (_check_adaptivity_non_conformality != "NO_CHECK")
202
203 if (_check_local_jacobian != "NO_CHECK")
205
206 if (_check_non_matching_edges != "NO_CHECK")
208
209 if (_check_polygons != "NO_CHECK")
210 checkPolygons(mesh);
211
212 return dynamic_pointer_cast<MeshBase>(mesh);
213}
void checkSidesetsOrientation(const std::unique_ptr< MeshBase > &mesh) const
Routine to check sideset orientation near subdomains.
void checkPolygons(const std::unique_ptr< MeshBase > &mesh) const
Routine to check for non-convex polygons.
void checkWatertightNodesets(const std::unique_ptr< MeshBase > &mesh) const
void checkNonConformalMeshFromAdaptivity(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether a mesh presents non-conformality born from adaptivity.
void checkElementVolumes(const std::unique_ptr< MeshBase > &mesh) const
Routine to check the element volumes.
void checkLocalJacobians(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether the Jacobians (elem and side) are not negative.
void checkWatertightSidesets(const std::unique_ptr< MeshBase > &mesh) const
void checkNonMatchingEdges(const std::unique_ptr< MeshBase > &mesh) const
Routine to check for non matching edges.
void checkNonConformingFaces(const std::unique_ptr< MeshBase > &mesh) const
Routine to check for element faces that border material but match no neighbor face.
void checkNonConformalMesh(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether a mesh presents non-conformality.
void checkElementOverlap(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether elements overlap in the mesh.
void checkNonPlanarSides(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether there are non-planar sides in the mesh.
void checkElementTypes(const std::unique_ptr< MeshBase > &mesh) const
Routine to check the element types in each subdomain.
std::vector< BoundaryID > getBoundaryIDs(const libMesh::MeshBase &mesh, const std::vector< BoundaryName > &boundary_name, bool generate_unknown, const std::set< BoundaryID > &mesh_boundary_ids)
Gets the boundary IDs with their names.
bool hasBoundaryNameOrID(const MeshBase &mesh, const BoundaryName &name_or_id)
Whether a particular boundary name or ID exists in the mesh.

◆ generateCSG()

std::unique_ptr< CSG::CSGBase > MeshGenerator::generateCSG ( )
protectedvirtualinherited

Generate the CSG representation of the mesh (or meshing operation) created by this mesh generator.

Definition at line 537 of file MeshGenerator.C.

538{
539 mooseAssert(!hasGenerateCSG(), "Inconsistent flag");
540 mooseError("This MeshGenerator does not have a generateCSG() implementation.");
541}

Referenced by MeshGenerator::generateInternalCSG().

◆ generateData()

void MeshGenerator::generateData ( )
protectedvirtualinherited

Generate the mesh data.

Reimplemented in AddMetaDataGenerator.

Definition at line 530 of file MeshGenerator.C.

531{
532 mooseAssert(!hasGenerateData(), "Inconsistent flag");
533 mooseError("This MeshGenerator does not have a generateData() implementation.");
534}
bool hasGenerateData() const

Referenced by MeshGenerator::generateInternal().

◆ generateInternal()

std::unique_ptr< MeshBase > MeshGenerator::generateInternal ( )
inherited

Internal generation method - this is what is actually called within MooseApp to execute the MeshGenerator.

Definition at line 340 of file MeshGenerator.C.

341{
342 libmesh_parallel_only(comm());
343 mooseAssert(comm().verify(type() + name()), "Inconsistent execution ordering");
344
345 if (hasGenerateData())
346 generateData();
347
348 if (isDataOnly())
349 return nullptr;
350
351 auto mesh = generate();
352 if (!mesh)
353 mooseError("A mesh was not generated by this generator (it was nullptr).");
354
355 for (const auto & [requested_name, requested_mesh] : _requested_meshes)
356 if (*requested_mesh)
358 "The mesh from input ",
359 _app.getMeshGenerator(requested_name).type(),
360 " '",
361 _app.getMeshGenerator(requested_name).name(),
362 "' was not moved.\n\nThe MeshGenerator system requires that the memory from all input "
363 "meshes\nare managed by the requesting MeshGenerator during the generate phase.\n\nThis "
364 "is achieved with a std::move() operation within the generate() method.");
365
366 if (getParam<bool>("show_info"))
367 {
368 if (!mesh->is_prepared())
369 mesh->prepare_for_use();
370
371 const auto mesh_info = mesh->get_info(/* verbosity = */ 2);
372
373 // We will prefix all information with "type() 'name()':" because this could potentially
374 // output a ton of information and looks a bit better with a prefix
375 std::stringstream oss;
376 const auto split = MooseUtils::split(mesh_info, "\n");
377 if (split.size())
378 for (std::size_t i = 0; i < split.size() - 1; ++i) // ignore the last line break
379 oss << COLOR_CYAN << "" << type() << " '" << name() << "': " << COLOR_DEFAULT << split[i]
380 << std::endl;
381 _console << oss.str() << std::flush;
382 }
383
384 // output the current mesh block to file
385 if (hasOutput())
386 {
387 if (!mesh->is_prepared())
388 mesh->prepare_for_use();
389
390 if (!getParam<bool>("nemesis"))
391 {
392 libMesh::ExodusII_IO exio(*mesh);
393
394 if (mesh->mesh_dimension() == 1)
395 exio.write_as_dimension(3);
396
397 // Avoid truncating names
398 exio.set_max_name_length(80);
399
400 // Default to non-HDF5 output for wider compatibility
401 exio.set_hdf5_writing(false);
402
403 exio.write(name() + "_in.e");
404 }
405 else
406 {
407 libMesh::Nemesis_IO nemesis_io(*mesh);
408
409 // Default to non-HDF5 output for wider compatibility
410 nemesis_io.set_hdf5_writing(false);
411
412 nemesis_io.write(name() + "_in.e");
413 }
414 }
415
416 return mesh;
417}
virtual std::unique_ptr< MeshBase > generate()=0
Generate / modify the mesh.
std::vector< std::pair< std::string, std::unique_ptr< MeshBase > * > > _requested_meshes
The meshes that were requested by this MeshGenerator; used to verify that any input meshes that are r...
bool hasOutput() const
virtual void generateData()
Generate the mesh data.
const Parallel::Communicator & comm() const
std::vector< std::string > split(const std::string &str, const std::string &delimiter, std::size_t max_count)
tbb::split split

◆ generateInternalCSG()

std::unique_ptr< CSG::CSGBase > MeshGenerator::generateInternalCSG ( )
inherited

Internal generation method for CSG object generation.

Definition at line 420 of file MeshGenerator.C.

421{
422 mooseAssert(isDataOnly(), "Trying to use csg-only mode while not in data-driven mode");
423 auto csg_obj = generateCSG();
424 mooseAssert(csg_obj, "Null CSG object");
425 for (const auto & [requested_name, requested_csg] : _requested_csg_bases)
426 if (*requested_csg)
428 "The CSGBase object from input ",
429 _app.getMeshGenerator(requested_name).type(),
430 " '",
431 _app.getMeshGenerator(requested_name).name(),
432 "' was not moved.\n\nThe MeshGenerator system requires that the memory from all input "
433 "meshes\nare managed by the requesting MeshGenerator during the generate phase.\n\nThis "
434 "is achieved with a std::move() operation within the generateCSG() method.");
435
436 return csg_obj;
437}
virtual std::unique_ptr< CSG::CSGBase > generateCSG()
Generate the CSG representation of the mesh (or meshing operation) created by this mesh generator.
std::vector< std::pair< std::string, std::unique_ptr< CSG::CSGBase > * > > _requested_csg_bases
The CSGBase objects that were requested by this MeshGenerator; used to verify that any input meshes t...

◆ getBase()

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

Definition at line 147 of file MooseBase.h.

147{ return _pars.getBase(); }
const std::string & getBase() const

Referenced by MooseBase::uniqueParameterName().

◆ getCheckedPointerParam()

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

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

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

Definition at line 450 of file MooseBase.h.

451{
452 return _pars.getCheckedPointerParam<T>(name, error_string);
453}
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.

◆ getChildMeshGenerators()

const std::set< const MeshGenerator *, Comparator > & MeshGenerator::getChildMeshGenerators ( ) const
inlineinherited

Gets the MeshGenerators that are children to this MeshGenerator.

Definition at line 148 of file MeshGenerator.h.

149 {
151 }

Referenced by MeshGenerator::isChildMeshGenerator().

◆ getCSGBase()

std::unique_ptr< CSG::CSGBase > & MeshGenerator::getCSGBase ( const std::string &  param_name)
protectedinherited

Takes the name of a MeshGeneratorName parameter and then gets a pointer to the CSGBase object that MeshGenerator has created.

NOTE: You MUST catch this by reference!

Parameters
param_nameThe name of the parameter that contains the name of the MeshGenerator
Returns
The CSGBase object generated by that MeshGenerator

Definition at line 253 of file MeshGenerator.C.

254{
255 const MeshGeneratorName * name = getMeshGeneratorNameFromParam(param_name, false);
256 if (!name)
257 return _null_csg_base;
258 return getCSGBaseByName(*name);
259}
std::unique_ptr< CSG::CSGBase > & getCSGBaseByName(const MeshGeneratorName &mesh_generator_name)
Like getCSGBase(), but takes the name of another MeshGenerator directly.
std::unique_ptr< CSG::CSGBase > _null_csg_base
A nullptr to use for when inputs aren't specified.

◆ getCSGBaseByName()

std::unique_ptr< CSG::CSGBase > & MeshGenerator::getCSGBaseByName ( const MeshGeneratorName &  mesh_generator_name)
protectedinherited

Like getCSGBase(), but takes the name of another MeshGenerator directly.

NOTE: You MUST catch this by reference!

Parameters
mesh_generator_nameThe name of the MeshGenerator associated with the CSGBase object
Returns
The CSGBase pointer generated by that MeshGenerator

Definition at line 262 of file MeshGenerator.C.

263{
264 checkGetMesh(mesh_generator_name, "");
265 if (isNullMeshName(mesh_generator_name))
266 return _null_csg_base;
267
268 auto & csg_base = _app.getMeshGeneratorSystem().getCSGBaseGeneratorOutput(mesh_generator_name);
269 _requested_csg_bases.emplace_back(mesh_generator_name, &csg_base);
270 return csg_base;
271}
std::unique_ptr< CSG::CSGBase > & getCSGBaseGeneratorOutput(const MeshGeneratorName &name)
Returns the output CSGBase object associated with a particular mesh generator name.

Referenced by MeshGenerator::getCSGBase(), and MeshGenerator::getCSGBasesByName().

◆ getCSGBases()

std::vector< std::unique_ptr< CSG::CSGBase > * > MeshGenerator::getCSGBases ( const std::string &  param_name)
protectedinherited

Like getCSGBase(), but for multiple generators.

NOTE: You MUST catch this by reference!

Parameters
param_nameThe name of the parameter that contains the names of MeshGenerator objects
Returns
Vector of CSGBase pointers associated with input parameter

Definition at line 274 of file MeshGenerator.C.

275{
277}
std::vector< std::unique_ptr< CSG::CSGBase > * > getCSGBasesByName(const std::vector< MeshGeneratorName > &mesh_generator_names)
Like getCSGBaseByName(), but for multiple generators.

◆ getCSGBasesByName()

std::vector< std::unique_ptr< CSG::CSGBase > * > MeshGenerator::getCSGBasesByName ( const std::vector< MeshGeneratorName > &  mesh_generator_names)
protectedinherited

Like getCSGBaseByName(), but for multiple generators.

NOTE: You MUST catch this by reference!

Parameters
mesh_generator_namesThe names of MeshGenerator objects
Returns
Vector of CSGBase pointers associated with input parameter

Definition at line 280 of file MeshGenerator.C.

281{
282 std::vector<std::unique_ptr<CSG::CSGBase> *> csg_bases;
283 for (const auto & name : mesh_generator_names)
284 csg_bases.push_back(&getCSGBaseByName(name));
285 return csg_bases;
286}

Referenced by MeshGenerator::getCSGBases().

◆ getDataFileName()

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

Deprecated method.

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

Definition at line 21 of file DataFileInterface.C.

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

◆ getDataFileNameByName()

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

Deprecated method.

Use getDataFilePath() instead.

Definition at line 31 of file DataFileInterface.C.

32{
33 _parent.mooseDeprecated("getDataFileNameByName() is deprecated. Use getDataFilePath(\"",
34 relative_path,
35 "\") instead.");
36 return getDataFilePath(relative_path);
37}
std::string getDataFilePath(const std::string &relative_path) const
Returns the path of a data file for a given relative file path.

◆ getDataFilePath()

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

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

This can be used for hardcoded datafile names and will search the same locations as getDataFileName

Definition at line 40 of file DataFileInterface.C.

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

Referenced by DataFileInterface::getDataFileNameByName().

◆ getHitNode() [1/2]

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

Definition at line 136 of file MooseBase.h.

136{ return getHitNode(_pars); }

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

◆ getHitNode() [2/2]

const hit::Node * MooseBase::getHitNode ( const InputParameters params)
staticprivateinherited

Internal method for getting a hit node (if available) given a set of parameters.

Needs to be static so that we can call it externally from InputParameters for errors that do not have context of the MooseBase

Definition at line 167 of file MooseBase.C.

168{
169 if (const auto hit_node = params.getHitNode())
170 if (!hit_node->isRoot())
171 return hit_node;
172 return nullptr;
173}
const hit::Node * getHitNode(const std::string &param) const

◆ getMesh()

std::unique_ptr< MeshBase > & MeshGenerator::getMesh ( const std::string &  param_name,
const bool  allow_invalid = false 
)
protectedinherited

Takes the name of a MeshGeneratorName parameter and then gets a pointer to the Mesh that MeshGenerator is going to create.

That MeshGenerator is made to be a dependency of this one, so will generate() its mesh first.

Parameters
param_nameThe name of the parameter that contains the name of the MeshGenerator
allow_invalidIf true, will allow for invalid parameters and will return a nullptr mesh if said parameter does not exist
Returns
The Mesh generated by that MeshGenerator

NOTE: You MUST catch this by reference!

Definition at line 216 of file MeshGenerator.C.

217{
218 const MeshGeneratorName * name = getMeshGeneratorNameFromParam(param_name, allow_invalid);
219 if (!name)
220 return _null_mesh;
221 return getMeshByName(*name);
222}
std::unique_ptr< MeshBase > _null_mesh
A nullptr to use for when inputs aren't specified.
std::unique_ptr< MeshBase > & getMeshByName(const MeshGeneratorName &mesh_generator_name)
Like getMesh(), but takes the name of another MeshGenerator directly.

◆ getMeshByName()

std::unique_ptr< MeshBase > & MeshGenerator::getMeshByName ( const MeshGeneratorName &  mesh_generator_name)
protectedinherited

Like getMesh(), but takes the name of another MeshGenerator directly.

NOTE: You MUST catch this by reference!

Returns
The Mesh generated by that MeshGenerator

Definition at line 231 of file MeshGenerator.C.

232{
233 checkGetMesh(mesh_generator_name, "");
234 if (isNullMeshName(mesh_generator_name))
235 return _null_mesh;
236
237 _requested_mesh_generators.insert(mesh_generator_name);
238 auto & mesh = _app.getMeshGeneratorSystem().getMeshGeneratorOutput(mesh_generator_name);
239 _requested_meshes.emplace_back(mesh_generator_name, &mesh);
240 return mesh;
241}
std::unique_ptr< libMesh::MeshBase > & getMeshGeneratorOutput(const MeshGeneratorName &name)
Get a reference to a pointer that will be the output of the MeshGenerator named name.
std::set< MeshGeneratorName > _requested_mesh_generators
The names of the MeshGenerators that were requested in the getMesh methods.

Referenced by MeshGenerator::getMesh(), MeshGenerator::getMeshesByName(), OverlayMeshGenerator::OverlayMeshGenerator(), and SideSetExtruderGenerator::SideSetExtruderGenerator().

◆ getMeshes()

std::vector< std::unique_ptr< MeshBase > * > MeshGenerator::getMeshes ( const std::string &  param_name)
protectedinherited

Like getMesh(), but for multiple generators.

Returns
The generated meshes

Definition at line 225 of file MeshGenerator.C.

226{
228}
std::vector< std::unique_ptr< MeshBase > * > getMeshesByName(const std::vector< MeshGeneratorName > &mesh_generator_names)
Like getMeshByName(), but for multiple generators.

◆ getMeshesByName()

std::vector< std::unique_ptr< MeshBase > * > MeshGenerator::getMeshesByName ( const std::vector< MeshGeneratorName > &  mesh_generator_names)
protectedinherited

Like getMeshByName(), but for multiple generators.

Returns
The generated meshes

Definition at line 244 of file MeshGenerator.C.

245{
246 std::vector<std::unique_ptr<MeshBase> *> meshes;
247 for (const auto & name : mesh_generator_names)
248 meshes.push_back(&getMeshByName(name));
249 return meshes;
250}

Referenced by MeshGenerator::getMeshes().

◆ getMeshGeneratorNameFromParam()

const MeshGeneratorName * MeshGenerator::getMeshGeneratorNameFromParam ( const std::string &  param_name,
const bool  allow_invalid 
) const
privateinherited

Helper for getting a MeshGeneratorName parameter.

Definition at line 106 of file MeshGenerator.C.

108{
109 const auto valid_param = isParamValid(param_name);
110 if (!allow_invalid)
111 {
112 if (!valid_param)
113 mooseError("Failed to get a parameter with the name \"",
114 param_name,
115 "\" when getting a MeshGenerator.",
116 "\n\nKnown parameters:\n",
117 _pars);
118 if (!_pars.isType<MeshGeneratorName>(param_name))
119 paramError(param_name,
120 "Parameter of type \"",
121 _pars.type(param_name),
122 "\" is not an expected type for getting a MeshGenerator (should be of type "
123 "\"MeshGeneratorName\")");
124 }
125 else if (!valid_param)
126 return nullptr;
127
128 const auto & name = getParam<MeshGeneratorName>(param_name);
129 checkGetMesh(name, param_name);
130
131 return &name;
132}
std::string type(const std::string &name) const
Prints the type of the requested parameter by name.
bool isType(const std::string &name) const
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition MooseBase.h:199

Referenced by MeshGenerator::declareMeshForSub(), MeshGenerator::getCSGBase(), and MeshGenerator::getMesh().

◆ getMeshGeneratorNamesFromParam()

const std::vector< MeshGeneratorName > & MeshGenerator::getMeshGeneratorNamesFromParam ( const std::string &  param_name) const
privateinherited

Helper for getting a std::vector<MeshGeneratorName> parameter.

Definition at line 135 of file MeshGenerator.C.

136{
137 if (!isParamValid(param_name))
138 mooseError("Failed to get a parameter with the name \"",
139 param_name,
140 "\" when getting MeshGenerators.",
141 "\n\nKnown parameters:\n",
142 _pars);
143 if (!_pars.isType<std::vector<MeshGeneratorName>>(param_name))
144 paramError(param_name,
145 "Parameter of type \"",
146 _pars.type(param_name),
147 "\" is not an expected type for getting MeshGenerators (should be of type "
148 "\"std::vector<MeshGeneratorName>\")");
149
150 const auto & names = getParam<std::vector<MeshGeneratorName>>(param_name);
151 for (const auto & name : names)
152 checkGetMesh(name, param_name);
153
154 return names;
155}

Referenced by MeshGenerator::declareMeshesForSub(), MeshGenerator::getCSGBases(), and MeshGenerator::getMeshes().

◆ getMeshProperty() [1/2]

template<typename T >
const T & MeshMetaDataInterface::getMeshProperty ( const std::string &  data_name)
inlineprotectedinherited

Definition at line 64 of file MeshMetaDataInterface.h.

65 {
66 return getMeshProperty<T>(data_name, meshPropertyPrefix(data_name));
67 }
virtual std::string meshPropertyPrefix(const std::string &data_name) const
The default prefix to use for getting/seeing if mesh properties exist.

◆ getMeshProperty() [2/2]

template<typename T >
const T & MeshMetaDataInterface::getMeshProperty ( const std::string &  data_name,
const std::string &  prefix 
)
protectedinherited

Method for retrieving a property with the given type and name exists in the mesh meta-data store.

This method will throw an error if the property does not exist.

Definition at line 142 of file MeshMetaDataInterface.h.

144{
145 if (!hasMeshProperty(data_name, prefix))
146 mooseErrorInternal("Failed to get mesh property '", prefix, "/", data_name, "'");
147
148 auto value = &getMeshPropertyInternal(data_name, prefix);
149 mooseAssert(value->declared(), "Value has not been declared");
150 const RestartableData<T> * T_value = dynamic_cast<const RestartableData<T> *>(value);
151 if (!T_value)
152 mooseErrorInternal("While retrieving mesh property '",
153 prefix,
154 "/",
155 data_name,
156 "' with type '",
157 MooseUtils::prettyCppType<T>(),
158 "',\nthe property exists with different type '",
159 value->type(),
160 "'");
161 return T_value->get();
162}
const RestartableDataValue & getMeshPropertyInternal(const std::string &data_name, const std::string &prefix) const
Helper for getting a mesh property.
void mooseErrorInternal(Args &&... args) const
Helper for forwarding a mooseError to an object's mooseError if it is available (said error will prov...
const T & get() const

◆ getMeshPropertyInternal()

const RestartableDataValue & MeshMetaDataInterface::getMeshPropertyInternal ( const std::string &  data_name,
const std::string &  prefix 
) const
privateinherited

Helper for getting a mesh property.

Definition at line 54 of file MeshMetaDataInterface.C.

56{
58 meshPropertyName(data_name, prefix), MooseApp::MESH_META_DATA, 0);
59}
MooseApp & _meta_data_app
Reference to the application.
RestartableDataValue & getRestartableMetaData(const std::string &name, const RestartableDataMapName &metaname, THREAD_ID tid)
Definition MooseApp.C:2517

Referenced by MeshMetaDataInterface::getMeshProperty(), and MeshMetaDataInterface::hasMeshProperty().

◆ getMooseApp()

MooseApp & MooseBase::getMooseApp ( ) const
inlineinherited

Get the MooseApp this class is associated with.

Definition at line 87 of file MooseBase.h.

87{ return _app; }

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

◆ getParam() [1/2]

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

Retrieve a parameter for the object.

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

Definition at line 406 of file MooseBase.h.

407{
408 return InputParameters::getParamHelper<T>(name, _pars);
409}

Referenced by CommonOutputAction::act(), CreateDisplacedProblemAction::act(), CylinderComponent::addMeshGenerators(), FEProblemBase::addOutput(), ArrayParsedAux::ArrayParsedAux(), BicubicSplineFunction::BicubicSplineFunction(), Console::Console(), CutMeshByLevelSetGenerator::CutMeshByLevelSetGenerator(), DebugResidualAux::DebugResidualAux(), DerivativeParsedMaterialTempl< is_ad >::DerivativeParsedMaterialTempl(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), EigenKernel::EigenKernel(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), MFEMEigenvaluesPostprocessor::execute(), FEProblemSolve::FEProblemSolve(), ParsedVectorReporter::finalize(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FixedPointSolve::FixedPointSolve(), ParsedSubdomainGeneratorBase::functionInitialize(), BlockDeletionGenerator::generate(), BoundaryLayerSubdomainGenerator::generate(), BreakMeshByBlockGenerator::generate(), CoarsenBlockGenerator::generate(), FileMeshGenerator::generate(), MeshExtruderGenerator::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), SubdomainsFromPartitionerGenerator::generate(), XYDelaunayGenerator::generate(), GenericConstantRankTwoTensorTempl< is_ad >::GenericConstantRankTwoTensorTempl(), GenericConstantSymmetricRankTwoTensorTempl< is_ad >::GenericConstantSymmetricRankTwoTensorTempl(), GeometricSearchInterface::GeometricSearchInterface(), MooseApp::getCheckpointDirectories(), DataFileInterface::getDataFileName(), ExecutorInterface::getExecutor(), DefaultConvergenceBase::getSharedExecutionerParam(), AddVariableAction::init(), AdvancedOutput::init(), FixedPointIterationAdaptiveDT::init(), TimeSequenceStepper::init(), AdvancedOutput::initAvailableLists(), AttribThread::initFrom(), AttribExecutionOrderGroup::initFrom(), AttribSysNum::initFrom(), AttribResidualObject::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), SampledOutput::initSample(), IterationAdaptiveDT::limitDTToPostprocessorValue(), MooseMesh::MooseMesh(), MooseVariableBase::MooseVariableBase(), MoveNodesByParsedExpressionModifier::MoveNodesByParsedExpressionModifier(), MultiPostprocessorConvergence::MultiPostprocessorConvergence(), PerfGraphOutput::output(), Console::outputSystemInformation(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedElementDeletionGenerator::ParsedElementDeletionGenerator(), ParsedGenerateNodeset::ParsedGenerateNodeset(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedMaterialTempl< is_ad >::ParsedMaterialTempl(), ParsedNodeTransformGenerator::ParsedNodeTransformGenerator(), ParsedODEKernel::ParsedODEKernel(), ParsedPostprocessor::ParsedPostprocessor(), ParsedReporterBase::ParsedReporterBase(), ParsedVectorReporter::ParsedVectorReporter(), ProjectSideSetOntoLevelSetGenerator::ProjectSideSetOntoLevelSetGenerator(), ReferenceResidualInterface::ReferenceResidualInterface(), Moose::FV::setInterpolationMethod(), SetupMeshAction::setupMesh(), MooseApp::setupOptions(), Output::setWallTimeIntervalFromCommandLineParam(), PetscOutput::solveSetup(), TimePeriod::TimePeriod(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), and VectorOfPostprocessors::VectorOfPostprocessors().

◆ getParam() [2/2]

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

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

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

Definition at line 443 of file MooseBase.h.

444{
445 return _pars.get<T1, T2>(param1, param2);
446}

◆ getParentMeshGenerators()

const std::set< const MeshGenerator *, Comparator > & MeshGenerator::getParentMeshGenerators ( ) const
inlineinherited

Gets the MeshGenerators that are parents to this MeshGenerator.

Definition at line 141 of file MeshGenerator.h.

142 {
144 }

Referenced by MeshGeneratorSystem::createMeshGeneratorOrder(), and MeshGenerator::isParentMeshGenerator().

◆ getRenamedParam()

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

Retrieve a renamed parameter for the object.

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

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

Definition at line 420 of file MooseBase.h.

421{
422 // Most important: accept new parameter
423 if (isParamSetByUser(new_name) && !isParamValid(old_name))
424 return getParam<T>(new_name);
425 // Second most: accept old parameter
426 if (isParamValid(old_name) && !isParamSetByUser(new_name))
427 return getParam<T>(old_name);
428 // Third most: accept default for new parameter
429 if (isParamValid(new_name) && !isParamValid(old_name))
430 return getParam<T>(new_name);
431 // Refuse: no default, no value passed
432 if (!isParamValid(old_name) && !isParamValid(new_name))
433 mooseError("parameter '" + new_name +
434 "' is being retrieved without being set.\nDid you misspell it?");
435 // Refuse: both old and new parameters set by user
436 else
437 mooseError("Parameter '" + new_name + "' may not be provided alongside former parameter '" +
438 old_name + "'");
439}

◆ getRequestedMeshGenerators()

const std::set< MeshGeneratorName > & MeshGenerator::getRequestedMeshGenerators ( ) const
inlineinherited
Returns
The names of the MeshGenerators that were requested in the getMesh methods

Definition at line 99 of file MeshGenerator.h.

100 {
102 }

◆ getRequestedMeshGeneratorsForSub()

const std::set< MeshGeneratorName > & MeshGenerator::getRequestedMeshGeneratorsForSub ( ) const
inlineinherited
Returns
The names of the MeshGenerators that were requested in the declareMeshForSub methods

Definition at line 107 of file MeshGenerator.h.

108 {
110 }

◆ getSavedMeshName()

const std::string & MeshGenerator::getSavedMeshName ( ) const
inherited

Return the name of the saved mesh.

Definition at line 524 of file MeshGenerator.C.

525{
526 return _save_with_name;
527}
const std::string & _save_with_name
A user-defined name to save the mesh.

◆ getSharedPtr() [1/2]

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

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

Wrapper around shared_from_this().

Definition at line 70 of file MooseObject.C.

71{
72 try
73 {
74 return shared_from_this();
75 }
76 catch (std::bad_weak_ptr &)
77 {
78 mooseError(not_shared_error);
79 }
80}

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

◆ getSharedPtr() [2/2]

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

Definition at line 83 of file MooseObject.C.

84{
85 try
86 {
87 return shared_from_this();
88 }
89 catch (std::bad_weak_ptr &)
90 {
91 mooseError(not_shared_error);
92 }
93}

◆ getSubMeshGenerators()

const std::set< const MeshGenerator *, Comparator > & MeshGenerator::getSubMeshGenerators ( ) const
inlineinherited

Gets the MeshGenerators that are children to this MeshGenerator.

Definition at line 155 of file MeshGenerator.h.

156 {
158 }

◆ hasBase()

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

Definition at line 142 of file MooseBase.h.

142{ return _pars.hasBase(); }
bool hasBase() const

◆ hasGenerateCSG() [1/2]

bool MeshGenerator::hasGenerateCSG ( ) const
inlineinherited
Returns
Whether or not this generator has a generateCSG() implementation

Definition at line 209 of file MeshGenerator.h.

209{ return hasGenerateCSG(_pars); }

Referenced by MeshGenerator::checkGetMesh(), MeshGenerator::generateCSG(), MeshGenerator::hasGenerateCSG(), and MeshGenerator::MeshGenerator().

◆ hasGenerateCSG() [2/2]

bool MeshGenerator::hasGenerateCSG ( const InputParameters params)
staticinherited
Returns
Whether or not the mesh generator noted by the given parameters has a generateCSG() implementation

Definition at line 100 of file MeshGenerator.C.

101{
102 return params.get<bool>("_has_generate_csg");
103}

◆ hasGenerateData() [1/2]

bool MeshGenerator::hasGenerateData ( ) const
inlineinherited
Returns
Whether or not this generator has a generateData() implementation

Definition at line 204 of file MeshGenerator.h.

204{ return hasGenerateData(_pars); }

Referenced by MeshGenerator::generateData(), MeshGenerator::generateInternal(), MeshGenerator::hasGenerateData(), and MeshGenerator::MeshGenerator().

◆ hasGenerateData() [2/2]

bool MeshGenerator::hasGenerateData ( const InputParameters params)
staticinherited
Returns
Whether or not the mesh generator noted by the given parameters has a generateData() implementation

Definition at line 88 of file MeshGenerator.C.

89{
90 return params.get<bool>("_has_generate_data");
91}

◆ hasMeshProperty() [1/4]

bool MeshMetaDataInterface::hasMeshProperty ( const std::string &  data_name) const
inlineprotectedinherited
Returns
Whether or not a mesh meta-data exists with the default prefix.

Definition at line 82 of file MeshMetaDataInterface.h.

83 {
84 return hasMeshProperty(data_name, meshPropertyPrefix(data_name));
85 }

◆ hasMeshProperty() [2/4]

template<typename T >
bool MeshMetaDataInterface::hasMeshProperty ( const std::string &  data_name) const
inlineprotectedinherited
Returns
Whether or not a mesh meta-data exists with the default prefix and the given type.

Definition at line 90 of file MeshMetaDataInterface.h.

91 {
92 return hasMeshProperty<T>(data_name, meshPropertyPrefix(data_name));
93 }

◆ hasMeshProperty() [3/4]

bool MeshMetaDataInterface::hasMeshProperty ( const std::string &  data_name,
const std::string &  prefix 
) const
protectedinherited
Returns
Whether or not a mesh meta-data exists.

Definition at line 33 of file MeshMetaDataInterface.C.

35{
38}
bool hasRestartableMetaData(const std::string &name, const RestartableDataMapName &metaname) const
Definition MooseApp.C:2507

Referenced by MeshGenerator::declareMeshProperty(), MeshMetaDataInterface::getMeshProperty(), MeshMetaDataInterface::hasMeshProperty(), MeshMetaDataInterface::hasMeshProperty(), and MeshGenerator::setMeshProperty().

◆ hasMeshProperty() [4/4]

template<typename T >
bool MeshMetaDataInterface::hasMeshProperty ( const std::string &  data_name,
const std::string &  prefix 
) const
protectedinherited
Returns
Whether or not a mesh meta-data exists with the given type.

Definition at line 166 of file MeshMetaDataInterface.h.

168{
169 if (!hasMeshProperty(data_name, prefix))
170 return false;
171 const auto & value = getMeshPropertyInternal(data_name, prefix);
172 return dynamic_cast<const RestartableData<T> *>(&value) != nullptr;
173}

◆ hasOutput()

bool MeshGenerator::hasOutput ( ) const
inherited
Returns
Whether or not to output this mesh generator separately (output parameter is set)

Definition at line 518 of file MeshGenerator.C.

519{
520 return getParam<bool>("output");
521}

Referenced by MeshGeneratorSystem::createMeshGeneratorOrder(), and MeshGenerator::generateInternal().

◆ hasSaveMesh()

bool MeshGenerator::hasSaveMesh ( ) const
inherited

Return whether or not to save the current mesh.

Definition at line 512 of file MeshGenerator.C.

513{
514 return _save_with_name.size();
515}

Referenced by MeshGeneratorSystem::createMeshGeneratorOrder(), and MeshGenerator::MeshGenerator().

◆ isChildMeshGenerator()

bool MeshGenerator::isChildMeshGenerator ( const MeshGeneratorName &  name,
const bool  direct = true 
) const
inherited
Returns
Whether or not the MeshGenerator with the name name is a child of this MeshGenerator.

If direct = true, check only immediate children of this generator. Otherwise, check all children.

Definition at line 491 of file MeshGenerator.C.

493{
494 return std::find_if(getChildMeshGenerators().begin(),
496 [&name, &direct](const auto & mg)
497 {
498 return mg->name() == name ||
499 (!direct && mg->isChildMeshGenerator(name, /* direct = */ false));
500 }) != getChildMeshGenerators().end();
501}
const std::set< const MeshGenerator *, Comparator > & getChildMeshGenerators() const
Gets the MeshGenerators that are children to this MeshGenerator.

Referenced by MeshGeneratorSystem::createMeshGeneratorOrder().

◆ isDataOnly()

bool MeshGenerator::isDataOnly ( ) const
inlineinherited
Returns
Whether or not this generator is to be generated in data-only mode

Definition at line 214 of file MeshGenerator.h.

214{ return _data_only; }
const bool _data_only
Whether or not this mesh generator will run in data only mode.

Referenced by MeshGenerator::addMeshSubgenerator(), MeshGenerator::generateInternal(), MeshGenerator::generateInternalCSG(), and MeshGenerator::MeshGenerator().

◆ isKokkosObject()

bool MooseObject::isKokkosObject ( ) const
inlineinherited

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

Definition at line 63 of file MooseObject.h.

63{ return parameters().isKokkosObject(); }
bool isKokkosObject() const
Returns whether this InputParameters belongs to a Kokkos object Checks whether MooseBase::kokkos_obje...

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

◆ isNullMeshName()

bool MeshGenerator::isNullMeshName ( const MeshGeneratorName &  name) const
inlineinherited
Returns
Whether or not the name name is registered as a "null" mesh, that is, a MeshGenerator that will not represent an input mesh when requested via getMesh.

See declareNullMeshName().

Definition at line 184 of file MeshGenerator.h.

184{ return _null_mesh_names.count(name); }

Referenced by MeshGenerator::checkGetMesh(), MeshGenerator::declareMeshForSubByName(), MeshGenerator::getCSGBaseByName(), and MeshGenerator::getMeshByName().

◆ isParamSetByUser()

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

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

Parameters
nameThe name of the parameter to test

Definition at line 205 of file MooseBase.h.

206 {
208 }
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was set by the user.

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

◆ isParamValid()

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

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 199 of file MooseBase.h.

199{ return _pars.isParamValid(name); }
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another,...

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

◆ isParentMeshGenerator()

bool MeshGenerator::isParentMeshGenerator ( const MeshGeneratorName &  name,
const bool  direct = true 
) const
inherited
Returns
Whether or not the MeshGenerator with the name name is a parent of this MeshGenerator.

If direct = true, check only immediate parents of this generator. Otherwise, check all parents.

Definition at line 478 of file MeshGenerator.C.

480{
481 return std::find_if(getParentMeshGenerators().begin(),
483 [&name, &direct](const auto & mg)
484 {
485 return mg->name() == name ||
486 (!direct && mg->isParentMeshGenerator(name, /* direct = */ false));
487 }) != getParentMeshGenerators().end();
488}
const std::set< const MeshGenerator *, Comparator > & getParentMeshGenerators() const
Gets the MeshGenerators that are parents to this MeshGenerator.

◆ meshPropertyName() [1/2]

std::string MeshMetaDataInterface::meshPropertyName ( const std::string &  data_name) const
inlineprotectedinherited
Returns
The default mesh property name for mesh property data

Definition at line 103 of file MeshMetaDataInterface.h.

104 {
105 return meshPropertyName(data_name, meshPropertyPrefix(data_name));
106 }

◆ meshPropertyName() [2/2]

std::string MeshMetaDataInterface::meshPropertyName ( const std::string &  data_name,
const std::string &  prefix 
)
staticprotectedinherited
Returns
The full name for mesh property data.

Definition at line 41 of file MeshMetaDataInterface.C.

42{
43 return std::string(SYSTEM) + "/" + prefix + "/" + data_name;
44}
static constexpr auto SYSTEM
The system name used when initializing the Restartable interface.

Referenced by MeshGenerator::declareMeshProperty(), MeshMetaDataInterface::getMeshPropertyInternal(), MeshMetaDataInterface::hasMeshProperty(), MeshMetaDataInterface::meshPropertyName(), and MeshGenerator::setMeshPropertyHelper().

◆ meshPropertyPrefix()

virtual std::string MeshGenerator::meshPropertyPrefix ( const std::string &  ) const
inlinefinaloverrideprivatevirtualinherited

Override of the default prefix to use when getting mesh properties.

Until we support getting mesh properties from other mesh generators (which is coming), we will default to properties returned by this generator.

Reimplemented from MeshMetaDataInterface.

Definition at line 471 of file MeshGenerator.h.

472 {
473 return name();
474 }

◆ messagePrefix() [1/2]

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

Definition at line 256 of file MooseBase.h.

257 {
258 return messagePrefix(_pars, hit_prefix);
259 }

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

◆ messagePrefix() [2/2]

std::string MooseBase::messagePrefix ( const InputParameters params,
const bool  hit_prefix 
)
staticprivateinherited

Internal method for getting the message prefix for an object (object type, name, etc).

Needs to be static so that we can call it externally from InputParameters for errors that do not have context of the MooseBase

Definition at line 140 of file MooseBase.C.

141{
142 std::string prefix = "";
143
144 if (hit_prefix)
145 if (const auto node = MooseBase::getHitNode(params))
146 prefix += Moose::hitMessagePrefix(*node);
147
148 // Don't have context without type and name
149 if (!params.isMooseBaseObject())
150 return prefix;
151
152 const auto & name = params.getObjectName();
153 const std::string base = params.hasBase() ? params.getBase() : "object";
154 const bool is_main_app = base == "Application" && name == AppFactory::main_app_name;
155 prefix += "The following occurred in the ";
156 if (is_main_app)
157 prefix += "main " + base;
158 else
159 prefix += base;
160 if (base != params.getObjectName() && name.size() && !is_main_app)
161 prefix += " '" + name + "'";
162 prefix += " of type " + params.getObjectType() + ".";
163 return prefix + "\n\n";
164}
static const std::string main_app_name
The name for the "main" moose application.
Definition AppFactory.h:68
bool isMooseBaseObject() const
const std::string & getObjectType() const
const std::string & getObjectName() const
std::string hitMessagePrefix(const hit::Node &node)
Get the prefix to be associated with a hit node for a message.
Definition Moose.C:909

◆ mooseDeprecated() [1/2]

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

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

Definition at line 317 of file MooseBase.h.

318 {
320 _console, false, true, true, messagePrefix(true), std::forward<Args>(args)...);
321 }
void mooseDeprecatedStream(S &oss, const bool expired, const bool print_title, const bool show_trace, Args &&... args)
Definition MooseError.h:252

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

◆ mooseDeprecated() [2/2]

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

◆ mooseDeprecatedNoTrace()

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

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

Definition at line 327 of file MooseBase.h.

328 {
330 _console, false, true, false, messagePrefix(true), std::forward<Args>(args)...);
331 }

◆ mooseDocumentedError()

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

Definition at line 277 of file MooseBase.h.

280 {
282 repo_name, issue_num, argumentsToString(std::forward<Args>(args)...)),
283 /* with_prefix = */ true);
284 }
std::string formatMooseDocumentedError(const std::string &repo_name, const unsigned int issue_num, const std::string &msg)
Formats a documented error.
Definition MooseError.C:140

Referenced by ManifoldSubdomainGenerator::ManifoldSubdomainGenerator().

◆ mooseError()

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

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

Definition at line 271 of file MooseBase.h.

272 {
273 callMooseError(argumentsToString(std::forward<Args>(args)...), /* with_prefix = */ true);
274 }

Referenced by CopyMeshPartitioner::_do_partition(), GridPartitioner::_do_partition(), HierarchicalGridPartitioner::_do_partition(), PetscExternalPartitioner::_do_partition(), AdaptivityAction::act(), AddBoundsVectorsAction::act(), AddFVICAction::act(), AddICAction::act(), AddMeshGeneratorAction::act(), AddPeriodicBCAction::act(), AddTimeStepperAction::act(), AddVectorPostprocessorAction::act(), ChainControlSetupAction::act(), CheckFVBCAction::act(), CheckIntegrityAction::act(), CombineComponentsMeshes::act(), CommonOutputAction::act(), CreateDisplacedProblemAction::act(), CreateExecutionerAction::act(), CreateProblemAction::act(), CreateProblemDefaultAction::act(), CSGOnlyAction::act(), DeprecatedBlockAction::act(), InitProblemAction::act(), MaterialDerivativeTestAction::act(), MaterialOutputAction::act(), SetAdaptivityOptionsAction::act(), SetupDebugAction::act(), SetupMeshAction::act(), SetupMeshCompleteAction::act(), SetupPredictorAction::act(), SetupTimeStepperAction::act(), SplitMeshAction::act(), Action::Action(), AddActionComponentAction::AddActionComponentAction(), PhysicsComponentInterface::addBoundaryConditionsFromComponents(), MooseApp::addCapabilityInternal(), DistributedRectilinearMeshGenerator::addElement(), MooseApp::addExecutor(), SubProblem::addFunctor(), PhysicsComponentInterface::addInitialConditionsFromComponents(), ComponentJunction::addMeshGenerators(), MeshGenerator::addMeshSubgenerator(), SubProblem::addPiecewiseByBlockLambdaFunctor(), DistributedRectilinearMeshGenerator::addPoint(), DiracKernelBase::addPointWithValidId(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), MooseMesh::addQuadratureNode(), AddActionComponentAction::addRelationshipManagers(), WebServerControl::addServerAction(), AddVariableAction::addVariable(), SubProblem::addVectorTag(), MooseVariableScalar::adUDot(), Output::advancedExecuteOn(), MooseVariableBase::allDofIndices(), MooseApp::appNameToLibName(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), MooseApp::attachRelationshipManagers(), MooseApp::attachRelationshipManagers(), FEProblemBase::automaticScaling(), Function::average(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), MooseMesh::buildCoarseningMap(), MultiApp::buildComm(), DistributedRectilinearMeshGenerator::buildCube(), PiecewiseTabularInterface::buildFromFile(), PiecewiseTabularInterface::buildFromJSON(), PiecewiseTabularInterface::buildFromXY(), MooseMesh::buildLowerDMesh(), GeneratedMesh::buildMesh(), MeshGeneratorMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), TiledMesh::buildMesh(), MooseMesh::buildRefinementMap(), MaterialBase::buildRequiredMaterials(), MooseMesh::buildTypedMesh(), MooseMesh::cacheFaceInfoVariableOwnership(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), EigenExecutionerBase::chebyshev(), SubProblem::checkBlockMatProps(), PhysicsBase::checkBlockRestrictionIdentical(), ComponentBoundaryConditionInterface::checkBoundaryConditionsAllRequested(), SubProblem::checkBoundaryMatProps(), PhysicsBase::checkComponentType(), IterationCountConvergence::checkConvergence(), MooseMesh::checkCoordinateSystems(), DiffusionLHDGAssemblyHelper::checkCoupling(), DefaultConvergenceBase::checkDuplicateSetSharedExecutionerParams(), MooseMesh::checkDuplicateSubdomainNames(), MaterialBase::checkExecutionStage(), FVFluxBC::checkFaceIntegrity(), FVInterfaceKernel::checkFaceIntegrity(), MeshGenerator::checkGetMesh(), ReporterTransferInterface::checkHasReporterValue(), EigenExecutionerBase::checkIntegrity(), Eigenvalue::checkIntegrity(), ExplicitTimeIntegrator::checkLinearConvergence(), MooseApp::checkMetaDataIntegrity(), checkNonConformalMeshFromAdaptivity(), checkNonMatchingEdges(), PostprocessorInterface::checkParam(), Moose::PeriodicBCHelper::checkPeriodicParams(), Sampler::checkReinitStatus(), MultiAppTransfer::checkSiblingsTransferSupported(), MaterialBase::checkStatefulSanity(), AddDefaultConvergenceAction::checkUnusedMultiAppFixedPointConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedNonlinearConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedSteadyStateConvergenceParameters(), Moose::PetscSupport::checkUserProvidedPetscOption(), MultiAppTransfer::checkVariable(), checkWatertightNodesets(), checkWatertightSidesets(), MooseMesh::clone(), LibmeshPartitioner::clone(), CombinerGenerator::CombinerGenerator(), MooseVariableFieldBase::componentName(), VariableCondensationPreconditioner::computeDInverseDiag(), CompositionDT::computeDT(), MooseVariableFieldBase::computeFaceValues(), TimeStepper::computeFailedDT(), IterationAdaptiveDT::computeFailedDT(), MooseMesh::computeFiniteVolumeCoords(), Moose::Kokkos::ResidualObject::computeOffDiagJacobian(), MaterialBase::computeProperties(), ResidualObject::computeResidualAndJacobian(), TimeStepper::computeStep(), AStableDirk4::computeTimeDerivatives(), BDF2::computeTimeDerivatives(), CrankNicolson::computeTimeDerivatives(), ExplicitEuler::computeTimeDerivatives(), ExplicitRK2::computeTimeDerivatives(), ExplicitTVDRK2::computeTimeDerivatives(), ImplicitEuler::computeTimeDerivatives(), ImplicitMidpoint::computeTimeDerivatives(), LStableDirk2::computeTimeDerivatives(), LStableDirk3::computeTimeDerivatives(), LStableDirk4::computeTimeDerivatives(), NewmarkBeta::computeTimeDerivatives(), ConcentricCircleMesh::ConcentricCircleMesh(), ConditionalEnableControl::ConditionalEnableControl(), TimeStepper::constrainStep(), LibtorchNeuralNetControl::controlNeuralNet(), TransientBase::convergedToSteadyState(), ParsedConvergence::convertRealToBool(), MooseApp::copyInputs(), CopyMeshPartitioner::CopyMeshPartitioner(), MultiApp::createApp(), MooseApp::createExecutors(), AddVariableAction::createInitialConditionAction(), MooseApp::createRMFromTemplateAndInit(), Function::curl(), ReporterTransferInterface::declareClone(), Moose::Kokkos::MaterialBase::declareKokkosPropertyInternal(), MeshGenerator::declareMeshProperty(), ReporterTransferInterface::declareVectorClone(), FunctorRelationshipManager::delete_remote_elements(), MooseMesh::deleteRemoteElements(), MooseApp::determineLibtorchDeviceType(), diagnosticsLog(), Function::div(), FunctorBinnedValuesDivision::divisionIndex(), FunctorRelationshipManager::dofmap_reinit(), MooseApp::dynamicAllRegistration(), MooseApp::dynamicAppRegistration(), DistributedRectilinearMeshGenerator::elemId(), MooseApp::errorCheck(), MooseMesh::errorIfDistributedMesh(), MultiAppTransfer::errorIfObjectExecutesOnTransferInSourceApp(), FixedPointSolve::examineFixedPointConvergence(), Eigenvalue::execute(), TransientBase::execute(), WebServerControl::execute(), MooseApp::executeExecutioner(), FVInterfaceKernel::faceArg1(), FVInterfaceKernel::faceArg2(), MultiApp::fillPositions(), MooseApp::finalizeRestore(), Transfer::find_sys(), DiracKernelInfo::findPoint(), FixedPointSolve::findTransformedSystem(), FixedPointSolve::FixedPointSolve(), FunctionDT::FunctionDT(), FunctionScalarAux::FunctionScalarAux(), FunctionScalarIC::FunctionScalarIC(), LinearFVBoundaryCondition::functorFaceArg(), FVInitialConditionTempl< T >::FVInitialConditionTempl(), FVScalarLagrangeMultiplierInterface::FVScalarLagrangeMultiplierInterface(), AdvancedExtruderGenerator::generate(), BoundingBoxNodeSetGenerator::generate(), CoarsenBlockGenerator::generate(), CombinerGenerator::generate(), CutMeshByLevelSetGeneratorBase::generate(), DistributedRectilinearMeshGenerator::generate(), ElementOrderConversionGenerator::generate(), ExtraNodesetGenerator::generate(), FileMeshGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), MeshCollectionGenerator::generate(), generate(), MeshExtruderGenerator::generate(), MeshRepairGenerator::generate(), MoveNodeGenerator::generate(), PlaneIDMeshGenerator::generate(), PolyLineMeshFollowingNodeSetGenerator::generate(), ProjectSideSetOntoLevelSetGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), RenumberBySubdomainGenerator::generate(), SmoothMeshGenerator::generate(), SpiralAnnularMeshGenerator::generate(), StackGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), SubdomainPerElementGenerator::generate(), TiledMeshGenerator::generate(), XYMeshLineCutter::generate(), XYZDelaunayGenerator::generate(), PatternedMeshGenerator::generate(), MeshGenerator::generateCSG(), MeshGenerator::generateData(), GeneratedMesh::GeneratedMesh(), GeneratedMeshGenerator::GeneratedMeshGenerator(), MeshGenerator::generateInternal(), MeshGenerator::generateInternalCSG(), CircularBoundaryCorrectionGenerator::generateRadialCorrectionFactor(), MooseMesh::getAxisymmetricRadialCoord(), MooseMesh::getBlockConnectedBlocks(), MooseMesh::getBoundaryID(), MultiApp::getBoundingBox(), ChainControl::getChainControlDataByName(), WebServerControl::getClientInfo(), MooseMesh::getCoarseningMap(), MultiApp::getCommandLineArgs(), MooseVariableBase::getContinuity(), Control::getControllableParameterByName(), MooseMesh::getCoordSystem(), PhysicsBase::getCoupledPhysics(), PhysicsBase::getCoupledPhysics(), DataFileInterface::getDataFilePath(), TransfiniteMeshGenerator::getDiscreteEdge(), MooseVariableBase::getDofIndices(), VariableCondensationPreconditioner::getDofToCondense(), TransfiniteMeshGenerator::getEdge(), EigenExecutionerBase::getEigenSystemConvergence(), MooseMesh::getElementIDIndex(), Material::getElementIDNeighbor(), Material::getElementIDNeighborByName(), MooseMesh::getElemIDMapping(), MooseMesh::getElemIDsOnBlocks(), WebServerControl::Response::getError(), MultiApp::getExecutioner(), MooseApp::getExecutor(), MultiAppTransfer::getFromMultiApp(), MultiAppTransfer::getFromMultiAppInfo(), SubProblem::getFunctor(), MooseMesh::getGeneralAxisymmetricCoordAxis(), MaterialPropertyInterface::getGenericMaterialPropertyByName(), DistributedRectilinearMeshGenerator::getGhostNeighbors(), DistributedRectilinearMeshGenerator::getIndices(), MaterialPropertyInterface::getKokkosBlockMaterialProperty(), FunctionInterface::getKokkosFunctionByName(), MaterialPropertyInterface::getKokkosMaterialPropertyByName(), Material::getMaterialByName(), SubProblem::getMatrixTagID(), AnnularMesh::getMaxInDimension(), GeneratedMesh::getMaxInDimension(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), AnnularMesh::getMinInDimension(), GeneratedMesh::getMinInDimension(), MultiAppTransfer::getMultiApp(), DistributedRectilinearMeshGenerator::getNeighbors(), MooseMesh::getNodeBlockIds(), MooseMesh::getNodeList(), MooseMesh::getPairedBoundaryMapping(), MaterialOutputAction::getParams(), PlaneIDMeshGenerator::getPlaneID(), PostprocessorInterface::getPostprocessorValueByNameInternal(), ComponentMaterialPropertyInterface::getPropertyValue(), MooseMesh::getRefinementMap(), MooseBase::getRenamedParam(), ReporterInterface::getReporterContextBaseByName(), ReporterInterface::getReporterName(), Reporter::getReporterValueName(), MooseApp::getRestartableDataMap(), MooseApp::getRestartableDataMapName(), MooseApp::getRestartableMetaData(), MooseApp::getRMClone(), MooseObject::getSharedPtr(), MooseObject::getSharedPtr(), PhysicsBase::getSolverSystem(), MooseMesh::getSubdomainBoundaryIds(), TransientBase::getTimeIntegratorNames(), MultiAppTransfer::getToMultiApp(), MultiAppTransfer::getToMultiAppInfo(), MooseMesh::getUniqueCoordSystem(), UserObjectInterface::getUserObjectBaseByName(), UserObjectInterface::getUserObjectName(), AddPeriodicBCAction::getVariables(), VectorPostprocessorInterface::getVectorPostprocessorName(), SubProblem::getVectorTag(), SubProblem::getVectorTagID(), MultiApp::globalAppToLocal(), Function::gradient(), MooseVariableBase::hasDoFsOnNodes(), PostprocessorInterface::hasPostprocessor(), PostprocessorInterface::hasPostprocessorByName(), ReporterInterface::hasReporterValue(), ReporterInterface::hasReporterValueByName(), VectorPostprocessorInterface::hasVectorPostprocessor(), VectorPostprocessorInterface::hasVectorPostprocessor(), VectorPostprocessorInterface::hasVectorPostprocessorByName(), VectorPostprocessorInterface::hasVectorPostprocessorByName(), TransientBase::incrementStepOrReject(), NEML2Action::inferMOOSEIOType(), AddVariableAction::init(), MooseMesh::init(), Sampler::init(), EigenExecutionerBase::init(), TransientBase::init(), MFEMMesh::init(), CrankNicolson::init(), ExplicitTimeIntegrator::init(), FixedPointIterationAdaptiveDT::init(), IterationAdaptiveDT::init(), MultiApp::init(), NestedDivision::initialize(), ParsedConvergence::initializeConstantSymbol(), PhysicsBase::initializePhysics(), SubProblem::initialSetup(), AuxKernelBase::initialSetup(), SolutionScalarAux::initialSetup(), FullSolveMultiApp::initialSetup(), ExplicitTimeIntegrator::initialSetup(), Function::integral(), InternalSideIndicatorBase::InternalSideIndicatorBase(), EigenExecutionerBase::inversePowerIteration(), Sampler::isAdaptiveSamplingCompleted(), MooseMesh::isBoundaryFullyExternalToSubdomains(), MooseVariableBase::isNodal(), IterationAdaptiveDT::IterationAdaptiveDT(), IterationCountConvergence::IterationCountConvergence(), LibmeshPartitioner::LibmeshPartitioner(), MooseApp::libNameToAppName(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LineSearch::lineSearch(), MooseApp::loadLibraryAndDependencies(), ReporterPointMarker::markerSetup(), SubProblem::markFamilyPRefinement(), Material::Material(), Distribution::median(), FunctorRelationshipManager::mesh_reinit(), MeshDiagnosticsGenerator(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshRepairGenerator::MeshRepairGenerator(), SetupMeshAction::modifyParamsForUseSplit(), MeshMetaDataInterface::mooseErrorInternal(), MooseMesh::MooseMesh(), MooseObject::MooseObject(), UserObjectInterface::mooseObjectError(), MooseVariableBase::MooseVariableBase(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppTransfer::MultiAppTransfer(), NewmarkBeta::NewmarkBeta(), DistributedRectilinearMeshGenerator::nodeId(), DistributedRectilinearMeshGenerator::numNeighbors(), Output::onInterval(), FunctorRelationshipManager::operator()(), RelationshipManager::operator==(), ActionComponent::outerSurfaceArea(), ActionComponent::outerSurfaceBoundaries(), MortarNodalGeometryOutput::output(), Output::Output(), MooseApp::outputMachineReadableData(), DistributedRectilinearMeshGenerator::paritionSquarely(), ParsedConvergence::ParsedConvergence(), ParsedCurveGenerator::ParsedCurveGenerator(), ExplicitTimeIntegrator::performExplicitSolve(), PetscExternalPartitioner::PetscExternalPartitioner(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), PIDTransientControl::PIDTransientControl(), PiecewiseTabularInterface::PiecewiseTabularInterface(), CutMeshByLevelSetGeneratorBase::pointPairLevelSetInterception(), ProjectSideSetOntoLevelSetGenerator::pointPairLevelSetInterception(), ReporterInterface::possiblyCheckHasReporter(), VectorPostprocessorInterface::possiblyCheckHasVectorPostprocessorByName(), AStableDirk4::postResidual(), ExplicitRK2::postResidual(), ExplicitTVDRK2::postResidual(), ImplicitMidpoint::postResidual(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), LStableDirk4::postResidual(), VariableCondensationPreconditioner::preallocateCondensedJacobian(), Predictor::Predictor(), TransientBase::preExecute(), MooseMesh::prepare(), MooseMesh::prepared(), FixedPointSolve::printFixedPointConvergenceReason(), MultiApp::readCommandLineArguments(), CoarsenBlockGenerator::recursiveCoarsen(), MooseApp::recursivelyCreateExecutors(), FunctorRelationshipManager::redistribute(), MooseApp::registerRestartableData(), MooseApp::registerRestartableNameWithFilter(), Sampler::reinit(), MooseApp::removeRelationshipManager(), PhysicsBase::reportPotentiallyMissedParameters(), MooseApp::restore(), RinglebMesh::RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), MooseApp::run(), MooseApp::runInputs(), ScalarComponentIC::ScalarComponentIC(), DistributedRectilinearMeshGenerator::scaleNodalPositions(), FunctorRelationshipManager::set_mesh(), MooseVariableBase::setActiveTags(), DistributedRectilinearMeshGenerator::setBoundaryNames(), MooseMesh::setCoordSystem(), MooseMesh::setGeneralAxisymmetricCoordAxes(), MeshGenerator::setMeshProperty(), MooseApp::setMFEMDevice(), Sampler::setNumberOfCols(), Sampler::setNumberOfRandomSeeds(), Sampler::setNumberOfRows(), Moose::MFEM::LinearSolverBase::SetPreconditioner(), Split::setup(), TransientMultiApp::setupApp(), Moose::PeriodicBCHelper::setupAutoPeriodicBoundaries(), Moose::PeriodicBCHelper::setupManualPeriodicBoundaries(), SetupMeshAction::setupMesh(), MooseApp::setupOptions(), TimeSequenceStepperBase::setupSequence(), TransientBase::setupTimeIntegrator(), PhysicsBase::shouldCreateIC(), PhysicsBase::shouldCreateTimeDerivative(), PhysicsBase::shouldCreateVariable(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), MooseVariableBase::sizeMatrixTagData(), SmoothMeshGenerator::SmoothMeshGenerator(), SolutionTimeAdaptiveDT::SolutionTimeAdaptiveDT(), Moose::MFEM::LinearSolverBase::Solve(), TimeIntegrator::solve(), ExplicitRK2::solve(), ExplicitTVDRK2::solve(), FullSolveMultiApp::solveStep(), UserObject::spatialPoints(), UserObject::spatialValue(), SpiralAnnularMesh::SpiralAnnularMesh(), SpiralAnnularMeshGenerator::SpiralAnnularMeshGenerator(), MeshRepairGenerator::splitNonConvexPolygons(), WebServerControl::startServer(), StitchedMesh::StitchedMesh(), MaterialBase::subdomainSetup(), CutMeshByLevelSetGeneratorBase::tet4ElemCutter(), Action::timedAct(), Function::timeDerivative(), Function::timeIntegral(), ParsedCurveGenerator::tSectionSpaceDefiner(), MooseVariableScalar::uDot(), MooseVariableScalar::uDotDot(), MooseVariableScalar::uDotDotOld(), MooseVariableScalar::uDotOld(), MooseBase::uniqueName(), AuxScalarKernel::uOld(), ScalarKernelBase::uOld(), Function::value(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), PhysicsBase::variableExists(), MultiAppTransfer::variableIntegrityCheck(), AddVariableAction::variableType(), SubProblem::vectorTagName(), SubProblem::vectorTagType(), Function::vectorValue(), SubProblem::verifyVectorTags(), ActionComponent::volume(), WebServerControl::WebServerControl(), MFEMMesh::writeRecoveryFiles(), and MooseApp::writeRestartableMetaData().

◆ mooseErrorInternal()

template<typename... Args>
void MeshMetaDataInterface::mooseErrorInternal ( Args &&...  args) const
inlineprivateinherited

Helper for forwarding a mooseError to an object's mooseError if it is available (said error will provide more context: object name and type)

Definition at line 132 of file MeshMetaDataInterface.h.

133 {
135 _meta_data_object->mooseError(std::forward<Args>(args)...);
136 mooseError(std::forward<Args>(args)...);
137 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
const MooseObject *const _meta_data_object
The MooseObject (if any); used for better error handling.

Referenced by MeshMetaDataInterface::getMeshProperty().

◆ mooseErrorNonPrefixed()

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

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

Definition at line 290 of file MooseBase.h.

291 {
292 callMooseError(argumentsToString(std::forward<Args>(args)...), /* with_prefix = */ false);
293 }

◆ mooseInfo()

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

◆ mooseWarning() [1/2]

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

Emits a warning prefixed with object name and type.

Definition at line 299 of file MooseBase.h.

300 {
301 moose::internal::mooseWarningStream(_console, messagePrefix(true), std::forward<Args>(args)...);
302 }
void mooseWarningStream(S &oss, Args &&... args)
Definition MooseError.h:197

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

◆ mooseWarning() [2/2]

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

Definition at line 73 of file SolutionInvalidInterface.h.

74 {
75 _si_moose_base.MooseBase::mooseWarning(std::forward<Args>(args)...);
76 flagSolutionWarningMultipleRegistration(_si_moose_base.name() + ": warning");
77 }

Referenced by CopyMeshPartitioner::_do_partition(), AddFunctionAction::act(), AddKernelAction::act(), CommonOutputAction::act(), MaterialOutputAction::act(), MeshOnlyAction::act(), MooseMesh::addPeriodicVariable(), BoundaryMarker::BoundaryMarker(), DistributedRectilinearMeshGenerator::buildCube(), CartesianMeshGenerator::CartesianMeshGenerator(), CheckOutputAction::checkConsoleOutput(), MultiAppTransfer::checkMultiAppExecuteOn(), checkNonMatchingEdges(), checkPolygons(), ActionComponent::checkRequiredTasks(), PhysicsBase::checkRequiredTasks(), MultiApp::createApp(), diagnosticsLog(), CartesianGridDivision::divisionIndex(), CylindricalGridDivision::divisionIndex(), SphericalGridDivision::divisionIndex(), Postprocessor::evaluateDotWarning(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FixedPointSolve::FixedPointSolve(), BSplineCurveGenerator::generate(), RenumberBySubdomainGenerator::generate(), SubdomainPerElementGenerator::generate(), SurfaceMeshGeneratorBase::get2DElemNormal(), MultiAppTransfer::getAppInfo(), FunctorBinnedValuesDivision::getBinIndex(), IndicatorMarker::IndicatorMarker(), CartesianGridDivision::initialize(), CylindricalGridDivision::initialize(), SphericalGridDivision::initialize(), MaterialBase::initStatefulProperties(), IterationAdaptiveDT::limitDTToPostprocessorValue(), MFEMRefinementMarker::MFEMRefinementMarker(), NewmarkBeta::NewmarkBeta(), Output::Output(), MaterialOutputAction::outputHelper(), Executioner::problem(), TestSourceStepper::rejectStep(), PhysicsBase::reportPotentiallyMissedParameters(), MaterialBase::resetQpProperties(), MooseMesh::setCoordSystem(), TransientMultiApp::solveStep(), MeshRepairGenerator::splitNonConvexPolygons(), and VariableCondensationPreconditioner::VariableCondensationPreconditioner().

◆ mooseWarningNonPrefixed() [1/2]

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

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

Definition at line 308 of file MooseBase.h.

309 {
310 moose::internal::mooseWarningStream(_console, std::forward<Args>(args)...);
311 }

◆ mooseWarningNonPrefixed() [2/2]

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

Definition at line 80 of file SolutionInvalidInterface.h.

81 {
82 _si_moose_base.MooseBase::mooseWarningNonPrefixed(std::forward<Args>(args)...);
83 flagSolutionWarningMultipleRegistration(_si_moose_base.name() + ": warning");
84 }

◆ name()

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

Get the name of the class.

Returns
The name of the class

Definition at line 103 of file MooseBase.h.

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

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

◆ paramError()

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

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

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

Definition at line 457 of file MooseBase.h.

458{
459 _pars.paramError(param, std::forward<Args>(args)...);
460}
void paramError(const std::string &param, Args... args) const
Emits a parameter error prefixed with the parameter location and object information if available.

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

◆ parameters()

const InputParameters & MooseBase::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 131 of file MooseBase.h.

131{ return _pars; }

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

◆ paramInfo()

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

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

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

Definition at line 471 of file MooseBase.h.

472{
473 mooseInfo(_pars.paramMessage(param, std::forward<Args>(args)...));
474}
std::string paramMessage(const std::string &param, Args... args) const

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

◆ paramWarning() [1/2]

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

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

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

Definition at line 464 of file MooseBase.h.

465{
466 mooseWarning(_pars.paramMessage(param, std::forward<Args>(args)...));
467}

◆ paramWarning() [2/2]

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

◆ queryParam()

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

Query a parameter for the object.

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

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

Definition at line 413 of file MooseBase.h.

414{
415 return _pars.queryParam<T>(name);
416}
const T * queryParam(const std::string &name) const
Query a parameter.

Referenced by MFEMExecutedObject::getRequestedItems(), and MFEMGeometricMultigridSolver::MFEMGeometricMultigridSolver().

◆ registerInvalidSolutionInternal()

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

Definition at line 55 of file SolutionInvalidInterface.C.

57{
59 _si_moose_base.type(), message, warning);
60}
InvalidSolutionID registerInvalidity(const std::string &object_type, const std::string &message, const bool warning)
Call to register an invalid calculation.

◆ setHasGenerateCSG()

void MeshGenerator::setHasGenerateCSG ( InputParameters params)
staticinherited

Sets that a mesh generator has a generateCSG() implementation.

This must be called in the validParams() implementation for all mesh generators that implement generateCSG().

Definition at line 94 of file MeshGenerator.C.

95{
96 params.set<bool>("_has_generate_csg") = true;
97}

◆ setHasGenerateData()

void MeshGenerator::setHasGenerateData ( InputParameters params)
staticinherited

Sets that a mesh generator has a generateData() implementation.

This must be called in the validParams() implementation for all mesh generators that implement generateData().

Definition at line 82 of file MeshGenerator.C.

83{
84 params.set<bool>("_has_generate_data") = true;
85}

Referenced by AddMetaDataGenerator::validParams().

◆ setMeshProperty() [1/2]

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

Method for updating attributes to the mesh meta-data store, which can only be invoked in the MeshGenerator generate routine only if the mesh generator property has already been declared.

Definition at line 565 of file MeshGenerator.h.

566{
567 if (_app.actionWarehouse().getCurrentTaskName() != "execute_mesh_generators")
568 mooseError("Updating mesh meta data with setMeshProperty() can only be called during "
569 "MeshGenerator::generate()");
570
571 if (!hasMeshProperty(data_name))
572 mooseError("Failed to get the mesh property '", data_name, "'");
574 RestartableData<T> * T_value = dynamic_cast<RestartableData<T> *>(value);
575 if (!T_value)
576 mooseError("While retrieving mesh property '",
577 data_name,
578 "' with type '",
579 MooseUtils::prettyCppType<T>(),
580 "',\nthe property was found with type '",
581 value->type(),
582 "'");
583
584 // Set the value if someone provided arguments to set it to
585 if constexpr (sizeof...(args) > 0)
586 T_value->set() = T(std::forward<Args>(args)...);
587
588 return T_value->set();
589}
const std::string & getCurrentTaskName() const
ActionWarehouse & actionWarehouse()
Return a writable reference to the ActionWarehouse associated with this app.
Definition MooseApp.h:217
Abstract definition of a RestartableData value.

◆ setMeshProperty() [2/2]

template<typename T >
T & MeshGenerator::setMeshProperty ( const std::string &  data_name,
const T &  data_value 
)
inlineprotectedinherited

Definition at line 251 of file MeshGenerator.h.

252 {
253 return setMeshProperty<T, const T &>(data_name, data_value);
254 }

◆ setMeshPropertyHelper()

RestartableDataValue & MeshGenerator::setMeshPropertyHelper ( const std::string &  data_name)
privateinherited

Helper for getting a writable reference to a mesh property, used in declareMeshProperty and setMeshProperty.

Definition at line 458 of file MeshGenerator.C.

Referenced by MeshGenerator::declareMeshProperty(), and MeshGenerator::setMeshProperty().

◆ type()

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

Get the type of this class.

Returns
the name of the type of this class

Definition at line 93 of file MooseBase.h.

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

Referenced by CreateProblemDefaultAction::act(), MaterialDerivativeTestAction::act(), MaterialOutputAction::act(), SetupDebugAction::act(), FEProblemBase::addAuxArrayVariable(), FEProblemBase::addAuxScalarVariable(), FEProblemBase::addConvergence(), FEProblemBase::addDistribution(), DistributedRectilinearMeshGenerator::addElement(), DistributedRectilinearMeshGenerator::addElement(), MooseApp::addExecutor(), MooseApp::addExecutorParams(), MFEMProblem::addFESpace(), MFEMProblem::addFESpaceHierarchy(), FEProblemBase::addFunction(), MFEMProblem::addFunction(), FEProblemBase::addMeshDivision(), MooseApp::addMeshGenerator(), MeshGenerator::addMeshSubgenerator(), MeshGenerator::addMeshSubgenerator(), MFEMProblem::addMFEMProblemComposer(), FEProblemBase::addObject(), DistributedRectilinearMeshGenerator::addPoint(), MFEMProblem::addPostprocessor(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), MFEMProblem::addQuadratureFunction(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), WebServerControl::addServerActionsInternal(), FEProblemBase::addTimeIntegrator(), MFEMProblem::addVectorPostprocessor(), SubProblem::addVectorTag(), DisplacedProblem::addVectorTag(), FEProblemBase::advanceMultiApps(), MooseApp::appendMeshGenerator(), AuxKernelBase::AuxKernelBase(), FEProblemBase::backupMultiApps(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), BoundaryPreservedMarker::BoundaryPreservedMarker(), DistributedRectilinearMeshGenerator::buildCube(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildLowerDMesh(), MooseMesh::buildPRefinementAndCoarseningMaps(), PhysicsBase::checkComponentType(), MeshGenerator::checkGetMesh(), checkNonConformalMeshFromAdaptivity(), ActionComponent::checkRequiredTasks(), PhysicsBase::checkRequiredTasks(), FEProblemBase::checkUserObjectNameCollision(), MFEMMultiAppTransfer::checkValidTransferProblemTypes(), MeshInfo::CombinedInfos< ElemInfoMap, ElemInfoItems >::CombinedInfos(), ElemElemConstraint::computeElemNeighJacobian(), ArrayDGKernel::computeElemNeighJacobian(), DGKernel::computeElemNeighJacobian(), ADDGKernel::computeElemNeighJacobian(), ElemElemConstraint::computeElemNeighResidual(), ArrayDGKernel::computeElemNeighResidual(), DGKernel::computeElemNeighResidual(), ADDGKernel::computeElemNeighResidual(), ArrayDGLowerDKernel::computeLowerDJacobian(), DGLowerDKernel::computeLowerDJacobian(), ArrayLowerDIntegratedBC::computeLowerDJacobian(), LowerDIntegratedBC::computeLowerDJacobian(), ArrayLowerDIntegratedBC::computeLowerDOffDiagJacobian(), LowerDIntegratedBC::computeLowerDOffDiagJacobian(), ArrayHFEMDirichletBC::computeLowerDQpJacobian(), HFEMDirichletBC::computeLowerDQpJacobian(), ArrayHFEMDiffusion::computeLowerDQpJacobian(), HFEMDiffusion::computeLowerDQpJacobian(), ArrayLowerDIntegratedBC::computeLowerDQpOffDiagJacobian(), ArrayDGLowerDKernel::computeLowerDQpOffDiagJacobian(), ArrayHFEMDirichletBC::computeLowerDQpOffDiagJacobian(), HFEMDirichletBC::computeLowerDQpOffDiagJacobian(), FEProblemBase::computeMultiAppsDT(), ArrayDGKernel::computeOffDiagElemNeighJacobian(), DGKernel::computeOffDiagElemNeighJacobian(), ADDGKernel::computeOffDiagElemNeighJacobian(), ArrayDGLowerDKernel::computeOffDiagLowerDJacobian(), DGLowerDKernel::computeOffDiagLowerDJacobian(), ScalarKernel::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), DGConvection::computeQpJacobian(), ArrayDGDiffusion::computeQpJacobian(), DGDiffusion::computeQpJacobian(), InterfaceDiffusion::computeQpJacobian(), InterfaceReaction::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), ArrayDGKernel::computeQpOffDiagJacobian(), HFEMTestJump::computeQpOffDiagJacobian(), HFEMTrialJump::computeQpOffDiagJacobian(), ScalarKernel::computeQpResidual(), CoupledTiedValueConstraint::computeQpResidual(), EqualValueBoundaryConstraint::computeQpResidual(), LinearNodalConstraint::computeQpResidual(), TiedValueConstraint::computeQpResidual(), DGConvection::computeQpResidual(), ADDGAdvection::computeQpResidual(), ADDGDiffusion::computeQpResidual(), DGDiffusion::computeQpResidual(), HFEMDiffusion::computeQpResidual(), HFEMTestJump::computeQpResidual(), HFEMTrialJump::computeQpResidual(), ADMatInterfaceReaction::computeQpResidual(), InterfaceDiffusion::computeQpResidual(), InterfaceReaction::computeQpResidual(), ArrayDGDiffusion::computeQpResidual(), ArrayHFEMDiffusion::computeQpResidual(), FEProblemBase::computeSystems(), FEProblemBase::computeUserObjectByName(), FEProblemBase::computeUserObjects(), FEProblemBase::computeUserObjectsInternal(), FEProblemBase::createQRules(), DisplacedProblem::createQRules(), MooseApp::createRecoverablePerfGraph(), MeshGenerator::declareMeshProperty(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), FEProblemBase::duplicateVariableCheck(), FEProblemBase::execMultiAppTransfers(), SteadyBase::execute(), WebServerControl::execute(), ActionWarehouse::executeActionsWithAction(), FEProblemBase::finishMultiAppStep(), FVScalarLagrangeMultiplierInterface::FVScalarLagrangeMultiplierInterface(), Boundary2DDelaunayGenerator::General2DDelaunay(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), Boundary2DDelaunayGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), SubdomainPerElementGenerator::generate(), PatternedMeshGenerator::generate(), MeshGenerator::generateInternal(), MeshGenerator::generateInternalCSG(), MultiAppTransfer::getAppInfo(), TransfiniteMeshGenerator::getEdge(), ElementGenerator::getElemType(), FEProblemBase::getMaterial(), FEProblemBase::getMaterialData(), FEProblemBase::getMaterialPropertyStorageConsumers(), MaterialOutputAction::getParams(), ReporterData::getReporterInfo(), MooseServer::getSyntaxMetadata(), FEProblemBase::getTransfers(), FEProblemBase::getUOQuery(), SubProblem::getVectorTags(), DisplacedProblem::getVectorTags(), EqualValueBoundaryConstraint::ghostPrimary(), CommonOutputAction::hasConsole(), FEProblemBase::hasMultiApps(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), NEML2Action::inferMOOSEIOType(), AdvancedOutput::initAvailableLists(), FunctorPositions::initialize(), FunctorTimes::initialize(), LinearFVAdvection::initialSetup(), LinearFVAnisotropicDiffusion::initialSetup(), LinearFVDiffusion::initialSetup(), MultiAppConservativeTransfer::initialSetup(), ArrayDGDiffusion::initQpResidual(), AdvancedOutput::initShowHideLists(), RelationshipManager::isType(), FEProblemBase::logAdd(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), MooseObject::MooseObject(), SubProblem::numVectorTags(), DisplacedProblem::numVectorTags(), AdvancedOutput::output(), Console::output(), ConsoleUtils::outputExecutionInformation(), Output::outputStep(), SampledOutput::outputStep(), FEProblemBase::outputStep(), MooseServer::parseDocumentForDiagnostics(), PointInUnionCheckUO::PointInUnionCheckUO(), MooseMesh::prepare(), ProjectedStatefulMaterialStorageAction::processProperty(), MooseApp::recursivelyCreateExecutors(), SolutionInvalidInterface::registerInvalidSolutionInternal(), FEProblemBase::restoreMultiApps(), MeshRepairGenerator::separateSubdomainsByElementType(), FEProblemBase::setCoupling(), MooseApp::setupOptions(), ExplicitRK2::solve(), ExplicitTVDRK2::solve(), Reporter::store(), MooseBase::typeAndName(), AuxScalarKernel::uOld(), ScalarKernelBase::uOld(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), UserObjectInterface::userObjectType(), and AdvancedOutput::wantOutput().

◆ typeAndName()

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

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

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

Definition at line 57 of file MooseBase.C.

58{
59 return type() + std::string(" \"") + name() + std::string("\"");
60}

Referenced by MaterialPropertyStorage::addProperty(), FEProblemBase::checkUserObjectNameCollision(), MeshGeneratorSystem::dataDrivenError(), ReporterContext< T >::finalize(), ReporterData::getReporterInfo(), MFEMSamplerBase::initialSetup(), MFEMVariableSamplerBase::initialSetup(), WebServerControl::outputMessage(), and Action::timedAct().

◆ uniqueName()

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

Definition at line 69 of file MooseBase.C.

70{
71 if (!_pars.have_parameter<std::string>(unique_name_param))
72 mooseError("uniqueName(): Object does not have a unique name");
73 return MooseObjectName(_pars.get<std::string>(unique_name_param));
74}
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.
static const std::string unique_name_param
The name of the parameter that contains the unique object name.
Definition MooseBase.h:57
A class for storing the names of MooseObject by tag and object name.

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

◆ uniqueParameterName()

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

Definition at line 63 of file MooseBase.C.

64{
65 return MooseObjectParameterName(getBase(), name(), parameter_name);
66}
const std::string & getBase() const
Definition MooseBase.h:147

◆ validParams()

InputParameters MeshDiagnosticsGenerator::validParams ( )
static

Definition at line 33 of file MeshDiagnosticsGenerator.C.

34{
35
37
38 params.addRequiredParam<MeshGeneratorName>("input", "The mesh we want to diagnose");
39 params.addClassDescription("Runs a series of diagnostics on the mesh to detect potential issues "
40 "such as unsupported features");
41
42 // Options for the output level
43 MooseEnum chk_option("NO_CHECK INFO WARNING ERROR", "NO_CHECK");
44
45 params.addParam<MooseEnum>(
46 "examine_sidesets_orientation",
47 chk_option,
48 "whether to check that sidesets are consistently oriented using neighbor subdomains. If a "
49 "sideset is inconsistently oriented within a subdomain, this will not be detected");
50 params.addParam<MooseEnum>(
51 "check_for_watertight_sidesets",
52 chk_option,
53 "whether to check for external sides that are not assigned to any sidesets");
54 params.addParam<MooseEnum>(
55 "check_for_watertight_nodesets",
56 chk_option,
57 "whether to check for external nodes that are not assigned to any nodeset");
58 params.addParam<std::vector<BoundaryName>>(
59 "boundaries_to_check",
60 {},
61 "Names boundaries that should form a watertight envelope around the mesh. Defaults to all "
62 "the boundaries combined.");
63 params.addParam<MooseEnum>(
64 "examine_element_volumes", chk_option, "whether to examine volume of the elements");
65 params.addParam<Real>("minimum_element_volumes", 1e-16, "minimum size for element volume");
66 params.addParam<Real>("maximum_element_volumes", 1e16, "Maximum size for element volume");
67
68 params.addParam<MooseEnum>("examine_element_types",
69 chk_option,
70 "whether to look for multiple element types in the same sub-domain");
71 params.addParam<MooseEnum>(
72 "examine_element_overlap", chk_option, "whether to find overlapping elements");
73 params.addParam<MooseEnum>(
74 "examine_nonplanar_sides", chk_option, "whether to check element sides are planar");
75 params.addParam<MooseEnum>("examine_non_conformality",
76 chk_option,
77 "whether to examine the conformality of elements in the mesh. "
78 "Automatically turns on 'examine_nonconforming_faces' as well,"
79 " unless specified otherwise.");
80 params.addParam<MooseEnum>(
81 "examine_nonconforming_faces",
82 chk_option,
83 "whether to check for element faces that border another element but do not match a "
84 "neighbor face (for example a quad face abutting two triangle faces). Unlike "
85 "'examine_non_conformality', this does not require a hanging node.");
86 params.addParam<MooseEnum>("examine_non_matching_edges",
87 chk_option,
88 "Whether to check if there are any intersecting edges");
89 params.addParam<Real>("intersection_tol", TOLERANCE, "tolerence for intersecting edges");
90 params.addParam<Real>("nonconformal_tol", TOLERANCE, "tolerance for element non-conformality");
91 params.addParam<MooseEnum>(
92 "search_for_adaptivity_nonconformality",
93 chk_option,
94 "whether to check for non-conformality arising from adaptive mesh refinement");
95 params.addParam<MooseEnum>("check_local_jacobian",
96 chk_option,
97 "whether to check the local Jacobian for bad (non-positive) values");
98 params.addParam<MooseEnum>(
99 "check_polygons", chk_option, "Whether to check that all C0 polygons are convex");
100 params.addParam<unsigned int>(
101 "log_length_limit",
102 10,
103 "How many problematic element/nodes/sides/etc are explicitly reported on by each check");
104 return params;
105}
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object.
void 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...
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.
static InputParameters validParams()
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55

Member Data Documentation

◆ _action_factory

ActionFactory& ParallelParamObject::_action_factory
protectedinherited

◆ _app

MooseApp& MooseBase::_app
protectedinherited

The MOOSE application this is associated with.

Definition at line 375 of file MooseBase.h.

Referenced by AB2PredictorCorrector::AB2PredictorCorrector(), FEProblemBase::acceptInvalidSolution(), FEProblemBase::addAnyRedistributers(), MeshGenerator::addChildMeshGenerator(), FEProblemBase::addMaterialHelper(), MeshGenerator::addMeshSubgenerator(), MeshGenerator::addMeshSubgenerator(), FEProblemBase::addOutput(), MeshGenerator::addParentMeshGenerator(), FEProblemBase::allowOutput(), AStableDirk4::AStableDirk4(), FileMesh::buildMesh(), MooseMesh::buildTypedMesh(), MooseMesh::cacheFaceInfoVariableOwnership(), MooseMesh::cacheFVElementalDoFs(), DefaultNonlinearConvergence::checkConvergence(), MeshGenerator::checkGetMesh(), FEProblemBase::checkICRestartError(), FEProblemBase::checkProblemIntegrity(), LibmeshPartitioner::clone(), BlockWeightedPartitioner::clone(), CopyMeshPartitioner::clone(), GridPartitioner::clone(), HierarchicalGridPartitioner::clone(), PetscExternalPartitioner::clone(), RandomPartitioner::clone(), SingleRankPartitioner::clone(), ElementPointNeighborLayers::clone(), ElementSideNeighborLayers::clone(), GhostAllPointNeighbors::clone(), GhostBoundary::clone(), GhostEverything::clone(), GhostHigherDLowerDPointNeighbors::clone(), GhostLowerDElems::clone(), GhostPrimaryFace::clone(), ProxyRelationshipManager::clone(), RedistributeProperties::clone(), SampledOutput::cloneMesh(), FEProblemBase::computeJacobianSys(), FEProblemBase::computeJacobianTags(), FEProblemBase::computeLinearSystemTags(), FEProblemBase::computeResidualAndJacobian(), FEProblemBase::computeResidualSys(), FEProblemBase::computeResidualTags(), Console::Console(), TimeStepper::constrainStep(), Control::Control(), CopyMeshPartitioner::CopyMeshPartitioner(), MultiApp::createApp(), MultiApp::createApps(), FEProblemBase::customSetup(), MeshGenerator::declareMeshProperty(), MeshGenerator::declareNullMeshName(), MooseMesh::determineUseDistributedMesh(), DumpObjectsProblem::dumpObjectHelper(), DumpObjectsProblem::DumpObjectsProblem(), DumpObjectsProblem::dumpVariableHelper(), EigenExecutionerBase::EigenExecutionerBase(), EigenKernel::EigenKernel(), PIDTransientControl::execute(), Eigenvalue::execute(), InversePowerMethod::execute(), NonlinearEigen::execute(), SteadyBase::execute(), TransientBase::execute(), MFEMSteady::execute(), PseudoTimestep::execute(), IterationInfo::execute(), EigenProblem::execute(), Executioner::Executioner(), Executioner::Executioner(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), FEProblemBase::FEProblemBase(), FileOutput::FileOutput(), NEML2Assembly::finalize(), ChangeOverFixedPointPostprocessor::finalize(), RadialAverage::finalize(), FixedPointSolve::FixedPointSolve(), FEProblemBase::forceOutput(), FullSolveMultiApp::FullSolveMultiApp(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), FVAdvection::FVAdvection(), FileMeshGenerator::generate(), MeshGenerator::generateInternal(), MeshGenerator::generateInternalCSG(), MeshGenerator::getCSGBaseByName(), FEProblemBase::getExecutor(), MeshGenerator::getMeshByName(), NumFixedPointIterations::getValue(), NumRelationshipManagers::getValue(), GhostingUserObject::GhostingUserObject(), MooseMesh::init(), Eigenvalue::init(), InversePowerMethod::init(), NonlinearEigen::init(), TransientBase::init(), MFEMMesh::init(), FEProblemBase::init(), CompositionDT::init(), SubProblem::initialSetup(), PIDTransientControl::initialSetup(), RealFunctionControl::initialSetup(), TimePeriod::initialSetup(), EigenProblemSolve::initialSetup(), FEProblemSolve::initialSetup(), Console::initialSetup(), FEProblemBase::initialSetup(), BoundaryMeshBuilder::initialSetup(), AdvancedOutput::initOutputList(), FEProblemBase::initPetscOutputAndSomeSolverSettings(), EigenProblem::initPetscOutputAndSomeSolverSettings(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), FEProblemBase::meshChanged(), MeshGenerator::MeshGenerator(), MFEMProblemSolve::MFEMProblemSolve(), MooseMesh::MooseMesh(), MooseMesh::MooseMesh(), MooseObject::MooseObject(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), EigenExecutionerBase::normalizeSolution(), NumFailedTimeSteps::NumFailedTimeSteps(), Checkpoint::output(), Exodus::output(), Nemesis::output(), PerfGraphOutput::output(), Tecplot::output(), MortarNodalGeometryOutput::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Exodus::outputEmptyTimestep(), Console::outputInput(), Exodus::outputInput(), Exodus::outputNodalVariables(), JSONOutput::outputReporters(), Output::outputStep(), SampledOutput::outputStep(), FEProblemBase::outputStep(), Console::outputSystemInformation(), JSONOutput::outputSystemInformation(), OverlayMeshGenerator::OverlayMeshGenerator(), MultiApp::parentOutputPositionChanged(), TransientBase::preExecute(), FEProblemBase::projectSolution(), AnnularMesh::safeClone(), ConcentricCircleMesh::safeClone(), FileMesh::safeClone(), GeneratedMesh::safeClone(), ImageMesh::safeClone(), MeshGeneratorMesh::safeClone(), PatternedMesh::safeClone(), RinglebMesh::safeClone(), SpiralAnnularMesh::safeClone(), StitchedMesh::safeClone(), TiledMesh::safeClone(), MFEMFileMesh::safeClone(), MFEMMeshGeneratorMesh::safeClone(), MultiApp::setAppOutputFileBase(), FileOutput::setFileBaseInternal(), MeshGenerator::setMeshProperty(), MeshGenerator::setMeshPropertyHelper(), FEProblemBase::setRestartFile(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), TransientBase::setupTimeIntegrator(), Output::setWallTimeIntervalFromCommandLineParam(), SideSetExtruderGenerator::SideSetExtruderGenerator(), SolutionInvalidityReporter::SolutionInvalidityReporter(), FixedPointSolve::solve(), FEProblemBase::solve(), EigenProblem::solve(), FEProblemBase::solveLinearSystem(), PetscOutput::solveSetup(), FixedPointSolve::solveStep(), TransientMultiApp::solveStep(), FEProblemBase::subdomainSetup(), FEProblemBase::theWarehouse(), TimeExtremeValue::TimeExtremeValue(), TimeIntegratedPostprocessor::TimeIntegratedPostprocessor(), TimeIntervalTimes::TimeIntervalTimes(), TimePeriod::TimePeriod(), SubProblem::timestepSetup(), PIDTransientControl::timestepSetup(), FEProblemBase::timestepSetup(), TransientBase::TransientBase(), MooseMesh::update(), NEML2FEInterpolation::updateDofMap(), NEML2FEInterpolation::updateGradPhi(), NEML2FEInterpolation::updateInterpolations(), FEProblemBase::updateMortarMesh(), NEML2FEInterpolation::updatePhi(), Console::write(), and FEProblemBase::~FEProblemBase().

◆ _check_adaptivity_non_conformality

const MooseEnum MeshDiagnosticsGenerator::_check_adaptivity_non_conformality
private

whether to check for the adaptivity of non-conformal meshes

Definition at line 106 of file MeshDiagnosticsGenerator.h.

Referenced by checkNonConformalMeshFromAdaptivity(), generate(), and MeshDiagnosticsGenerator().

◆ _check_element_overlap

const MooseEnum MeshDiagnosticsGenerator::_check_element_overlap
private

whether to check for intersecting elements

Definition at line 92 of file MeshDiagnosticsGenerator.h.

Referenced by checkElementOverlap(), generate(), and MeshDiagnosticsGenerator().

◆ _check_element_types

const MooseEnum MeshDiagnosticsGenerator::_check_element_types
private

whether to check different element types in the same sub-domain

Definition at line 90 of file MeshDiagnosticsGenerator.h.

Referenced by checkElementTypes(), generate(), and MeshDiagnosticsGenerator().

◆ _check_element_volumes

const MooseEnum MeshDiagnosticsGenerator::_check_element_volumes
private

whether to check element volumes

Definition at line 84 of file MeshDiagnosticsGenerator.h.

Referenced by checkElementVolumes(), generate(), and MeshDiagnosticsGenerator().

◆ _check_local_jacobian

const MooseEnum MeshDiagnosticsGenerator::_check_local_jacobian
private

whether to check for negative jacobians in the domain

Definition at line 108 of file MeshDiagnosticsGenerator.h.

Referenced by checkLocalJacobians(), generate(), and MeshDiagnosticsGenerator().

◆ _check_non_conformal_mesh

const MooseEnum MeshDiagnosticsGenerator::_check_non_conformal_mesh
private

whether to check for non-conformal meshes

Definition at line 96 of file MeshDiagnosticsGenerator.h.

Referenced by checkNonConformalMesh(), checkNonConformingFaces(), generate(), and MeshDiagnosticsGenerator().

◆ _check_non_matching_edges

const MooseEnum MeshDiagnosticsGenerator::_check_non_matching_edges
private

◆ _check_non_planar_sides

const MooseEnum MeshDiagnosticsGenerator::_check_non_planar_sides
private

whether to check for elements in different planes (non_planar)

Definition at line 94 of file MeshDiagnosticsGenerator.h.

Referenced by checkNonPlanarSides(), generate(), and MeshDiagnosticsGenerator().

◆ _check_nonconforming_faces

const MooseEnum MeshDiagnosticsGenerator::_check_nonconforming_faces
private

whether to check for element faces that border material but match no neighbor face

Definition at line 100 of file MeshDiagnosticsGenerator.h.

Referenced by checkNonConformingFaces(), generate(), and MeshDiagnosticsGenerator().

◆ _check_polygons

const MooseEnum MeshDiagnosticsGenerator::_check_polygons
private

whether to check for non-convex polygons in the mesh

Definition at line 110 of file MeshDiagnosticsGenerator.h.

Referenced by checkPolygons(), generate(), and MeshDiagnosticsGenerator().

◆ _check_sidesets_orientation

const MooseEnum MeshDiagnosticsGenerator::_check_sidesets_orientation
private

whether to check that sidesets are consistently oriented using neighbor subdomains

Definition at line 74 of file MeshDiagnosticsGenerator.h.

Referenced by checkSidesetsOrientation(), generate(), and MeshDiagnosticsGenerator().

◆ _check_watertight_nodesets

const MooseEnum MeshDiagnosticsGenerator::_check_watertight_nodesets
private

whether to check that each external node is assigned to a nodeset

Definition at line 78 of file MeshDiagnosticsGenerator.h.

Referenced by checkWatertightNodesets(), generate(), and MeshDiagnosticsGenerator().

◆ _check_watertight_sidesets

const MooseEnum MeshDiagnosticsGenerator::_check_watertight_sidesets
private

whether to check that each external side is assigned to a sideset

Definition at line 76 of file MeshDiagnosticsGenerator.h.

Referenced by checkWatertightSidesets(), generate(), and MeshDiagnosticsGenerator().

◆ _child_mesh_generators

std::set<const MeshGenerator *, Comparator> MeshGenerator::_child_mesh_generators
privateinherited

The MeshGenerators that are children to this MeshGenerator.

Definition at line 519 of file MeshGenerator.h.

Referenced by MeshGenerator::addChildMeshGenerator(), and MeshGenerator::getChildMeshGenerators().

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

◆ _data_only

const bool MeshGenerator::_data_only
privateinherited

Whether or not this mesh generator will run in data only mode.

Definition at line 530 of file MeshGenerator.h.

Referenced by MeshGenerator::isDataOnly().

◆ _enabled

const bool& MooseObject::_enabled
protectedinherited

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

Definition at line 71 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _factory

Factory& ParallelParamObject::_factory
protectedinherited

◆ _input

std::unique_ptr<MeshBase>& MeshDiagnosticsGenerator::_input
protected

the input mesh to be diagnosed

Definition at line 29 of file MeshDiagnosticsGenerator.h.

Referenced by generate().

◆ _max_volume

const Real MeshDiagnosticsGenerator::_max_volume
private

maximum size for element volume to be counted as a big element

Definition at line 88 of file MeshDiagnosticsGenerator.h.

Referenced by checkElementVolumes().

◆ _mesh

MooseMesh* const MeshGenerator::_mesh
protectedinherited

◆ _meta_data_app

MooseApp& MeshMetaDataInterface::_meta_data_app
privateinherited

Reference to the application.

Definition at line 122 of file MeshMetaDataInterface.h.

Referenced by MeshMetaDataInterface::getMeshPropertyInternal(), and MeshMetaDataInterface::hasMeshProperty().

◆ _meta_data_object

const MooseObject* const MeshMetaDataInterface::_meta_data_object
privateinherited

The MooseObject (if any); used for better error handling.

Definition at line 125 of file MeshMetaDataInterface.h.

Referenced by MeshMetaDataInterface::mooseErrorInternal().

◆ _min_volume

const Real MeshDiagnosticsGenerator::_min_volume
private

minimum size for element volume to be counted as a tiny element

Definition at line 86 of file MeshDiagnosticsGenerator.h.

Referenced by checkElementVolumes().

◆ _name

const std::string& MooseBase::_name
protectedinherited

The name of this class.

Definition at line 381 of file MooseBase.h.

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

◆ _non_conformality_tol

const Real MeshDiagnosticsGenerator::_non_conformality_tol
private

tolerance for detecting when meshes are not conformal

Definition at line 98 of file MeshDiagnosticsGenerator.h.

Referenced by checkElementOverlap(), checkNonConformalMesh(), and checkNonConformalMeshFromAdaptivity().

◆ _non_matching_edge_tol

const Real MeshDiagnosticsGenerator::_non_matching_edge_tol
private

Definition at line 104 of file MeshDiagnosticsGenerator.h.

Referenced by checkNonMatchingEdges().

◆ _null_csg_base

std::unique_ptr<CSG::CSGBase> MeshGenerator::_null_csg_base = nullptr
privateinherited

A nullptr to use for when inputs aren't specified.

Definition at line 514 of file MeshGenerator.h.

Referenced by MeshGenerator::getCSGBase(), and MeshGenerator::getCSGBaseByName().

◆ _null_mesh

std::unique_ptr<MeshBase> MeshGenerator::_null_mesh = nullptr
privateinherited

A nullptr to use for when inputs aren't specified.

Definition at line 511 of file MeshGenerator.h.

Referenced by MeshGenerator::getMesh(), and MeshGenerator::getMeshByName().

◆ _null_mesh_names

std::set<std::string> MeshGenerator::_null_mesh_names
privateinherited

The declared "null" mesh names that will not represent a mesh in input; see declareNullMeshName()

Definition at line 524 of file MeshGenerator.h.

Referenced by MeshGenerator::declareNullMeshName(), and MeshGenerator::isNullMeshName().

◆ _num_outputs

const unsigned int MeshDiagnosticsGenerator::_num_outputs
private

◆ _parent

const ParallelParamObject& DataFileInterface::_parent
privateinherited

◆ _parent_mesh_generators

std::set<const MeshGenerator *, Comparator> MeshGenerator::_parent_mesh_generators
privateinherited

The MeshGenerators that are parents to this MeshGenerator.

Definition at line 517 of file MeshGenerator.h.

Referenced by MeshGenerator::addParentMeshGenerator(), and MeshGenerator::getParentMeshGenerators().

◆ _pars

const InputParameters& MooseBase::_pars
protectedinherited

The object's parameters.

Definition at line 384 of file MooseBase.h.

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

◆ _requested_csg_bases

std::vector<std::pair<std::string, std::unique_ptr<CSG::CSGBase> *> > MeshGenerator::_requested_csg_bases
privateinherited

The CSGBase objects that were requested by this MeshGenerator; used to verify that any input meshes that are requested are properly released after generation.

Definition at line 508 of file MeshGenerator.h.

Referenced by MeshGenerator::generateInternalCSG(), and MeshGenerator::getCSGBaseByName().

◆ _requested_mesh_generators

std::set<MeshGeneratorName> MeshGenerator::_requested_mesh_generators
privateinherited

The names of the MeshGenerators that were requested in the getMesh methods.

Definition at line 500 of file MeshGenerator.h.

Referenced by MeshGenerator::getMeshByName(), and MeshGenerator::getRequestedMeshGenerators().

◆ _requested_mesh_generators_for_sub

std::set<MeshGeneratorName> MeshGenerator::_requested_mesh_generators_for_sub
privateinherited

The names of the MeshGenerators that were requested in the declareMeshForSub methods.

Definition at line 502 of file MeshGenerator.h.

Referenced by MeshGenerator::declareMeshForSubByName(), and MeshGenerator::getRequestedMeshGeneratorsForSub().

◆ _requested_meshes

std::vector<std::pair<std::string, std::unique_ptr<MeshBase> *> > MeshGenerator::_requested_meshes
privateinherited

The meshes that were requested by this MeshGenerator; used to verify that any input meshes that are requested are properly released after generation.

Definition at line 505 of file MeshGenerator.h.

Referenced by MeshGenerator::generateInternal(), and MeshGenerator::getMeshByName().

◆ _save_with_name

const std::string& MeshGenerator::_save_with_name
privateinherited

A user-defined name to save the mesh.

Definition at line 527 of file MeshGenerator.h.

Referenced by MeshGenerator::getSavedMeshName(), MeshGenerator::hasSaveMesh(), and MeshGenerator::MeshGenerator().

◆ _si_moose_base

const MooseBase& SolutionInvalidInterface::_si_moose_base
privateinherited

◆ _si_problem

const FEProblemBase* SolutionInvalidInterface::_si_problem
privateinherited

A pointer to FEProblem base.

Definition at line 114 of file SolutionInvalidInterface.h.

Referenced by SolutionInvalidInterface::flagInvalidSolutionInternal().

◆ _sub_mesh_generators

std::set<const MeshGenerator *, Comparator> MeshGenerator::_sub_mesh_generators
privateinherited

The sub MeshGenerators constructed by this MeshGenerator.

Definition at line 521 of file MeshGenerator.h.

Referenced by MeshGenerator::addMeshSubgenerator(), and MeshGenerator::getSubMeshGenerators().

◆ _type

const std::string& MooseBase::_type
protectedinherited

◆ _watertight_boundaries

std::vector<BoundaryID> MeshDiagnosticsGenerator::_watertight_boundaries
private

IDs of boundaries to be checked in watertight checks.

Definition at line 82 of file MeshDiagnosticsGenerator.h.

Referenced by checkWatertightNodesets(), checkWatertightSidesets(), and generate().

◆ _watertight_boundary_names

std::vector<BoundaryName> MeshDiagnosticsGenerator::_watertight_boundary_names
private

Names of boundaries to be checked in watertight checks.

Definition at line 80 of file MeshDiagnosticsGenerator.h.

Referenced by generate().

◆ app_param

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

◆ data_only_param

const std::string MeshGenerator::data_only_param = "_data_only"
staticinherited

The name of the private parameter for setting data only.

Definition at line 76 of file MeshGenerator.h.

Referenced by MeshGenerator::addMeshSubgenerator(), MeshGeneratorSystem::createAddedMeshGenerators(), and MeshGenerator::validParams().

◆ kokkos_object_param

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

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

Definition at line 64 of file MooseBase.h.

Referenced by InputParameters::isKokkosObject().

◆ moose_base_param

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

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

Definition at line 61 of file MooseBase.h.

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

◆ NAME

constexpr auto MeshMetaDataInterface::NAME = "<empty>"
staticconstexprinherited

The data name used when initializing the Restartable interface for non-MeshGenerator objects.

Definition at line 33 of file MeshMetaDataInterface.h.

◆ name_param

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

◆ SYSTEM

constexpr auto MeshMetaDataInterface::SYSTEM = "MeshMetaData"
staticconstexprinherited

The system name used when initializing the Restartable interface.

Definition at line 30 of file MeshMetaDataInterface.h.

Referenced by MeshMetaDataInterface::meshPropertyName().

◆ type_param

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

◆ unique_name_param

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

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

Definition at line 57 of file MooseBase.h.

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

◆ usingCombinedWarningSolutionWarnings

MooseObject::usingCombinedWarningSolutionWarnings
inherited

Definition at line 67 of file MooseObject.h.


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