https://mooseframework.inl.gov
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 | 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. More...
 

Public Member Functions

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

Static Public Member Functions

static InputParameters validParams ()
 
static void setHasGenerateData (InputParameters &params)
 Sets that a mesh generator has a generateData() implementation. More...
 
static bool hasGenerateData (const InputParameters &params)
 
static void setHasGenerateCSG (InputParameters &params)
 Sets that a mesh generator has a generateCSG() implementation. More...
 
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. More...
 

Public Attributes

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

Static Public Attributes

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

Protected Member Functions

virtual void generateData ()
 Generate the mesh data. More...
 
virtual std::unique_ptr< CSG::CSGBasegenerateCSG ()
 Generate the CSG representation of the mesh (or meshing operation) created by this mesh generator. More...
 
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. More...
 
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. More...
 
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. More...
 
std::vector< std::unique_ptr< MeshBase > * > getMeshes (const std::string &param_name)
 Like getMesh(), but for multiple generators. More...
 
std::unique_ptr< MeshBase > & getMeshByName (const MeshGeneratorName &mesh_generator_name)
 Like getMesh(), but takes the name of another MeshGenerator directly. More...
 
std::vector< std::unique_ptr< MeshBase > * > getMeshesByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 Like getMeshByName(), but for multiple generators. More...
 
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. More...
 
std::unique_ptr< CSG::CSGBase > & getCSGBaseByName (const MeshGeneratorName &mesh_generator_name)
 Like getCSGBase(), but takes the name of another MeshGenerator directly. More...
 
std::vector< std::unique_ptr< CSG::CSGBase > * > getCSGBases (const std::string &param_name)
 Like getCSGBase(), but for multiple generators. More...
 
std::vector< std::unique_ptr< CSG::CSGBase > * > getCSGBasesByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 Like getCSGBaseByName(), but for multiple generators. More...
 
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) More...
 
void declareMeshesForSub (const std::string &param_name)
 Like declareMeshForSub(), but for multiple generators. More...
 
void declareMeshForSubByName (const MeshGeneratorName &mesh_generator_name)
 Like declareMeshForSub(), but takes the name of another MeshGenerator directly. More...
 
void declareMeshesForSubByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 Like declareMeshForSubByName(), but for multiple generators. More...
 
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. More...
 
std::unique_ptr< ReplicatedMesh > buildReplicatedMesh (unsigned int dim=libMesh::invalid_uint)
 Build a replicated mesh. More...
 
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. More...
 
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. More...
 
void addMeshSubgenerator (const std::string &type, const std::string &name, InputParameters params)
 Construct a "subgenerator", as above. More...
 
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. More...
 
template<bool warning>
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 Set solution invalid mark for the given solution ID. More...
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
template<typename T >
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. More...
 
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. More...
 
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. More...
 
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 More...
 
MooseMesh *const _mesh
 Pointer to the owning mesh. More...
 
const bool & _enabled
 Reference to the "enable" InputParameters, used by Controls for toggling on/off MooseObjects. More...
 
MooseApp_app
 The MOOSE application this is associated with. More...
 
Factory_factory
 The Factory associated with the MooseApp. More...
 
ActionFactory_action_factory
 Builds Actions. More...
 
const std::string & _type
 The type of this class. More...
 
const std::string & _name
 The name of this class. More...
 
const InputParameters_pars
 The object's parameters. More...
 
const Parallel::Communicator_communicator
 

Private Member Functions

void checkSidesetsOrientation (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check sideset orientation near subdomains. More...
 
void checkWatertightSidesets (const std::unique_ptr< MeshBase > &mesh) const
 
void checkWatertightNodesets (const std::unique_ptr< MeshBase > &mesh) const
 
std::vector< boundary_id_typefindBoundaryOverlap (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. More...
 
void checkElementVolumes (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check the element volumes. More...
 
void checkElementTypes (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check the element types in each subdomain. More...
 
void checkElementOverlap (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether elements overlap in the mesh. More...
 
void checkNonPlanarSides (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether there are non-planar sides in the mesh. More...
 
void checkNonConformalMesh (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether a mesh presents non-conformality. More...
 
void checkNonConformalMeshFromAdaptivity (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether a mesh presents non-conformality born from adaptivity. More...
 
void checkLocalJacobians (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check whether the Jacobians (elem and side) are not negative. More...
 
void checkNonMatchingEdges (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check for non matching edges. More...
 
void checkPolygons (const std::unique_ptr< MeshBase > &mesh) const
 Routine to check for non-convex polygons. More...
 
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. More...
 

Private Attributes

const MooseEnum _check_sidesets_orientation
 whether to check that sidesets are consistently oriented using neighbor subdomains More...
 
const MooseEnum _check_watertight_sidesets
 whether to check that each external side is assigned to a sideset More...
 
const MooseEnum _check_watertight_nodesets
 whether to check that each external node is assigned to a nodeset More...
 
std::vector< BoundaryName > _watertight_boundary_names
 Names of boundaries to be checked in watertight checks. More...
 
std::vector< BoundaryID_watertight_boundaries
 IDs of boundaries to be checked in watertight checks. More...
 
const MooseEnum _check_element_volumes
 whether to check element volumes More...
 
const Real _min_volume
 minimum size for element volume to be counted as a tiny element More...
 
const Real _max_volume
 maximum size for element volume to be counted as a big element More...
 
const MooseEnum _check_element_types
 whether to check different element types in the same sub-domain More...
 
const MooseEnum _check_element_overlap
 whether to check for intersecting elements More...
 
const MooseEnum _check_non_planar_sides
 whether to check for elements in different planes (non_planar) More...
 
const MooseEnum _check_non_conformal_mesh
 whether to check for non-conformal meshes More...
 
const Real _non_conformality_tol
 tolerance for detecting when meshes are not conformal More...
 
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 More...
 
const MooseEnum _check_local_jacobian
 whether to check for negative jacobians in the domain More...
 
const MooseEnum _check_polygons
 whether to check for non-convex polygons in the mesh More...
 
const unsigned int _num_outputs
 number of logs to output at most for each check More...
 

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 99 of file MeshDiagnosticsGenerator.C.

101  _input(getMesh("input")),
102  _check_sidesets_orientation(getParam<MooseEnum>("examine_sidesets_orientation")),
103  _check_watertight_sidesets(getParam<MooseEnum>("check_for_watertight_sidesets")),
104  _check_watertight_nodesets(getParam<MooseEnum>("check_for_watertight_nodesets")),
105  _watertight_boundary_names(getParam<std::vector<BoundaryName>>("boundaries_to_check")),
106  _check_element_volumes(getParam<MooseEnum>("examine_element_volumes")),
107  _min_volume(getParam<Real>("minimum_element_volumes")),
108  _max_volume(getParam<Real>("maximum_element_volumes")),
109  _check_element_types(getParam<MooseEnum>("examine_element_types")),
110  _check_element_overlap(getParam<MooseEnum>("examine_element_overlap")),
111  _check_non_planar_sides(getParam<MooseEnum>("examine_nonplanar_sides")),
112  _check_non_conformal_mesh(getParam<MooseEnum>("examine_non_conformality")),
113  _non_conformality_tol(getParam<Real>("nonconformal_tol")),
114  _check_non_matching_edges(getParam<MooseEnum>("examine_non_matching_edges")),
115  _non_matching_edge_tol(getParam<Real>("intersection_tol")),
117  getParam<MooseEnum>("search_for_adaptivity_nonconformality")),
118  _check_local_jacobian(getParam<MooseEnum>("check_local_jacobian")),
119  _check_polygons(getParam<MooseEnum>("check_polygons")),
120  _num_outputs(getParam<unsigned int>("log_length_limit"))
121 {
122  // Check that no secondary parameters have been passed with the main check disabled
123  if ((isParamSetByUser("minimum_element_volumes") ||
124  isParamSetByUser("maximum_element_volumes")) &&
125  _check_element_volumes == "NO_CHECK")
126  paramError("examine_element_volumes",
127  "You must set this parameter to true to trigger element size checks");
128  if (isParamSetByUser("nonconformal_tol") && _check_non_conformal_mesh == "NO_CHECK")
129  paramError("examine_non_conformality",
130  "You must set this parameter to true to trigger mesh conformality check");
131  if (_check_sidesets_orientation == "NO_CHECK" && _check_watertight_sidesets == "NO_CHECK" &&
132  _check_watertight_nodesets == "NO_CHECK" && _check_element_volumes == "NO_CHECK" &&
133  _check_element_types == "NO_CHECK" && _check_element_overlap == "NO_CHECK" &&
134  _check_non_planar_sides == "NO_CHECK" && _check_non_conformal_mesh == "NO_CHECK" &&
135  _check_adaptivity_non_conformality == "NO_CHECK" && _check_local_jacobian == "NO_CHECK" &&
136  _check_non_matching_edges == "NO_CHECK" && _check_polygons == "NO_CHECK")
137  mooseError("You need to turn on at least one diagnostic. Did you misspell a parameter?");
138 }
void paramError(const std::string &param, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
Definition: MooseBase.h:467
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: MooseBase.h:416
std::unique_ptr< MeshBase > & _input
the input mesh to be diagnosed
const MooseEnum _check_sidesets_orientation
whether to check that sidesets are consistently oriented using neighbor subdomains ...
const MooseEnum _check_element_types
whether to check different element types in the same sub-domain
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
const unsigned int _num_outputs
number of logs to output at most for each check
const MooseEnum _check_non_conformal_mesh
whether to check for non-conformal meshes
MeshGenerator(const InputParameters &parameters)
Definition: MeshGenerator.C:57
const MooseEnum _check_local_jacobian
whether to check for negative jacobians in the domain
const Real _non_conformality_tol
tolerance for detecting when meshes are not conformal
std::vector< BoundaryName > _watertight_boundary_names
Names of boundaries to be checked in watertight checks.
const MooseEnum _check_adaptivity_non_conformality
whether to check for the adaptivity of non-conformal meshes
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 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_volumes
whether to check element volumes
const MooseEnum _check_watertight_nodesets
whether to check that each external node is assigned to a nodeset
const MooseEnum _check_non_planar_sides
whether to check for elements in different planes (non_planar)
const MooseEnum _check_watertight_sidesets
whether to check that each external side is assigned to a sideset
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
const MooseEnum _check_polygons
whether to check for non-convex polygons in the mesh
const MooseEnum _check_element_overlap
whether to check for intersecting elements
bool isParamSetByUser(const std::string &name) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
Definition: MooseBase.h:215

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 441 of file MeshGenerator.C.

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

◆ addMeshSubgenerator() [1/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.

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

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...
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
Definition: MooseApp.h:406
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
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...
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:93
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
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...

◆ addMeshSubgenerator() [2/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 410 of file MeshGenerator.C.

413 {
415  mooseError("Can only call addMeshSubgenerator() during MeshGenerator construction");
416 
417  // In case the user forgot it
418  params.set<MooseApp *>(MooseBase::app_param) = &_app;
419 
420  // Set this to be data-only if this generator is data only
421  params.set<bool>(data_only_param) = isDataOnly();
422 
423  _app.addMeshGenerator(type, name, params);
424  _sub_mesh_generators.insert(&std::as_const(_app).getMeshGenerator(name));
425 }
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition: MooseApp.C:3221
static const std::string app_param
The name of the parameter that contains the MooseApp.
Definition: MooseBase.h:59
static const std::string data_only_param
The name of the private parameter for setting data only.
Definition: MeshGenerator.h:76
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
Base class for MOOSE-based applications.
Definition: MooseApp.h:108
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:93
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
std::set< const MeshGenerator *, Comparator > _sub_mesh_generators
The sub MeshGenerators constructed by this MeshGenerator.
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:876
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool isDataOnly() const

◆ 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 434 of file MeshGenerator.C.

435 {
436  mooseAssert(_app.constructingMeshGenerators(), "Should only be called at construction");
437  _parent_mesh_generators.insert(&mg);
438 }
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition: MooseApp.C:3221
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
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 303 of file MeshGenerator.C.

Referenced by DistributedRectilinearMeshGenerator::generate().

304 {
305  mooseAssert(_mesh, "Need a MooseMesh object");
306  return _mesh->buildTypedMesh<DistributedMesh>(dim);
307 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:163
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:2249

◆ 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 289 of file MeshGenerator.C.

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

290 {
291  mooseAssert(_mesh, "Need a MooseMesh object");
292  return _mesh->buildMeshBaseObject(dim);
293 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:163
MooseMesh *const _mesh
Pointer to the owning mesh.
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:2944

◆ 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 296 of file MeshGenerator.C.

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

297 {
298  mooseAssert(_mesh, "Need a MooseMesh object");
299  return _mesh->buildTypedMesh<ReplicatedMesh>(dim);
300 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:163
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:2249

◆ callMooseError() [1/2]

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

External method for calling moose error with added object context.

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

Definition at line 105 of file MooseBase.C.

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

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

◆ callMooseError() [2/2]

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

External method for calling moose error with added object context.

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

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

Definition at line 114 of file MooseBase.C.

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

◆ checkElementOverlap()

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

Routine to check whether elements overlap in the mesh.

Definition at line 552 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

553 {
554  {
555  unsigned int num_elem_overlaps = 0;
556  auto pl = mesh->sub_point_locator();
557  // loop on nodes, assumed replicated mesh
558  for (auto & node : mesh->node_ptr_range())
559  {
560  // find all the elements around this node
561  std::set<const Elem *> elements;
562  (*pl)(*node, elements);
563 
564  for (auto & elem : elements)
565  {
566  if (!elem->contains_point(*node))
567  continue;
568 
569  // not overlapping inside the element if part of its nodes
570  bool found = false;
571  for (auto & elem_node : elem->node_ref_range())
572  if (*node == elem_node)
573  {
574  found = true;
575  break;
576  }
577  // not overlapping inside the element if right on its side
578  bool on_a_side = false;
579  for (const auto & elem_side_index : elem->side_index_range())
580  if (elem->side_ptr(elem_side_index)->contains_point(*node, _non_conformality_tol))
581  on_a_side = true;
582  if (!found && !on_a_side)
583  {
584  num_elem_overlaps++;
585  if (num_elem_overlaps < _num_outputs)
586  _console << "Element overlap detected at : " << *node << std::endl;
587  else if (num_elem_overlaps == _num_outputs)
588  _console << "Maximum output reached, log is silenced" << std::endl;
589  }
590  }
591  }
592 
593  diagnosticsLog("Number of elements overlapping (node-based heuristics): " +
594  Moose::stringify(num_elem_overlaps),
596  num_elem_overlaps);
597  num_elem_overlaps = 0;
598 
599  // loop on all elements in mesh: assumes a replicated mesh
600  for (auto & elem : mesh->active_element_ptr_range())
601  {
602  // find all the elements around the centroid of this element
603  std::set<const Elem *> overlaps;
604  (*pl)(elem->vertex_average(), overlaps);
605 
606  if (overlaps.size() > 1)
607  {
608  num_elem_overlaps++;
609  if (num_elem_overlaps < _num_outputs)
610  _console << "Element overlap detected with element : " << elem->id() << " near point "
611  << elem->vertex_average() << std::endl;
612  else if (num_elem_overlaps == _num_outputs)
613  _console << "Maximum output reached, log is silenced" << std::endl;
614  }
615  }
616  diagnosticsLog("Number of elements overlapping (centroid-based heuristics): " +
617  Moose::stringify(num_elem_overlaps),
619  num_elem_overlaps);
620  }
621 }
MeshBase & mesh
const unsigned int _num_outputs
number of logs to output at most for each check
const Real _non_conformality_tol
tolerance for detecting when meshes are not conformal
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
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.
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
const MooseEnum _check_element_overlap
whether to check for intersecting elements

◆ checkElementTypes()

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

Routine to check the element types in each subdomain.

Definition at line 524 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

525 {
526  std::set<subdomain_id_type> ids;
527  mesh->subdomain_ids(ids);
528  // loop on sub-domain
529  for (auto & id : ids)
530  {
531  // ElemType defines an enum for geometric element types
532  std::set<ElemType> types;
533  // loop on elements within this sub-domain
534  for (auto & elem : mesh->active_subdomain_elements_ptr_range(id))
535  types.insert(elem->type());
536 
537  std::string elem_type_names = "";
538  for (auto & elem_type : types)
539  elem_type_names += " " + Moose::stringify(elem_type);
540 
541  _console << "Element type in subdomain " + mesh->subdomain_name(id) + " (" +
542  std::to_string(id) + ") :" + elem_type_names
543  << std::endl;
544  if (types.size() > 1)
545  diagnosticsLog("Two different element types in subdomain " + std::to_string(id),
547  true);
548  }
549 }
const MooseEnum _check_element_types
whether to check different element types in the same sub-domain
MeshBase & mesh
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
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.
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ checkElementVolumes()

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

Routine to check the element volumes.

Definition at line 472 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

473 {
474  unsigned int num_tiny_elems = 0;
475  unsigned int num_negative_elems = 0;
476  unsigned int num_big_elems = 0;
477  // loop elements within the mesh (assumes replicated)
478  for (auto & elem : mesh->active_element_ptr_range())
479  {
480  Real vol = elem->volume();
481 
482  if (vol <= _min_volume)
483  {
484  if (num_tiny_elems < _num_outputs)
485  _console << "Element with volume below threshold detected : \n"
486  << "id " << elem->id() << " near point " << elem->vertex_average() << std::endl;
487  else if (num_tiny_elems == _num_outputs)
488  _console << "Maximum output reached, log is silenced" << std::endl;
489  num_tiny_elems++;
490  }
491  if (vol < 0)
492  {
493  if (num_negative_elems < _num_outputs)
494  _console << "Element with negative volume detected : \n"
495  << "id " << elem->id() << " near point " << elem->vertex_average() << std::endl;
496  else if (num_negative_elems == _num_outputs)
497  _console << "Maximum output reached, log is silenced" << std::endl;
498  num_negative_elems++;
499  }
500  if (vol >= _max_volume)
501  {
502  if (num_big_elems < _num_outputs)
503  _console << "Element with volume above threshold detected : \n"
504  << elem->get_info() << std::endl;
505  else if (num_big_elems == _num_outputs)
506  _console << "Maximum output reached, log is silenced" << std::endl;
507  num_big_elems++;
508  }
509  }
510  diagnosticsLog("Number of elements below prescribed minimum volume : " +
511  std::to_string(num_tiny_elems),
513  num_tiny_elems);
514  diagnosticsLog("Number of elements with negative volume : " + std::to_string(num_negative_elems),
516  num_negative_elems);
517  diagnosticsLog("Number of elements above prescribed maximum volume : " +
518  std::to_string(num_big_elems),
520  num_big_elems);
521 }
MeshBase & mesh
const unsigned int _num_outputs
number of logs to output at most for each check
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_volumes
whether to check element volumes
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
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.
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ 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 1344 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

1345 {
1346  unsigned int num_bad_elem_qp_jacobians = 0;
1347  // Get a high-ish order quadrature
1348  auto qrule_dimension = mesh->mesh_dimension();
1349  libMesh::QGauss qrule(qrule_dimension, FIFTH);
1350 
1351  // Use a constant monomial
1352  const libMesh::FEType fe_type(CONSTANT, libMesh::MONOMIAL);
1353 
1354  // Initialize a basic constant monomial shape function everywhere
1355  std::unique_ptr<libMesh::FEBase> fe_elem;
1356  if (mesh->mesh_dimension() == 1)
1357  fe_elem = std::make_unique<libMesh::FEMonomial<1>>(fe_type);
1358  if (mesh->mesh_dimension() == 2)
1359  fe_elem = std::make_unique<libMesh::FEMonomial<2>>(fe_type);
1360  else
1361  fe_elem = std::make_unique<libMesh::FEMonomial<3>>(fe_type);
1362 
1363  fe_elem->get_JxW();
1364  fe_elem->attach_quadrature_rule(&qrule);
1365 
1366  // Check elements (assumes serialized mesh)
1367  for (const auto & elem : mesh->element_ptr_range())
1368  {
1369  // Handle mixed-dimensional meshes
1370  if (qrule_dimension != elem->dim())
1371  {
1372  // Re-initialize a quadrature
1373  qrule_dimension = elem->dim();
1374  qrule = libMesh::QGauss(qrule_dimension, FIFTH);
1375 
1376  // Re-initialize a monomial FE
1377  if (elem->dim() == 1)
1378  fe_elem = std::make_unique<libMesh::FEMonomial<1>>(fe_type);
1379  if (elem->dim() == 2)
1380  fe_elem = std::make_unique<libMesh::FEMonomial<2>>(fe_type);
1381  else
1382  fe_elem = std::make_unique<libMesh::FEMonomial<3>>(fe_type);
1383 
1384  fe_elem->get_JxW();
1385  fe_elem->attach_quadrature_rule(&qrule);
1386  }
1387 
1388  try
1389  {
1390  fe_elem->reinit(elem);
1391  }
1392  catch (std::exception & e)
1393  {
1394  if (!strstr(e.what(), "Jacobian"))
1395  throw;
1396 
1397  num_bad_elem_qp_jacobians++;
1398  if (num_bad_elem_qp_jacobians < _num_outputs)
1399  _console << "Bad Jacobian found in element " << elem->id() << " near point "
1400  << elem->vertex_average() << std::endl;
1401  else if (num_bad_elem_qp_jacobians == _num_outputs)
1402  _console << "Maximum log output reached, silencing output" << std::endl;
1403  }
1404  }
1405  diagnosticsLog("Number of elements with a bad Jacobian: " +
1406  Moose::stringify(num_bad_elem_qp_jacobians),
1408  num_bad_elem_qp_jacobians);
1409 
1410  unsigned int num_bad_side_qp_jacobians = 0;
1411  // Get a high-ish order side quadrature
1412  auto qrule_side_dimension = mesh->mesh_dimension() - 1;
1413  libMesh::QGauss qrule_side(qrule_side_dimension, FIFTH);
1414 
1415  // Use the side quadrature now
1416  fe_elem->attach_quadrature_rule(&qrule_side);
1417 
1418  // Check element sides
1419  for (const auto & elem : mesh->element_ptr_range())
1420  {
1421  // Handle mixed-dimensional meshes
1422  if (int(qrule_side_dimension) != elem->dim() - 1)
1423  {
1424  qrule_side_dimension = elem->dim() - 1;
1425  qrule_side = libMesh::QGauss(qrule_side_dimension, FIFTH);
1426 
1427  // Re-initialize a side FE
1428  if (elem->dim() == 1)
1429  fe_elem = std::make_unique<libMesh::FEMonomial<1>>(fe_type);
1430  if (elem->dim() == 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_side);
1437  }
1438 
1439  for (const auto & side : elem->side_index_range())
1440  {
1441  try
1442  {
1443  fe_elem->reinit(elem, side);
1444  }
1445  catch (std::exception & e)
1446  {
1447  // In 2D dbg/devel modes libMesh could hit
1448  // libmesh_assert_not_equal_to on a side reinit
1449  if (!strstr(e.what(), "Jacobian") && !strstr(e.what(), "det != 0"))
1450  throw;
1451 
1452  num_bad_side_qp_jacobians++;
1453  if (num_bad_side_qp_jacobians < _num_outputs)
1454  _console << "Bad Jacobian found in side " << side << " of element" << elem->id()
1455  << " near point " << elem->vertex_average() << std::endl;
1456  else if (num_bad_side_qp_jacobians == _num_outputs)
1457  _console << "Maximum log output reached, silencing output" << std::endl;
1458  }
1459  }
1460  }
1461  diagnosticsLog("Number of element sides with bad Jacobians: " +
1462  Moose::stringify(num_bad_side_qp_jacobians),
1464  num_bad_side_qp_jacobians);
1465 }
MeshBase & mesh
const unsigned int _num_outputs
number of logs to output at most for each check
const MooseEnum _check_local_jacobian
whether to check for negative jacobians in the domain
virtual_for_inffe const std::vector< Real > & get_JxW() const
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
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.
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ checkNonConformalMesh()

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

Routine to check whether a mesh presents non-conformality.

Definition at line 685 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

686 {
687  unsigned int num_nonconformal_nodes = 0;
689  mesh, _console, _num_outputs, _non_conformality_tol, num_nonconformal_nodes);
690  diagnosticsLog("Number of non-conformal nodes: " + Moose::stringify(num_nonconformal_nodes),
692  num_nonconformal_nodes);
693 }
const unsigned int _num_outputs
number of logs to output at most for each check
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
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
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.
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
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)

◆ 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 696 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

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

◆ checkNonMatchingEdges()

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

Routine to check for non matching edges.

Definition at line 1468 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

1469 {
1470  /*Algorithm Overview
1471  1)Prechecks
1472  a)This algorithm only works for 3D so check for that first
1473  2)Loop
1474  a)Loop through every element
1475  b)For each element get the edges associated with it
1476  c)For each edge check overlap with any edges of nearby elements
1477  d)Have check to make sure the same pair of edges are not being tested twice for overlap
1478  3)Overlap check
1479  a)Shortest line that connects both lines is perpendicular to both lines
1480  b)A good overview of the math for finding intersecting lines can be found
1481  here->paulbourke.net/geometry/pointlineplane/
1482  */
1483  if (mesh->mesh_dimension() != 3)
1484  {
1485  mooseWarning("The edge intersection algorithm only works with 3D meshes. "
1486  "'examine_non_matching_edges' is skipped");
1487  return;
1488  }
1489  if (!mesh->is_serial())
1490  mooseError("Only serialized/replicated meshes are supported");
1491  unsigned int num_intersecting_edges = 0;
1492 
1493  // Create map of element to bounding box to avoing reinitializing the same bounding box multiple
1494  // times
1495  std::unordered_map<Elem *, BoundingBox> bounding_box_map;
1496  for (const auto elem : mesh->active_element_ptr_range())
1497  {
1498  const auto boundingBox = elem->loose_bounding_box();
1499  bounding_box_map.insert({elem, boundingBox});
1500  }
1501 
1502  std::unique_ptr<PointLocatorBase> point_locator = mesh->sub_point_locator();
1503  std::set<std::array<dof_id_type, 4>> overlapping_edges_nodes;
1504  for (const auto elem : mesh->active_element_ptr_range())
1505  {
1506  // loop through elem's nodes and find nearby elements with it
1507  std::set<const Elem *> candidate_elems;
1508  std::set<const Elem *> nearby_elems;
1509  for (unsigned int i = 0; i < elem->n_nodes(); i++)
1510  {
1511  (*point_locator)(elem->point(i), candidate_elems);
1512  nearby_elems.insert(candidate_elems.begin(), candidate_elems.end());
1513  }
1514  std::vector<std::unique_ptr<const Elem>> elem_edges(elem->n_edges());
1515  for (auto i : elem->edge_index_range())
1516  elem_edges[i] = elem->build_edge_ptr(i);
1517  for (const auto other_elem : nearby_elems)
1518  {
1519  // If they're the same element then there's no need to check for overlap
1520  if (elem->id() >= other_elem->id())
1521  continue;
1522 
1523  std::vector<std::unique_ptr<const Elem>> other_edges(other_elem->n_edges());
1524  for (auto j : other_elem->edge_index_range())
1525  other_edges[j] = other_elem->build_edge_ptr(j);
1526  for (auto & edge : elem_edges)
1527  {
1528  for (auto & other_edge : other_edges)
1529  {
1530  // Get nodes from edges
1531  const Node * n1 = edge->get_nodes()[0];
1532  const Node * n2 = edge->get_nodes()[1];
1533  const Node * n3 = other_edge->get_nodes()[0];
1534  const Node * n4 = other_edge->get_nodes()[1];
1535 
1536  // Create array<dof_id_type, 4> to check against set
1537  std::array<dof_id_type, 4> node_id_array = {n1->id(), n2->id(), n3->id(), n4->id()};
1538  std::sort(node_id_array.begin(), node_id_array.end());
1539 
1540  // Check if the edges have already been added to our check_edges list
1541  if (overlapping_edges_nodes.count(node_id_array))
1542  {
1543  continue;
1544  }
1545 
1546  // Check element/edge type
1547  if (edge->type() != EDGE2)
1548  {
1549  std::string element_message = "Edge of type " + Utility::enum_to_string(edge->type()) +
1550  " was found in cell " + std::to_string(elem->id()) +
1551  " which is of type " +
1552  Utility::enum_to_string(elem->type()) + '\n' +
1553  "The edge intersection check only works for EDGE2 "
1554  "elements.\nThis message will not be output again";
1555  mooseDoOnce(_console << element_message << std::endl);
1556  continue;
1557  }
1558  if (other_edge->type() != EDGE2)
1559  continue;
1560 
1561  // Now compare edge with other_edge
1562  Point intersection_coords;
1564  *edge, *other_edge, intersection_coords, _non_matching_edge_tol);
1565  if (overlap)
1566  {
1567  // Add the nodes that make up the 2 edges to the vector overlapping_edges_nodes
1568  overlapping_edges_nodes.insert(node_id_array);
1569  num_intersecting_edges += 2;
1570  if (num_intersecting_edges < _num_outputs)
1571  {
1572  // Print error message
1573  std::string elem_id = std::to_string(elem->id());
1574  std::string other_elem_id = std::to_string(other_elem->id());
1575  std::string x_coord = std::to_string(intersection_coords(0));
1576  std::string y_coord = std::to_string(intersection_coords(1));
1577  std::string z_coord = std::to_string(intersection_coords(2));
1578  std::string message = "Intersecting edges found between elements " + elem_id +
1579  " and " + other_elem_id + " near point (" + x_coord + ", " +
1580  y_coord + ", " + z_coord + ")";
1581  _console << message << std::endl;
1582  }
1583  }
1584  }
1585  }
1586  }
1587  }
1588  diagnosticsLog("Number of intersecting element edges: " +
1589  Moose::stringify(num_intersecting_edges),
1591  num_intersecting_edges);
1592 }
bool checkFirstOrderEdgeOverlap(const Elem &edge1, const Elem &edge2, Point &intersection_point, const Real intersection_tol)
MeshBase & mesh
const unsigned int _num_outputs
number of logs to output at most for each check
void mooseWarning(Args &&... args) const
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
std::string enum_to_string(const T e)
EDGE2
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.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ 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 624 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

625 {
626  unsigned int sides_non_planar = 0;
627  // loop on all elements in mesh: assumes a replicated mesh
628  for (auto & elem : mesh->active_element_ptr_range())
629  {
630  for (auto i : make_range(elem->n_sides()))
631  {
632  auto side = elem->side_ptr(i);
633  std::vector<const Point *> nodes;
634  for (auto & node : side->node_ref_range())
635  nodes.emplace_back(&node);
636 
637  if (nodes.size() <= 3)
638  continue;
639  // First vector of the base
640  const RealVectorValue v1 = *nodes[0] - *nodes[1];
641 
642  // Find another node so that we can form a basis. It should just be node 0, 1, 2
643  // to form two independent vectors, but degenerate elements can make them aligned
644  bool aligned = true;
645  unsigned int third_node_index = 2;
646  RealVectorValue v2;
647  while (aligned && third_node_index < nodes.size())
648  {
649  v2 = *nodes[0] - *nodes[third_node_index++];
650  aligned = MooseUtils::absoluteFuzzyEqual(v1 * v2 - v1.norm() * v2.norm(), 0);
651  }
652 
653  // Degenerate element, could not find a third node that is not aligned
654  if (aligned)
655  continue;
656 
657  bool found_non_planar = false;
658 
659  for (auto node_offset : make_range(nodes.size() - 3))
660  {
661  RealVectorValue v3 = *nodes[0] - *nodes[node_offset + 3];
662  bool planar = MooseUtils::absoluteFuzzyEqual(v2.cross(v1) * v3, 0);
663  if (!planar)
664  found_non_planar = true;
665  }
666 
667  if (found_non_planar)
668  {
669  sides_non_planar++;
670  if (sides_non_planar < _num_outputs)
671  _console << "Nonplanar side detected for side " << i
672  << " of element :" << elem->get_info() << std::endl;
673  else if (sides_non_planar == _num_outputs)
674  _console << "Maximum output reached, log is silenced" << std::endl;
675  }
676  }
677  }
678  diagnosticsLog("Number of non-planar element sides detected: " +
679  Moose::stringify(sides_non_planar),
681  sides_non_planar);
682 }
auto norm() const
MeshBase & mesh
const unsigned int _num_outputs
number of logs to output at most for each check
TypeVector< typename CompareTypes< Real, T2 >::supertype > cross(const TypeVector< T2 > &v) const
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
const MooseEnum _check_non_planar_sides
whether to check for elements in different planes (non_planar)
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.
IntRange< T > make_range(T beg, T end)
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ checkPolygons()

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

Routine to check for non-convex polygons.

Definition at line 1595 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

1596 {
1597  unsigned int num_polygons = 0;
1598  unsigned int num_nonconvex = 0;
1599  unsigned int num_nonplanar = 0;
1600  unsigned int num_flat_consecutive_sides = 0;
1601 
1602  for (const auto & elem : mesh->element_ptr_range())
1603  if (elem->type() == libMesh::C0POLYGON)
1604  {
1605  num_polygons++;
1606  const auto n_nodes = elem->n_nodes();
1607  Point base_top_dir(0, 0, 0);
1608  bool nonconvex = false;
1609  bool nonplanar = false;
1610  for (const auto & i : make_range(n_nodes))
1611  {
1612  const auto n1 = elem->point(i);
1613  const auto n2 = elem->point((i + 1) % n_nodes);
1614  const auto n3 = elem->point((i + 2) % n_nodes);
1615  // can't be const with unit
1616  Point top_dir = (n2 - n1).cross(n3 - n2);
1617 
1618  if (top_dir.norm_sq() > 0 && base_top_dir.norm() == 0)
1619  {
1620  base_top_dir = top_dir.unit();
1621  continue;
1622  }
1623  if (base_top_dir * top_dir < 0)
1624  nonconvex = true;
1625  if (top_dir.norm_sq() > 0)
1626  top_dir = top_dir.unit();
1627  else
1628  num_flat_consecutive_sides++;
1629  if (!MooseUtils::absoluteFuzzyEqual((top_dir - base_top_dir).norm_sq(), 0, TOLERANCE) &&
1630  !MooseUtils::absoluteFuzzyEqual((top_dir + base_top_dir).norm_sq(), 0, TOLERANCE))
1631  nonplanar = true;
1632  }
1633 
1634  if (nonconvex)
1635  {
1636  num_nonconvex++;
1637  if (num_nonconvex < _num_outputs)
1638  _console << "Non convex C0 polygon detected:" << elem->get_info() << std::endl;
1639  else if (num_nonconvex == _num_outputs)
1640  _console << "Ouptut limit reached for non-convex polygons" << std::endl;
1641  }
1642  if (nonplanar)
1643  {
1644  num_nonplanar++;
1645  if (num_nonconvex < _num_outputs)
1646  _console << "Non planar C0 polygon detected:" << elem->get_info() << std::endl;
1647  else if (num_nonconvex == _num_outputs)
1648  _console << "Ouptut limit reached for non-planar polygons" << std::endl;
1649  }
1650  }
1651 
1652  if (!num_polygons)
1653  mooseWarning("No C0 polygons in geometry: polyon check did nothing");
1654  else
1655  {
1656  diagnosticsLog("Number of non convex polygons: " + Moose::stringify(num_nonconvex),
1658  num_nonconvex);
1659  diagnosticsLog("Number of non planar polygons: " + Moose::stringify(num_nonplanar),
1661  num_nonplanar);
1662  diagnosticsLog("Number of colinear consecutive sides of polygons: " +
1663  Moose::stringify(num_flat_consecutive_sides),
1665  num_flat_consecutive_sides);
1666  }
1667 }
auto norm_sq(const T &a)
MeshBase & mesh
const unsigned int _num_outputs
number of logs to output at most for each check
void mooseWarning(Args &&... args) const
const dof_id_type n_nodes
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
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.
IntRange< T > make_range(T beg, T end)
const MooseEnum _check_polygons
whether to check for non-convex polygons in the mesh
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ checkSidesetsOrientation()

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

Routine to check sideset orientation near subdomains.

Definition at line 202 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

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

◆ checkWatertightNodesets()

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

Definition at line 391 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

392 {
393  /*
394  Diagnostic Overview:
395  1) Mesh precheck
396  2) Loop through all elements
397  3) Loop through all sides of that element
398  4) If side is external loop through its nodes
399  5) If node is not associated with any nodeset add to list
400  6) Print out node id
401  */
402  if (mesh->mesh_dimension() < 2)
403  mooseError("The nodeset check only works for 2D and 3D meshes");
404  auto & boundary_info = mesh->get_boundary_info();
405  unsigned int num_nodes_without_nodeset = 0;
406  std::set<dof_id_type> checked_nodes_id;
407 
408  for (const auto elem : mesh->active_element_ptr_range())
409  {
410  for (const auto i : elem->side_index_range())
411  {
412  // Check if side is external
413  if (elem->neighbor_ptr(i) == nullptr)
414  {
415  // Side is external, now check nodes
416  auto side = elem->side_ptr(i);
417  const auto & node_list = side->get_nodes();
418  for (unsigned int j = 0; j < side->n_nodes(); j++)
419  {
420  const auto node = node_list[j];
421  if (checked_nodes_id.count(node->id()))
422  continue;
423  // get vector of node's boundaries (in most cases it will only have one)
424  std::vector<boundary_id_type> boundary_ids;
425  boundary_info.boundary_ids(node, boundary_ids);
426  std::vector<boundary_id_type> intersection =
428 
429  bool no_specified_ids = boundary_info.n_boundary_ids(node) == 0;
430  bool specified_ids = !_watertight_boundaries.empty() && intersection.empty();
431  std::string message =
432  "Node " + std::to_string(node->id()) +
433  " is on an external boundary of the mesh, but has not been assigned to ";
434  if (no_specified_ids)
435  message = message + "a nodeset";
436  else if (specified_ids)
437  message = message + "one of the specified nodesets";
438  if ((no_specified_ids || specified_ids) && num_nodes_without_nodeset < _num_outputs)
439  {
440  checked_nodes_id.insert(node->id());
441  num_nodes_without_nodeset++;
442  _console << message << std::endl;
443  }
444  }
445  }
446  }
447  }
448  std::string message;
449  message = "Number of external nodes that have not been assigned to a nodeset: " +
450  std::to_string(num_nodes_without_nodeset);
451  diagnosticsLog(message, _check_watertight_nodesets, num_nodes_without_nodeset);
452 }
MeshBase & mesh
const unsigned int _num_outputs
number of logs to output at most for each check
std::vector< BoundaryID > _watertight_boundaries
IDs of boundaries to be checked in watertight checks.
const MooseEnum _check_watertight_nodesets
whether to check that each external node is assigned to a nodeset
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.
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 mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ checkWatertightSidesets()

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

Definition at line 326 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

327 {
328  /*
329  Algorithm Overview:
330  1) Loop through all elements
331  2) For each element loop through all its sides
332  3) If it has no neighbors it's an external side
333  4) If external check if it's part of a sideset
334  */
335  if (mesh->mesh_dimension() < 2)
336  mooseError("The sideset check only works for 2D and 3D meshes");
337  auto & boundary_info = mesh->get_boundary_info();
338  boundary_info.build_side_list();
339  const auto sideset_map = boundary_info.get_sideset_map();
340  unsigned int num_faces_without_sideset = 0;
341 
342  for (const auto elem : mesh->active_element_ptr_range())
343  {
344  for (auto i : elem->side_index_range())
345  {
346  // Check if side is external
347  if (elem->neighbor_ptr(i) == nullptr)
348  {
349  // If external get the boundary ids associated with this side
350  std::vector<boundary_id_type> boundary_ids;
351  auto side_range = sideset_map.equal_range(elem);
352  for (const auto & itr : as_range(side_range))
353  if (itr.second.first == i)
354  boundary_ids.push_back(i);
355  // get intersection of boundary_ids and _watertight_boundaries
356  std::vector<boundary_id_type> intersections =
358 
359  bool no_specified_ids = boundary_ids.empty();
360  bool specified_ids = !_watertight_boundaries.empty() && intersections.empty();
361  std::string message;
362  if (mesh->mesh_dimension() == 3)
363  message = "Element " + std::to_string(elem->id()) +
364  " contains an external face which has not been assigned to ";
365  else
366  message = "Element " + std::to_string(elem->id()) +
367  " contains an external edge which has not been assigned to ";
368  if (no_specified_ids)
369  message = message + "a sideset";
370  else if (specified_ids)
371  message = message + "one of the specified sidesets";
372  if ((no_specified_ids || specified_ids) && num_faces_without_sideset < _num_outputs)
373  {
374  _console << message << std::endl;
375  num_faces_without_sideset++;
376  }
377  }
378  }
379  }
380  std::string message;
381  if (mesh->mesh_dimension() == 3)
382  message = "Number of external element faces that have not been assigned to a sideset: " +
383  std::to_string(num_faces_without_sideset);
384  else
385  message = "Number of external element edges that have not been assigned to a sideset: " +
386  std::to_string(num_faces_without_sideset);
387  diagnosticsLog(message, _check_watertight_sidesets, num_faces_without_sideset);
388 }
MeshBase & mesh
const unsigned int _num_outputs
number of logs to output at most for each check
std::vector< BoundaryID > _watertight_boundaries
IDs of boundaries to be checked in watertight checks.
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
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.
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.
const MooseEnum _check_watertight_sidesets
whether to check that each external side is assigned to a sideset
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ connectControllableParams()

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

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

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

Definition at line 77 of file MooseBase.C.

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

◆ copyMeshProperty() [1/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...

◆ copyMeshProperty() [2/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  }

◆ declareMeshesForSub()

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

Like declareMeshForSub(), but for multiple generators.

Definition at line 265 of file MeshGenerator.C.

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

◆ declareMeshesForSubByName()

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

Like declareMeshForSubByName(), but for multiple generators.

Definition at line 281 of file MeshGenerator.C.

Referenced by MeshGenerator::declareMeshesForSub().

283 {
284  for (const auto & name : mesh_generator_names)
286 }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
void declareMeshForSubByName(const MeshGeneratorName &mesh_generator_name)
Like declareMeshForSub(), but takes the name of another MeshGenerator directly.

◆ 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 259 of file MeshGenerator.C.

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

260 {
262 }
void declareMeshForSubByName(const MeshGeneratorName &mesh_generator_name)
Like declareMeshForSub(), but takes the name of another MeshGenerator directly.
const MeshGeneratorName * getMeshGeneratorNameFromParam(const std::string &param_name, const bool allow_invalid) const
Helper for getting a MeshGeneratorName parameter.

◆ declareMeshForSubByName()

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

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

Definition at line 271 of file MeshGenerator.C.

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

272 {
273  checkGetMesh(mesh_generator_name, "");
274  if (isNullMeshName(mesh_generator_name))
275  return;
276 
277  _requested_mesh_generators_for_sub.insert(mesh_generator_name);
278 }
bool isNullMeshName(const MeshGeneratorName &name) const
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.

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

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

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 }
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition: MooseApp.C:3221
RestartableDataValue & setMeshPropertyHelper(const std::string &data_name)
Helper for getting a writable reference to a mesh property, used in declareMeshProperty and setMeshPr...
static const RestartableDataMapName MESH_META_DATA
Definition: MooseApp.h:135
static std::string meshPropertyName(const std::string &data_name, const std::string &prefix)
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
RestartableDataValue & registerRestartableData(std::unique_ptr< RestartableDataValue > data, THREAD_ID tid, bool read_only, const RestartableDataMapName &metaname="")
Definition: MooseApp.C:2176
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
virtual std::string type() const =0
String identifying the type of parameter stored.
Concrete definition of a parameter value for a specified type.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool hasMeshProperty(const std::string &data_name, const std::string &prefix) const

◆ 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 474 of file MeshGenerator.C.

475 {
476  mooseAssert(_app.constructingMeshGenerators(), "Should only be called at construction");
477  mooseAssert(!_null_mesh_names.count(name), "Already declared");
478  _null_mesh_names.insert(name);
479 }
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition: MooseApp.C:3221
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 & name() const
Get the name of the class.
Definition: MooseBase.h:103
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385

◆ 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 1670 of file MeshDiagnosticsGenerator.C.

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

1673 {
1674  mooseAssert(log_level != "NO_CHECK",
1675  "We should not be outputting logs if the check had been disabled");
1676  if (log_level == "INFO" || !problem_detected)
1677  mooseInfoRepeated(msg);
1678  else if (log_level == "WARNING")
1679  mooseWarning(msg);
1680  else if (log_level == "ERROR")
1681  mooseError(msg);
1682  else
1683  mooseError("Should not reach here");
1684 }
void mooseInfoRepeated(Args &&... args)
Emit an informational message with the given stringified, concatenated args.
Definition: MooseError.h:409
void mooseWarning(Args &&... args) const
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 49 of file MooseObject.h.

Referenced by EigenKernel::enabled().

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

◆ errorPrefix()

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

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

Definition at line 274 of file MooseBase.h.

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

◆ 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 455 of file MeshDiagnosticsGenerator.C.

Referenced by checkWatertightNodesets(), and checkWatertightSidesets().

458 {
459  // Only the boundary_ids vector is sorted here. watertight_boundaries has to be sorted beforehand
460  // Returns their intersection (elements that they share)
461  std::sort(boundary_ids.begin(), boundary_ids.end());
462  std::vector<boundary_id_type> boundary_intersection;
463  std::set_intersection(watertight_boundaries.begin(),
464  watertight_boundaries.end(),
465  boundary_ids.begin(),
466  boundary_ids.end(),
467  std::back_inserter(boundary_intersection));
468  return boundary_intersection;
469 }

◆ flagInvalidSolutionInternal()

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

Set solution invalid mark for the given solution ID.

Definition at line 41 of file SolutionInvalidInterface.C.

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

◆ generate()

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

Generate / modify the mesh.

Implements MeshGenerator.

Definition at line 141 of file MeshDiagnosticsGenerator.C.

142 {
143  std::unique_ptr<MeshBase> mesh = std::move(_input);
144 
145  // Most of the checks assume we have the full mesh
146  if (!mesh->is_serial())
147  mooseError("Only serialized meshes are supported");
148 
149  // We prepare for use at the beginning to facilitate diagnosis
150  // This deliberately does not trust the mesh to know whether it's already prepared or not
151  mesh->prepare_for_use();
152 
153  // check that specified boundary is valid, convert BoundaryNames to BoundaryIDs, and sort
154  for (const auto & boundary_name : _watertight_boundary_names)
155  {
156  if (!MooseMeshUtils::hasBoundaryName(*mesh, boundary_name))
157  mooseError("User specified boundary_to_check \'", boundary_name, "\' does not exist");
158  }
160  std::sort(_watertight_boundaries.begin(), _watertight_boundaries.end());
161 
162  if (_check_sidesets_orientation != "NO_CHECK")
164 
165  if (_check_watertight_sidesets != "NO_CHECK")
167 
168  if (_check_watertight_nodesets != "NO_CHECK")
170 
171  if (_check_element_volumes != "NO_CHECK")
172  checkElementVolumes(mesh);
173 
174  if (_check_element_types != "NO_CHECK")
175  checkElementTypes(mesh);
176 
177  if (_check_element_overlap != "NO_CHECK")
178  checkElementOverlap(mesh);
179 
180  if (_check_non_planar_sides != "NO_CHECK")
181  checkNonPlanarSides(mesh);
182 
183  if (_check_non_conformal_mesh != "NO_CHECK")
184  checkNonConformalMesh(mesh);
185 
186  if (_check_adaptivity_non_conformality != "NO_CHECK")
188 
189  if (_check_local_jacobian != "NO_CHECK")
190  checkLocalJacobians(mesh);
191 
192  if (_check_non_matching_edges != "NO_CHECK")
193  checkNonMatchingEdges(mesh);
194 
195  if (_check_polygons != "NO_CHECK")
196  checkPolygons(mesh);
197 
198  return dynamic_pointer_cast<MeshBase>(mesh);
199 }
void checkNonMatchingEdges(const std::unique_ptr< MeshBase > &mesh) const
Routine to check for non matching edges.
void checkWatertightNodesets(const std::unique_ptr< MeshBase > &mesh) const
bool hasBoundaryName(const MeshBase &input_mesh, const BoundaryName &name)
Whether a particular boundary name exists in the mesh.
std::unique_ptr< MeshBase > & _input
the input mesh to be diagnosed
const MooseEnum _check_sidesets_orientation
whether to check that sidesets are consistently oriented using neighbor subdomains ...
const MooseEnum _check_element_types
whether to check different element types in the same sub-domain
MeshBase & mesh
void checkPolygons(const std::unique_ptr< MeshBase > &mesh) const
Routine to check for non-convex polygons.
const MooseEnum _check_non_conformal_mesh
whether to check for non-conformal meshes
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.
std::vector< BoundaryID > _watertight_boundaries
IDs of boundaries to be checked in watertight checks.
void checkNonConformalMeshFromAdaptivity(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether a mesh presents non-conformality born from adaptivity.
const MooseEnum _check_local_jacobian
whether to check for negative jacobians in the domain
std::vector< BoundaryName > _watertight_boundary_names
Names of boundaries to be checked in watertight checks.
void checkLocalJacobians(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether the Jacobians (elem and side) are not negative.
void checkNonConformalMesh(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether a mesh presents non-conformality.
void checkElementTypes(const std::unique_ptr< MeshBase > &mesh) const
Routine to check the element types in each subdomain.
const MooseEnum _check_adaptivity_non_conformality
whether to check for the adaptivity of non-conformal meshes
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.
void checkElementOverlap(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether elements overlap in the mesh.
const MooseEnum _check_element_volumes
whether to check element volumes
void checkElementVolumes(const std::unique_ptr< MeshBase > &mesh) const
Routine to check the element volumes.
const MooseEnum _check_watertight_nodesets
whether to check that each external node is assigned to a nodeset
const MooseEnum _check_non_planar_sides
whether to check for elements in different planes (non_planar)
const MooseEnum _check_watertight_sidesets
whether to check that each external side is assigned to a sideset
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
void checkSidesetsOrientation(const std::unique_ptr< MeshBase > &mesh) const
Routine to check sideset orientation near subdomains.
const MooseEnum _check_polygons
whether to check for non-convex polygons in the mesh
const MooseEnum _check_element_overlap
whether to check for intersecting elements
void checkNonPlanarSides(const std::unique_ptr< MeshBase > &mesh) const
Routine to check whether there are non-planar sides in the mesh.
void checkWatertightSidesets(const std::unique_ptr< MeshBase > &mesh) const

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

Referenced by MeshGenerator::generateInternalCSG().

508 {
509  mooseAssert(!hasGenerateCSG(), "Inconsistent flag");
510  mooseError("This MeshGenerator does not have a generateCSG() implementation.");
511 }
bool hasGenerateCSG() const
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ generateData()

void MeshGenerator::generateData ( )
protectedvirtualinherited

Generate the mesh data.

Reimplemented in AddMetaDataGenerator.

Definition at line 500 of file MeshGenerator.C.

Referenced by MeshGenerator::generateInternal().

501 {
502  mooseAssert(!hasGenerateData(), "Inconsistent flag");
503  mooseError("This MeshGenerator does not have a generateData() implementation.");
504 }
bool hasGenerateData() const
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281

◆ 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 310 of file MeshGenerator.C.

311 {
312  libmesh_parallel_only(comm());
313  mooseAssert(comm().verify(type() + name()), "Inconsistent execution ordering");
314 
315  if (hasGenerateData())
316  generateData();
317 
318  if (isDataOnly())
319  return nullptr;
320 
321  auto mesh = generate();
322  if (!mesh)
323  mooseError("A mesh was not generated by this generator (it was nullptr).");
324 
325  for (const auto & [requested_name, requested_mesh] : _requested_meshes)
326  if (*requested_mesh)
327  mooseError(
328  "The mesh from input ",
329  _app.getMeshGenerator(requested_name).type(),
330  " '",
331  _app.getMeshGenerator(requested_name).name(),
332  "' was not moved.\n\nThe MeshGenerator system requires that the memory from all input "
333  "meshes\nare managed by the requesting MeshGenerator during the generate phase.\n\nThis "
334  "is achieved with a std::move() operation within the generate() method.");
335 
336  if (getParam<bool>("show_info"))
337  {
338  if (!mesh->is_prepared())
339  mesh->prepare_for_use();
340 
341  const auto mesh_info = mesh->get_info(/* verbosity = */ 2);
342 
343  // We will prefix all information with "type() 'name()':" because this could potentially
344  // output a ton of information and looks a bit better with a prefix
345  std::stringstream oss;
346  const auto split = MooseUtils::split(mesh_info, "\n");
347  if (split.size())
348  for (std::size_t i = 0; i < split.size() - 1; ++i) // ignore the last line break
349  oss << COLOR_CYAN << "" << type() << " '" << name() << "': " << COLOR_DEFAULT << split[i]
350  << std::endl;
351  _console << oss.str() << std::flush;
352  }
353 
354  // output the current mesh block to file
355  if (hasOutput())
356  {
357  if (!mesh->is_prepared())
358  mesh->prepare_for_use();
359 
360  if (!getParam<bool>("nemesis"))
361  {
362  libMesh::ExodusII_IO exio(*mesh);
363 
364  if (mesh->mesh_dimension() == 1)
365  exio.write_as_dimension(3);
366 
367  // Avoid truncating names
368  exio.set_max_name_length(80);
369 
370  // Default to non-HDF5 output for wider compatibility
371  exio.set_hdf5_writing(false);
372 
373  exio.write(name() + "_in.e");
374  }
375  else
376  {
377  libMesh::Nemesis_IO nemesis_io(*mesh);
378 
379  // Default to non-HDF5 output for wider compatibility
380  nemesis_io.set_hdf5_writing(false);
381 
382  nemesis_io.write(name() + "_in.e");
383  }
384  }
385 
386  return mesh;
387 }
const MeshGenerator & getMeshGenerator(const std::string &name) const
Definition: MooseApp.h:894
virtual void generateData()
Generate the mesh data.
MeshBase & mesh
bool hasOutput() const
const Parallel::Communicator & comm() const
bool hasGenerateData() const
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...
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
virtual std::unique_ptr< MeshBase > generate()=0
Generate / modify the mesh.
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:93
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
tbb::split split
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
bool isDataOnly() const
std::vector< std::string > split(const std::string &str, const std::string &delimiter, std::size_t max_count)
Definition: MooseUtils.C:1020

◆ generateInternalCSG()

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

Internal generation method for CSG object generation.

Definition at line 390 of file MeshGenerator.C.

391 {
392  mooseAssert(isDataOnly(), "Trying to use csg-only mode while not in data-driven mode");
393  auto csg_obj = generateCSG();
394  mooseAssert(csg_obj, "Null CSG object");
395  for (const auto & [requested_name, requested_csg] : _requested_csg_bases)
396  if (*requested_csg)
397  mooseError(
398  "The CSGBase object from input ",
399  _app.getMeshGenerator(requested_name).type(),
400  " '",
401  _app.getMeshGenerator(requested_name).name(),
402  "' was not moved.\n\nThe MeshGenerator system requires that the memory from all input "
403  "meshes\nare managed by the requesting MeshGenerator during the generate phase.\n\nThis "
404  "is achieved with a std::move() operation within the generateCSG() method.");
405 
406  return csg_obj;
407 }
const MeshGenerator & getMeshGenerator(const std::string &name) const
Definition: MooseApp.h:894
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:93
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...
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool isDataOnly() const
virtual std::unique_ptr< CSG::CSGBase > generateCSG()
Generate the CSG representation of the mesh (or meshing operation) created by this mesh generator...

◆ getBase()

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

Definition at line 147 of file MooseBase.h.

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

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

◆ getCheckedPointerParam()

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

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

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

Definition at line 460 of file MooseBase.h.

461 {
462  return _pars.getCheckedPointerParam<T>(name, error_string);
463 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
T getCheckedPointerParam(const std::string &name, const std::string &error_string="") const
Verifies that the requested parameter exists and is not NULL and returns it to the caller...
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103

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

Referenced by MeshGenerator::isChildMeshGenerator().

149  {
150  return _child_mesh_generators;
151  }
std::set< const MeshGenerator *, Comparator > _child_mesh_generators
The MeshGenerators that are children to this MeshGenerator.

◆ 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 223 of file MeshGenerator.C.

224 {
225  const MeshGeneratorName * name = getMeshGeneratorNameFromParam(param_name, false);
226  if (!name)
227  return _null_csg_base;
228  return getCSGBaseByName(*name);
229 }
std::unique_ptr< CSG::CSGBase > _null_csg_base
A nullptr to use for when inputs aren&#39;t specified.
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
std::unique_ptr< CSG::CSGBase > & getCSGBaseByName(const MeshGeneratorName &mesh_generator_name)
Like getCSGBase(), but takes the name of another MeshGenerator directly.
const MeshGeneratorName * getMeshGeneratorNameFromParam(const std::string &param_name, const bool allow_invalid) const
Helper for getting a MeshGeneratorName parameter.

◆ 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 232 of file MeshGenerator.C.

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

233 {
234  checkGetMesh(mesh_generator_name, "");
235  if (isNullMeshName(mesh_generator_name))
236  return _null_csg_base;
237 
238  auto & csg_base = _app.getMeshGeneratorSystem().getCSGBaseGeneratorOutput(mesh_generator_name);
239  _requested_csg_bases.emplace_back(mesh_generator_name, &csg_base);
240  return csg_base;
241 }
std::unique_ptr< CSG::CSGBase > & getCSGBaseGeneratorOutput(const MeshGeneratorName &name)
Returns the output CSGBase object associated with a particular mesh generator name.
std::unique_ptr< CSG::CSGBase > _null_csg_base
A nullptr to use for when inputs aren&#39;t specified.
bool isNullMeshName(const MeshGeneratorName &name) const
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...
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
void checkGetMesh(const MeshGeneratorName &mesh_generator_name, const std::string &param_name) const
Helper for performing error checking in the getMesh methods.
MeshGeneratorSystem & getMeshGeneratorSystem()
Gets the system that manages the MeshGenerators.
Definition: MooseApp.h:860

◆ 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 244 of file MeshGenerator.C.

245 {
247 }
const std::vector< MeshGeneratorName > & getMeshGeneratorNamesFromParam(const std::string &param_name) const
Helper for getting a std::vector<MeshGeneratorName> parameter.
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 250 of file MeshGenerator.C.

Referenced by MeshGenerator::getCSGBases().

251 {
252  std::vector<std::unique_ptr<CSG::CSGBase> *> csg_bases;
253  for (const auto & name : mesh_generator_names)
254  csg_bases.push_back(&getCSGBaseByName(name));
255  return csg_bases;
256 }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
std::unique_ptr< CSG::CSGBase > & getCSGBaseByName(const MeshGeneratorName &mesh_generator_name)
Like getCSGBase(), but takes the name of another MeshGenerator directly.

◆ getDataFileName()

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

Deprecated method.

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

Definition at line 21 of file DataFileInterface.C.

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

◆ getDataFileNameByName()

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

Deprecated method.

Use getDataFilePath() instead.

Definition at line 31 of file DataFileInterface.C.

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

◆ getDataFilePath()

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

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

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

Definition at line 40 of file DataFileInterface.C.

Referenced by DataFileInterface::getDataFileNameByName().

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

◆ getHitNode()

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

Definition at line 136 of file MooseBase.h.

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

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

◆ 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 186 of file MeshGenerator.C.

187 {
188  const MeshGeneratorName * name = getMeshGeneratorNameFromParam(param_name, allow_invalid);
189  if (!name)
190  return _null_mesh;
191  return getMeshByName(*name);
192 }
std::unique_ptr< MeshBase > & getMeshByName(const MeshGeneratorName &mesh_generator_name)
Like getMesh(), but takes the name of another MeshGenerator directly.
std::unique_ptr< MeshBase > _null_mesh
A nullptr to use for when inputs aren&#39;t specified.
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
const MeshGeneratorName * getMeshGeneratorNameFromParam(const std::string &param_name, const bool allow_invalid) const
Helper for getting a MeshGeneratorName parameter.

◆ 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 201 of file MeshGenerator.C.

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

202 {
203  checkGetMesh(mesh_generator_name, "");
204  if (isNullMeshName(mesh_generator_name))
205  return _null_mesh;
206 
207  _requested_mesh_generators.insert(mesh_generator_name);
208  auto & mesh = _app.getMeshGeneratorSystem().getMeshGeneratorOutput(mesh_generator_name);
209  _requested_meshes.emplace_back(mesh_generator_name, &mesh);
210  return mesh;
211 }
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.
MeshBase & mesh
std::unique_ptr< MeshBase > _null_mesh
A nullptr to use for when inputs aren&#39;t specified.
bool isNullMeshName(const MeshGeneratorName &name) const
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...
std::set< MeshGeneratorName > _requested_mesh_generators
The names of the MeshGenerators that were requested in the getMesh methods.
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
void checkGetMesh(const MeshGeneratorName &mesh_generator_name, const std::string &param_name) const
Helper for performing error checking in the getMesh methods.
MeshGeneratorSystem & getMeshGeneratorSystem()
Gets the system that manages the MeshGenerators.
Definition: MooseApp.h:860

◆ 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 195 of file MeshGenerator.C.

196 {
198 }
std::vector< std::unique_ptr< MeshBase > * > getMeshesByName(const std::vector< MeshGeneratorName > &mesh_generator_names)
Like getMeshByName(), but for multiple generators.
const std::vector< MeshGeneratorName > & getMeshGeneratorNamesFromParam(const std::string &param_name) const
Helper for getting a std::vector<MeshGeneratorName> parameter.

◆ 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 214 of file MeshGenerator.C.

Referenced by MeshGenerator::getMeshes().

215 {
216  std::vector<std::unique_ptr<MeshBase> *> meshes;
217  for (const auto & name : mesh_generator_names)
218  meshes.push_back(&getMeshByName(name));
219  return meshes;
220 }
std::unique_ptr< MeshBase > & getMeshByName(const MeshGeneratorName &mesh_generator_name)
Like getMesh(), but takes the name of another MeshGenerator directly.
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103

◆ getMeshProperty() [1/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 }
void mooseErrorInternal(Args &&... args) const
Helper for forwarding a mooseError to an object&#39;s mooseError if it is available (said error will prov...
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
Concrete definition of a parameter value for a specified type.
bool hasMeshProperty(const std::string &data_name, const std::string &prefix) const
const RestartableDataValue & getMeshPropertyInternal(const std::string &data_name, const std::string &prefix) const
Helper for getting a mesh property.

◆ getMeshProperty() [2/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.

◆ getMooseApp()

MooseApp& MooseBase::getMooseApp ( ) const
inlineinherited

Get the MooseApp this class is associated with.

Definition at line 87 of file MooseBase.h.

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

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

◆ getParam() [1/2]

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

Retrieve a parameter for the object.

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

Definition at line 416 of file MooseBase.h.

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

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

◆ getParam() [2/2]

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

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

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

Definition at line 453 of file MooseBase.h.

454 {
455  return _pars.get<T1, T2>(param1, param2);
456 }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.

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

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

142  {
144  }
std::set< const MeshGenerator *, Comparator > _parent_mesh_generators
The MeshGenerators that are parents to this MeshGenerator.

◆ getRenamedParam()

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

Retrieve a renamed parameter for the object.

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

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

Definition at line 430 of file MooseBase.h.

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

◆ 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  }
std::set< MeshGeneratorName > _requested_mesh_generators
The names of the MeshGenerators that were requested in the getMesh methods.

◆ 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  }
std::set< MeshGeneratorName > _requested_mesh_generators_for_sub
The names of the MeshGenerators that were requested in the declareMeshForSub methods.

◆ getSavedMeshName()

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

Return the name of the saved mesh.

Definition at line 494 of file MeshGenerator.C.

495 {
496  return _save_with_name;
497 }
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.

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

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

◆ getSharedPtr() [2/2]

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

Definition at line 83 of file MooseObject.C.

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

◆ 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  {
157  return _sub_mesh_generators;
158  }
std::set< const MeshGenerator *, Comparator > _sub_mesh_generators
The sub MeshGenerators constructed by this MeshGenerator.

◆ hasBase()

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

Definition at line 142 of file MooseBase.h.

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

◆ hasGenerateCSG() [1/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 }
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.

◆ hasGenerateCSG() [2/2]

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

Definition at line 209 of file MeshGenerator.h.

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

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

◆ hasGenerateData() [1/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 }
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.

◆ hasGenerateData() [2/2]

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

Definition at line 204 of file MeshGenerator.h.

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

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

◆ hasMeshProperty() [1/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.

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

35 {
36  return _meta_data_app.hasRestartableMetaData(meshPropertyName(data_name, prefix),
38 }
bool hasRestartableMetaData(const std::string &name, const RestartableDataMapName &metaname) const
Definition: MooseApp.C:2228
static const RestartableDataMapName MESH_META_DATA
Definition: MooseApp.h:135
static std::string meshPropertyName(const std::string &data_name, const std::string &prefix)
MooseApp & _meta_data_app
Reference to the application.

◆ hasMeshProperty() [2/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 }
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
Concrete definition of a parameter value for a specified type.
bool hasMeshProperty(const std::string &data_name, const std::string &prefix) const
const RestartableDataValue & getMeshPropertyInternal(const std::string &data_name, const std::string &prefix) const
Helper for getting a mesh property.

◆ hasMeshProperty() [3/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  }
virtual std::string meshPropertyPrefix(const std::string &data_name) const
The default prefix to use for getting/seeing if mesh properties exist.
bool hasMeshProperty(const std::string &data_name, const std::string &prefix) const

◆ hasMeshProperty() [4/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  }
virtual std::string meshPropertyPrefix(const std::string &data_name) const
The default prefix to use for getting/seeing if mesh properties exist.

◆ hasOutput()

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

Definition at line 488 of file MeshGenerator.C.

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

489 {
490  return getParam<bool>("output");
491 }

◆ hasSaveMesh()

bool MeshGenerator::hasSaveMesh ( ) const
inherited

Return whether or not to save the current mesh.

Definition at line 482 of file MeshGenerator.C.

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

483 {
484  return _save_with_name.size();
485 }
const std::string & _save_with_name
A user-defined name to save the mesh.

◆ haveParameter()

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

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

Parameters
nameThe name of the parameter to test

Definition at line 200 of file MooseBase.h.

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

◆ 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 461 of file MeshGenerator.C.

Referenced by MeshGeneratorSystem::createMeshGeneratorOrder().

463 {
464  return std::find_if(getChildMeshGenerators().begin(),
465  getChildMeshGenerators().end(),
466  [&name, &direct](const auto & mg)
467  {
468  return mg->name() == name ||
469  (!direct && mg->isChildMeshGenerator(name, /* direct = */ false));
470  }) != getChildMeshGenerators().end();
471 }
const std::set< const MeshGenerator *, Comparator > & getChildMeshGenerators() const
Gets the MeshGenerators that are children to this MeshGenerator.
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103

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

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

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

◆ isKokkosObject()

bool MooseObject::isKokkosObject ( ) const
inlineinherited

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

Definition at line 63 of file MooseObject.h.

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

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

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

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

184 { return _null_mesh_names.count(name); }
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 & name() const
Get the name of the class.
Definition: MooseBase.h:103

◆ isParamSetByUser()

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

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

Parameters
nameThe name of the parameter to test

Definition at line 215 of file MooseBase.h.

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

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

◆ isParamValid()

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

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 209 of file MooseBase.h.

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

209 { return _pars.isParamValid(name); }
const InputParameters & _pars
The object&#39;s parameters.
Definition: MooseBase.h:394
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another, i.e.

◆ 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 448 of file MeshGenerator.C.

450 {
451  return std::find_if(getParentMeshGenerators().begin(),
452  getParentMeshGenerators().end(),
453  [&name, &direct](const auto & mg)
454  {
455  return mg->name() == name ||
456  (!direct && mg->isParentMeshGenerator(name, /* direct = */ false));
457  }) != getParentMeshGenerators().end();
458 }
const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:103
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 std::string &  prefix 
)
staticprotectedinherited
Returns
The full name for mesh property data.

Definition at line 41 of file MeshMetaDataInterface.C.

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

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

◆ meshPropertyName() [2/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  }
static std::string meshPropertyName(const std::string &data_name, const std::string &prefix)
virtual std::string meshPropertyPrefix(const std::string &data_name) const
The default prefix to use for getting/seeing if mesh properties exist.

◆ messagePrefix()

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

Definition at line 266 of file MooseBase.h.

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

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

◆ mooseDeprecated() [1/2]

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

Definition at line 87 of file SolutionInvalidInterface.h.

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

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

◆ mooseDeprecated() [2/2]

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

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

Definition at line 327 of file MooseBase.h.

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

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

◆ mooseDeprecatedNoTrace()

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

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

Definition at line 337 of file MooseBase.h.

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

◆ mooseDocumentedError()

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

Definition at line 287 of file MooseBase.h.

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

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

◆ mooseError()

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

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

Definition at line 281 of file MooseBase.h.

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

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

◆ mooseErrorNonPrefixed()

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

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

Definition at line 300 of file MooseBase.h.

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

◆ mooseInfo()

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

Definition at line 344 of file MooseBase.h.

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

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

◆ mooseWarning() [1/2]

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

Definition at line 73 of file SolutionInvalidInterface.h.

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

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

◆ mooseWarning() [2/2]

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

Emits a warning prefixed with object name and type.

Definition at line 309 of file MooseBase.h.

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

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

◆ mooseWarningNonPrefixed() [1/2]

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

Definition at line 80 of file SolutionInvalidInterface.h.

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

◆ mooseWarningNonPrefixed() [2/2]

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

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

Definition at line 318 of file MooseBase.h.

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

◆ name()

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

Get the name of the class.

Returns
The name of the class

Definition at line 103 of file MooseBase.h.

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

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

◆ paramError()

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

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

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

Definition at line 467 of file MooseBase.h.

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

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

◆ parameters()

const InputParameters& MooseBase::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 131 of file MooseBase.h.

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

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

◆ paramInfo()

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

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

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

Definition at line 481 of file MooseBase.h.

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

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

◆ paramWarning() [1/2]

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

◆ paramWarning() [2/2]

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

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

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

Definition at line 474 of file MooseBase.h.

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

◆ queryParam()

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

Query a parameter for the object.

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

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

Definition at line 423 of file MooseBase.h.

Referenced by MFEMExecutedObject::getRequestedItems().

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

◆ registerInvalidSolutionInternal()

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

Definition at line 55 of file SolutionInvalidInterface.C.

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

◆ 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 }
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.

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

Referenced by AddMetaDataGenerator::validParams().

83 {
84  params.set<bool>("_has_generate_data") = true;
85 }
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.

◆ 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 }
RestartableDataValue & setMeshPropertyHelper(const std::string &data_name)
Helper for getting a writable reference to a mesh property, used in declareMeshProperty and setMeshPr...
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
ActionWarehouse & actionWarehouse()
Return a writable reference to the ActionWarehouse associated with this app.
Definition: MooseApp.h:216
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:385
const std::string & getCurrentTaskName() const
Concrete definition of a parameter value for a specified type.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
bool hasMeshProperty(const std::string &data_name, const std::string &prefix) const
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  }

◆ type()

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

Get the type of this class.

Returns
the name of the type of this class

Definition at line 93 of file MooseBase.h.

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

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

◆ typeAndName()

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

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

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

Definition at line 57 of file MooseBase.C.

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

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

◆ uniqueName()

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

Definition at line 69 of file MooseBase.C.

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

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

◆ uniqueParameterName()

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

Definition at line 63 of file MooseBase.C.

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

◆ 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  params.addParam<MooseEnum>("examine_non_matching_edges",
79  chk_option,
80  "Whether to check if there are any intersecting edges");
81  params.addParam<Real>("intersection_tol", TOLERANCE, "tolerence for intersecting edges");
82  params.addParam<Real>("nonconformal_tol", TOLERANCE, "tolerance for element non-conformality");
83  params.addParam<MooseEnum>(
84  "search_for_adaptivity_nonconformality",
85  chk_option,
86  "whether to check for non-conformality arising from adaptive mesh refinement");
87  params.addParam<MooseEnum>("check_local_jacobian",
88  chk_option,
89  "whether to check the local Jacobian for bad (non-positive) values");
90  params.addParam<MooseEnum>(
91  "check_polygons", chk_option, "Whether to check that all C0 polygons are convex");
92  params.addParam<unsigned int>(
93  "log_length_limit",
94  10,
95  "How many problematic element/nodes/sides/etc are explicitly reported on by each check");
96  return params;
97 }
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
void addRequiredParam(const std::string &name, const std::string &doc_string)
This method adds a parameter and documentation string to the InputParameters object that will be extr...
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:54
static InputParameters validParams()
Definition: MeshGenerator.C:23
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object...

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 385 of file MooseBase.h.

◆ _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 102 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 90 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 88 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 82 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 104 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 94 of file MeshDiagnosticsGenerator.h.

Referenced by checkNonConformalMesh(), 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 92 of file MeshDiagnosticsGenerator.h.

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

◆ _check_polygons

const MooseEnum MeshDiagnosticsGenerator::_check_polygons
private

whether to check for non-convex polygons in the mesh

Definition at line 106 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 72 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 76 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 74 of file MeshDiagnosticsGenerator.h.

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

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

An instance of helper class to write streams to the Console objects.

Definition at line 31 of file ConsoleStreamInterface.h.

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

◆ _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 86 of file MeshDiagnosticsGenerator.h.

Referenced by checkElementVolumes().

◆ _mesh

MooseMesh* const MeshGenerator::_mesh
protectedinherited

◆ _min_volume

const Real MeshDiagnosticsGenerator::_min_volume
private

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

Definition at line 84 of file MeshDiagnosticsGenerator.h.

Referenced by checkElementVolumes().

◆ _name

const std::string& MooseBase::_name
protectedinherited

The name of this class.

Definition at line 391 of file MooseBase.h.

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

Referenced by checkNonMatchingEdges().

◆ _num_outputs

const unsigned int MeshDiagnosticsGenerator::_num_outputs
private

◆ _pars

const InputParameters& MooseBase::_pars
protectedinherited

The object's parameters.

Definition at line 394 of file MooseBase.h.

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

◆ _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 80 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 78 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>"
staticinherited

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"
staticinherited

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: