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
 
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
 
MooseAppgetMooseApp () const
 Get the MooseApp this class is associated with. More...
 
const std::string & type () const
 Get the type of this class. More...
 
virtual const std::string & name () const
 Get the name of the class. More...
 
std::string typeAndName () const
 Get the class's combined type and name; useful in error handling. More...
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 Calls moose error with the message msg. More...
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 The unique parameter name of a valid parameter of this object for accessing parameter controls. More...
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
MooseObjectName uniqueName () const
 The unique name for accessing input parameters of this object in the InputParameterWarehouse. More...
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object. More...
 
template<typename T1 , typename T2 >
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 Retrieve two parameters and provide pair of parameters for the object. More...
 
template<typename T >
const T * queryParam (const std::string &name) const
 Query a parameter for the object. More...
 
template<typename T >
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 Retrieve a renamed parameter for the object. More...
 
template<typename T >
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 Verifies that the requested parameter exists and is not NULL and returns it to the caller. More...
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid. More...
 
bool isParamSetByUser (const std::string &nm) const
 Test if the supplied parameter is set by a user, as opposed to not set or set to default. More...
 
template<typename... Args>
void paramError (const std::string &param, Args... args) const
 Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args) const
 Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramInfo (const std::string &param, Args... args) const
 Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 Connect controllable parameter of this action with the controllable parameters of the objects added by this action. More...
 
template<typename... Args>
void mooseError (Args &&... args) const
 Emits an error prefixed with object name and type. More...
 
template<typename... Args>
void mooseErrorNonPrefixed (Args &&... args) const
 Emits an error without the prefixing included in mooseError(). More...
 
template<typename... Args>
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 Emits a documented error with object name and type. More...
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 Emits a warning prefixed with object name and type. More...
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 Emits a warning without the prefixing included in mooseWarning(). More...
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
const Parallel::Communicatorcomm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
std::string getDataFileName (const std::string &param) const
 Deprecated method. More...
 
std::string getDataFileNameByName (const std::string &relative_path) const
 Deprecated method. More...
 
std::string getDataFilePath (const std::string &relative_path) const
 Returns the path of a data file for a given relative file path. More...
 

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)
 

Public Attributes

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 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...
 
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...
 
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<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...
 
const std::string _type
 The type of this class. More...
 
const std::string _name
 The name of this class. More...
 
const InputParameters_pars
 Parameters of this object, references the InputParameters stored in the InputParametersWarehouse. More...
 
Factory_factory
 The Factory associated with the MooseApp. More...
 
ActionFactory_action_factory
 Builds Actions. More...
 
const Parallel::Communicator_communicator
 

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

96  _input(getMesh("input")),
97  _check_sidesets_orientation(getParam<MooseEnum>("examine_sidesets_orientation")),
98  _check_watertight_sidesets(getParam<MooseEnum>("check_for_watertight_sidesets")),
99  _check_watertight_nodesets(getParam<MooseEnum>("check_for_watertight_nodesets")),
100  _watertight_boundary_names(getParam<std::vector<BoundaryName>>("boundaries_to_check")),
101  _check_element_volumes(getParam<MooseEnum>("examine_element_volumes")),
102  _min_volume(getParam<Real>("minimum_element_volumes")),
103  _max_volume(getParam<Real>("maximum_element_volumes")),
104  _check_element_types(getParam<MooseEnum>("examine_element_types")),
105  _check_element_overlap(getParam<MooseEnum>("examine_element_overlap")),
106  _check_non_planar_sides(getParam<MooseEnum>("examine_nonplanar_sides")),
107  _check_non_conformal_mesh(getParam<MooseEnum>("examine_non_conformality")),
108  _non_conformality_tol(getParam<Real>("nonconformal_tol")),
109  _check_non_matching_edges(getParam<MooseEnum>("examine_non_matching_edges")),
110  _non_matching_edge_tol(getParam<Real>("intersection_tol")),
112  getParam<MooseEnum>("search_for_adaptivity_nonconformality")),
113  _check_local_jacobian(getParam<MooseEnum>("check_local_jacobian")),
114  _num_outputs(getParam<unsigned int>("log_length_limit"))
115 {
116  // Check that no secondary parameters have been passed with the main check disabled
117  if ((isParamSetByUser("minimum_element_volumes") ||
118  isParamSetByUser("maximum_element_volumes")) &&
119  _check_element_volumes == "NO_CHECK")
120  paramError("examine_element_volumes",
121  "You must set this parameter to true to trigger element size checks");
122  if (isParamSetByUser("nonconformal_tol") && _check_non_conformal_mesh == "NO_CHECK")
123  paramError("examine_non_conformality",
124  "You must set this parameter to true to trigger mesh conformality check");
125  if (_check_sidesets_orientation == "NO_CHECK" && _check_watertight_sidesets == "NO_CHECK" &&
126  _check_watertight_nodesets == "NO_CHECK" && _check_element_volumes == "NO_CHECK" &&
127  _check_element_types == "NO_CHECK" && _check_element_overlap == "NO_CHECK" &&
128  _check_non_planar_sides == "NO_CHECK" && _check_non_conformal_mesh == "NO_CHECK" &&
129  _check_adaptivity_non_conformality == "NO_CHECK" && _check_local_jacobian == "NO_CHECK" &&
130  _check_non_matching_edges == "NO_CHECK")
131  mooseError("You need to turn on at least one diagnostic. Did you misspell a parameter?");
132 }
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 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:56
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 T & getParam(const std::string &name) const
Retrieve a parameter for the object.
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 ...
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)
bool isParamSetByUser(const std::string &nm) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
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.
const InputParameters & parameters() const
Get the parameters of the object.
const MooseEnum _check_element_overlap
whether to check for intersecting elements

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

366 {
367  mooseAssert(_app.constructingMeshGenerators(), "Should only be called at construction");
368  _child_mesh_generators.insert(&mg);
369 }
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition: MooseApp.C:3463
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:84

◆ 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 513 of file MeshGenerator.h.

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

516 {
517  InputParameters subgenerator_params = _app.getFactory().getValidParams(type);
518 
519  subgenerator_params.setParameters(extra_input_parameters...);
520 
521  addMeshSubgenerator(type, name, subgenerator_params);
522 }
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...
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
Definition: MooseApp.h:434
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:51
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
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 334 of file MeshGenerator.C.

337 {
339  mooseError("Can only call addMeshSubgenerator() during MeshGenerator construction");
340 
341  // In case the user forgot it
342  params.set<MooseApp *>("_moose_app") = &_app;
343 
344  // Set this to be data-only if this generator is data only
345  params.set<bool>(data_only_param) = isDataOnly();
346 
347  _app.addMeshGenerator(type, name, params);
348  _sub_mesh_generators.insert(&std::as_const(_app).getMeshGenerator(name));
349 }
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition: MooseApp.C:3463
static const std::string data_only_param
The name of the private parameter for setting data only.
Definition: MeshGenerator.h:62
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:85
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
const std::string & type() const
Get the type of this class.
Definition: MooseBase.h:51
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
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:883
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
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 358 of file MeshGenerator.C.

359 {
360  mooseAssert(_app.constructingMeshGenerators(), "Should only be called at construction");
361  _parent_mesh_generators.insert(&mg);
362 }
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition: MooseApp.C:3463
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
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 253 of file MeshGenerator.C.

Referenced by DistributedRectilinearMeshGenerator::generate().

254 {
255  mooseAssert(_mesh, "Need a MooseMesh object");
256  return _mesh->buildTypedMesh<DistributedMesh>(dim);
257 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:153
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:2090

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

Referenced by BlockToMeshConverterGenerator::generate(), ElementGenerator::generate(), FileMeshGenerator::generate(), SphereMeshGenerator::generate(), PolyLineMeshGenerator::generate(), ExamplePatchMeshGenerator::generate(), AnnularMeshGenerator::generate(), CartesianMeshGenerator::generate(), GeneratedMeshGenerator::generate(), AdvancedExtruderGenerator::generate(), MeshExtruderGenerator::generate(), and TransfiniteMeshGenerator::generate().

240 {
241  mooseAssert(_mesh, "Need a MooseMesh object");
242  return _mesh->buildMeshBaseObject(dim);
243 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:153
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:2851

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

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

247 {
248  mooseAssert(_mesh, "Need a MooseMesh object");
249  return _mesh->buildTypedMesh<ReplicatedMesh>(dim);
250 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:153
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:2090

◆ callMooseError()

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

Calls moose error with the message msg.

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

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

Definition at line 33 of file MooseBase.C.

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

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

◆ checkElementOverlap()

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

Routine to check whether elements overlap in the mesh.

Definition at line 532 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

533 {
534  {
535  unsigned int num_elem_overlaps = 0;
536  auto pl = mesh->sub_point_locator();
537  // loop on nodes, assumed replicated mesh
538  for (auto & node : mesh->node_ptr_range())
539  {
540  // find all the elements around this node
541  std::set<const Elem *> elements;
542  (*pl)(*node, elements);
543 
544  for (auto & elem : elements)
545  {
546  if (!elem->contains_point(*node))
547  continue;
548 
549  // not overlapping inside the element if part of its nodes
550  bool found = false;
551  for (auto & elem_node : elem->node_ref_range())
552  if (*node == elem_node)
553  {
554  found = true;
555  break;
556  }
557  // not overlapping inside the element if right on its side
558  bool on_a_side = false;
559  for (const auto & elem_side_index : elem->side_index_range())
560  if (elem->side_ptr(elem_side_index)->contains_point(*node, _non_conformality_tol))
561  on_a_side = true;
562  if (!found && !on_a_side)
563  {
564  num_elem_overlaps++;
565  if (num_elem_overlaps < _num_outputs)
566  _console << "Element overlap detected at : " << *node << std::endl;
567  else if (num_elem_overlaps == _num_outputs)
568  _console << "Maximum output reached, log is silenced" << std::endl;
569  }
570  }
571  }
572 
573  diagnosticsLog("Number of elements overlapping (node-based heuristics): " +
574  Moose::stringify(num_elem_overlaps),
576  num_elem_overlaps);
577  num_elem_overlaps = 0;
578 
579  // loop on all elements in mesh: assumes a replicated mesh
580  for (auto & elem : mesh->active_element_ptr_range())
581  {
582  // find all the elements around the centroid of this element
583  std::set<const Elem *> overlaps;
584  (*pl)(elem->vertex_average(), overlaps);
585 
586  if (overlaps.size() > 1)
587  {
588  num_elem_overlaps++;
589  if (num_elem_overlaps < _num_outputs)
590  _console << "Element overlap detected with element : " << elem->id() << " near point "
591  << elem->vertex_average() << std::endl;
592  else if (num_elem_overlaps == _num_outputs)
593  _console << "Maximum output reached, log is silenced" << std::endl;
594  }
595  }
596  diagnosticsLog("Number of elements overlapping (centroid-based heuristics): " +
597  Moose::stringify(num_elem_overlaps),
599  num_elem_overlaps);
600  }
601 }
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 504 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

505 {
506  std::set<subdomain_id_type> ids;
507  mesh->subdomain_ids(ids);
508  // loop on sub-domain
509  for (auto & id : ids)
510  {
511  // ElemType defines an enum for geometric element types
512  std::set<ElemType> types;
513  // loop on elements within this sub-domain
514  for (auto & elem : mesh->active_subdomain_elements_ptr_range(id))
515  types.insert(elem->type());
516 
517  std::string elem_type_names = "";
518  for (auto & elem_type : types)
519  elem_type_names += " " + Moose::stringify(elem_type);
520 
521  _console << "Element type in subdomain " + mesh->subdomain_name(id) + " (" +
522  std::to_string(id) + ") :" + elem_type_names
523  << std::endl;
524  if (types.size() > 1)
525  diagnosticsLog("Two different element types in subdomain " + std::to_string(id),
527  true);
528  }
529 }
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 463 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

464 {
465  unsigned int num_tiny_elems = 0;
466  unsigned int num_negative_elems = 0;
467  unsigned int num_big_elems = 0;
468  // loop elements within the mesh (assumes replicated)
469  for (auto & elem : mesh->active_element_ptr_range())
470  {
471  if (elem->volume() <= _min_volume)
472  {
473  if (num_tiny_elems < _num_outputs)
474  _console << "Element with volume below threshold detected : \n"
475  << "id " << elem->id() << " near point " << elem->vertex_average() << std::endl;
476  else if (num_tiny_elems == _num_outputs)
477  _console << "Maximum output reached, log is silenced" << std::endl;
478  num_tiny_elems++;
479  }
480  if (elem->volume() >= _max_volume)
481  {
482  if (num_big_elems < _num_outputs)
483  _console << "Element with volume above threshold detected : \n"
484  << elem->get_info() << std::endl;
485  else if (num_big_elems == _num_outputs)
486  _console << "Maximum output reached, log is silenced" << std::endl;
487  num_big_elems++;
488  }
489  }
490  diagnosticsLog("Number of elements below prescribed minimum volume : " +
491  std::to_string(num_tiny_elems),
493  num_tiny_elems);
494  diagnosticsLog("Number of elements with negative volume : " + std::to_string(num_negative_elems),
496  num_negative_elems);
497  diagnosticsLog("Number of elements above prescribed maximum volume : " +
498  std::to_string(num_big_elems),
500  num_big_elems);
501 }
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
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 1324 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

1325 {
1326  unsigned int num_negative_elem_qp_jacobians = 0;
1327  // Get a high-ish order quadrature
1328  auto qrule_dimension = mesh->mesh_dimension();
1329  libMesh::QGauss qrule(qrule_dimension, FIFTH);
1330 
1331  // Use a constant monomial
1332  const libMesh::FEType fe_type(CONSTANT, libMesh::MONOMIAL);
1333 
1334  // Initialize a basic constant monomial shape function everywhere
1335  std::unique_ptr<libMesh::FEBase> fe_elem;
1336  if (mesh->mesh_dimension() == 1)
1337  fe_elem = std::make_unique<libMesh::FEMonomial<1>>(fe_type);
1338  if (mesh->mesh_dimension() == 2)
1339  fe_elem = std::make_unique<libMesh::FEMonomial<2>>(fe_type);
1340  else
1341  fe_elem = std::make_unique<libMesh::FEMonomial<3>>(fe_type);
1342 
1343  fe_elem->get_JxW();
1344  fe_elem->attach_quadrature_rule(&qrule);
1345 
1346  // Check elements (assumes serialized mesh)
1347  for (const auto & elem : mesh->element_ptr_range())
1348  {
1349  // Handle mixed-dimensional meshes
1350  if (qrule_dimension != elem->dim())
1351  {
1352  // Re-initialize a quadrature
1353  qrule_dimension = elem->dim();
1354  qrule = libMesh::QGauss(qrule_dimension, FIFTH);
1355 
1356  // Re-initialize a monomial FE
1357  if (elem->dim() == 1)
1358  fe_elem = std::make_unique<libMesh::FEMonomial<1>>(fe_type);
1359  if (elem->dim() == 2)
1360  fe_elem = std::make_unique<libMesh::FEMonomial<2>>(fe_type);
1361  else
1362  fe_elem = std::make_unique<libMesh::FEMonomial<3>>(fe_type);
1363 
1364  fe_elem->get_JxW();
1365  fe_elem->attach_quadrature_rule(&qrule);
1366  }
1367 
1368  try
1369  {
1370  fe_elem->reinit(elem);
1371  }
1372  catch (libMesh::LogicError & e)
1373  {
1374  num_negative_elem_qp_jacobians++;
1375  const auto msg = std::string(e.what());
1376  if (msg.find("negative Jacobian") != std::string::npos)
1377  {
1378  if (num_negative_elem_qp_jacobians < _num_outputs)
1379  _console << "Negative Jacobian found in element " << elem->id() << " near point "
1380  << elem->vertex_average() << std::endl;
1381  else if (num_negative_elem_qp_jacobians == _num_outputs)
1382  _console << "Maximum log output reached, silencing output" << std::endl;
1383  }
1384  else
1385  _console << e.what() << std::endl;
1386  }
1387  }
1388  diagnosticsLog("Number of elements with a negative Jacobian: " +
1389  Moose::stringify(num_negative_elem_qp_jacobians),
1391  num_negative_elem_qp_jacobians);
1392 
1393  unsigned int num_negative_side_qp_jacobians = 0;
1394  // Get a high-ish order side quadrature
1395  auto qrule_side_dimension = mesh->mesh_dimension() - 1;
1396  libMesh::QGauss qrule_side(qrule_side_dimension, FIFTH);
1397 
1398  // Use the side quadrature now
1399  fe_elem->attach_quadrature_rule(&qrule_side);
1400 
1401  // Check element sides
1402  for (const auto & elem : mesh->element_ptr_range())
1403  {
1404  // Handle mixed-dimensional meshes
1405  if (int(qrule_side_dimension) != elem->dim() - 1)
1406  {
1407  qrule_side_dimension = elem->dim() - 1;
1408  qrule_side = libMesh::QGauss(qrule_side_dimension, FIFTH);
1409 
1410  // Re-initialize a side FE
1411  if (elem->dim() == 1)
1412  fe_elem = std::make_unique<libMesh::FEMonomial<1>>(fe_type);
1413  if (elem->dim() == 2)
1414  fe_elem = std::make_unique<libMesh::FEMonomial<2>>(fe_type);
1415  else
1416  fe_elem = std::make_unique<libMesh::FEMonomial<3>>(fe_type);
1417 
1418  fe_elem->get_JxW();
1419  fe_elem->attach_quadrature_rule(&qrule_side);
1420  }
1421 
1422  for (const auto & side : elem->side_index_range())
1423  {
1424  try
1425  {
1426  fe_elem->reinit(elem, side);
1427  }
1428  catch (libMesh::LogicError & e)
1429  {
1430  const auto msg = std::string(e.what());
1431  if (msg.find("negative Jacobian") != std::string::npos)
1432  {
1433  num_negative_side_qp_jacobians++;
1434  if (num_negative_side_qp_jacobians < _num_outputs)
1435  _console << "Negative Jacobian found in side " << side << " of element" << elem->id()
1436  << " near point " << elem->vertex_average() << std::endl;
1437  else if (num_negative_side_qp_jacobians == _num_outputs)
1438  _console << "Maximum log output reached, silencing output" << std::endl;
1439  }
1440  else
1441  _console << e.what() << std::endl;
1442  }
1443  }
1444  }
1445  diagnosticsLog("Number of element sides with negative Jacobians: " +
1446  Moose::stringify(num_negative_side_qp_jacobians),
1448  num_negative_side_qp_jacobians);
1449 }
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 665 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

666 {
667  unsigned int num_nonconformal_nodes = 0;
669  mesh, _console, _num_outputs, _non_conformality_tol, num_nonconformal_nodes);
670  diagnosticsLog("Number of non-conformal nodes: " + Moose::stringify(num_nonconformal_nodes),
672  num_nonconformal_nodes);
673 }
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 676 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

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

Definition at line 1452 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

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

Referenced by generate().

605 {
606  unsigned int sides_non_planar = 0;
607  // loop on all elements in mesh: assumes a replicated mesh
608  for (auto & elem : mesh->active_element_ptr_range())
609  {
610  for (auto i : make_range(elem->n_sides()))
611  {
612  auto side = elem->side_ptr(i);
613  std::vector<const Point *> nodes;
614  for (auto & node : side->node_ref_range())
615  nodes.emplace_back(&node);
616 
617  if (nodes.size() <= 3)
618  continue;
619  // First vector of the base
620  const RealVectorValue v1 = *nodes[0] - *nodes[1];
621 
622  // Find another node so that we can form a basis. It should just be node 0, 1, 2
623  // to form two independent vectors, but degenerate elements can make them aligned
624  bool aligned = true;
625  unsigned int third_node_index = 2;
626  RealVectorValue v2;
627  while (aligned && third_node_index < nodes.size())
628  {
629  v2 = *nodes[0] - *nodes[third_node_index++];
630  aligned = MooseUtils::absoluteFuzzyEqual(v1 * v2 - v1.norm() * v2.norm(), 0);
631  }
632 
633  // Degenerate element, could not find a third node that is not aligned
634  if (aligned)
635  continue;
636 
637  bool found_non_planar = false;
638 
639  for (auto node_offset : make_range(nodes.size() - 3))
640  {
641  RealVectorValue v3 = *nodes[0] - *nodes[node_offset + 3];
642  bool planar = MooseUtils::absoluteFuzzyEqual(v2.cross(v1) * v3, 0);
643  if (!planar)
644  found_non_planar = true;
645  }
646 
647  if (found_non_planar)
648  {
649  sides_non_planar++;
650  if (sides_non_planar < _num_outputs)
651  _console << "Nonplanar side detected for side " << i
652  << " of element :" << elem->get_info() << std::endl;
653  else if (sides_non_planar == _num_outputs)
654  _console << "Maximum output reached, log is silenced" << std::endl;
655  }
656  }
657  }
658  diagnosticsLog("Number of non-planar element sides detected: " +
659  Moose::stringify(sides_non_planar),
661  sides_non_planar);
662 }
auto norm() const -> decltype(std::norm(Real()))
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
Function to check whether two variables are equal within an absolute tolerance.
Definition: MooseUtils.h:380
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.

◆ checkSidesetsOrientation()

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

Routine to check sideset orientation near subdomains.

Definition at line 193 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

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

Referenced by generate().

383 {
384  /*
385  Diagnostic Overview:
386  1) Mesh precheck
387  2) Loop through all elements
388  3) Loop through all sides of that element
389  4) If side is external loop through its nodes
390  5) If node is not associated with any nodeset add to list
391  6) Print out node id
392  */
393  if (mesh->mesh_dimension() < 2)
394  mooseError("The nodeset check only works for 2D and 3D meshes");
395  auto & boundary_info = mesh->get_boundary_info();
396  unsigned int num_nodes_without_nodeset = 0;
397  std::set<dof_id_type> checked_nodes_id;
398 
399  for (const auto elem : mesh->active_element_ptr_range())
400  {
401  for (const auto i : elem->side_index_range())
402  {
403  // Check if side is external
404  if (elem->neighbor_ptr(i) == nullptr)
405  {
406  // Side is external, now check nodes
407  auto side = elem->side_ptr(i);
408  const auto & node_list = side->get_nodes();
409  for (unsigned int j = 0; j < side->n_nodes(); j++)
410  {
411  const auto node = node_list[j];
412  if (checked_nodes_id.count(node->id()))
413  continue;
414  // get vector of node's boundaries (in most cases it will only have one)
415  std::vector<boundary_id_type> boundary_ids;
416  boundary_info.boundary_ids(node, boundary_ids);
417  std::vector<boundary_id_type> intersection =
419 
420  bool no_specified_ids = boundary_info.n_boundary_ids(node) == 0;
421  bool specified_ids = !_watertight_boundaries.empty() && intersection.empty();
422  std::string message =
423  "Node " + std::to_string(node->id()) +
424  " is on an external boundary of the mesh, but has not been assigned to ";
425  if (no_specified_ids)
426  message = message + "a nodeset";
427  else if (specified_ids)
428  message = message + "one of the specified nodesets";
429  if ((no_specified_ids || specified_ids) && num_nodes_without_nodeset < _num_outputs)
430  {
431  checked_nodes_id.insert(node->id());
432  num_nodes_without_nodeset++;
433  _console << message << std::endl;
434  }
435  }
436  }
437  }
438  }
439  std::string message;
440  message = "Number of external nodes that have not been assigned to a nodeset: " +
441  std::to_string(num_nodes_without_nodeset);
442  diagnosticsLog(message, _check_watertight_nodesets, num_nodes_without_nodeset);
443 }
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.
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 317 of file MeshDiagnosticsGenerator.C.

Referenced by generate().

318 {
319  /*
320  Algorithm Overview:
321  1) Loop through all elements
322  2) For each element loop through all its sides
323  3) If it has no neighbors it's an external side
324  4) If external check if it's part of a sideset
325  */
326  if (mesh->mesh_dimension() < 2)
327  mooseError("The sideset check only works for 2D and 3D meshes");
328  auto & boundary_info = mesh->get_boundary_info();
329  boundary_info.build_side_list();
330  const auto sideset_map = boundary_info.get_sideset_map();
331  unsigned int num_faces_without_sideset = 0;
332 
333  for (const auto elem : mesh->active_element_ptr_range())
334  {
335  for (auto i : elem->side_index_range())
336  {
337  // Check if side is external
338  if (elem->neighbor_ptr(i) == nullptr)
339  {
340  // If external get the boundary ids associated with this side
341  std::vector<boundary_id_type> boundary_ids;
342  auto side_range = sideset_map.equal_range(elem);
343  for (const auto & itr : as_range(side_range))
344  if (itr.second.first == i)
345  boundary_ids.push_back(i);
346  // get intersection of boundary_ids and _watertight_boundaries
347  std::vector<boundary_id_type> intersections =
349 
350  bool no_specified_ids = boundary_ids.empty();
351  bool specified_ids = !_watertight_boundaries.empty() && intersections.empty();
352  std::string message;
353  if (mesh->mesh_dimension() == 3)
354  message = "Element " + std::to_string(elem->id()) +
355  " contains an external face which has not been assigned to ";
356  else
357  message = "Element " + std::to_string(elem->id()) +
358  " contains an external edge which has not been assigned to ";
359  if (no_specified_ids)
360  message = message + "a sideset";
361  else if (specified_ids)
362  message = message + "one of the specified sidesets";
363  if ((no_specified_ids || specified_ids) && num_faces_without_sideset < _num_outputs)
364  {
365  _console << message << std::endl;
366  num_faces_without_sideset++;
367  }
368  }
369  }
370  }
371  std::string message;
372  if (mesh->mesh_dimension() == 3)
373  message = "Number of external element faces that have not been assigned to a sideset: " +
374  std::to_string(num_faces_without_sideset);
375  else
376  message = "Number of external element edges that have not been assigned to a sideset: " +
377  std::to_string(num_faces_without_sideset);
378  diagnosticsLog(message, _check_watertight_sidesets, num_faces_without_sideset);
379 }
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.
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ connectControllableParams()

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

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

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

Definition at line 33 of file MooseBaseParameterInterface.C.

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

◆ 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 233 of file MeshGenerator.h.

236  {
237  return declareMeshProperty(target_data_name, getMeshProperty<T>(source_data_name, source_mesh));
238  }
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 246 of file MeshGenerator.h.

247  {
248  return copyMeshProperty<T>(source_data_name, source_data_name, source_mesh);
249  }

◆ declareMeshesForSub()

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

Like declareMeshForSub(), but for multiple generators.

Definition at line 215 of file MeshGenerator.C.

216 {
218 }
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 231 of file MeshGenerator.C.

Referenced by MeshGenerator::declareMeshesForSub().

233 {
234  for (const auto & name : mesh_generator_names)
236 }
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
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 209 of file MeshGenerator.C.

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

210 {
212 }
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.
Definition: MeshGenerator.C:92

◆ declareMeshForSubByName()

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

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

Definition at line 221 of file MeshGenerator.C.

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

222 {
223  checkGetMesh(mesh_generator_name, "");
224  if (isNullMeshName(mesh_generator_name))
225  return;
226 
227  _requested_mesh_generators_for_sub.insert(mesh_generator_name);
228 }
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 455 of file MeshGenerator.h.

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

456 {
458  mooseError("Can only call declareMeshProperty() during MeshGenerator construction");
459 
460  // We sort construction ordering so that we _must_ declare before retrieving
461  if (hasMeshProperty(data_name))
462  mooseError("While declaring mesh property '",
463  data_name,
464  "' with type '",
465  MooseUtils::prettyCppType<T>(),
466  "',\nsaid property has already been declared with type '",
467  setMeshPropertyHelper(data_name).type(),
468  "'");
469 
470  const auto full_name = meshPropertyName(data_name);
471  auto new_T_value =
472  std::make_unique<RestartableData<T>>(full_name, nullptr, std::forward<Args>(args)...);
473  auto value =
474  &_app.registerRestartableData(std::move(new_T_value), 0, false, MooseApp::MESH_META_DATA);
475  mooseAssert(value->declared(), "Should be declared");
476 
477  RestartableData<T> * T_value = dynamic_cast<RestartableData<T> *>(value);
478  mooseAssert(T_value, "Bad cast");
479 
480  return T_value->set();
481 }
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition: MooseApp.C:3463
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:112
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:2421
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
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.
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 206 of file MeshGenerator.h.

207  {
208  return declareMeshProperty<T, const T &>(data_name, data_value);
209  }

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

399 {
400  mooseAssert(_app.constructingMeshGenerators(), "Should only be called at construction");
401  mooseAssert(!_null_mesh_names.count(name), "Already declared");
402  _null_mesh_names.insert(name);
403 }
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition: MooseApp.C:3463
std::set< std::string > _null_mesh_names
The declared "null" mesh names that will not represent a mesh in input; see declareNullMeshName() ...
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84

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

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

1582 {
1583  mooseAssert(log_level != "NO_CHECK",
1584  "We should not be outputting logs if the check had been disabled");
1585  if (log_level == "INFO" || !problem_detected)
1586  mooseInfoRepeated(msg);
1587  else if (log_level == "WARNING")
1588  mooseWarning(msg);
1589  else if (log_level == "ERROR")
1590  mooseError(msg);
1591  else
1592  mooseError("Should not reach here");
1593 }
void mooseInfoRepeated(Args &&... args)
Emit an informational message with the given stringified, concatenated args.
Definition: MooseError.h:377
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 40 of file MooseObject.h.

Referenced by EigenKernel::enabled().

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

◆ errorPrefix()

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

Definition at line 43 of file MooseBase.C.

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

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

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

Referenced by checkWatertightNodesets(), and checkWatertightSidesets().

449 {
450  // Only the boundary_ids vector is sorted here. watertight_boundaries has to be sorted beforehand
451  // Returns their intersection (elements that they share)
452  std::sort(boundary_ids.begin(), boundary_ids.end());
453  std::vector<boundary_id_type> boundary_intersection;
454  std::set_intersection(watertight_boundaries.begin(),
455  watertight_boundaries.end(),
456  boundary_ids.begin(),
457  boundary_ids.end(),
458  std::back_inserter(boundary_intersection));
459  return boundary_intersection;
460 }

◆ generate()

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

Generate / modify the mesh.

Implements MeshGenerator.

Definition at line 135 of file MeshDiagnosticsGenerator.C.

136 {
137  std::unique_ptr<MeshBase> mesh = std::move(_input);
138 
139  // Most of the checks assume we have the full mesh
140  if (!mesh->is_serial())
141  mooseError("Only serialized meshes are supported");
142 
143  // We prepare for use at the beginning to facilitate diagnosis
144  // This deliberately does not trust the mesh to know whether it's already prepared or not
145  mesh->prepare_for_use();
146 
147  // check that specified boundary is valid, convert BoundaryNames to BoundaryIDs, and sort
148  for (const auto & boundary_name : _watertight_boundary_names)
149  {
150  if (!MooseMeshUtils::hasBoundaryName(*mesh, boundary_name))
151  mooseError("User specified boundary_to_check \'", boundary_name, "\' does not exist");
152  }
154  std::sort(_watertight_boundaries.begin(), _watertight_boundaries.end());
155 
156  if (_check_sidesets_orientation != "NO_CHECK")
158 
159  if (_check_watertight_sidesets != "NO_CHECK")
161 
162  if (_check_watertight_nodesets != "NO_CHECK")
164 
165  if (_check_element_volumes != "NO_CHECK")
166  checkElementVolumes(mesh);
167 
168  if (_check_element_types != "NO_CHECK")
169  checkElementTypes(mesh);
170 
171  if (_check_element_overlap != "NO_CHECK")
172  checkElementOverlap(mesh);
173 
174  if (_check_non_planar_sides != "NO_CHECK")
175  checkNonPlanarSides(mesh);
176 
177  if (_check_non_conformal_mesh != "NO_CHECK")
178  checkNonConformalMesh(mesh);
179 
180  if (_check_adaptivity_non_conformality != "NO_CHECK")
182 
183  if (_check_local_jacobian != "NO_CHECK")
184  checkLocalJacobians(mesh);
185 
186  if (_check_non_matching_edges != "NO_CHECK")
187  checkNonMatchingEdges(mesh);
188 
189  return dynamic_pointer_cast<MeshBase>(mesh);
190 }
void checkNonMatchingEdges(const std::unique_ptr< MeshBase > &mesh) const
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
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.
void checkSidesetsOrientation(const std::unique_ptr< MeshBase > &mesh) const
Routine to check sideset orientation near subdomains.
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

◆ generateData()

void MeshGenerator::generateData ( )
protectedvirtualinherited

Generate the mesh data.

Reimplemented in AddMetaDataGenerator.

Definition at line 424 of file MeshGenerator.C.

Referenced by MeshGenerator::generateInternal().

425 {
426  mooseAssert(!hasGenerateData(), "Inconsistent flag");
427  mooseError("This MeshGenerator does not have a generateData() implementation.");
428 }
bool hasGenerateData() const
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

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

261 {
262  libmesh_parallel_only(comm());
263  mooseAssert(comm().verify(type() + name()), "Inconsistent execution ordering");
264 
265  if (hasGenerateData())
266  generateData();
267 
268  if (isDataOnly())
269  return nullptr;
270 
271  auto mesh = generate();
272  if (!mesh)
273  mooseError("A mesh was not generated by this generator (it was nullptr).");
274 
275  for (const auto & [requested_name, requested_mesh] : _requested_meshes)
276  if (*requested_mesh)
277  mooseError(
278  "The mesh from input ",
279  _app.getMeshGenerator(requested_name).type(),
280  " '",
281  _app.getMeshGenerator(requested_name).name(),
282  "' was not moved.\n\nThe MeshGenerator system requires that the memory from all input "
283  "meshes\nare managed by the requesting MeshGenerator during the generate phase.\n\nThis "
284  "is achieved with a std::move() operation within the generate() method.");
285 
286  if (getParam<bool>("show_info"))
287  {
288  const auto mesh_info = mesh->get_info(/* verbosity = */ 2);
289 
290  // We will prefix all information with "type() 'name()':" because this could potentially
291  // output a ton of information and looks a bit better with a prefix
292  std::stringstream oss;
293  const auto split = MooseUtils::split(mesh_info, "\n");
294  if (split.size())
295  for (std::size_t i = 0; i < split.size() - 1; ++i) // ignore the last line break
296  oss << COLOR_CYAN << "" << type() << " '" << name() << "': " << COLOR_DEFAULT << split[i]
297  << std::endl;
298  _console << oss.str() << std::flush;
299  }
300 
301  // output the current mesh block to file
302  if (hasOutput())
303  {
304  if (!mesh->is_prepared())
305  mesh->prepare_for_use();
306 
307  if (!getParam<bool>("nemesis"))
308  {
309  libMesh::ExodusII_IO exio(*mesh);
310 
311  if (mesh->mesh_dimension() == 1)
312  exio.write_as_dimension(3);
313 
314  // Default to non-HDF5 output for wider compatibility
315  exio.set_hdf5_writing(false);
316 
317  exio.write(name() + "_in.e");
318  }
319  else
320  {
321  libMesh::Nemesis_IO nemesis_io(*mesh);
322 
323  // Default to non-HDF5 output for wider compatibility
324  nemesis_io.set_hdf5_writing(false);
325 
326  nemesis_io.write(name() + "_in.e");
327  }
328  }
329 
330  return mesh;
331 }
const MeshGenerator & getMeshGenerator(const std::string &name) const
Definition: MooseApp.h:901
virtual void generateData()
Generate the mesh data.
MeshBase & mesh
bool hasOutput() const
const Parallel::Communicator & comm() const
bool hasGenerateData() const
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
std::vector< std::string > split(const std::string &str, const std::string &delimiter, std::size_t max_count=std::numeric_limits< std::size_t >::max())
Python like split functions for strings.
Definition: MooseUtils.C:1126
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...
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:51
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
tbb::split split
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
bool isDataOnly() const

◆ getCheckedPointerParam()

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

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

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

Definition at line 286 of file MooseBaseParameterInterface.h.

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

◆ getChildMeshGenerators()

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

Gets the MeshGenerators that are children to this MeshGenerator.

Definition at line 129 of file MeshGenerator.h.

Referenced by MeshGenerator::isChildMeshGenerator().

130  {
131  return _child_mesh_generators;
132  }
std::set< const MeshGenerator *, Comparator > _child_mesh_generators
The MeshGenerators that are children to this MeshGenerator.

◆ getDataFileName()

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

Deprecated method.

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

Definition at line 21 of file DataFileInterface.C.

22 {
23  _parent.mooseDeprecated("getDataFileName() is deprecated. The file path is now directly set "
24  "within the InputParameters.\nUse getParam<DataFileName>(\"",
25  param,
26  "\") instead.");
27  return _parent.getParam<DataFileName>(param);
28 }
void mooseDeprecated(Args &&... args) const
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
const ParallelParamObject & _parent

◆ getDataFileNameByName()

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

Deprecated method.

Use getDataFilePath() instead.

Definition at line 31 of file DataFileInterface.C.

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

◆ getDataFilePath()

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

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

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

Definition at line 40 of file DataFileInterface.C.

Referenced by DataFileInterface::getDataFileNameByName().

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

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

173 {
174  const MeshGeneratorName * name = getMeshGeneratorNameFromParam(param_name, allow_invalid);
175  if (!name)
176  return _null_mesh;
177  return getMeshByName(*name);
178 }
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.
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
const MeshGeneratorName * getMeshGeneratorNameFromParam(const std::string &param_name, const bool allow_invalid) const
Helper for getting a MeshGeneratorName parameter.
Definition: MeshGenerator.C:92

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

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

188 {
189  checkGetMesh(mesh_generator_name, "");
190  if (isNullMeshName(mesh_generator_name))
191  return _null_mesh;
192 
193  _requested_mesh_generators.insert(mesh_generator_name);
194  auto & mesh = _app.getMeshGeneratorSystem().getMeshGeneratorOutput(mesh_generator_name);
195  _requested_meshes.emplace_back(mesh_generator_name, &mesh);
196  return mesh;
197 }
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:84
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:867

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

182 {
184 }
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 200 of file MeshGenerator.C.

Referenced by MeshGenerator::getMeshes().

201 {
202  std::vector<std::unique_ptr<MeshBase> *> meshes;
203  for (const auto & name : mesh_generator_names)
204  meshes.push_back(&getMeshByName(name));
205  return meshes;
206 }
std::unique_ptr< MeshBase > & getMeshByName(const MeshGeneratorName &mesh_generator_name)
Like getMesh(), but takes the name of another MeshGenerator directly.
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57

◆ 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 134 of file MeshMetaDataInterface.h.

136 {
137  if (!hasMeshProperty(data_name, prefix))
138  mooseErrorInternal("Failed to get mesh property '", prefix, "/", data_name, "'");
139 
140  auto value = &getMeshPropertyInternal(data_name, prefix);
141  mooseAssert(value->declared(), "Value has not been declared");
142  const RestartableData<T> * T_value = dynamic_cast<const RestartableData<T> *>(value);
143  if (!T_value)
144  mooseErrorInternal("While retrieving mesh property '",
145  prefix,
146  "/",
147  data_name,
148  "' with type '",
149  MooseUtils::prettyCppType<T>(),
150  "',\nthe property exists with different type '",
151  value->type(),
152  "'");
153  return T_value->get();
154 }
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 56 of file MeshMetaDataInterface.h.

57  {
58  return getMeshProperty<T>(data_name, meshPropertyPrefix(data_name));
59  }
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 45 of file MooseBase.h.

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

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

◆ getParam() [1/2]

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

Retrieve a parameter for the object.

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

Definition at line 215 of file MooseBaseParameterInterface.h.

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

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

◆ getParam() [2/2]

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

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

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

Definition at line 279 of file MooseBaseParameterInterface.h.

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

◆ getParentMeshGenerators()

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

Gets the MeshGenerators that are parents to this MeshGenerator.

Definition at line 122 of file MeshGenerator.h.

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

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

◆ getRenamedParam()

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

Retrieve a renamed parameter for the object.

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

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

Definition at line 229 of file MooseBaseParameterInterface.h.

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

◆ 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 80 of file MeshGenerator.h.

81  {
83  }
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 88 of file MeshGenerator.h.

89  {
91  }
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 418 of file MeshGenerator.C.

419 {
420  return _save_with_name;
421 }
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 68 of file MooseObject.C.

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

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

◆ getSharedPtr() [2/2]

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

Definition at line 81 of file MooseObject.C.

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

◆ getSubMeshGenerators()

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

Gets the MeshGenerators that are children to this MeshGenerator.

Definition at line 136 of file MeshGenerator.h.

137  {
138  return _sub_mesh_generators;
139  }
std::set< const MeshGenerator *, Comparator > _sub_mesh_generators
The sub MeshGenerators constructed by this MeshGenerator.

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

87 {
88  return params.get<bool>("_has_generate_data");
89 }
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 185 of file MeshGenerator.h.

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

185 { return hasGenerateData(_pars); }
bool hasGenerateData() const
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.

◆ 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 25 of file MeshMetaDataInterface.C.

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

27 {
28  return _meta_data_app.hasRestartableMetaData(meshPropertyName(data_name, prefix),
30 }
bool hasRestartableMetaData(const std::string &name, const RestartableDataMapName &metaname) const
Definition: MooseApp.C:2473
static const RestartableDataMapName MESH_META_DATA
Definition: MooseApp.h:112
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 158 of file MeshMetaDataInterface.h.

160 {
161  if (!hasMeshProperty(data_name, prefix))
162  return false;
163  const auto & value = getMeshPropertyInternal(data_name, prefix);
164  return dynamic_cast<const RestartableData<T> *>(&value) != nullptr;
165 }
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 74 of file MeshMetaDataInterface.h.

75  {
76  return hasMeshProperty(data_name, meshPropertyPrefix(data_name));
77  }
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 82 of file MeshMetaDataInterface.h.

83  {
84  return hasMeshProperty<T>(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.

◆ hasOutput()

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

Definition at line 412 of file MeshGenerator.C.

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

413 {
414  return getParam<bool>("output");
415 }

◆ hasSaveMesh()

bool MeshGenerator::hasSaveMesh ( ) const
inherited

Return whether or not to save the current mesh.

Definition at line 406 of file MeshGenerator.C.

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

407 {
408  return _save_with_name.size();
409 }
const std::string & _save_with_name
A user-defined name to save the mesh.

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

Referenced by MeshGeneratorSystem::createMeshGeneratorOrder().

387 {
388  return std::find_if(getChildMeshGenerators().begin(),
389  getChildMeshGenerators().end(),
390  [&name, &direct](const auto & mg)
391  {
392  return mg->name() == name ||
393  (!direct && mg->isChildMeshGenerator(name, /* direct = */ false));
394  }) != getChildMeshGenerators().end();
395 }
const std::set< const MeshGenerator *, Comparator > & getChildMeshGenerators() const
Gets the MeshGenerators that are children to this MeshGenerator.
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57

◆ isDataOnly()

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

Definition at line 190 of file MeshGenerator.h.

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

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

◆ 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 165 of file MeshGenerator.h.

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

165 { 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() ...
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57

◆ isParamSetByUser()

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

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

Parameters
nmThe name of the parameter to test

Definition at line 128 of file MooseBaseParameterInterface.h.

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

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

◆ isParamValid()

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

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 122 of file MooseBaseParameterInterface.h.

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

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

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

374 {
375  return std::find_if(getParentMeshGenerators().begin(),
376  getParentMeshGenerators().end(),
377  [&name, &direct](const auto & mg)
378  {
379  return mg->name() == name ||
380  (!direct && mg->isParentMeshGenerator(name, /* direct = */ false));
381  }) != getParentMeshGenerators().end();
382 }
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
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 33 of file MeshMetaDataInterface.C.

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

34 {
35  return std::string(SYSTEM) + "/" + prefix + "/" + data_name;
36 }
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 95 of file MeshMetaDataInterface.h.

96  {
97  return meshPropertyName(data_name, meshPropertyPrefix(data_name));
98  }
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.

◆ mooseDeprecated()

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

Definition at line 91 of file MooseBaseErrorInterface.h.

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

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

◆ mooseDocumentedError()

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

Emits a documented error with object name and type.

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

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

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

Definition at line 61 of file MooseBaseErrorInterface.h.

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

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

◆ mooseError()

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

Emits an error prefixed with object name and type.

Definition at line 29 of file MooseBaseErrorInterface.h.

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

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

◆ mooseErrorNonPrefixed()

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

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

Definition at line 40 of file MooseBaseErrorInterface.h.

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

◆ mooseInfo()

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

Definition at line 98 of file MooseBaseErrorInterface.h.

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

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

◆ mooseWarning()

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

Emits a warning prefixed with object name and type.

Definition at line 75 of file MooseBaseErrorInterface.h.

Referenced by CopyMeshPartitioner::_do_partition(), AddKernelAction::act(), MeshOnlyAction::act(), AddFunctionAction::act(), MaterialOutputAction::act(), CommonOutputAction::act(), MFEMProblem::addFunction(), MooseMesh::addPeriodicVariable(), DiracKernelBase::addPoint(), BoundaryMarker::BoundaryMarker(), DistributedRectilinearMeshGenerator::buildCube(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), CartesianMeshGenerator::CartesianMeshGenerator(), CheckOutputAction::checkConsoleOutput(), MultiAppTransfer::checkMultiAppExecuteOn(), checkNonMatchingEdges(), 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(), StitchedMeshGenerator::generate(), ParsedGenerateSideset::generate(), MultiAppTransfer::getAppInfo(), FunctorBinnedValuesDivision::getBinIndex(), DataFileInterface::getDataFilePath(), PointSamplerBase::getLocalElemContainingPoint(), FEProblemBase::getMaterial(), LineValueSampler::getValue(), Terminator::handleMessage(), IndicatorMarker::IndicatorMarker(), SphericalGridDivision::initialize(), CylindricalGridDivision::initialize(), ElementGroupCentroidPositions::initialize(), CartesianGridDivision::initialize(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), BoundsBase::initialSetup(), ReferenceResidualConvergence::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), MaterialBase::initStatefulProperties(), LeastSquaresFit::LeastSquaresFit(), IterationAdaptiveDT::limitDTToPostprocessorValue(), FEProblemBase::mesh(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), NewmarkBeta::NewmarkBeta(), NodalPatchRecovery::NodalPatchRecovery(), NonlocalIntegratedBC::NonlocalIntegratedBC(), NonlocalKernel::NonlocalKernel(), Output::Output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), PiecewiseConstantFromCSV::PiecewiseConstantFromCSV(), Executioner::problem(), PropertyReadFile::readData(), TestSourceStepper::rejectStep(), PhysicsBase::reportPotentiallyMissedParameters(), MaterialBase::resetQpProperties(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), MooseMesh::setCoordSystem(), SidesetAroundSubdomainUpdater::SidesetAroundSubdomainUpdater(), FEProblemBase::sizeZeroes(), TransientMultiApp::solveStep(), Tecplot::Tecplot(), TimeDerivativeAux::TimeDerivativeAux(), Checkpoint::updateCheckpointFiles(), SampledOutput::updateSample(), PiecewiseConstantFromCSV::value(), and VariableCondensationPreconditioner::VariableCondensationPreconditioner().

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

◆ mooseWarningNonPrefixed()

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

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

Definition at line 85 of file MooseBaseErrorInterface.h.

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

◆ name()

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

Get the name of the class.

Returns
The name of the class

Reimplemented in MooseVariableBase.

Definition at line 57 of file MooseBase.h.

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

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

◆ paramError()

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

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

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

Definition at line 255 of file MooseBaseParameterInterface.h.

Referenced by HierarchicalGridPartitioner::_do_partition(), AutoCheckpointAction::act(), SetupDebugAction::act(), CommonOutputAction::act(), AddPeriodicBCAction::act(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), DiffusionCG::addFEKernels(), DiffusionFV::addFVKernels(), NEML2ModelExecutor::addGatheredParameter(), NEML2ModelExecutor::addGatheredVariable(), ADDGKernel::ADDGKernel(), CylinderComponent::addMeshGenerators(), AddPeriodicBCAction::AddPeriodicBCAction(), ReporterPointSource::addPoints(), ADIntegratedBCTempl< T >::ADIntegratedBCTempl(), ADKernelTempl< T >::ADKernelTempl(), ADNodalKernel::ADNodalKernel(), ADPenaltyPeriodicSegmentalConstraint::ADPenaltyPeriodicSegmentalConstraint(), ADPeriodicSegmentalConstraint::ADPeriodicSegmentalConstraint(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), AdvectiveFluxAux::AdvectiveFluxAux(), ADVectorFunctionDirichletBC::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), ArrayBodyForce::ArrayBodyForce(), ArrayDGKernel::ArrayDGKernel(), ArrayDGLowerDKernel::ArrayDGLowerDKernel(), ArrayDirichletBC::ArrayDirichletBC(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), ArrayIntegratedBC::ArrayIntegratedBC(), ArrayKernel::ArrayKernel(), ArrayLowerDIntegratedBC::ArrayLowerDIntegratedBC(), ArrayParsedAux::ArrayParsedAux(), ArrayPenaltyDirichletBC::ArrayPenaltyDirichletBC(), ArrayVacuumBC::ArrayVacuumBC(), ArrayVarReductionAux::ArrayVarReductionAux(), ParsedSubdomainIDsGenerator::assignElemSubdomainID(), AuxKernelTempl< Real >::AuxKernelTempl(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), BlockDeletionGenerator::BlockDeletionGenerator(), BlockWeightedPartitioner::BlockWeightedPartitioner(), BoundsBase::BoundsBase(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), BuildArrayVariableAux::BuildArrayVariableAux(), PiecewiseTabularBase::buildFromFile(), MFEMMesh::buildMesh(), CartesianGridDivision::CartesianGridDivision(), checkComponent(), MeshGenerator::checkGetMesh(), ComponentInitialConditionInterface::checkInitialConditionsAllRequested(), BatchMeshGeneratorAction::checkInputParameterType(), PhysicsBase::checkIntegrityEarly(), PostprocessorInterface::checkParam(), FEProblemBase::checkProblemIntegrity(), MultiAppReporterTransfer::checkSiblingsTransferSupported(), Coupleable::checkVar(), MultiAppTransfer::checkVariable(), CircularBoundaryCorrectionGenerator::CircularBoundaryCorrectionGenerator(), CircularBoundaryCorrectionGenerator::circularCenterCalculator(), MultiAppGeneralFieldTransfer::closestToPosition(), CoarsenBlockGenerator::CoarsenBlockGenerator(), CombinerGenerator::CombinerGenerator(), ComponentInitialConditionInterface::ComponentInitialConditionInterface(), ComponentMaterialPropertyInterface::ComponentMaterialPropertyInterface(), CompositionDT::CompositionDT(), FunctorAux::computeValue(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), LibtorchNeuralNetControl::conditionalParameterError(), ConservativeAdvectionTempl< is_ad >::ConservativeAdvectionTempl(), ConstantVectorPostprocessor::ConstantVectorPostprocessor(), ContainsPointAux::ContainsPointAux(), CopyValueAux::CopyValueAux(), Coupleable::Coupleable(), CoupledForceTempl< is_ad >::CoupledForceTempl(), CoupledValueFunctionMaterialTempl< is_ad >::CoupledValueFunctionMaterialTempl(), MultiApp::createApp(), MeshGeneratorSystem::createMeshGenerator(), CylindricalGridDivision::CylindricalGridDivision(), ConstantReporter::declareConstantReporterValues(), AccumulateReporter::declareLateValues(), DefaultMultiAppFixedPointConvergence::DefaultMultiAppFixedPointConvergence(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DGLowerDKernel::DGLowerDKernel(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementLengthAux::ElementLengthAux(), ElementLpNormAux::ElementLpNormAux(), ExtraIDIntegralVectorPostprocessor::elementValue(), ElementValueSampler::ElementValueSampler(), ElementVectorL2Error::ElementVectorL2Error(), EqualValueEmbeddedConstraintTempl< is_ad >::EqualValueEmbeddedConstraintTempl(), ReporterPointSource::errorCheck(), ExamplePatchMeshGenerator::ExamplePatchMeshGenerator(), MultiAppNearestNodeTransfer::execute(), MultiAppUserObjectTransfer::execute(), ExtraElementIDAux::ExtraElementIDAux(), ExtraElementIntegerDivision::ExtraElementIntegerDivision(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FEProblemSolve::FEProblemSolve(), FileMeshGenerator::FileMeshGenerator(), FillBetweenCurvesGenerator::FillBetweenCurvesGenerator(), FillBetweenSidesetsGenerator::FillBetweenSidesetsGenerator(), ReporterPointSource::fillPoint(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), InternalSideIndicatorBase::finalize(), ForcingFunctionAux::ForcingFunctionAux(), FullSolveMultiApp::FullSolveMultiApp(), FunctionArrayAux::FunctionArrayAux(), FunctionValuePostprocessor::FunctionValuePostprocessor(), FunctorADConverterTempl< T >::FunctorADConverterTempl(), FunctorAux::FunctorAux(), FunctorBinnedValuesDivision::FunctorBinnedValuesDivision(), FunctorCoordinatesFunctionAux::FunctorCoordinatesFunctionAux(), FunctorElementalGradientAuxTempl< is_ad >::FunctorElementalGradientAuxTempl(), FunctorExtremaPositions::FunctorExtremaPositions(), FunctorIC::FunctorIC(), FunctorPositions::FunctorPositions(), FunctorVectorElementalAuxTempl< is_ad >::FunctorVectorElementalAuxTempl(), FVAdvection::FVAdvection(), FVFluxBC::FVFluxBC(), FVInterfaceKernel::FVInterfaceKernel(), FVOneVarDiffusionInterface::FVOneVarDiffusionInterface(), FVTwoVarContinuityConstraint::FVTwoVarContinuityConstraint(), BoundaryDeletionGenerator::generate(), UniqueExtraIDMeshGenerator::generate(), ExtraNodesetGenerator::generate(), ElementsToTetrahedronsConverter::generate(), AddMetaDataGenerator::generate(), BlockToMeshConverterGenerator::generate(), FillBetweenCurvesGenerator::generate(), FillBetweenSidesetsGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), PlaneIDMeshGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), BlockDeletionGenerator::generate(), BreakMeshByBlockGenerator::generate(), CoarsenBlockGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainGeneratorBase::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), AdvancedExtruderGenerator::generate(), BreakMeshByElementGenerator::generate(), CircularBoundaryCorrectionGenerator::generate(), CombinerGenerator::generate(), MeshCollectionGenerator::generate(), MeshExtruderGenerator::generate(), ParsedCurveGenerator::generate(), ParsedExtraElementIDGenerator::generate(), StackGenerator::generate(), StitchedMeshGenerator::generate(), XYZDelaunayGenerator::generate(), CutMeshByLevelSetGeneratorBase::generate(), XYDelaunayGenerator::generate(), XYMeshLineCutter::generate(), PatternedMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), GeneratedMeshGenerator::GeneratedMeshGenerator(), GenericFunctorGradientMaterialTempl< is_ad >::GenericFunctorGradientMaterialTempl(), GenericFunctorMaterialTempl< is_ad >::GenericFunctorMaterialTempl(), GenericFunctorTimeDerivativeMaterialTempl< is_ad >::GenericFunctorTimeDerivativeMaterialTempl(), GenericVectorFunctorMaterialTempl< is_ad >::GenericVectorFunctorMaterialTempl(), PropertyReadFile::getBlockData(), ComponentBoundaryConditionInterface::getBoundaryCondition(), MultiApp::getCommandLineArgs(), PropertyReadFile::getData(), PropertyReadFile::getFileNames(), Sampler::getGlobalSamples(), ComponentInitialConditionInterface::getInitialCondition(), NEML2Action::getInputParameterMapping(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), Sampler::getLocalSamples(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), Sampler::getNextLocalRow(), FEProblemSolve::getParamFromNonlinearSystemVectorParam(), PostprocessorInterface::getPostprocessorNameInternal(), PostprocessorInterface::getPostprocessorValueInternal(), MultiAppNearestNodeTransfer::getTargetLocalNodes(), UserObjectInterface::getUserObjectBase(), UserObjectInterface::getUserObjectName(), HFEMDirichletBC::HFEMDirichletBC(), AddVariableAction::init(), MultiApp::init(), DistributedPositions::initialize(), BlockWeightedPartitioner::initialize(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), PhysicsBase::initializePhysics(), JSONOutput::initialSetup(), MultiAppCloneReporterTransfer::initialSetup(), SolutionIC::initialSetup(), ElementSubdomainModifierBase::initialSetup(), SideFVFluxBCIntegral::initialSetup(), MultiAppVariableValueSamplePostprocessorTransfer::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), MultiAppDofCopyTransfer::initialSetup(), HistogramVectorPostprocessor::initialSetup(), ReferenceResidualConvergence::initialSetup(), PiecewiseConstantFromCSV::initialSetup(), LibtorchControlValuePostprocessor::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), SampledOutput::initSample(), AddMetaDataGenerator::inputChecker(), IntegratedBC::IntegratedBC(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceValueUserObjectAux::InterfaceValueUserObjectAux(), InternalSideIndicatorBase::InternalSideIndicatorBase(), InterpolatedStatefulMaterialTempl< T >::InterpolatedStatefulMaterialTempl(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), MultiApp::keepSolutionDuringRestore(), Kernel::Kernel(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LinearCombinationFunction::LinearCombinationFunction(), LowerDIntegratedBC::LowerDIntegratedBC(), PNGOutput::makeMeshFunc(), MatCoupledForce::MatCoupledForce(), MaterialADConverterTempl< T >::MaterialADConverterTempl(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), MatrixSymmetryCheck::MatrixSymmetryCheck(), PatternedMeshGenerator::mergeSubdomainNameMaps(), MeshCollectionGenerator::MeshCollectionGenerator(), MeshDiagnosticsGenerator(), MeshDivisionAux::MeshDivisionAux(), MeshGenerator::MeshGenerator(), MeshGeneratorComponent::MeshGeneratorComponent(), MFEMGenericFunctorMaterial::MFEMGenericFunctorMaterial(), MFEMGenericFunctorVectorMaterial::MFEMGenericFunctorVectorMaterial(), MooseLinearVariableFV< Real >::MooseLinearVariableFV(), UserObjectInterface::mooseObjectError(), MoosePreconditioner::MoosePreconditioner(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MortarConstraintBase::MortarConstraintBase(), MortarNodalAuxKernelTempl< ComputeValueType >::MortarNodalAuxKernelTempl(), MultiApp::moveApp(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldNearestLocationTransfer::MultiAppGeneralFieldNearestLocationTransfer(), MultiAppGeneralFieldShapeEvaluationTransfer::MultiAppGeneralFieldShapeEvaluationTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppGeometricInterpolationTransfer::MultiAppGeometricInterpolationTransfer(), MultiAppNearestNodeTransfer::MultiAppNearestNodeTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorToAuxScalarTransfer::MultiAppPostprocessorToAuxScalarTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppProjectionTransfer::MultiAppProjectionTransfer(), MultiAppReporterTransfer::MultiAppReporterTransfer(), MultiAppScalarToAuxScalarTransfer::MultiAppScalarToAuxScalarTransfer(), MultiAppShapeEvaluationTransfer::MultiAppShapeEvaluationTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), MultiAppVectorPostprocessorTransfer::MultiAppVectorPostprocessorTransfer(), MultiSystemSolveObject::MultiSystemSolveObject(), NearestNodeValueAux::NearestNodeValueAux(), NEML2Action::NEML2Action(), NestedDivision::NestedDivision(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalPatchRecoveryAux::NodalPatchRecoveryAux(), NodalValueSampler::NodalValueSampler(), Output::Output(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedFunctorMaterialTempl< is_ad >::ParsedFunctorMaterialTempl(), ParsedPostprocessor::ParsedPostprocessor(), PatternedMeshGenerator::PatternedMeshGenerator(), PenaltyPeriodicSegmentalConstraint::PenaltyPeriodicSegmentalConstraint(), PeriodicSegmentalConstraint::PeriodicSegmentalConstraint(), PIDTransientControl::PIDTransientControl(), PlaneDeletionGenerator::PlaneDeletionGenerator(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), PointwiseRenormalizeVector::PointwiseRenormalizeVector(), PolyLineMeshGenerator::PolyLineMeshGenerator(), ReporterInterface::possiblyCheckHasReporter(), VectorPostprocessorInterface::possiblyCheckHasVectorPostprocessor(), LibmeshPartitioner::prepareBlocksForSubdomainPartitioner(), ProjectedMaterialPropertyNodalPatchRecoveryAux::ProjectedMaterialPropertyNodalPatchRecoveryAux(), ProjectionAux::ProjectionAux(), PropertyReadFile::PropertyReadFile(), RandomIC::RandomIC(), MultiApp::readCommandLineArguments(), PropertyReadFile::readData(), SolutionUserObjectBase::readXda(), ReferenceResidualConvergence::ReferenceResidualConvergence(), RefineBlockGenerator::RefineBlockGenerator(), RefineSidesetGenerator::RefineSidesetGenerator(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), ReporterPointSource::ReporterPointSource(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), FEProblemBase::setLinearConvergenceNames(), FEProblemBase::setNonlinearConvergenceNames(), MooseMesh::setPartitioner(), NodeSetsGeneratorBase::setup(), SideSetsGeneratorBase::setup(), NEML2Action::setupDerivativeMappings(), NEML2Action::setupParameterDerivativeMappings(), TimeSequenceStepperBase::setupSequence(), SidesetAroundSubdomainUpdater::SidesetAroundSubdomainUpdater(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SingleRankPartitioner::SingleRankPartitioner(), SphericalGridDivision::SphericalGridDivision(), SymmetryTransformGenerator::SymmetryTransformGenerator(), Terminator::Terminator(), TimeDerivativeAux::TimeDerivativeAux(), Transfer::Transfer(), TransformGenerator::TransformGenerator(), TransientMultiApp::TransientMultiApp(), ParsedCurveGenerator::tSectionSpaceDefiner(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), UserObject::UserObject(), Checkpoint::validateExecuteOn(), ParsedAux::validateGenericVectorNames(), ParsedMaterialBase::validateVectorNames(), FunctorIC::value(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), VolumeAux::VolumeAux(), WebServerControl::WebServerControl(), XYDelaunayGenerator::XYDelaunayGenerator(), XYMeshLineCutter::XYMeshLineCutter(), and XYZDelaunayGenerator::XYZDelaunayGenerator().

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

◆ parameters()

const InputParameters& MooseBaseParameterInterface::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 62 of file MooseBaseParameterInterface.h.

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

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

◆ paramInfo()

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

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

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

Definition at line 272 of file MooseBaseParameterInterface.h.

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

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

◆ paramWarning()

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

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

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

Definition at line 265 of file MooseBaseParameterInterface.h.

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

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

◆ queryParam()

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

Query a parameter for the object.

If the parameter is not valid, nullptr will be returned

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

Definition at line 222 of file MooseBaseParameterInterface.h.

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

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

Referenced by AddMetaDataGenerator::validParams().

81 {
82  params.set<bool>("_has_generate_data") = true;
83 }
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 485 of file MeshGenerator.h.

486 {
487  if (_app.actionWarehouse().getCurrentTaskName() != "execute_mesh_generators")
488  mooseError("Updating mesh meta data with setMeshProperty() can only be called during "
489  "MeshGenerator::generate()");
490 
491  if (!hasMeshProperty(data_name))
492  mooseError("Failed to get the mesh property '", data_name, "'");
494  RestartableData<T> * T_value = dynamic_cast<RestartableData<T> *>(value);
495  if (!T_value)
496  mooseError("While retrieving mesh property '",
497  data_name,
498  "' with type '",
499  MooseUtils::prettyCppType<T>(),
500  "',\nthe property was found with type '",
501  value->type(),
502  "'");
503 
504  // Set the value if someone provided arguments to set it to
505  if constexpr (sizeof...(args) > 0)
506  T_value->set() = T(std::forward<Args>(args)...);
507 
508  return T_value->set();
509 }
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:226
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
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.
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 221 of file MeshGenerator.h.

222  {
223  return setMeshProperty<T, const T &>(data_name, data_value);
224  }

◆ type()

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

Get the type of this class.

Returns
the name of the type of this class

Definition at line 51 of file MooseBase.h.

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

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

◆ typeAndName()

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

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

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

Definition at line 27 of file MooseBase.C.

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

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

◆ uniqueName()

MooseObjectName MooseBaseParameterInterface::uniqueName ( ) const
inlineinherited

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

Definition at line 67 of file MooseBaseParameterInterface.h.

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

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

◆ uniqueParameterName()

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

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

Definition at line 52 of file MooseBaseParameterInterface.h.

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

◆ validParams()

InputParameters MeshDiagnosticsGenerator::validParams ( )
static

Definition at line 30 of file MeshDiagnosticsGenerator.C.

31 {
32 
34 
35  params.addRequiredParam<MeshGeneratorName>("input", "The mesh we want to diagnose");
36  params.addClassDescription("Runs a series of diagnostics on the mesh to detect potential issues "
37  "such as unsupported features");
38 
39  // Options for the output level
40  MooseEnum chk_option("NO_CHECK INFO WARNING ERROR", "NO_CHECK");
41 
42  params.addParam<MooseEnum>(
43  "examine_sidesets_orientation",
44  chk_option,
45  "whether to check that sidesets are consistently oriented using neighbor subdomains. If a "
46  "sideset is inconsistently oriented within a subdomain, this will not be detected");
47  params.addParam<MooseEnum>(
48  "check_for_watertight_sidesets",
49  chk_option,
50  "whether to check for external sides that are not assigned to any sidesets");
51  params.addParam<MooseEnum>(
52  "check_for_watertight_nodesets",
53  chk_option,
54  "whether to check for external nodes that are not assigned to any nodeset");
55  params.addParam<std::vector<BoundaryName>>(
56  "boundaries_to_check",
57  {},
58  "Names boundaries that should form a watertight envelope around the mesh. Defaults to all "
59  "the boundaries combined.");
60  params.addParam<MooseEnum>(
61  "examine_element_volumes", chk_option, "whether to examine volume of the elements");
62  params.addParam<Real>("minimum_element_volumes", 1e-16, "minimum size for element volume");
63  params.addParam<Real>("maximum_element_volumes", 1e16, "Maximum size for element volume");
64 
65  params.addParam<MooseEnum>("examine_element_types",
66  chk_option,
67  "whether to look for multiple element types in the same sub-domain");
68  params.addParam<MooseEnum>(
69  "examine_element_overlap", chk_option, "whether to find overlapping elements");
70  params.addParam<MooseEnum>(
71  "examine_nonplanar_sides", chk_option, "whether to check element sides are planar");
72  params.addParam<MooseEnum>("examine_non_conformality",
73  chk_option,
74  "whether to examine the conformality of elements in the mesh");
75  params.addParam<MooseEnum>("examine_non_matching_edges",
76  chk_option,
77  "Whether to check if there are any intersecting edges");
78  params.addParam<Real>("intersection_tol", TOLERANCE, "tolerence for intersecting edges");
79  params.addParam<Real>("nonconformal_tol", TOLERANCE, "tolerance for element non-conformality");
80  params.addParam<MooseEnum>(
81  "search_for_adaptivity_nonconformality",
82  chk_option,
83  "whether to check for non-conformality arising from adaptive mesh refinement");
84  params.addParam<MooseEnum>("check_local_jacobian",
85  chk_option,
86  "whether to check the local Jacobian for negative values");
87  params.addParam<unsigned int>(
88  "log_length_limit",
89  10,
90  "How many problematic element/nodes/sides/etc are explicitly reported on by each check");
91  return params;
92 }
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:33
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& MooseBaseParameterInterface::_action_factory
protectedinherited

◆ _app

MooseApp& MooseBase::_app
protectedinherited

The MOOSE application this is associated with.

Definition at line 84 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 100 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 88 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 86 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 80 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 102 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 92 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 90 of file MeshDiagnosticsGenerator.h.

Referenced by checkNonPlanarSides(), 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 70 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 74 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 72 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(), checkElementOverlap(), checkElementTypes(), checkElementVolumes(), FEProblemBase::checkExceptionAndStopSolve(), SolverSystem::checkInvalidSolution(), checkLocalJacobians(), checkNonConformalMesh(), checkNonConformalMeshFromAdaptivity(), checkNonMatchingEdges(), checkNonPlanarSides(), 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(), FEProblemBase::finishMultiAppStep(), MeshRepairGenerator::fixOverlappingNodes(), CoarsenBlockGenerator::generate(), MeshGenerator::generateInternal(), VariableCondensationPreconditioner::getDofToCondense(), InversePowerMethod::init(), NonlinearEigen::init(), FEProblemBase::initialAdaptMesh(), DefaultMultiAppFixedPointConvergence::initialize(), EigenExecutionerBase::inversePowerIteration(), FEProblemBase::joinAndFinalize(), TransientBase::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), FEProblemBase::logAdd(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseBaseErrorInterface::mooseDeprecated(), MooseBaseErrorInterface::mooseInfo(), MooseBaseErrorInterface::mooseWarning(), MooseBaseErrorInterface::mooseWarningNonPrefixed(), ReferenceResidualConvergence::nonlinearConvergenceSetup(), ReporterDebugOutput::output(), PerfGraphOutput::output(), SolutionInvalidityOutput::output(), MaterialPropertyDebugOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), PseudoTimestep::outputPseudoTimestep(), Console::outputReporters(), DefaultMultiAppFixedPointConvergence::outputResidualNorm(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), BlockRestrictionDebugOutput::printBlockRestrictionMap(), SolutionInvalidity::printDebug(), EigenExecutionerBase::printEigenvalue(), SecantSolve::printFixedPointConvergenceHistory(), SteffensenSolve::printFixedPointConvergenceHistory(), PicardSolve::printFixedPointConvergenceHistory(), FixedPointSolve::printFixedPointConvergenceReason(), PerfGraphLivePrint::printLiveMessage(), MaterialPropertyDebugOutput::printMaterialMap(), PerfGraphLivePrint::printStats(), NEML2Action::printSummary(), AutomaticMortarGeneration::projectPrimaryNodesSinglePair(), AutomaticMortarGeneration::projectSecondaryNodesSinglePair(), CoarsenBlockGenerator::recursiveCoarsen(), SolutionTimeAdaptiveDT::rejectStep(), MultiApp::restore(), FEProblemBase::restoreMultiApps(), FEProblemBase::restoreSolutions(), NonlinearSystemBase::setInitialSolution(), MooseApp::setupOptions(), Checkpoint::shouldOutput(), SubProblem::showFunctorRequestors(), SubProblem::showFunctors(), FullSolveMultiApp::showStatusMessage(), FEProblemSolve::solve(), FixedPointSolve::solve(), EigenProblem::solve(), NonlinearSystem::solve(), LinearSystem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), LStableDirk4::solve(), AStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), FixedPointSolve::solveStep(), PerfGraphLivePrint::start(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), TransientBase::takeStep(), TerminateChainControl::terminate(), 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 51 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _factory

Factory& MooseBaseParameterInterface::_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 84 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 82 of file MeshDiagnosticsGenerator.h.

Referenced by checkElementVolumes().

◆ _name

const std::string MooseBase::_name
protectedinherited

The name of this class.

Definition at line 90 of file MooseBase.h.

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

Referenced by checkNonMatchingEdges().

◆ _num_outputs

const unsigned int MeshDiagnosticsGenerator::_num_outputs
private

◆ _pars

const InputParameters& MooseBaseParameterInterface::_pars
protectedinherited

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

Definition at line 173 of file MooseBaseParameterInterface.h.

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

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

Referenced by generate().

◆ 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 62 of file MeshGenerator.h.

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

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

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


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