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

Creates all the objects needed to solve a diffusion equation with a cell-centered finite volume discretization. More...

#include <DiffusionFV.h>

Inheritance diagram for DiffusionFV:
[legend]

Public Types

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

Public Member Functions

 DiffusionFV (const InputParameters &parameters)
 
virtual void act () override final
 Forwards from the action tasks to the implemented addXYZ() in the derived classes If you need more than these:
 
virtual void actOnAdditionalTasks ()
 Routine to add additional setup work on additional registered tasks to a Physics.
 
void addBlocks (const std::vector< SubdomainName > &blocks)
 Add new blocks to the Physics.
 
void addBlocksById (const std::vector< SubdomainID > &block_ids)
 
const std::vector< SubdomainName > & blocks () const
 Return the blocks this physics is defined on.
 
bool checkBlockRestrictionIdentical (const std::string &object_name, const std::vector< SubdomainName > &blocks, const bool error_if_not_identical=true) const
 Check if an external object has the same block restriction.
 
bool hasBlocks (const std::vector< SubdomainName > &blocks) const
 Whether the Physics is defined on those blocks.
 
template<typename T >
const T * getCoupledPhysics (const PhysicsName &phys_name, const bool allow_fail=false) const
 Get a Physics from the ActionWarehouse with the requested type and name.
 
template<typename T >
const std::vector< T * > getCoupledPhysics (const bool allow_fail=false) const
 Get all Physics from the ActionWarehouse with the requested type.
 
unsigned int dimension () const
 Return the maximum dimension of the blocks the Physics is active on.
 
const ActionComponentgetActionComponent (const ComponentName &comp_name) const
 Get a component with the requested name.
 
template<typename T >
void checkComponentType (const ActionComponent &component) const
 Check that the component is of the desired type.
 
virtual void addComponent (const ActionComponent &component)
 Most basic way of adding a component: simply adding the blocks to the block restriction of the Physics.
 
virtual void addComponent (const ActionComponent &component) override
 Adds various info from the component.
 
const std::vector< VariableName > & solverVariableNames () const
 Return the list of solver (nonlinear + linear) variables in this physics.
 
const std::vector< VariableName > & auxVariableNames () const
 Return the list of aux variables in this physics.
 
virtual std::vector< UserObjectName > getSuppliedUserObjects () const
 Return the names of the UserObjects this Physics adds to the problem.
 
void timedAct ()
 The method called externally that causes the action to act()
 
MooseObjectName uniqueActionName () const
 The unique name for accessing input parameters of this action in the InputParameterWarehouse.
 
const std::string & specificTaskName () const
 
const std::set< std::string > & getAllTasks () const
 
void appendTask (const std::string &task)
 
MooseAppgetMooseApp () const
 Get the MooseApp this class is associated with.
 
const std::string & type () const
 Get the type of this class.
 
const std::string & name () const
 Get the name of the class.
 
std::string typeAndName () const
 Get the class's combined type and name; useful in error handling.
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 Get the parameters of the object.
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object.
 
template<typename T1 , typename T2 >
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 Retrieve two parameters and provide pair of parameters for the object.
 
template<typename T >
const T * queryParam (const std::string &name) const
 Query a parameter for the object.
 
template<typename T >
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 Retrieve a renamed parameter for the object.
 
template<typename T >
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 Verifies that the requested parameter exists and is not NULL and returns it to the caller.
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid.
 
bool isParamSetByUser (const std::string &name) const
 Test if the supplied parameter is set by a user, as opposed to not set or set to default.
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 Connect controllable parameter of this action with the controllable parameters of the objects added by this action.
 
template<typename... Args>
void paramError (const std::string &param, Args... args) const
 Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args) const
 Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args) const
 
template<typename... Args>
void paramInfo (const std::string &param, Args... args) const
 Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 Deprecated message prefix; the error type is no longer used.
 
template<typename... Args>
void mooseError (Args &&... args) const
 Emits an error prefixed with object name and type and optionally a file path to the top-level block parameter if available.
 
template<typename... Args>
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
template<typename... Args>
void mooseErrorNonPrefixed (Args &&... args) const
 Emits an error without the prefixing included in mooseError().
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 Emits a warning prefixed with object name and type.
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 Emits a warning without the prefixing included in mooseWarning().
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 Emits a deprecation warning prefixed with the object name and type, and a stack trace.
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseDeprecatedNoTrace (Args &&... args) const
 Emits a deprecation warning prefixed with the object name and type, and no stack trace.
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 External method for calling moose error with added object context.
 
const Parallel::Communicatorcomm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
std::string getDataFileName (const std::string &param) const
 Deprecated method.
 
std::string getDataFileNameByName (const std::string &relative_path) const
 Deprecated method.
 
std::string getDataFilePath (const std::string &relative_path) const
 Returns the path of a data file for a given relative file path.
 
PerfGraphperfGraph ()
 Get the PerfGraph.
 
void assertParamDefined (const std::string &libmesh_dbg_var(param)) const
 
void addInitialCondition (const ComponentName &component_name, const VariableName &var_name, const MooseFunctorName &ic_value)
 Add an initial condition from a component.
 
void addBoundaryCondition (const ComponentName &component_name, const VariableName &var_name, const BoundaryName &boundary_name, const MooseFunctorName &bc_value, const ComponentBoundaryConditionInterface::BoundaryConditionType &bc_type)
 Add a boundary condition from a component.
 

Static Public Member Functions

static InputParameters validParams ()
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 External method for calling moose error with added object context.
 

Public Attributes

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

Static Public Attributes

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

Protected Member Functions

bool isTransient () const
 Return whether the Physics is solved using a transient.
 
FactorygetFactory ()
 Get the factory for this physics The factory lets you get the parameters for objects.
 
FactorygetFactory () const
 
virtual FEProblemBasegetProblem ()
 Get the problem for this physics Useful to add objects to the simulation.
 
virtual const FEProblemBasegetProblem () const
 
void prepareCopyVariablesFromMesh () const
 Tell the app if we want to use Exodus restart.
 
void copyVariablesFromMesh (const std::vector< VariableName > &variables_to_copy, bool are_nonlinear=true)
 Copy nonlinear or aux variables from the mesh file.
 
std::string prefix () const
 Use prefix() to disambiguate names.
 
void addUserObject (const std::string &uo_type, const std::string &uo_name, InputParameters &params)
 Add a UserObject supplied by this Physics to the problem.
 
void saveSolverVariableName (const VariableName &var_name)
 Keep track of the name of the solver variable defined in the Physics.
 
void saveAuxVariableName (const VariableName &var_name)
 Keep track of the name of an aux variable defined in the Physics.
 
bool variableExists (const VariableName &var_name, bool error_if_aux) const
 Check whether a variable already exists.
 
bool solverVariableExists (const VariableName &var_name) const
 Check whether a variable already exists and is a solver variable.
 
const SolverSystemName & getSolverSystem (unsigned int variable_index) const
 Get the solver system for this variable index.
 
const SolverSystemName & getSolverSystem (const VariableName &variable_name) const
 Get the solver system for this variable name.
 
void addRequiredPhysicsTask (const std::string &task)
 Add a new required task for all physics deriving from this class NOTE: This does not register the task, you still need to call registerMooseAction.
 
void assignBlocks (InputParameters &params, const std::vector< SubdomainName > &blocks) const
 Set the blocks parameter to the input parameters of an object this Physics will create.
 
bool allMeshBlocks (const std::vector< SubdomainName > &blocks) const
 Check if a vector contains all the mesh blocks.
 
bool allMeshBlocks (const std::set< SubdomainName > &blocks) const
 
std::set< SubdomainIDgetSubdomainIDs (const std::set< SubdomainName > &blocks) const
 Get the set of subdomain ids for the incoming vector of subdomain names.
 
std::vector< std::string > getSubdomainNamesAndIDs (const std::set< SubdomainID > &blocks) const
 Get the vector of subdomain names and ids for the incoming set of subdomain IDs.
 
void addPetscPairsToPetscOptions (const std::vector< std::pair< MooseEnumItem, std::string > > &petsc_pair_options)
 Process the given petsc option pairs into the system solver settings.
 
bool isVariableFV (const VariableName &var_name) const
 Whether the variable is a finite volume variable.
 
bool isVariableScalar (const VariableName &var_name) const
 Whether the variable is a scalar variable (global single scalar, not a field)
 
bool shouldCreateVariable (const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool error_if_aux)
 Returns whether this Physics should create the variable.
 
bool shouldCreateIC (const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool ic_is_default_ic, const bool error_if_already_defined) const
 Returns whether this Physics should create the variable.
 
bool shouldCreateTimeDerivative (const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool error_if_already_defined) const
 Returns whether this Physics should create the variable.
 
void reportPotentiallyMissedParameters (const std::vector< std::string > &param_names, const std::string &object_type, const std::string &object_name="") const
 When this is called, we are knowingly not using the value of these parameters.
 
virtual void checkIntegrity () const
 Additional checks performed near the end of the setup phase.
 
void associateWithParameter (const std::string &param_name, InputParameters &params) const
 Associates the object's parameters params with the input location from this Action's parameter with the name param_name, if one exists.
 
void associateWithParameter (const InputParameters &from_params, const std::string &param_name, InputParameters &params) const
 The same as associateWithParameter() without from_params, but instead allows you to associate this with another object's parameters instead of the parameters from this action.
 
template<typename T >
const T & getMeshProperty (const std::string &data_name, const std::string &prefix)
 Method for retrieving a property with the given type and name exists in the mesh meta-data store.
 
template<typename T >
const T & getMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
template<typename T >
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
template<typename T >
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 Call to register a named section for timing.
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 Call to register a named section for timing.
 
std::string timedSectionName (const std::string &section_name) const
 
template<bool warning>
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 Set solution invalid mark for the given solution ID.
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
void assertParamDefined (const std::string &param) const
 Check in debug mode that this parameter has been added to the validParams.
 
void checkParamsBothSetOrNotSet (const std::string &param1, const std::string &param2) const
 Check that two parameters are either both set or both not set.
 
void checkSecondParamSetOnlyIfFirstOneTrue (const std::string &param1, const std::string &param2) const
 Check that a parameter is set only if the first one is set to true.
 
void checkSecondParamSetOnlyIfFirstOneSet (const std::string &param1, const std::string &param2) const
 Check that a parameter is set only if the first one is set.
 
void checkSecondParamNotSetIfFirstOneSet (const std::string &param1, const std::string &param2) const
 Check that a parameter is not set if the first one is set.
 
void checkVectorParamsSameLength (const std::string &param1, const std::string &param2) const
 Check that the two vector parameters are of the same length.
 
void checkVectorParamAndMultiMooseEnumLength (const std::string &param1, const std::string &param2) const
 Check that this vector parameter (with name defined in param1) has the same length as the MultiMooseEnum (with name defined in param2)
 
void checkTwoDVectorParamsSameLength (const std::string &param1, const std::string &param2) const
 Check that the two-D vectors have exactly the same length in both dimensions.
 
void checkVectorParamsNoOverlap (const std::vector< std::string > &param_vecs) const
 Check that there is no overlap between the items in each vector parameters Each vector parameter should also have unique items.
 
void checkTwoDVectorParamsNoRespectiveOverlap (const std::vector< std::string > &param_vecs) const
 Check that there is no overlap between the respective items in each vector of the two-D parameters Each vector of the two-D vector parameter should also have unique items.
 
void checkTwoDVectorParamInnerSameLengthAsOneDVector (const std::string &param1, const std::string &param2) const
 Check that each inner vector of a two-D vector parameter are the same size as another one-D vector parameter.
 
void checkTwoDVectorParamMultiMooseEnumSameLength (const std::string &param1, const std::string &param2, const bool error_for_param2) const
 Check that the size of a two-D vector parameter matches the size of a MultiMooseEnum parameter.
 
void checkVectorParamNotEmpty (const std::string &param1) const
 Check that the user did not pass an empty vector.
 
void checkVectorParamsSameLengthIfSet (const std::string &param1, const std::string &param2, const bool ignore_empty_default_param2=false) const
 Check that two vector parameters are the same length if both are set.
 
void checkVectorParamLengthSameAsCombinedOthers (const std::string &param1, const std::string &param2, const std::string &param3) const
 Check that a vector parameter is the same length as two others combined.
 
void checkBlockwiseConsistency (const std::string &block_param_name, const std::vector< std::string > &parameter_names) const
 Check if the user commited errors during the definition of block-wise parameters.
 
bool parameterConsistent (const InputParameters &other_param, const std::string &param_name) const
 Return whether two parameters are consistent.
 
void warnInconsistent (const InputParameters &parameters, const std::string &param_name) const
 Emits a warning if two parameters are not equal to each other.
 
void errorDependentParameter (const std::string &param1, const std::string &value_not_set, const std::vector< std::string > &dependent_params) const
 Error messages for parameters that should depend on another parameter.
 
void errorInconsistentDependentParameter (const std::string &param1, const std::string &value_set, const std::vector< std::string > &dependent_params) const
 Error messages for parameters that should depend on another parameter but with a different error message.
 

Static Protected Member Functions

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

Protected Attributes

const VariableName & _var_name
 Name of the diffused variable.
 
const std::vector< BoundaryName > & _neumann_boundaries
 Boundaries on which a Neumann boundary condition is applied.
 
const std::vector< BoundaryName > & _dirichlet_boundaries
 Boundaries on which a Dirichlet boundary condition is applied.
 
std::vector< SolverSystemName > _system_names
 System names for the system(s) owning the solver variables.
 
std::vector< unsigned int_system_numbers
 System numbers for the system(s) owning the solver variables.
 
const bool _verbose
 Whether to output additional information.
 
const MooseEnum_preconditioning
 Whether to add a default preconditioning.
 
std::vector< SubdomainName > _blocks
 Keep track of the subdomains the Physics is defined on.
 
std::string _registered_identifier
 
std::string _specific_task_name
 This member will only be populated if this Action instance is only designed to handle one task.
 
std::set< std::string > _all_tasks
 A list of all the tasks that this Action will satisfy.
 
ActionWarehouse_awh
 Reference to ActionWarehouse where we store object build by actions.
 
const std::string & _current_task
 The current action (even though we have separate instances for each action)
 
std::shared_ptr< MooseMesh > & _mesh
 
std::shared_ptr< MooseMesh > & _displaced_mesh
 
std::shared_ptr< FEProblemBase > & _problem
 Convenience reference to a problem this action works on.
 
PerfID _act_timer
 Timers.
 
MooseApp_app
 The MOOSE application this is associated with.
 
Factory_factory
 The Factory associated with the MooseApp.
 
ActionFactory_action_factory
 Builds Actions.
 
const std::string & _type
 The type of this class.
 
const std::string & _name
 The name of this class.
 
const InputParameters_pars
 The object's parameters.
 
const Parallel::Communicator_communicator
 
MooseApp_pg_moose_app
 The MooseApp that owns the PerfGraph.
 
const std::string _prefix
 A prefix to use for all sections.
 
std::map< std::string, std::map< VariableName, MooseFunctorName > > _components_initial_conditions
 Map of components to variables and initial conditions.
 
std::map< std::string, std::map< std::pair< VariableName, BoundaryName >, std::pair< MooseFunctorName, ComponentBoundaryConditionInterface::BoundaryConditionType > > > _components_boundary_conditions
 Map of components to variables and boundary conditions.
 

Private Member Functions

virtual void addSolverVariables () override
 The default implementation of these routines will do nothing as we do not expect all Physics to be defining an object of every type We keep these private as we don't want a derived class to call a do-nothing implementation If they call a parent class implementation, it must have been re-defined as protected.
 
virtual void addFVKernels () override
 
virtual void addFVBCs () override
 
virtual void initializePhysicsAdditional () override
 Additional initialization work that should happen very early, as soon as the problem is created.
 
virtual InputParameters getAdditionalRMParams () const override
 Provide additional parameters for the relationship managers.
 
virtual void addPreconditioning () override
 
virtual void addPostprocessors () override
 Add postprocessing of the fluxes.
 
virtual void addInitialConditions () override
 
virtual void addInitialConditionsFromComponents () override
 
virtual void addRelationshipManagers (Moose::RelationshipManagerType input_rm_type) override
 Method to add a relationship manager for the objects being added to the system.
 
bool addRelationshipManagers (Moose::RelationshipManagerType when_type, const InputParameters &moose_object_pars)
 Gathers additional parameters for the relationship managers from the Physics then calls the parent Action::addRelationshipManagers with those parameters.
 
virtual void addRelationshipManagers (Moose::RelationshipManagerType when_type)
 Gathers additional parameters for the relationship managers from the Physics then calls the parent Action::addRelationshipManagers with those parameters.
 
void initializePhysics ()
 Process some parameters that require the problem to be created. Executed on init_physics.
 
virtual void checkIntegrityEarly () const
 Additional checks performed once the executioner / executor has been created.
 
virtual void addAuxiliaryVariables ()
 
virtual void addFEKernels ()
 
virtual void addFVInterpolationMethods ()
 
virtual void addNodalKernels ()
 
virtual void addDiracKernels ()
 
virtual void addDGKernels ()
 
virtual void addScalarKernels ()
 
virtual void addInterfaceKernels ()
 
virtual void addFVInterfaceKernels ()
 
virtual void addFEBCs ()
 
virtual void addNodalBCs ()
 
virtual void addPeriodicBCs ()
 
virtual void addFunctions ()
 
virtual void addAuxiliaryKernels ()
 
virtual void addMaterials ()
 
virtual void addFunctorMaterials ()
 
virtual void addUserObjects ()
 
virtual void addCorrectors ()
 
virtual void addMultiApps ()
 
virtual void addTransfers ()
 
virtual void addVectorPostprocessors ()
 
virtual void addReporters ()
 
virtual void addOutputs ()
 
virtual void addExecutioner ()
 
virtual void addExecutors ()
 
void checkRequiredTasks () const
 Check the list of required tasks for missing tasks.
 
bool addRelationshipManager (Moose::RelationshipManagerType input_rm_type, const InputParameters &moose_object_pars, std::string rm_name, Moose::RelationshipManagerType rm_type, Moose::RelationshipManagerInputParameterCallback rm_input_parameter_func, Moose::RMSystemType sys_type=Moose::RMSystemType::NONE)
 Method for adding a single relationship manager.
 
virtual std::string meshPropertyPrefix (const std::string &data_name) const
 The default prefix to use for getting/seeing if mesh properties exist.
 
const RestartableDataValuegetMeshPropertyInternal (const std::string &data_name, const std::string &prefix) const
 Helper for getting a mesh property.
 
template<typename... Args>
void mooseErrorInternal (Args &&... args) const
 Helper for forwarding a mooseError to an object's mooseError if it is available (said error will provide more context: object name and type)
 
const T & forwardGetParam (const std::string &param_name) const
 Forwards parameter check to the class using this utility.
 
const InputParametersforwardParameters () const
 Forwards obtaining parameters to the class using this utility.
 
bool forwardIsParamSetByUser (const std::string &param_name) const
 Forwards parameter check to the class using this utility.
 
bool forwardIsParamValid (const std::string &param_name) const
 Forwards parameter check to the class using this utility.
 
void forwardParamError (Args &&... args) const
 Forwards error to the class using this utility to get better error messages.
 
void forwardMooseError (Args &&... args) const
 Forwards error to the class using this utility to get better error messages.
 
void forwardMooseWarning (Args &&... args) const
 Forwards warning to the class using this utility to get better error messages.
 
const std::string & forwardType () const
 Get the type of the class using this utility.
 
virtual const std::string & forwardName () const
 Get the name of the class using this utility.
 
const std::vector< SubdomainName > & forwardBlocks () const
 Get the blocks for the class using this utility.
 
virtual void addBoundaryConditionsFromComponents ()
 

Static Private Member Functions

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

Private Attributes

MooseEnum _is_transient
 Whether the physics is to be solved as a transient.
 
std::vector< VariableName > _solver_var_names
 Vector of the solver variables (nonlinear and linear) in the Physics.
 
std::vector< VariableName > _aux_var_names
 Vector of the aux variables in the Physics.
 
unsigned int _dim = libMesh::invalid_uint
 Dimension of the physics, which we expect for now to be the dimension of the mesh NOTE: this is not known at construction time, only after initializePhysics which is a huge bummer.
 
std::set< std::string > _required_tasks
 Manually keeps track of the tasks required by each physics as tasks cannot be inherited.
 
const ParallelParamObject_parent
 
MooseApp_meta_data_app
 Reference to the application.
 
const MooseObject *const _meta_data_object
 The MooseObject (if any); used for better error handling.
 
const MooseBase_si_moose_base
 The MooseBase that owns this interface.
 
const FEProblemBase_si_problem
 A pointer to FEProblem base.
 
const PhysicsBase *const _customer_class
 

Detailed Description

Creates all the objects needed to solve a diffusion equation with a cell-centered finite volume discretization.

Definition at line 18 of file DiffusionFV.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

◆ DiffusionFV()

DiffusionFV::DiffusionFV ( const InputParameters parameters)

Definition at line 35 of file DiffusionFV.C.

37{
38}
Base class to host all common parameters and attributes of Physics actions to solve the diffusion equ...
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
Base class to help creating an entire physics.
Definition PhysicsBase.h:31
Interface class to help components interact with Physics.

Member Function Documentation

◆ act()

void PhysicsBase::act ( )
finaloverridevirtualinherited

Forwards from the action tasks to the implemented addXYZ() in the derived classes If you need more than these:

  • register your action to the new task using registerMooseAction("AppName", ActionClass, "task_name");
  • override actOnAdditionalTasks and add your additional work there

Implements Action.

Definition at line 124 of file PhysicsBase.C.

125{
126 mooseDoOnce(checkRequiredTasks());
127
128 // Lets a derived Physics class implement additional tasks
130
131 // Initialization and variables
132 if (_current_task == "init_physics")
134 else if ((_current_task == "add_variable" || _current_task == "add_variables_physics") &&
135 !getParam<bool>("dont_create_solver_variables"))
137 else if ((_current_task == "add_ic" || _current_task == "add_fv_ic" ||
138 _current_task == "add_ics_physics") &&
139 !getParam<bool>("dont_create_ics"))
141
142 // Kernels
143 else if (_current_task == "add_interpolation_method_physics" &&
144 !getParam<bool>("dont_create_kernels"))
146 else if (_current_task == "add_kernel" && !getParam<bool>("dont_create_kernels"))
147 addFEKernels();
148 else if (_current_task == "add_nodal_kernel" && !getParam<bool>("dont_create_kernels"))
150 else if ((_current_task == "add_fv_kernel" || _current_task == "add_linear_fv_kernel") &&
151 !getParam<bool>("dont_create_kernels"))
152 addFVKernels();
153 else if (_current_task == "add_dirac_kernel" && !getParam<bool>("dont_create_kernels"))
155 else if (_current_task == "add_dg_kernel" && !getParam<bool>("dont_create_kernels"))
156 addDGKernels();
157 else if (_current_task == "add_scalar_kernel" && !getParam<bool>("dont_create_kernels"))
159 else if (_current_task == "add_interface_kernel" && !getParam<bool>("dont_create_kernels"))
161 else if (_current_task == "add_fv_ik" && !getParam<bool>("dont_create_kernels"))
163
164 // Boundary conditions
165 else if (_current_task == "add_bc" && !getParam<bool>("dont_create_bcs"))
166 addFEBCs();
167 else if (_current_task == "add_nodal_bc" && !getParam<bool>("dont_create_bcs"))
168 addNodalBCs();
169 else if ((_current_task == "add_fv_bc" || _current_task == "add_linear_fv_bc") &&
170 !getParam<bool>("dont_create_bcs"))
171 addFVBCs();
172 else if (_current_task == "add_periodic_bc" && !getParam<bool>("dont_create_bcs"))
174
175 // Auxiliary quantities
176 else if (_current_task == "add_function" && !getParam<bool>("dont_create_functions"))
177 addFunctions();
178 else if (_current_task == "add_aux_variable" && !getParam<bool>("dont_create_aux_variables"))
180 else if (_current_task == "add_aux_kernel" && !getParam<bool>("dont_create_aux_kernels"))
182 else if ((_current_task == "add_material" || _current_task == "add_materials_physics") &&
183 !getParam<bool>("dont_create_materials"))
184 addMaterials();
185 else if (_current_task == "add_functor_material" && !getParam<bool>("dont_create_materials"))
187
188 // Multiapp
189 else if (_current_task == "add_multi_app")
190 addMultiApps();
191 else if (_current_task == "add_transfer")
192 addTransfers();
193
194 // User objects and output
195 else if (_current_task == "add_user_object" && !getParam<bool>("dont_create_user_objects"))
197 else if (_current_task == "add_corrector" && !getParam<bool>("dont_create_correctors"))
199 else if (_current_task == "add_postprocessor" && !getParam<bool>("dont_create_postprocessors"))
201 else if (_current_task == "add_vector_postprocessor" &&
202 !getParam<bool>("dont_create_vectorpostprocessors"))
204 else if (_current_task == "add_reporter")
205 addReporters();
206 else if (_current_task == "add_output")
207 addOutputs();
208
209 // Equation solver-related tasks
210 else if (_current_task == "add_preconditioning")
212 else if (_current_task == "add_executioner")
214 else if (_current_task == "add_executor")
215 addExecutors();
216
217 // Checks
218 else if (_current_task == "check_integrity_early_physics")
220 else if (_current_task == "check_integrity")
222
223 // Exodus restart capabilities
224 if (_current_task == "copy_vars_physics")
225 {
227 if (_aux_var_names.size() > 0)
229 }
230}
const std::string & _current_task
The current action (even though we have separate instances for each action)
Definition Action.h:172
const std::vector< VariableName > & auxVariableNames() const
Return the list of aux variables in this physics.
virtual void addFVBCs()
virtual void addReporters()
virtual void addCorrectors()
virtual void checkIntegrity() const
Additional checks performed near the end of the setup phase.
virtual void addFunctions()
virtual void actOnAdditionalTasks()
Routine to add additional setup work on additional registered tasks to a Physics.
Definition PhysicsBase.h:49
virtual void addExecutors()
virtual void addFVInterpolationMethods()
virtual void addMultiApps()
virtual void addExecutioner()
virtual void addTransfers()
virtual void addOutputs()
virtual void addInitialConditions()
virtual void addFEBCs()
virtual void addFVInterfaceKernels()
virtual void addAuxiliaryKernels()
virtual void addNodalKernels()
void initializePhysics()
Process some parameters that require the problem to be created. Executed on init_physics.
virtual void checkIntegrityEarly() const
Additional checks performed once the executioner / executor has been created.
const std::vector< VariableName > & solverVariableNames() const
Return the list of solver (nonlinear + linear) variables in this physics.
virtual void addScalarKernels()
void copyVariablesFromMesh(const std::vector< VariableName > &variables_to_copy, bool are_nonlinear=true)
Copy nonlinear or aux variables from the mesh file.
virtual void addPostprocessors()
virtual void addUserObjects()
virtual void addDiracKernels()
virtual void addVectorPostprocessors()
virtual void addAuxiliaryVariables()
virtual void addPreconditioning()
std::vector< VariableName > _aux_var_names
Vector of the aux variables in the Physics.
virtual void addFunctorMaterials()
virtual void addMaterials()
virtual void addInterfaceKernels()
virtual void addFVKernels()
virtual void addNodalBCs()
virtual void addFEKernels()
virtual void addSolverVariables()
The default implementation of these routines will do nothing as we do not expect all Physics to be de...
void checkRequiredTasks() const
Check the list of required tasks for missing tasks.
virtual void addDGKernels()
virtual void addPeriodicBCs()

◆ actOnAdditionalTasks()

virtual void PhysicsBase::actOnAdditionalTasks ( )
inlinevirtualinherited

Routine to add additional setup work on additional registered tasks to a Physics.

Reimplemented in PhysicsComponentInterface.

Definition at line 49 of file PhysicsBase.h.

49{}

Referenced by PhysicsBase::act().

◆ addAuxiliaryKernels()

virtual void PhysicsBase::addAuxiliaryKernels ( )
inlineprivatevirtualinherited

Definition at line 331 of file PhysicsBase.h.

331{}

Referenced by PhysicsBase::act().

◆ addAuxiliaryVariables()

virtual void PhysicsBase::addAuxiliaryVariables ( )
inlineprivatevirtualinherited

Definition at line 315 of file PhysicsBase.h.

315{}

Referenced by PhysicsBase::act().

◆ addBlocks()

void PhysicsBase::addBlocks ( const std::vector< SubdomainName > &  blocks)
inherited

Add new blocks to the Physics.

Parameters
blockslist of blocks to add to the physics

Definition at line 310 of file PhysicsBase.C.

311{
312 if (blocks.size())
313 {
314 _blocks.insert(_blocks.end(), blocks.begin(), blocks.end());
315 _dim = _mesh->getBlocksMaxDimension(_blocks);
316 }
317}
std::shared_ptr< MooseMesh > & _mesh
Definition Action.h:174
unsigned int _dim
Dimension of the physics, which we expect for now to be the dimension of the mesh NOTE: this is not k...
std::vector< SubdomainName > _blocks
Keep track of the subdomains the Physics is defined on.
const std::vector< SubdomainName > & blocks() const
Return the blocks this physics is defined on.
Definition PhysicsBase.h:60

◆ addBlocksById()

void PhysicsBase::addBlocksById ( const std::vector< SubdomainID > &  block_ids)
inherited

Definition at line 320 of file PhysicsBase.C.

321{
322 if (block_ids.size())
323 {
324 for (const auto bid : block_ids)
325 _blocks.push_back(_mesh->getSubdomainName(bid));
326 _dim = _mesh->getBlocksMaxDimension(_blocks);
327 }
328}

◆ addBoundaryCondition()

void PhysicsComponentInterface::addBoundaryCondition ( const ComponentName &  component_name,
const VariableName &  var_name,
const BoundaryName &  boundary_name,
const MooseFunctorName &  bc_value,
const ComponentBoundaryConditionInterface::BoundaryConditionType bc_type 
)
inherited

Add a boundary condition from a component.

Parameters
component_namethe name of the component with the boundary condition
var_namethe variable to provide the initial condition
boundary_namethe name of the boundary condition
bc_valuethe functor providing the boundary condition
bc_typethe type of the boundary condition, defined in ComponentBoundaryConditionInterface at the moment

Definition at line 89 of file PhysicsComponentInterface.C.

95{
96 _components_boundary_conditions[component_name][std::make_pair(var_name, boundary_name)] =
97 std::make_pair(bc_value, bc_type);
98}
std::map< std::string, std::map< std::pair< VariableName, BoundaryName >, std::pair< MooseFunctorName, ComponentBoundaryConditionInterface::BoundaryConditionType > > > _components_boundary_conditions
Map of components to variables and boundary conditions.

Referenced by PhysicsComponentInterface::addComponent().

◆ addBoundaryConditionsFromComponents()

void PhysicsComponentInterface::addBoundaryConditionsFromComponents ( )
privatevirtualinherited

Reimplemented in DiffusionCG.

Definition at line 117 of file PhysicsComponentInterface.C.

118{
120 {
121 std::vector<ComponentName> all_components(_components_boundary_conditions.size());
122 for (const auto & comp : _components_boundary_conditions)
123 all_components.push_back(comp.first);
124 mooseError("Component(s) '",
125 Moose::stringify(all_components),
126 "' requested to add boundary conditions for the variable of this Physics. This "
127 "Physics however does not implement the 'addBoundaryConditionsFromComponents' "
128 "routine, so it cannot create these boundary conditions");
129 }
130}
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition MooseBase.h:271
std::string stringify(const T &t)
conversion to string
Definition Conversion.h:64

Referenced by PhysicsComponentInterface::actOnAdditionalTasks().

◆ addComponent() [1/2]

void PhysicsBase::addComponent ( const ActionComponent component)
virtualinherited

Most basic way of adding a component: simply adding the blocks to the block restriction of the Physics.

More complex behavior should be implemented by overriding

Reimplemented in PhysicsComponentInterface.

Definition at line 331 of file PhysicsBase.C.

332{
333 for (const auto & block : component.blocks())
334 _blocks.push_back(block);
335}

Referenced by PhysicsComponentInterface::addComponent().

◆ addComponent() [2/2]

void PhysicsComponentInterface::addComponent ( const ActionComponent component)
overridevirtualinherited

Adds various info from the component.

Reimplemented from PhysicsBase.

Definition at line 40 of file PhysicsComponentInterface.C.

41{
42 // Adds the component's blocks to the block restriction at least
44
45 // Move initial conditions from components to the Physics
46 if (const auto comp_ic = dynamic_cast<const ComponentInitialConditionInterface *>(&comp))
47 {
48 for (const auto & var_name : solverVariableNames())
49 if (comp_ic->hasInitialCondition(var_name))
50 addInitialCondition(comp.name(), var_name, comp_ic->getInitialCondition(var_name, name()));
51 for (const auto & var_name : auxVariableNames())
52 if (comp_ic->hasInitialCondition(var_name))
53 addInitialCondition(comp.name(), var_name, comp_ic->getInitialCondition(var_name, name()));
54 }
55
56 // Move boundary conditions from components to the Physics
57 if (const auto comp_bc = dynamic_cast<const ComponentBoundaryConditionInterface *>(&comp))
58 {
59 for (const auto & var_name : solverVariableNames())
60 if (comp_bc->hasBoundaryCondition(var_name))
61 for (const auto & boundary : comp_bc->getBoundaryConditionBoundaries(var_name))
62 {
64 const auto boundary_functor =
65 comp_bc->getBoundaryCondition(var_name, boundary, name(), bc_type);
66 addBoundaryCondition(comp.name(), var_name, boundary, boundary_functor, bc_type);
67 }
68 for (const auto & var_name : auxVariableNames())
69 if (comp_bc->hasBoundaryCondition(var_name))
70 for (const auto & boundary : comp_bc->getBoundaryConditionBoundaries(var_name))
71 {
73 const auto boundary_functor =
74 comp_bc->getBoundaryCondition(var_name, boundary, name(), bc_type);
75 addBoundaryCondition(comp.name(), var_name, boundary, boundary_functor, bc_type);
76 }
77 }
78}
for(PetscInt i=0;i< nvars;++i)
if(!dmm->_nl) SETERRQ(PETSC_COMM_WORLD
Helper class to help Components accept boundary condition parameters that the Physics may use to gene...
Helper class to help Components define the initial conditions the Physics may need from the parameter...
const std::string & name() const
Get the name of the class.
Definition MooseBase.h:103
virtual void addComponent(const ActionComponent &component)
Most basic way of adding a component: simply adding the blocks to the block restriction of the Physic...
void addInitialCondition(const ComponentName &component_name, const VariableName &var_name, const MooseFunctorName &ic_value)
Add an initial condition from a component.
void addBoundaryCondition(const ComponentName &component_name, const VariableName &var_name, const BoundaryName &boundary_name, const MooseFunctorName &bc_value, const ComponentBoundaryConditionInterface::BoundaryConditionType &bc_type)
Add a boundary condition from a component.

◆ addCorrectors()

virtual void PhysicsBase::addCorrectors ( )
inlineprivatevirtualinherited

Definition at line 335 of file PhysicsBase.h.

335{}

Referenced by PhysicsBase::act().

◆ addDGKernels()

virtual void PhysicsBase::addDGKernels ( )
inlineprivatevirtualinherited

Definition at line 322 of file PhysicsBase.h.

322{}

Referenced by PhysicsBase::act().

◆ addDiracKernels()

virtual void PhysicsBase::addDiracKernels ( )
inlineprivatevirtualinherited

Definition at line 321 of file PhysicsBase.h.

321{}

Referenced by PhysicsBase::act().

◆ addExecutioner()

virtual void PhysicsBase::addExecutioner ( )
inlineprivatevirtualinherited

Definition at line 343 of file PhysicsBase.h.

343{}

Referenced by PhysicsBase::act().

◆ addExecutors()

virtual void PhysicsBase::addExecutors ( )
inlineprivatevirtualinherited

Definition at line 344 of file PhysicsBase.h.

344{}

Referenced by PhysicsBase::act().

◆ addFEBCs()

virtual void PhysicsBase::addFEBCs ( )
inlineprivatevirtualinherited

Reimplemented in DiffusionCG.

Definition at line 326 of file PhysicsBase.h.

326{}

Referenced by PhysicsBase::act().

◆ addFEKernels()

virtual void PhysicsBase::addFEKernels ( )
inlineprivatevirtualinherited

Reimplemented in DiffusionCG.

Definition at line 317 of file PhysicsBase.h.

317{}

Referenced by PhysicsBase::act().

◆ addFunctions()

virtual void PhysicsBase::addFunctions ( )
inlineprivatevirtualinherited

Definition at line 330 of file PhysicsBase.h.

330{}

Referenced by PhysicsBase::act().

◆ addFunctorMaterials()

virtual void PhysicsBase::addFunctorMaterials ( )
inlineprivatevirtualinherited

Definition at line 333 of file PhysicsBase.h.

333{}

Referenced by PhysicsBase::act().

◆ addFVBCs()

void DiffusionFV::addFVBCs ( )
overrideprivatevirtual

Reimplemented from PhysicsBase.

Definition at line 114 of file DiffusionFV.C.

115{
116 if (isParamValid("neumann_boundaries"))
117 {
118 const auto & boundary_fluxes = getParam<std::vector<MooseFunctorName>>("boundary_fluxes");
119 for (const auto i : index_range(_neumann_boundaries))
120 {
121 const auto & bc_flux = boundary_fluxes[i];
122 // Select the boundary type based on the user parameters and what we know to be most efficient
123 std::string bc_type = "";
124 if (MooseUtils::parsesToReal(bc_flux))
125 bc_type = "FVNeumannBC";
126 else if (getProblem().hasFunction(bc_flux))
127 bc_type = "FVFunctionNeumannBC";
128 else
129 bc_type = "FVFunctorNeumannBC";
130
131 InputParameters params = getFactory().getValidParams(bc_type);
132 params.set<NonlinearVariableName>("variable") = _var_name;
133 params.set<std::vector<BoundaryName>>("boundary") = {_neumann_boundaries[i]};
134
135 // Set the boundary condition parameter for the specific boundary condition type used
136 if (MooseUtils::parsesToReal(bc_flux))
137 params.set<Real>("value") = MooseUtils::convert<Real>(bc_flux);
138 else if (getProblem().hasFunction(bc_flux))
139 params.set<FunctionName>("function") = bc_flux;
140 else
141 params.set<MooseFunctorName>("functor") = bc_flux;
142
144 bc_type, prefix() + _var_name + "_neumann_bc_" + _neumann_boundaries[i], params);
145 }
146 }
147
148 if (isParamValid("dirichlet_boundaries"))
149 {
150 const auto & boundary_values = getParam<std::vector<MooseFunctorName>>("boundary_values");
151 for (const auto i : index_range(_dirichlet_boundaries))
152 {
153 const auto & bc_value = boundary_values[i];
154 // Select the boundary type based on the user parameters and what we know to be most efficient
155 std::string bc_type = "";
156 if (MooseUtils::parsesToReal(bc_value))
157 bc_type = "FVDirichletBC";
158 else if (getProblem().hasFunction(bc_value))
159 bc_type = "FVFunctionDirichletBC";
160 else
161 bc_type = "FVADFunctorDirichletBC";
162
163 InputParameters params = getFactory().getValidParams(bc_type);
164 params.set<NonlinearVariableName>("variable") = _var_name;
165 params.set<std::vector<BoundaryName>>("boundary") = {_dirichlet_boundaries[i]};
166
167 // Set the boundary condition parameter for the specific boundary condition type used
168 if (MooseUtils::parsesToReal(bc_value))
169 params.set<Real>("value") = MooseUtils::convert<Real>(bc_value);
170 else if (getProblem().hasFunction(bc_value))
171 params.set<FunctionName>("function") = bc_value;
172 else
173 params.set<MooseFunctorName>("functor") = bc_value;
174
176 bc_type, prefix() + _var_name + "_dirichlet_bc_" + _dirichlet_boundaries[i], params);
177 }
178 }
179}
const std::vector< BoundaryName > & _neumann_boundaries
Boundaries on which a Neumann boundary condition is applied.
const VariableName & _var_name
Name of the diffused variable.
const std::vector< BoundaryName > & _dirichlet_boundaries
Boundaries on which a Dirichlet boundary condition is applied.
virtual void addFVBC(const std::string &fv_bc_name, const std::string &name, InputParameters &parameters)
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.
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition MooseBase.h:199
virtual FEProblemBase & getProblem()
Get the problem for this physics Useful to add objects to the simulation.
Factory & getFactory()
Get the factory for this physics The factory lets you get the parameters for objects.
std::string prefix() const
Use prefix() to disambiguate names.
bool parsesToReal(const std::string &input, Real *parsed_real)
Definition MooseUtils.C:100
auto index_range(const T &sizable)

◆ addFVInterfaceKernels()

virtual void PhysicsBase::addFVInterfaceKernels ( )
inlineprivatevirtualinherited

Definition at line 325 of file PhysicsBase.h.

325{}

Referenced by PhysicsBase::act().

◆ addFVInterpolationMethods()

virtual void PhysicsBase::addFVInterpolationMethods ( )
inlineprivatevirtualinherited

Definition at line 319 of file PhysicsBase.h.

319{}

Referenced by PhysicsBase::act().

◆ addFVKernels()

void DiffusionFV::addFVKernels ( )
overrideprivatevirtual

Reimplemented from PhysicsBase.

Definition at line 47 of file DiffusionFV.C.

48{
49 // Diffusion term
50 {
51 const std::string kernel_type = "FVDiffusion";
52 InputParameters params = getFactory().getValidParams(kernel_type);
53 assignBlocks(params, _blocks);
54 params.set<NonlinearVariableName>("variable") = _var_name;
55 params.set<MooseFunctorName>("coeff") = getParam<MooseFunctorName>("diffusivity_functor");
56 getProblem().addFVKernel(kernel_type, prefix() + _var_name + "_diffusion", params);
57 }
58 // Source term
59 if (isParamValid("source_functor"))
60 {
61 // Select the kernel type based on the user parameters
62 std::string kernel_type;
63
64 const auto & source = getParam<MooseFunctorName>("source_functor");
65 if (MooseUtils::parsesToReal(source) || getProblem().hasFunction(source) ||
66 getProblem().hasPostprocessorValueByName(source))
67 kernel_type = "FVBodyForce";
68 else if (getProblem().hasVariable(source))
69 kernel_type = "FVCoupledForce";
70 else
71 paramError("source_functor",
72 "No kernel defined for a source term in FV for the type used for '",
73 source,
74 "'");
75
76 InputParameters params = getFactory().getValidParams(kernel_type);
77 params.set<NonlinearVariableName>("variable") = _var_name;
78 assignBlocks(params, _blocks);
79
80 // Transfer the source and coefficient parameter from the Physics to the kernel
81 const auto coef = getParam<Real>("source_coef");
82 if (MooseUtils::parsesToReal(source))
83 params.set<Real>("value") = MooseUtils::convert<Real>(source) * coef;
84 else if (getProblem().hasFunction(source))
85 {
86 params.set<Real>("value") = coef;
87 params.set<FunctionName>("function") = source;
88 }
89 else if (getProblem().hasPostprocessorValueByName(source))
90 {
91 params.set<Real>("value") = coef;
92 params.set<PostprocessorName>("postprocessor") = source;
93 }
94 else
95 {
96 params.set<Real>("coef") = coef;
97 params.set<MooseFunctorName>("v") = {source};
98 }
99
100 getProblem().addFVKernel(kernel_type, prefix() + _var_name + "_source", params);
101 }
102 // Time derivative
104 {
105 const std::string kernel_type = "FVTimeKernel";
106 InputParameters params = getFactory().getValidParams(kernel_type);
107 params.set<NonlinearVariableName>("variable") = _var_name;
108 assignBlocks(params, _blocks);
109 getProblem().addFVKernel(kernel_type, prefix() + _var_name + "_time", params);
110 }
111}
bool hasPostprocessorValueByName(const PostprocessorName &name) const
Whether or not a Postprocessor value exists by a given name.
virtual bool hasFunction(const std::string &name, const THREAD_ID tid=0)
virtual void addFVKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
void paramError(const std::string &param, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
Definition MooseBase.h:457
bool shouldCreateTimeDerivative(const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool error_if_already_defined) const
Returns whether this Physics should create the variable.
void assignBlocks(InputParameters &params, const std::vector< SubdomainName > &blocks) const
Set the blocks parameter to the input parameters of an object this Physics will create.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ addInitialCondition()

void PhysicsComponentInterface::addInitialCondition ( const ComponentName &  component_name,
const VariableName &  var_name,
const MooseFunctorName &  ic_value 
)
inherited

Add an initial condition from a component.

Parameters
component_namethe name of the component to set the variable IC on
var_namethe variable to provide the initial condition
ic_valuethe functor providing the initial condition

Definition at line 81 of file PhysicsComponentInterface.C.

84{
85 _components_initial_conditions[component_name][var_name] = ic_value;
86}
std::map< std::string, std::map< VariableName, MooseFunctorName > > _components_initial_conditions
Map of components to variables and initial conditions.

Referenced by PhysicsComponentInterface::addComponent().

◆ addInitialConditions()

void DiffusionPhysicsBase::addInitialConditions ( )
overrideprivatevirtualinherited

Reimplemented from PhysicsBase.

Definition at line 129 of file DiffusionPhysicsBase.C.

130{
131 InputParameters params = getFactory().getValidParams("FunctionIC");
132
133 // Get the list of blocks that have ics from components
134 std::vector<SubdomainName> component_ic_blocks;
135 for (const auto & [component_name, component_bc_map] : _components_initial_conditions)
136 {
137 if (!component_bc_map.count(_var_name))
138 continue;
139 const auto & comp_blocks = getActionComponent(component_name).blocks();
140 component_ic_blocks.insert(component_ic_blocks.end(), comp_blocks.begin(), comp_blocks.end());
141 }
142
143 // Keep only blocks that have no component IC
144 std::vector<SubdomainName> remaining_blocks;
145 for (const auto & block : _blocks)
146 if (std::find(component_ic_blocks.begin(), component_ic_blocks.end(), block) ==
147 component_ic_blocks.end())
148 remaining_blocks.push_back(block);
149
150 // No need to add BCs on the Physics block restriction if Components are covering all of it
151 if (remaining_blocks.empty())
152 return;
153 assignBlocks(params, remaining_blocks);
154
155 // first obey any component-specific initial condition
156 // then obey the user specification of initial conditions
157 // NOTE: we may conflict with ICs in the input
158 // there are no default initial conditions
159 mooseAssert(parameters().isParamSetByUser("initial_condition") ||
160 !parameters().hasDefault("initial_condition"),
161 "Should not have a default");
162 if (isParamValid("initial_condition") &&
164 _var_name, remaining_blocks, /*ic is a default*/ false, /*error if defined*/ true))
165 {
166 params.set<VariableName>("variable") = _var_name;
167 params.set<FunctionName>("function") = getParam<FunctionName>("initial_condition");
168
169 getProblem().addInitialCondition("FunctionIC", prefix() + _var_name + "_ic", params);
170 }
171}
const std::vector< SubdomainName > & blocks() const
Returns the subdomains for the component mesh, if any.
virtual void addInitialCondition(const std::string &ic_name, const std::string &name, InputParameters &parameters)
bool isParamSetByUser(const std::string &name) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
Definition MooseBase.h:205
bool shouldCreateIC(const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool ic_is_default_ic, const bool error_if_already_defined) const
Returns whether this Physics should create the variable.
const ActionComponent & getActionComponent(const ComponentName &comp_name) const
Get a component with the requested name.
KOKKOS_INLINE_FUNCTION const T * find(const T &target, const T *const begin, const T *const end)
Find a value in an array.
Definition KokkosUtils.h:40

◆ addInitialConditionsFromComponents()

void DiffusionPhysicsBase::addInitialConditionsFromComponents ( )
overrideprivatevirtualinherited

Reimplemented from PhysicsComponentInterface.

Definition at line 174 of file DiffusionPhysicsBase.C.

175{
176 InputParameters params = getFactory().getValidParams("FunctorIC");
177
178 // ICs from components are considered always set by the user, so we do not skip them when
179 // restarting
180 for (const auto & [component_name, component_bc_map] : _components_initial_conditions)
181 {
182 if (!component_bc_map.count(_var_name))
183 continue;
184 assignBlocks(params, getActionComponent(component_name).blocks());
185 params.set<VariableName>("variable") = _var_name;
186 params.set<MooseFunctorName>("functor") = libmesh_map_find(component_bc_map, _var_name);
187
189 "FunctorIC", prefix() + _var_name + "_ic_" + component_name, params);
190 }
191}

◆ addInterfaceKernels()

virtual void PhysicsBase::addInterfaceKernels ( )
inlineprivatevirtualinherited

Definition at line 324 of file PhysicsBase.h.

324{}

Referenced by PhysicsBase::act().

◆ addMaterials()

virtual void PhysicsBase::addMaterials ( )
inlineprivatevirtualinherited

Definition at line 332 of file PhysicsBase.h.

332{}

Referenced by PhysicsBase::act().

◆ addMultiApps()

virtual void PhysicsBase::addMultiApps ( )
inlineprivatevirtualinherited

Definition at line 336 of file PhysicsBase.h.

336{}

Referenced by PhysicsBase::act().

◆ addNodalBCs()

virtual void PhysicsBase::addNodalBCs ( )
inlineprivatevirtualinherited

Definition at line 328 of file PhysicsBase.h.

328{}

Referenced by PhysicsBase::act().

◆ addNodalKernels()

virtual void PhysicsBase::addNodalKernels ( )
inlineprivatevirtualinherited

Definition at line 320 of file PhysicsBase.h.

320{}

Referenced by PhysicsBase::act().

◆ addOutputs()

virtual void PhysicsBase::addOutputs ( )
inlineprivatevirtualinherited

Definition at line 341 of file PhysicsBase.h.

341{}

Referenced by PhysicsBase::act().

◆ addPeriodicBCs()

virtual void PhysicsBase::addPeriodicBCs ( )
inlineprivatevirtualinherited

Definition at line 329 of file PhysicsBase.h.

329{}

Referenced by PhysicsBase::act().

◆ addPetscPairsToPetscOptions()

void PhysicsBase::addPetscPairsToPetscOptions ( const std::vector< std::pair< MooseEnumItem, std::string > > &  petsc_pair_options)
protectedinherited

Process the given petsc option pairs into the system solver settings.

Definition at line 612 of file PhysicsBase.C.

614{
615 Moose::PetscSupport::PetscOptions & po = _problem->getPetscOptions();
616 for (const auto solver_sys_num : _system_numbers)
617 Moose::PetscSupport::addPetscPairsToPetscOptions(
618 petsc_pair_options,
620 _problem->getSolverSystem(solver_sys_num).prefix(),
621 *this,
622 po);
623}
std::shared_ptr< FEProblemBase > & _problem
Convenience reference to a problem this action works on.
Definition Action.h:178
A struct for storing the various types of petsc options and values.
void addPetscPairsToPetscOptions(const std::vector< std::pair< MooseEnumItem, std::string > > &petsc_pair_options)
Process the given petsc option pairs into the system solver settings.
std::vector< unsigned int > _system_numbers
System numbers for the system(s) owning the solver variables.
unsigned int dimension() const
Return the maximum dimension of the blocks the Physics is active on.
const SolverSystemName & getSolverSystem(unsigned int variable_index) const
Get the solver system for this variable index.
MeshBase & mesh
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...

Referenced by DiffusionPhysicsBase::addPreconditioning().

◆ addPostprocessors()

void DiffusionPhysicsBase::addPostprocessors ( )
overrideprivatevirtualinherited

Add postprocessing of the fluxes.

Reimplemented from PhysicsBase.

Definition at line 99 of file DiffusionPhysicsBase.C.

100{
101 for (const auto & boundary_name :
102 getParam<std::vector<BoundaryName>>("compute_diffusive_fluxes_on"))
103 {
104 // Create the boundary integration of the flux
105 const bool use_ad = isParamValid("use_automatic_differentiation")
106 ? getParam<bool>("use_automatic_differentiation")
107 : false;
108 const std::string pp_type =
109 use_ad ? "ADSideDiffusiveFluxIntegral" : "SideDiffusiveFluxIntegral";
110 auto params = _factory.getValidParams(pp_type);
111 params.set<std::vector<VariableName>>("variable") = {_var_name};
112 if (isParamValid("diffusivity_matprop"))
113 params.set<MaterialPropertyName>("diffusivity") =
114 getParam<MaterialPropertyName>("diffusivity_matprop");
115 else if (isParamValid("diffusivity_functor"))
116 params.set<MooseFunctorName>("functor_diffusivity") =
117 getParam<MooseFunctorName>("diffusivity_functor");
118 else
119 params.set<MooseFunctorName>("functor_diffusivity") = "1";
120 params.set<std::vector<BoundaryName>>("boundary") = {boundary_name};
121 // Default to maximum computation
122 params.set<ExecFlagEnum>("execute_on") = {
124 getProblem().addPostprocessor(pp_type, prefix() + "diffusive_flux_" + boundary_name, params);
125 }
126}
const ExecFlagType EXEC_TIMESTEP_END
Definition Moose.C:36
const ExecFlagType EXEC_INITIAL
Definition Moose.C:30
const ExecFlagType EXEC_LINEAR
Definition Moose.C:31
const ExecFlagType EXEC_NONLINEAR
Definition Moose.C:33
A MultiMooseEnum object to hold "execute_on" flags.
virtual void addPostprocessor(const std::string &pp_name, const std::string &name, InputParameters &parameters)
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition MooseBase.h:406
Factory & _factory
The Factory associated with the MooseApp.

◆ addPreconditioning()

void DiffusionPhysicsBase::addPreconditioning ( )
overrideprivatevirtualinherited

Reimplemented from PhysicsBase.

Definition at line 84 of file DiffusionPhysicsBase.C.

85{
86 // Use a multigrid method, known to work for elliptic problems such as diffusion
87 if (_preconditioning == "default")
88 {
89 // We only pass petsc options as that's all that's needed to set up the preconditioner
90 const auto option_pair1 =
91 std::make_pair<MooseEnumItem, std::string>(MooseEnumItem("-pc_type"), "hypre");
92 const auto option_pair2 =
93 std::make_pair<MooseEnumItem, std::string>(MooseEnumItem("-pc_hypre_type"), "boomeramg");
94 addPetscPairsToPetscOptions({option_pair1, option_pair2});
95 }
96}
Class for containing MooseEnum item information.
const MooseEnum & _preconditioning
Whether to add a default preconditioning.

◆ addRelationshipManager()

bool Action::addRelationshipManager ( Moose::RelationshipManagerType  input_rm_type,
const InputParameters moose_object_pars,
std::string  rm_name,
Moose::RelationshipManagerType  rm_type,
Moose::RelationshipManagerInputParameterCallback  rm_input_parameter_func,
Moose::RMSystemType  sys_type = Moose::RMSystemType::NONE 
)
privateinherited

Method for adding a single relationship manager.

Parameters
input_rm_typeWhat relationship manager type we are currently adding
moose_object_parsThe parameters of the MooseObject that requested the RM
rm_nameThe class type of the RM, e.g. ElementSideNeighborLayers
rm_typeThe RelationshipManagerType, e.g. geometric, algebraic, coupling
rm_input_parameter_funcThe RM callback function, typically a lambda defined in the requesting MooseObject's validParams function
sys_typeA RMSystemType that can be used to limit the systems and consequent dof_maps that the RM can be attached to
Returns
Whether a relationship manager was added

Definition at line 100 of file Action.C.

107{
108 // These need unique names
109 static unsigned int unique_object_id = 0;
110
111 auto new_name = moose_object_pars.getBase() + '_' + name() + '_' + rm_name + "_" +
112 Moose::stringify(rm_type) + " " + std::to_string(unique_object_id);
113
114 auto rm_params = _factory.getValidParams(rm_name);
115 rm_params.set<Moose::RelationshipManagerType>("rm_type") = rm_type;
116
117 rm_params.set<std::string>("for_whom") = name();
118
119 // If there is a callback for setting the RM parameters let's use it
120 if (rm_input_parameter_func)
121 rm_input_parameter_func(moose_object_pars, rm_params);
122
123 rm_params.set<MooseMesh *>("mesh") = _mesh.get();
124
125 if (!rm_params.areAllRequiredParamsValid())
126 mooseError("Missing required parameters for RelationshipManager " + rm_name + " for object " +
127 name());
128
129 auto rm_obj = _factory.create<RelationshipManager>(rm_name, new_name, rm_params);
130
131 const bool added = _app.addRelationshipManager(rm_obj);
132
133 // Delete the resources created on behalf of the RM if it ends up not being added to the App.
134 if (!added)
136 else // we added it
137 unique_object_id++;
138
139 return added;
140}
MooseApp & _app
The MOOSE application this is associated with.
Definition MooseBase.h:375
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, const InputParameters &parameters, THREAD_ID tid=0, bool print_deprecated=true)
Definition Factory.C:142
void releaseSharedObjects(const MooseObject &moose_object, THREAD_ID tid=0)
Releases any shared resources created as a side effect of creating an object through the Factory::cre...
Definition Factory.C:156
const std::string & getBase() const
bool addRelationshipManager(std::shared_ptr< RelationshipManager > relationship_manager)
Transfers ownership of a RelationshipManager to the application for lifetime management.
Definition MooseApp.C:2991
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition MooseMesh.h:95
RelationshipManagers are used for describing what kinds of non-local resources are needed for an obje...
RelationshipManagerType
Main types of Relationship Managers.

Referenced by Action::addRelationshipManagers().

◆ addRelationshipManagers() [1/3]

void PhysicsBase::addRelationshipManagers ( Moose::RelationshipManagerType  when_type)
overrideprivatevirtualinherited

Method to add a relationship manager for the objects being added to the system.

Relationship managers have to be added relatively early. In many cases before the Action::act() method is called.

Parameters
when_typeThe parameter indicating the normal time for adding either Geometric or Algebraic RelationshipManagers. It may not always be possible to add your RelationshipManager as early as you'd like. In these cases, your DistributedMesh may consume more memory during the problem setup.

Reimplemented from Action.

Definition at line 338 of file PhysicsBase.C.

339{
341 Action::addRelationshipManagers(input_rm_type, params);
342}
bool addRelationshipManagers(Moose::RelationshipManagerType when_type, const InputParameters &moose_object_pars)
Method to add a relationship manager for the objects being added to the system.
Definition Action.C:148
virtual InputParameters getAdditionalRMParams() const
Provide additional parameters for the relationship managers.
Definition PhysicsBase.h:38

◆ addRelationshipManagers() [2/3]

void Action::addRelationshipManagers ( Moose::RelationshipManagerType  when_type)
privatevirtualinherited

Gathers additional parameters for the relationship managers from the Physics then calls the parent Action::addRelationshipManagers with those parameters.

Reimplemented from Action.

Definition at line 103 of file Action.C.

144{
145}

◆ addRelationshipManagers() [3/3]

bool Action::addRelationshipManagers ( Moose::RelationshipManagerType  when_type,
const InputParameters moose_object_pars 
)
privateinherited

Gathers additional parameters for the relationship managers from the Physics then calls the parent Action::addRelationshipManagers with those parameters.

Definition at line 90 of file Action.C.

150{
151 const auto & buildable_types = moose_object_pars.getBuildableRelationshipManagerTypes();
152
153 bool added = false;
154
155 for (const auto & buildable_type : buildable_types)
156 {
157 auto & rm_name = std::get<0>(buildable_type);
158 auto & rm_type = std::get<1>(buildable_type);
159 auto rm_input_parameter_func = std::get<2>(buildable_type);
160
162 input_rm_type, moose_object_pars, rm_name, rm_type, rm_input_parameter_func) ||
163 added;
164 }
165
166 return added;
167}
bool addRelationshipManager(Moose::RelationshipManagerType input_rm_type, const InputParameters &moose_object_pars, std::string rm_name, Moose::RelationshipManagerType rm_type, Moose::RelationshipManagerInputParameterCallback rm_input_parameter_func, Moose::RMSystemType sys_type=Moose::RMSystemType::NONE)
Method for adding a single relationship manager.
Definition Action.C:100
const std::vector< std::tuple< std::string, Moose::RelationshipManagerType, Moose::RelationshipManagerInputParameterCallback > > & getBuildableRelationshipManagerTypes() const
Returns the list of buildable (or required) RelationshipManager object types for this object.

◆ addReporters()

virtual void PhysicsBase::addReporters ( )
inlineprivatevirtualinherited

Definition at line 340 of file PhysicsBase.h.

340{}

Referenced by PhysicsBase::act().

◆ addRequiredPhysicsTask()

void PhysicsBase::addRequiredPhysicsTask ( const std::string &  task)
inlineprotectedinherited

Add a new required task for all physics deriving from this class NOTE: This does not register the task, you still need to call registerMooseAction.

Definition at line 186 of file PhysicsBase.h.

186{ _required_tasks.insert(task); }
std::set< std::string > _required_tasks
Manually keeps track of the tasks required by each physics as tasks cannot be inherited.

Referenced by DiffusionPhysicsBase::DiffusionPhysicsBase(), and PhysicsBase::PhysicsBase().

◆ addScalarKernels()

virtual void PhysicsBase::addScalarKernels ( )
inlineprivatevirtualinherited

Definition at line 323 of file PhysicsBase.h.

323{}

Referenced by PhysicsBase::act().

◆ addSolverVariables()

void DiffusionFV::addSolverVariables ( )
overrideprivatevirtual

The default implementation of these routines will do nothing as we do not expect all Physics to be defining an object of every type We keep these private as we don't want a derived class to call a do-nothing implementation If they call a parent class implementation, it must have been re-defined as protected.

Reimplemented from PhysicsBase.

Definition at line 182 of file DiffusionFV.C.

183{
185 {
186 reportPotentiallyMissedParameters({"system_names"}, "MooseVariableFVReal");
187 return;
188 }
189
190 const std::string variable_type = "MooseVariableFVReal";
191 InputParameters params = getFactory().getValidParams(variable_type);
192 assignBlocks(params, _blocks);
193 params.set<SolverSystemName>("solver_sys") = getSolverSystem(_var_name);
194 getProblem().addVariable(variable_type, _var_name, params);
195}
virtual void addVariable(const std::string &var_type, const std::string &var_name, InputParameters &params)
Canonical method for adding a non-linear variable.
void reportPotentiallyMissedParameters(const std::vector< std::string > &param_names, const std::string &object_type, const std::string &object_name="") const
When this is called, we are knowingly not using the value of these parameters.
bool shouldCreateVariable(const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool error_if_aux)
Returns whether this Physics should create the variable.

◆ addTransfers()

virtual void PhysicsBase::addTransfers ( )
inlineprivatevirtualinherited

Definition at line 337 of file PhysicsBase.h.

337{}

Referenced by PhysicsBase::act().

◆ addUserObject()

void PhysicsBase::addUserObject ( const std::string &  uo_type,
const std::string &  uo_name,
InputParameters params 
)
protectedinherited

Add a UserObject supplied by this Physics to the problem.

Forwards to FEProblemBase::addUserObject. Use this instead of getProblem().addUserObject() so that any UserObject this Physics supplies is (in a debug build) checked to have been declared in getSuppliedUserObjects(), keeping the declaration and the construction consistent.

Definition at line 233 of file PhysicsBase.C.

236{
237 mooseAssert(
238 [&]()
239 {
240 const auto supplied = getSuppliedUserObjects();
241 return std::find(supplied.begin(), supplied.end(), uo_name) != supplied.end();
242 }(),
243 "The UserObject '" + uo_name + "' added by Physics '" + name() +
244 "' was not declared in getSuppliedUserObjects(). Declare it there so its construction "
245 "order can be resolved.");
246 getProblem().addUserObject(uo_type, uo_name, params);
247}
virtual std::vector< std::shared_ptr< UserObject > > addUserObject(const std::string &user_object_name, const std::string &name, InputParameters &parameters)
virtual std::vector< UserObjectName > getSuppliedUserObjects() const
Return the names of the UserObjects this Physics adds to the problem.

◆ addUserObjects()

virtual void PhysicsBase::addUserObjects ( )
inlineprivatevirtualinherited

Definition at line 334 of file PhysicsBase.h.

334{}

Referenced by PhysicsBase::act().

◆ addVectorPostprocessors()

virtual void PhysicsBase::addVectorPostprocessors ( )
inlineprivatevirtualinherited

Definition at line 339 of file PhysicsBase.h.

339{}

Referenced by PhysicsBase::act().

◆ allMeshBlocks() [1/2]

bool PhysicsBase::allMeshBlocks ( const std::set< SubdomainName > &  blocks) const
protectedinherited

Definition at line 605 of file PhysicsBase.C.

606{
607 std::vector<SubdomainName> blocks_vec(blocks.begin(), blocks.end());
608 return allMeshBlocks(blocks_vec);
609}
bool allMeshBlocks(const std::vector< SubdomainName > &blocks) const
Check if a vector contains all the mesh blocks.

◆ allMeshBlocks() [2/2]

bool PhysicsBase::allMeshBlocks ( const std::vector< SubdomainName > &  blocks) const
protectedinherited

Check if a vector contains all the mesh blocks.

Parameters
blocksthe vector blocks to check for whether it contains every block in the mesh

Definition at line 581 of file PhysicsBase.C.

582{
583 mooseAssert(_mesh, "The mesh should exist already");
584 // Try to return faster without examining every single block
585 if (std::find(blocks.begin(), blocks.end(), "ANY_BLOCK_ID") != blocks.end())
586 return true;
587 else if (blocks.size() != _mesh->meshSubdomains().size())
588 return false;
589
590 for (const auto mesh_block : _mesh->meshSubdomains())
591 {
592 const auto & subdomain_name = _mesh->getSubdomainName(mesh_block);
593 // Check subdomain name
594 if (!subdomain_name.empty() &&
595 std::find(blocks.begin(), blocks.end(), subdomain_name) == blocks.end())
596 return false;
597 // no subdomain name, check the IDs being used as names instead
598 else if (std::find(blocks.begin(), blocks.end(), std::to_string(mesh_block)) == blocks.end())
599 return false;
600 }
601 return true;
602}

Referenced by PhysicsBase::allMeshBlocks(), PhysicsBase::checkBlockRestrictionIdentical(), PhysicsBase::getSubdomainIDs(), and PhysicsBase::shouldCreateVariable().

◆ appendTask()

void Action::appendTask ( const std::string &  task)
inlineinherited

Definition at line 114 of file Action.h.

114{ _all_tasks.insert(task); }
std::set< std::string > _all_tasks
A list of all the tasks that this Action will satisfy.
Definition Action.h:166

◆ assertParamDefined() [1/2]

void InputParametersChecksUtils< PhysicsBase >::assertParamDefined ( const std::string &  libmesh_dbg_varparam) const
inherited

Definition at line 206 of file InputParametersChecksUtils.h.

207{
208 mooseAssert(forwardParameters().template have_parameter<T>(param),
209 "Parameter '" + param + "' is not defined with type '" +
210 MooseUtils::prettyCppType<T>() + "' in object type '" +
211 MooseUtils::prettyCppType(forwardType()) + "'. Check your code.");
212}
const InputParameters & forwardParameters() const
Forwards obtaining parameters to the class using this utility.
const std::string & forwardType() const
Get the type of the class using this utility.
std::string prettyCppType(const std::string &cpp_type)

◆ assertParamDefined() [2/2]

void InputParametersChecksUtils< PhysicsBase >::assertParamDefined ( const std::string &  param) const
protectedinherited

Check in debug mode that this parameter has been added to the validParams.

Parameters
paramparameter that should be defined

◆ assignBlocks()

void PhysicsBase::assignBlocks ( InputParameters params,
const std::vector< SubdomainName > &  blocks 
) const
protectedinherited

Set the blocks parameter to the input parameters of an object this Physics will create.

Parameters
paramsthe parameters of the object
blocksthe blocks to set as the parameter

Definition at line 511 of file PhysicsBase.C.

512{
513 // We only set the blocks if we don't have `ANY_BLOCK_ID` defined because the subproblem
514 // (through the mesh) errors out if we use this keyword during the addVariable/Kernel
515 // functions
516 if (std::find(blocks.begin(), blocks.end(), "ANY_BLOCK_ID") == blocks.end())
517 params.set<std::vector<SubdomainName>>("block") = blocks;
518 if (blocks.empty())
519 mooseInfoRepeated("Empty block restriction assigned to an object created by Physics '" +
520 name() + "'.\n Did you mean to do this?");
521}
void mooseInfoRepeated(Args &&... args)
Emit an informational message with the given stringified, concatenated args.
Definition MooseError.h:409

Referenced by DiffusionCG::addFEKernels(), addFVKernels(), DiffusionPhysicsBase::addInitialConditions(), DiffusionPhysicsBase::addInitialConditionsFromComponents(), DiffusionCG::addSolverVariables(), and addSolverVariables().

◆ associateWithParameter() [1/2]

void Action::associateWithParameter ( const InputParameters from_params,
const std::string &  param_name,
InputParameters params 
) const
protectedinherited

The same as associateWithParameter() without from_params, but instead allows you to associate this with another object's parameters instead of the parameters from this action.

An example here is when you want to associate the creation of an action with an argument from the application.

Definition at line 176 of file Action.C.

179{
180 const auto to_hit_node = params.getHitNode();
181 if (!to_hit_node || to_hit_node->isRoot())
182 {
183 if (const auto hit_node = from_params.getHitNode(param_name))
184 params.setHitNode(*hit_node, {});
185 else if (const auto hit_node = from_params.getHitNode())
186 params.setHitNode(*hit_node, {});
187 }
188}
void setHitNode(const std::string &param, const hit::Node &node, const SetParamHitNodeKey)
Sets the hit node associated with the parameter param to node.
const hit::Node * getHitNode(const std::string &param) const

◆ associateWithParameter() [2/2]

void Action::associateWithParameter ( const std::string &  param_name,
InputParameters params 
) const
protectedinherited

Associates the object's parameters params with the input location from this Action's parameter with the name param_name, if one exists.

For example, you have a parameter in this action of type bool with name "add_mesh". You then add an action within this action that creates a mesh if this param is true. If you call associateWithParameter("add_mesh", action_params) where action_params are the parameters for the action, we then associate that action with the "add_mesh" parameter. Therefore, the resulting created mesh will also be associated with the "add_mesh" param and any errors that are non-parameter errors (i.e., mooseError/mooseWarning) will have the line context of the "add_mesh" parameter in this action. The same goes for any errors that are produce within the created action.

Definition at line 170 of file Action.C.

171{
172 associateWithParameter(parameters(), param_name, params);
173}
void associateWithParameter(const std::string &param_name, InputParameters &params) const
Associates the object's parameters params with the input location from this Action's parameter with t...
Definition Action.C:170

Referenced by Action::associateWithParameter(), CommonOutputAction::create(), AddVariableAction::createInitialConditionAction(), CreateExecutionerAction::setupAutoPreconditioning(), and ReadExecutorParamsAction::setupAutoPreconditioning().

◆ auxVariableNames()

const std::vector< VariableName > & PhysicsBase::auxVariableNames ( ) const
inlineinherited

Return the list of aux variables in this physics.

Definition at line 106 of file PhysicsBase.h.

106{ return _aux_var_names; };

Referenced by PhysicsBase::act(), and PhysicsComponentInterface::addComponent().

◆ blocks()

const std::vector< SubdomainName > & PhysicsBase::blocks ( ) const
inlineinherited

◆ callMooseError() [1/2]

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

External method for calling moose error with added object context.

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

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

Definition at line 114 of file MooseBase.C.

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

◆ callMooseError() [2/2]

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

External method for calling moose error with added object context.

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

Definition at line 105 of file MooseBase.C.

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

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

◆ checkBlockRestrictionIdentical()

bool PhysicsBase::checkBlockRestrictionIdentical ( const std::string &  object_name,
const std::vector< SubdomainName > &  blocks,
const bool  error_if_not_identical = true 
) const
inherited

Check if an external object has the same block restriction.

Parameters
object_namename of the object to check the block restriction of
blocksthe blocks for this object
error_if_not_identicalwhether to error if the block restrictions dont match

Definition at line 524 of file PhysicsBase.C.

527{
528 // If identical, we can return fast
529 if (_blocks == blocks)
530 return true;
531 // If one is block restricted to anywhere and the other is block restricted to anywhere manually
532 if ((std::find(_blocks.begin(), _blocks.end(), "ANY_BLOCK_ID") != _blocks.end() &&
534 (std::find(blocks.begin(), blocks.end(), "ANY_BLOCK_ID") != blocks.end() &&
536 return true;
537
538 // Copy, sort and unique is the only way to check that they are actually the same
539 auto copy_blocks = _blocks;
540 auto copy_blocks_other = blocks;
541 std::sort(copy_blocks.begin(), copy_blocks.end());
542 copy_blocks.erase(unique(copy_blocks.begin(), copy_blocks.end()), copy_blocks.end());
543 std::sort(copy_blocks_other.begin(), copy_blocks_other.end());
544 copy_blocks_other.erase(unique(copy_blocks_other.begin(), copy_blocks_other.end()),
545 copy_blocks_other.end());
546
547 if (copy_blocks == copy_blocks_other)
548 return true;
549 std::vector<SubdomainName> diff;
550 std::set_difference(copy_blocks.begin(),
551 copy_blocks.end(),
552 copy_blocks_other.begin(),
553 copy_blocks_other.end(),
554 std::inserter(diff, diff.begin()));
555 if (error_if_not_identical)
556 mooseError("Physics '",
557 name(),
558 "' and object '",
559 object_name,
560 "' have different block restrictions.\nPhysics: ",
562 "\nObject: ",
564 "\nDifference: ",
565 Moose::stringify(diff));
566 else
567 return false;
568}

◆ checkBlockwiseConsistency()

void InputParametersChecksUtils< PhysicsBase >::checkBlockwiseConsistency ( const std::string &  block_param_name,
const std::vector< std::string > &  parameter_names 
) const
protectedinherited

Check if the user commited errors during the definition of block-wise parameters.

Parameters
block_param_namethe name of the parameter that provides the groups of blocks
parameter_namesvector of the names of the parameters that are defined on a per-block basis

Definition at line 120 of file InputParametersChecksUtils.h.

485{
486 const std::vector<std::vector<SubdomainName>> & block_names =
487 forwardGetParam<std::vector<std::vector<SubdomainName>>>(block_param_name);
488
489 if (block_names.size())
490 {
491 // We only check block-restrictions if the customer class is not restricted to `ANY_BLOCK_ID`.
492 // If the users define blocks that are not on the mesh, they will receive errors from the
493 // objects created by the customer class
494 const auto & object_blocks = forwardBlocks();
495 if (std::find(object_blocks.begin(), object_blocks.end(), "ANY_BLOCK_ID") ==
496 object_blocks.end())
497 for (const auto & block_group : block_names)
498 for (const auto & block : block_group)
499 if (std::find(object_blocks.begin(), object_blocks.end(), block) == object_blocks.end())
500 forwardParamError(block_param_name,
501 "Block '" + block + "' is not present in the block restriction of " +
502 forwardName() +
503 "!\nBlock restriction: " + Moose::stringify(object_blocks));
504
505 for (const auto & param_name : parameter_names)
506 {
507 const std::vector<T> & param_vector = forwardGetParam<std::vector<T>>(param_name);
508 if (block_names.size() != param_vector.size())
509 forwardParamError(param_name,
510 "The number of entries in '" + param_name + "' (" +
511 std::to_string(param_vector.size()) +
512 ") is not the same as the number of blocks"
513 " (" +
514 std::to_string(block_names.size()) + ") in '" + block_param_name +
515 "'!");
516 }
517 }
518 else
519 {
520 unsigned int previous_size = 0;
521 for (const auto param_i : index_range(parameter_names))
522 {
523 const std::vector<T> & param_vector =
524 forwardGetParam<std::vector<T>>(parameter_names[param_i]);
525 if (param_i == 0)
526 {
527 if (param_vector.size() > 1)
528 forwardParamError(parameter_names[param_i],
529 "The user should only use one or zero entries in " +
530 parameter_names[param_i] + " if " + block_param_name +
531 " not defined!");
532 previous_size = param_vector.size();
533 }
534 else
535 {
536 if (previous_size != param_vector.size())
537 forwardParamError(parameter_names[param_i],
538 "The number of entries in '" + parameter_names[param_i] +
539 "' is not the same as the number of entries in '" +
540 parameter_names[param_i - 1] + "'!");
541 }
542 }
543 }
544}
void forwardParamError(Args &&... args) const
Forwards error to the class using this utility to get better error messages.
const std::vector< SubdomainName > & forwardBlocks() const
Get the blocks for the class using this utility.
virtual const std::string & forwardName() const
Get the name of the class using this utility.
std::string stringify(MOOSEIOType type)
Definition NEML2Utils.C:18

◆ checkComponentType()

template<typename T >
void PhysicsBase::checkComponentType ( const ActionComponent component) const
inherited

Check that the component is of the desired type.

Definition at line 405 of file PhysicsBase.h.

406{
407 if (!dynamic_cast<const T *>(&component))
408 mooseError("Component '" + component.name() + "' must be of type '" +
409 MooseUtils::prettyCppType<T>() + "'.\nIt is currently of type '" + component.type() +
410 "'");
411}
const std::string & type() const
Get the type of this class.
Definition MooseBase.h:93

◆ checkIntegrity()

virtual void PhysicsBase::checkIntegrity ( ) const
inlineprotectedvirtualinherited

Additional checks performed near the end of the setup phase.

Definition at line 279 of file PhysicsBase.h.

279{}

Referenced by PhysicsBase::act().

◆ checkIntegrityEarly()

void PhysicsBase::checkIntegrityEarly ( ) const
privatevirtualinherited

Additional checks performed once the executioner / executor has been created.

Definition at line 398 of file PhysicsBase.C.

399{
400 if (_is_transient == "true" && !getProblem().isTransient())
401 paramError("transient", "We cannot solve a physics as transient in a steady problem");
402
403 // Check that there is a system for each variable
404 if (_system_names.size() != 1 && _system_names.size() != _solver_var_names.size())
405 paramError("system_names",
406 "There should be one system name per solver variable (potentially repeated), or a "
407 "single system name for all variables. Currently you have '" +
408 std::to_string(_system_names.size()) + "' systems specified for '" +
409 std::to_string(_solver_var_names.size()) + "' solver variables.");
410
411 // Check that each variable is present in the expected system
412 unsigned int var_i = 0;
413 for (const auto & var_name : _solver_var_names)
414 {
415 const auto & sys_name = _system_names.size() == 1 ? _system_names[0] : _system_names[var_i++];
416 if (!_problem->getSolverSystem(_problem->solverSysNum(sys_name)).hasVariable(var_name) &&
417 !_problem->getSolverSystem(_problem->solverSysNum(sys_name)).hasScalarVariable(var_name))
418 paramError("system_names",
419 "We expected system '" + sys_name + "' to contain variable '" + var_name +
420 "' but it did not. Make sure the system names closely match the ordering of "
421 "the variables in the Physics.");
422 }
423}
std::vector< SolverSystemName > _system_names
System names for the system(s) owning the solver variables.
std::vector< VariableName > _solver_var_names
Vector of the solver variables (nonlinear and linear) in the Physics.
MooseEnum _is_transient
Whether the physics is to be solved as a transient.
bool isTransient() const
Return whether the Physics is solved using a transient.

Referenced by PhysicsBase::act().

◆ checkParamsBothSetOrNotSet()

void InputParametersChecksUtils< PhysicsBase >::checkParamsBothSetOrNotSet ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Check that two parameters are either both set or both not set.

Parameters
param1first parameter to check
param2second parameter to check

Definition at line 40 of file InputParametersChecksUtils.h.

594{
595 if ((forwardIsParamValid(param1) + forwardIsParamValid(param2)) % 2 != 0)
596 forwardParamError(param1,
597 "Parameters '" + param1 + "' and '" + param2 +
598 "' must be either both set or both not set.");
599}
bool forwardIsParamValid(const std::string &param_name) const
Forwards parameter check to the class using this utility.

◆ checkRequiredTasks()

void PhysicsBase::checkRequiredTasks ( ) const
privateinherited

Check the list of required tasks for missing tasks.

Definition at line 495 of file PhysicsBase.C.

496{
497 const auto registered_tasks = _action_factory.getTasksByAction(type());
498
499 // Check for missing tasks
500 for (const auto & required_task : _required_tasks)
501 if (!registered_tasks.count(required_task))
502 mooseWarning("Task '" + required_task +
503 "' has been declared as required by a Physics parent class of derived class '" +
504 type() +
505 "' but this task is not registered to the derived class. Registered tasks for "
506 "this Physics are: " +
507 Moose::stringify(registered_tasks));
508}
unsigned int count
Definition MortarUtils.C:53
std::set< std::string > getTasksByAction(const std::string &action) const
ActionFactory & _action_factory
Builds Actions.
void mooseWarning(Args &&... args) const

Referenced by PhysicsBase::act().

◆ checkSecondParamNotSetIfFirstOneSet()

void InputParametersChecksUtils< PhysicsBase >::checkSecondParamNotSetIfFirstOneSet ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Check that a parameter is not set if the first one is set.

Parameters
param1first parameter to check, check that the second is not if this one is set
param2second parameter to check, that should not be set if first one is set

Definition at line 54 of file InputParametersChecksUtils.h.

630{
632 forwardParamError(param2,
633 "Parameter '" + param2 + "' should not be specified if parameter '" + param1 +
634 "' is specified.");
635}
bool forwardIsParamSetByUser(const std::string &param_name) const
Forwards parameter check to the class using this utility.

◆ checkSecondParamSetOnlyIfFirstOneSet()

void InputParametersChecksUtils< PhysicsBase >::checkSecondParamSetOnlyIfFirstOneSet ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Check that a parameter is set only if the first one is set.

Parameters
param1first parameter to check, check the second if set
param2second parameter to check, that should be set if first one is set

Definition at line 49 of file InputParametersChecksUtils.h.

619{
620 if (!forwardIsParamSetByUser(param1) && forwardIsParamSetByUser(param2))
621 forwardParamError(param2,
622 "Parameter '" + param2 + "' should not be set if parameter '" + param1 +
623 "' is not specified.");
624}

◆ checkSecondParamSetOnlyIfFirstOneTrue()

void InputParametersChecksUtils< PhysicsBase >::checkSecondParamSetOnlyIfFirstOneTrue ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Check that a parameter is set only if the first one is set to true.

Parameters
param1first parameter to check, check the second if true
param2second parameter to check, that should be set if first one is true

Definition at line 44 of file InputParametersChecksUtils.h.

605{
606 mooseAssert(forwardParameters().template have_parameter<bool>(param1),
607 "Cannot check if parameter " + param1 +
608 " is true if it's not a bool parameter of this object");
609 if (!forwardGetParam<bool>(param1) && forwardIsParamSetByUser(param2))
610 forwardParamError(param2,
611 "Parameter '" + param1 + "' cannot be set to false if parameter '" + param2 +
612 "' is set by the user");
613}

◆ checkTwoDVectorParamInnerSameLengthAsOneDVector()

void InputParametersChecksUtils< PhysicsBase >::checkTwoDVectorParamInnerSameLengthAsOneDVector ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Check that each inner vector of a two-D vector parameter are the same size as another one-D vector parameter.

Parameters
param1two-D vector parameter to check the dimensions of
param2one-D vector parameter to set the desired size

Definition at line 87 of file InputParametersChecksUtils.h.

298{
299 assertParamDefined<std::vector<std::vector<T>>>(param1);
300 assertParamDefined<std::vector<S>>(param2);
301 for (const auto & sub_vec_i : index_range(forwardGetParam<std::vector<std::vector<T>>>(param1)))
302 {
303 const auto size_1 = forwardGetParam<std::vector<std::vector<T>>>(param1)[sub_vec_i].size();
304 const auto size_2 = forwardGetParam<std::vector<S>>(param2).size();
305 if (size_1 != size_2)
306 forwardParamError(param1,
307 "Vector at index " + std::to_string(sub_vec_i) + " (size " +
308 std::to_string(size_1) +
309 ") "
310 " of this parameter should be the same length as parameter '" +
311 param2 + "' (size " + std::to_string(size_2) + ")");
312 }
313}
const T & forwardGetParam(const std::string &param_name) const
Forwards parameter check to the class using this utility.

◆ checkTwoDVectorParamMultiMooseEnumSameLength()

void InputParametersChecksUtils< PhysicsBase >::checkTwoDVectorParamMultiMooseEnumSameLength ( const std::string &  param1,
const std::string &  param2,
const bool  error_for_param2 
) const
protectedinherited

Check that the size of a two-D vector parameter matches the size of a MultiMooseEnum parameter.

Parameters
param1two-D vector parameter to check the unrolled size of
param2MultiMooseEnum parameter to set the desired size

Definition at line 93 of file InputParametersChecksUtils.h.

320{
321 assertParamDefined<std::vector<std::vector<T>>>(param1);
322 assertParamDefined<MultiMooseEnum>(param2);
323 const auto vec1 = forwardGetParam<std::vector<std::vector<T>>>(param1);
324 const auto enum2 = forwardGetParam<MultiMooseEnum>(param2);
325 const auto size_1 = vec1.empty() ? 0 : vec1.size() * vec1[0].size();
326 const auto size_2 = enum2.size();
327 if (size_1 != size_2)
328 {
329 if (error_for_param2)
330 forwardParamError(param2,
331 "Vector enumeration parameter (size " + std::to_string(size_2) +
332 ") is not the same size as the vector of vector parameter '" + param1 +
333 "' (size " + std::to_string(size_1) + ")");
334 else
335 forwardParamError(param1,
336 "Vector of vector parameter '" + param1 + "' (total size " +
337 std::to_string(size_1) +
338 ") is not the same size as vector-enumeration parameter '" + param2 +
339 "' (size " + std::to_string(size_2) + ")");
340 }
341}

◆ checkTwoDVectorParamsNoRespectiveOverlap()

void InputParametersChecksUtils< PhysicsBase >::checkTwoDVectorParamsNoRespectiveOverlap ( const std::vector< std::string > &  param_vecs) const
protectedinherited

Check that there is no overlap between the respective items in each vector of the two-D parameters Each vector of the two-D vector parameter should also have unique items.

Parameters
param_vecsvector of parameters that should not overlap with each other

Definition at line 82 of file InputParametersChecksUtils.h.

397{
398 // Outer loop, each param is the name of a parameter for a vector of vectors
399 for (const auto & param : param_vec)
400 {
401 assertParamDefined<std::vector<std::vector<T>>>(param);
402 const auto & twoD_vec = forwardGetParam<std::vector<std::vector<T>>>(param);
403 std::vector<std::set<T>> unique_params(twoD_vec.size());
404
405 // Loop over each outer vector and compare the inner vectors respectively to other parameters
406 for (const auto i : index_range(twoD_vec))
407 {
408 for (const auto & value : twoD_vec[i])
409 if (!unique_params[i].insert(value).second)
410 {
411 auto copy_params = param_vec;
412 copy_params.erase(std::find(copy_params.begin(), copy_params.end(), param));
413 forwardMooseError("Item '" + value + "' specified in vector parameter '" + param +
414 "' is also present in one or more of the two-D vector parameters '" +
415 Moose::stringify(copy_params) +
416 "' in the inner vector of the same index, which is not allowed.");
417 }
418 }
419 }
420}
void forwardMooseError(Args &&... args) const
Forwards error to the class using this utility to get better error messages.
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

◆ checkTwoDVectorParamsSameLength()

void InputParametersChecksUtils< PhysicsBase >::checkTwoDVectorParamsSameLength ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Check that the two-D vectors have exactly the same length in both dimensions.

Parameters
param1first two-D vector parameter to check the dimensions of
param2second two-D vector parameter to check the dimensions of

Definition at line 71 of file InputParametersChecksUtils.h.

271{
272 checkVectorParamsSameLength<std::vector<T>, std::vector<S>>(param1, param2);
273 if (forwardIsParamValid(param1) && forwardIsParamValid(param2))
274 {
275 const auto value1 = forwardGetParam<std::vector<std::vector<T>>>(param1);
276 const auto value2 = forwardGetParam<std::vector<std::vector<S>>>(param2);
277 for (const auto index : index_range(value1))
278 if (value1[index].size() != value2[index].size())
280 param1,
281 "Vector at index " + std::to_string(index) + " of 2D vector parameter '" + param1 +
282 "' is not the same size as its counterpart from 2D vector parameter '" + param2 +
283 "'.\nSize first vector: " + std::to_string(value1[index].size()) +
284 "\nSize second vector: " + std::to_string(value2[index].size()));
285 }
286 // handle empty vector defaults
287 else if (forwardIsParamValid(param1) || forwardIsParamValid(param2))
288 if (forwardGetParam<std::vector<T>>(param1).size() ||
289 forwardGetParam<std::vector<S>>(param2).size())
290 checkParamsBothSetOrNotSet(param1, param2);
291}
void checkParamsBothSetOrNotSet(const std::string &param1, const std::string &param2) const
Check that two parameters are either both set or both not set.

◆ checkVectorParamAndMultiMooseEnumLength()

void InputParametersChecksUtils< PhysicsBase >::checkVectorParamAndMultiMooseEnumLength ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Check that this vector parameter (with name defined in param1) has the same length as the MultiMooseEnum (with name defined in param2)

Parameters
param1vector parameter to compare the size of
param2multiMooseEnum parameter to compare the size of

Definition at line 65 of file InputParametersChecksUtils.h.

245{
246 assertParamDefined<std::vector<T>>(param1);
247 assertParamDefined<MultiMooseEnum>(param2);
248
249 if (forwardIsParamValid(param1) && forwardIsParamValid(param2))
250 {
251 const auto size_1 = forwardGetParam<std::vector<T>>(param1).size();
252 const auto size_2 = forwardGetParam<MultiMooseEnum>(param2).size();
253 if (size_1 != size_2)
254 forwardParamError(param1,
255 "Vector parameters '" + param1 + "' (size " + std::to_string(size_1) +
256 ") and '" + param2 + "' (size " + std::to_string(size_2) +
257 ") must be the same size");
258 }
259 // handle empty vector defaults
260 else if (forwardIsParamValid(param1) || forwardIsParamValid(param2))
261 if (forwardGetParam<std::vector<T>>(param1).size() ||
262 forwardGetParam<MultiMooseEnum>(param2).size())
263 checkParamsBothSetOrNotSet(param1, param2);
264}

◆ checkVectorParamLengthSameAsCombinedOthers()

void InputParametersChecksUtils< PhysicsBase >::checkVectorParamLengthSameAsCombinedOthers ( const std::string &  param1,
const std::string &  param2,
const std::string &  param3 
) const
protectedinherited

Check that a vector parameter is the same length as two others combined.

Parameters
param1vector parameter that provides the target size
param2vector parameter that provides one term in the combined size
param3vector parameter that provides one term in the combined size

Definition at line 112 of file InputParametersChecksUtils.h.

348{
349 assertParamDefined<std::vector<T>>(param1);
350 assertParamDefined<std::vector<S>>(param2);
351 assertParamDefined<std::vector<U>>(param3);
352 const auto size_1 = forwardGetParam<std::vector<T>>(param1).size();
353 const auto size_2 = forwardGetParam<std::vector<S>>(param2).size();
354 const auto size_3 = forwardGetParam<std::vector<U>>(param3).size();
355
356 if (size_1 != size_2 + size_3)
357 forwardParamError(param1,
358 "Vector parameter '" + param1 + "' (size " + std::to_string(size_1) +
359 ") should be the same size as parameter '" + param2 + "' and '" + param3 +
360 " combined (total size " + std::to_string(size_2 + size_3) + ")");
361}

◆ checkVectorParamNotEmpty()

void InputParametersChecksUtils< PhysicsBase >::checkVectorParamNotEmpty ( const std::string &  param1) const
protectedinherited

Check that the user did not pass an empty vector.

Parameters
param1vector parameter that should not be empty

Definition at line 99 of file InputParametersChecksUtils.h.

426{
427 assertParamDefined<std::vector<T>>(param);
428 if (!forwardGetParam<std::vector<T>>(param).size())
429 forwardParamError(param, "Parameter '" + param + "' should not be set to an empty vector.");
430}

◆ checkVectorParamsNoOverlap()

void InputParametersChecksUtils< PhysicsBase >::checkVectorParamsNoOverlap ( const std::vector< std::string > &  param_vecs) const
protectedinherited

Check that there is no overlap between the items in each vector parameters Each vector parameter should also have unique items.

Parameters
param_vecsvector of parameters that should not overlap with each other

Definition at line 77 of file InputParametersChecksUtils.h.

368{
369 std::set<std::string> unique_params;
370 for (const auto & param : param_vec)
371 {
372 assertParamDefined<std::vector<T>>(param);
373
374 for (const auto & value : forwardGetParam<std::vector<T>>(param))
375 if (!unique_params.insert(value).second)
376 {
377 auto copy_params = param_vec;
378 copy_params.erase(std::find(copy_params.begin(), copy_params.end(), param));
379 // Overlap between multiple vectors of parameters
380 if (copy_params.size())
381 forwardMooseError("Item '" + value + "' specified in vector parameter '" + param +
382 "' is also present in one or more of the parameters '" +
383 Moose::stringify(copy_params) + "', which is not allowed.");
384 // Overlap within a single vector parameter caused by a repeated item
385 else
386 forwardMooseError("Item '" + value + "' specified in vector parameter '" + param +
387 "' is repeated, which is not allowed.");
388 }
389 }
390}

◆ checkVectorParamsSameLength()

void InputParametersChecksUtils< PhysicsBase >::checkVectorParamsSameLength ( const std::string &  param1,
const std::string &  param2 
) const
protectedinherited

Check that the two vector parameters are of the same length.

Parameters
param1first vector parameter to compare the size of
param2second vector parameter to compare the size of

Definition at line 60 of file InputParametersChecksUtils.h.

219{
220 assertParamDefined<std::vector<T>>(param1);
221 assertParamDefined<std::vector<S>>(param2);
222
223 if (forwardIsParamValid(param1) && forwardIsParamValid(param2))
224 {
225 const auto size_1 = forwardGetParam<std::vector<T>>(param1).size();
226 const auto size_2 = forwardGetParam<std::vector<S>>(param2).size();
227 if (size_1 != size_2)
228 forwardParamError(param1,
229 "Vector parameters '" + param1 + "' (size " + std::to_string(size_1) +
230 ") and '" + param2 + "' (size " + std::to_string(size_2) +
231 ") must be the same size");
232 }
233 // handle empty vector defaults
234 else if (forwardIsParamValid(param1) || forwardIsParamValid(param2))
235 if (forwardGetParam<std::vector<T>>(param1).size() ||
236 forwardGetParam<std::vector<S>>(param2).size())
237 checkParamsBothSetOrNotSet(param1, param2);
238}

◆ checkVectorParamsSameLengthIfSet()

void InputParametersChecksUtils< PhysicsBase >::checkVectorParamsSameLengthIfSet ( const std::string &  param1,
const std::string &  param2,
const bool  ignore_empty_default_param2 = false 
) const
protectedinherited

Check that two vector parameters are the same length if both are set.

Parameters
param1first vector parameter to check the size of
param2second vector parameter to check the size of

Definition at line 104 of file InputParametersChecksUtils.h.

439{
440 assertParamDefined<std::vector<T>>(param1);
441 assertParamDefined<std::vector<S>>(param2);
442
443 if (forwardIsParamValid(param1) && forwardIsParamValid(param2))
444 {
445 const auto size_1 = forwardGetParam<std::vector<T>>(param1).size();
446 const auto size_2 = forwardGetParam<std::vector<S>>(param2).size();
447 if (ignore_empty_default_param2 && (size_2 == 0) && !forwardIsParamSetByUser(param2))
448 return;
449 if (size_1 != size_2)
450 forwardParamError(param1,
451 "Parameter '" + param1 + "' (size " + std::to_string(size_1) + ") and '" +
452 param2 + "' (size " + std::to_string(size_2) +
453 ") must be the same size if set.");
454 }
455}

◆ connectControllableParams()

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

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

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

Definition at line 77 of file MooseBase.C.

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

◆ copyVariablesFromMesh()

void PhysicsBase::copyVariablesFromMesh ( const std::vector< VariableName > &  variables_to_copy,
bool  are_nonlinear = true 
)
protectedinherited

Copy nonlinear or aux variables from the mesh file.

Parameters
variables_to_copyNonlinear or aux (not a mix) variables
are_nonlinearTrue if variables_to_copy are nonlinear; else, aux

Definition at line 426 of file PhysicsBase.C.

428{
429 if (getParam<bool>("initialize_variables_from_mesh_file"))
430 {
431 mooseInfoRepeated("Adding Exodus restart for " + std::to_string(variables_to_copy.size()) +
432 " variables: " + Moose::stringify(variables_to_copy));
433 // TODO Check that the variable types and orders are actually supported for exodus restart
434 for (const auto i : index_range(variables_to_copy))
435 {
436 SystemBase & system = are_solver_var ? getProblem().getSystemBase(_system_numbers.size() == 1
437 ? _system_numbers[0]
438 : _system_numbers[i])
439 : getProblem().systemBaseAuxiliary();
440 const auto & var_name = variables_to_copy[i];
441 system.addVariableToCopy(
442 var_name, var_name, getParam<std::string>("initial_from_file_timestep"));
443 }
444 }
445}
virtual const SystemBase & getSystemBase(const unsigned int sys_num) const
Get constant reference to a system in this problem.
Base class for a system (of equations)
Definition SystemBase.h:87
virtual void addVariableToCopy(const std::string &dest_name, const std::string &source_name, const std::string &timestep)
Add info about variable that will be copied.

Referenced by PhysicsBase::act().

◆ dimension()

unsigned int PhysicsBase::dimension ( ) const
inherited

Return the maximum dimension of the blocks the Physics is active on.

Definition at line 272 of file PhysicsBase.C.

273{
274 mooseAssert(_mesh, "We dont have a mesh yet");
275 mooseAssert(_dim < 4, "Dimension has not been set yet");
276 return _dim;
277}

◆ errorDependentParameter()

void InputParametersChecksUtils< PhysicsBase >::errorDependentParameter ( const std::string &  param1,
const std::string &  value_not_set,
const std::vector< std::string > &  dependent_params 
) const
protectedinherited

Error messages for parameters that should depend on another parameter.

Parameters
param1the parameter has not been set to the desired value (for logging purposes)
value_not_setthe desired value (for logging purposes)
dependent_paramsall the parameters that should not have been since 'param1' was not set to 'value_not_set'

Definition at line 137 of file InputParametersChecksUtils.h.

566{
567 for (const auto & dependent_param : dependent_params)
568 if (forwardIsParamSetByUser(dependent_param))
569 forwardParamError(dependent_param,
570 "Parameter '" + dependent_param +
571 "' should not be set by the user if parameter '" + param1 +
572 "' has not been set to '" + value_not_set + "'");
573}

◆ errorInconsistentDependentParameter()

void InputParametersChecksUtils< PhysicsBase >::errorInconsistentDependentParameter ( const std::string &  param1,
const std::string &  value_set,
const std::vector< std::string > &  dependent_params 
) const
protectedinherited

Error messages for parameters that should depend on another parameter but with a different error message.

Parameters
param1the parameter has not been set to the desired value (for logging purposes)
value_setthe value it has been set to and which is not appropriate (for logging purposes)
dependent_paramsall the parameters that should not have been set since 'param1' was set to 'value_set'

Definition at line 144 of file InputParametersChecksUtils.h.

581{
582 for (const auto & dependent_param : dependent_params)
583 if (forwardIsParamSetByUser(dependent_param))
584 forwardParamError(dependent_param,
585 "Parameter '" + dependent_param +
586 "' should not be set by the user if parameter '" + param1 +
587 "' has been set to '" + value_set + "'");
588}

◆ errorPrefix()

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

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

Definition at line 264 of file MooseBase.h.

264{ return messagePrefix(); }

◆ flagInvalidSolutionInternal()

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

Set solution invalid mark for the given solution ID.

Definition at line 41 of file SolutionInvalidInterface.C.

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

◆ forwardBlocks()

const std::vector< SubdomainName > & InputParametersChecksUtils< PhysicsBase >::forwardBlocks ( ) const
inlineprivateinherited

Get the blocks for the class using this utility.

Definition at line 192 of file InputParametersChecksUtils.h.

193 {
194 // TODO Use SFINAE to create a version for classes that do not define blocks()
195 // TODO Use SFINAE to force blocks() to return a reference as well
196 return _customer_class->blocks();
197 }

◆ forwardGetParam()

const T & InputParametersChecksUtils< PhysicsBase >::forwardGetParam ( const std::string &  param_name) const
inlineprivateinherited

Forwards parameter check to the class using this utility.

Definition at line 153 of file InputParametersChecksUtils.h.

154 {
155 return _customer_class->template getParam<T>(param_name);
156 }

◆ forwardIsParamSetByUser()

bool InputParametersChecksUtils< PhysicsBase >::forwardIsParamSetByUser ( const std::string &  param_name) const
inlineprivateinherited

Forwards parameter check to the class using this utility.

Definition at line 160 of file InputParametersChecksUtils.h.

161 {
162 return _customer_class->isParamSetByUser(param_name);
163 }

◆ forwardIsParamValid()

bool InputParametersChecksUtils< PhysicsBase >::forwardIsParamValid ( const std::string &  param_name) const
inlineprivateinherited

Forwards parameter check to the class using this utility.

Definition at line 165 of file InputParametersChecksUtils.h.

166 {
167 return _customer_class->isParamValid(param_name);
168 }

◆ forwardMooseError()

void InputParametersChecksUtils< PhysicsBase >::forwardMooseError ( Args &&...  args) const
inlineprivateinherited

Forwards error to the class using this utility to get better error messages.

Definition at line 177 of file InputParametersChecksUtils.h.

178 {
179 _customer_class->mooseError(std::forward<Args>(args)...);
180 }

◆ forwardMooseWarning()

void InputParametersChecksUtils< PhysicsBase >::forwardMooseWarning ( Args &&...  args) const
inlineprivateinherited

Forwards warning to the class using this utility to get better error messages.

Definition at line 183 of file InputParametersChecksUtils.h.

184 {
185 _customer_class->mooseWarning(std::forward<Args>(args)...);
186 }

◆ forwardName()

virtual const std::string & InputParametersChecksUtils< PhysicsBase >::forwardName ( ) const
inlineprivatevirtualinherited

Get the name of the class using this utility.

Definition at line 190 of file InputParametersChecksUtils.h.

190{ return _customer_class->name(); }

◆ forwardParamError()

void InputParametersChecksUtils< PhysicsBase >::forwardParamError ( Args &&...  args) const
inlineprivateinherited

Forwards error to the class using this utility to get better error messages.

Definition at line 171 of file InputParametersChecksUtils.h.

172 {
173 _customer_class->paramError(std::forward<Args>(args)...);
174 }

◆ forwardParameters()

const InputParameters & InputParametersChecksUtils< PhysicsBase >::forwardParameters ( ) const
inlineprivateinherited

Forwards obtaining parameters to the class using this utility.

Definition at line 158 of file InputParametersChecksUtils.h.

158{ return _customer_class->parameters(); }

◆ forwardType()

const std::string & InputParametersChecksUtils< PhysicsBase >::forwardType ( ) const
inlineprivateinherited

Get the type of the class using this utility.

Definition at line 188 of file InputParametersChecksUtils.h.

188{ return _customer_class->type(); }

◆ getActionComponent()

const ActionComponent & PhysicsBase::getActionComponent ( const ComponentName &  comp_name) const
inherited

Get a component with the requested name.

Definition at line 345 of file PhysicsBase.C.

346{
347 return _awh.getAction<ActionComponent>(comp_name);
348}
Base class for components that are defined using an action.
const T & getAction(const std::string &name) const
Retrieve an action with its name and the desired type.
ActionWarehouse & _awh
Reference to ActionWarehouse where we store object build by actions.
Definition Action.h:169

Referenced by DiffusionPhysicsBase::addInitialConditions(), and DiffusionPhysicsBase::addInitialConditionsFromComponents().

◆ getAdditionalRMParams()

InputParameters DiffusionFV::getAdditionalRMParams ( ) const
overrideprivatevirtual

Provide additional parameters for the relationship managers.

Reimplemented from PhysicsBase.

Definition at line 198 of file DiffusionFV.C.

199{
200 const auto necessary_layers =
201 std::max(getParam<unsigned short>("ghost_layers"), (unsigned short)2);
202
203 // Just an object that has a ghost_layers parameter
204 const std::string kernel_type = "FVDiffusion";
205 InputParameters params = getFactory().getValidParams(kernel_type);
206 params.template set<unsigned short>("ghost_layers") = necessary_layers;
207
208 return params;
209}

◆ getAllTasks()

const std::set< std::string > & Action::getAllTasks ( ) const
inlineinherited

Definition at line 112 of file Action.h.

112{ return _all_tasks; }

Referenced by AddKernelAction::act().

◆ getBase()

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

Definition at line 147 of file MooseBase.h.

147{ return _pars.getBase(); }

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

◆ getCheckedPointerParam()

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

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

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

Definition at line 450 of file MooseBase.h.

451{
452 return _pars.getCheckedPointerParam<T>(name, error_string);
453}
T getCheckedPointerParam(const std::string &name, const std::string &error_string="") const
Verifies that the requested parameter exists and is not NULL and returns it to the caller.

◆ getCoupledPhysics() [1/2]

template<typename T >
const std::vector< T * > PhysicsBase::getCoupledPhysics ( const bool  allow_fail = false) const
inherited

Get all Physics from the ActionWarehouse with the requested type.

Definition at line 391 of file PhysicsBase.h.

392{
393 constexpr bool is_physics = std::is_base_of<PhysicsBase, T>::value;
394 libmesh_ignore(is_physics);
395 mooseAssert(is_physics, "Must be a PhysicsBase to be retrieved by getCoupledPhysics");
396 const auto all_T_physics = _awh.getActions<T>();
397 if (!allow_fail && all_T_physics.empty())
398 mooseError("No Physics of requested type '", MooseUtils::prettyCppType<T>(), "'");
399 else
400 return all_T_physics;
401}
std::vector< const T * > getActions()
Retrieve all actions in a specific type ordered by their names.
void libmesh_ignore(const Args &...)

◆ getCoupledPhysics() [2/2]

template<typename T >
const T * PhysicsBase::getCoupledPhysics ( const PhysicsName &  phys_name,
const bool  allow_fail = false 
) const
inherited

Get a Physics from the ActionWarehouse with the requested type and name.

Parameters
phys_namename of the Physics to retrieve
allow_failwhether to allow returning a nullptr if the physics does not exist

Definition at line 368 of file PhysicsBase.h.

369{
370 constexpr bool is_physics = std::is_base_of<PhysicsBase, T>::value;
371 libmesh_ignore(is_physics);
372 mooseAssert(is_physics, "Must be a PhysicsBase to be retrieved by getCoupledPhysics");
373 const auto all_T_physics = _awh.getActions<T>();
374 for (const auto * const physics : all_T_physics)
375 {
376 if (physics->name() == phys_name)
377 return physics;
378 }
379 if (!allow_fail)
380 mooseError("Requested Physics '",
381 phys_name,
382 "' does not exist or is not of type '",
383 MooseUtils::prettyCppType<T>(),
384 "'");
385 else
386 return nullptr;
387}

◆ getDataFileName()

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

Deprecated method.

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

Definition at line 21 of file DataFileInterface.C.

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

◆ getDataFileNameByName()

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

Deprecated method.

Use getDataFilePath() instead.

Definition at line 31 of file DataFileInterface.C.

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

◆ getDataFilePath()

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

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

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

Definition at line 40 of file DataFileInterface.C.

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

Referenced by DataFileInterface::getDataFileNameByName().

◆ getFactory() [1/2]

Factory & PhysicsBase::getFactory ( )
inlineprotectedinherited

◆ getFactory() [2/2]

Factory & PhysicsBase::getFactory ( ) const
inlineprotectedinherited

Definition at line 127 of file PhysicsBase.h.

127{ return _factory; }

◆ getHitNode() [1/2]

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

Definition at line 136 of file MooseBase.h.

136{ return getHitNode(_pars); }

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

◆ getHitNode() [2/2]

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

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

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

Definition at line 167 of file MooseBase.C.

168{
169 if (const auto hit_node = params.getHitNode())
170 if (!hit_node->isRoot())
171 return hit_node;
172 return nullptr;
173}

◆ getMeshProperty() [1/2]

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

Definition at line 64 of file MeshMetaDataInterface.h.

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

◆ getMeshProperty() [2/2]

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

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

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

Definition at line 142 of file MeshMetaDataInterface.h.

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

◆ getMeshPropertyInternal()

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

Helper for getting a mesh property.

Definition at line 54 of file MeshMetaDataInterface.C.

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

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

◆ getMooseApp()

MooseApp & MooseBase::getMooseApp ( ) const
inlineinherited

Get the MooseApp this class is associated with.

Definition at line 87 of file MooseBase.h.

87{ return _app; }

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

◆ getParam() [1/2]

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

Retrieve a parameter for the object.

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

Definition at line 406 of file MooseBase.h.

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

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

◆ getParam() [2/2]

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

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

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

Definition at line 443 of file MooseBase.h.

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

◆ getProblem() [1/2]

virtual FEProblemBase & PhysicsBase::getProblem ( )
inlineprotectedvirtualinherited

◆ getProblem() [2/2]

virtual const FEProblemBase & PhysicsBase::getProblem ( ) const
inlineprotectedvirtualinherited

Definition at line 135 of file PhysicsBase.h.

136 {
137 mooseAssert(_problem, "Requesting the problem too early");
138 return *_problem;
139 }

◆ getRenamedParam()

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

Retrieve a renamed parameter for the object.

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

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

Definition at line 420 of file MooseBase.h.

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

◆ getSolverSystem() [1/2]

const SolverSystemName & PhysicsBase::getSolverSystem ( const VariableName &  variable_name) const
protectedinherited

Get the solver system for this variable name.

Definition at line 479 of file PhysicsBase.C.

480{
481 mooseAssert(!_system_names.empty(), "We should have a solver system name");
482 // No need to look if only one system for the Physics
483 if (_system_names.size() == 1)
484 return _system_names[0];
485
486 // We trust that the system names and the variable names match one-to-one as it is enforced by
487 // the checkIntegrityEarly() routine.
488 for (const auto variable_index : index_range(_solver_var_names))
489 if (var_name == _solver_var_names[variable_index])
490 return _system_names[variable_index];
491 mooseError("Variable '", var_name, "' was not found within the Physics solver variables.");
492}

◆ getSolverSystem() [2/2]

const SolverSystemName & PhysicsBase::getSolverSystem ( unsigned int  variable_index) const
protectedinherited

Get the solver system for this variable index.

The index should be the index of the variable in solver var_names (currently _solver_var_names) vector

Definition at line 467 of file PhysicsBase.C.

468{
469 mooseAssert(!_system_names.empty(), "We should have a solver system name");
470 if (_system_names.size() == 1)
471 return _system_names[0];
472 else
473 // We trust that the system names and the variable names match one-to-one as it is enforced by
474 // the checkIntegrityEarly() routine.
475 return _system_names[variable_index];
476}

Referenced by DiffusionCG::addSolverVariables(), and addSolverVariables().

◆ getSubdomainIDs()

std::set< SubdomainID > PhysicsBase::getSubdomainIDs ( const std::set< SubdomainName > &  blocks) const
protectedinherited

Get the set of subdomain ids for the incoming vector of subdomain names.

Definition at line 280 of file PhysicsBase.C.

281{
282 const bool not_block_restricted =
283 (std::find(blocks.begin(), blocks.end(), "ANY_BLOCK_ID") != blocks.end()) ||
285 mooseAssert(_mesh, "Should have a mesh");
286 // use a set for simplicity. Note that subdomain names are unique, except maybe the empty one,
287 // which cannot be specified by the user to the Physics.
288 // MooseMesh::getSubdomainIDs cannot deal with the 'ANY_BLOCK_ID' name
289 std::set<SubdomainID> block_ids_set =
290 not_block_restricted ? _mesh->meshSubdomains() : _mesh->getSubdomainIDs(blocks);
291 return block_ids_set;
292}

Referenced by PhysicsBase::shouldCreateIC(), and PhysicsBase::shouldCreateTimeDerivative().

◆ getSubdomainNamesAndIDs()

std::vector< std::string > PhysicsBase::getSubdomainNamesAndIDs ( const std::set< SubdomainID > &  blocks) const
protectedinherited

Get the vector of subdomain names and ids for the incoming set of subdomain IDs.

Definition at line 295 of file PhysicsBase.C.

296{
297 mooseAssert(_mesh, "Should have a mesh");
298 std::vector<std::string> sub_names_ids;
299 sub_names_ids.reserve(blocks.size());
300 for (const auto bid : blocks)
301 {
302 const auto bname = _mesh->getSubdomainName(bid);
303 sub_names_ids.push_back((bname.empty() ? "(unnamed)" : bname) + " (" + std::to_string(bid) +
304 ")");
305 }
306 return sub_names_ids;
307}

Referenced by PhysicsBase::shouldCreateIC(), and PhysicsBase::shouldCreateTimeDerivative().

◆ getSuppliedUserObjects()

virtual std::vector< UserObjectName > PhysicsBase::getSuppliedUserObjects ( ) const
inlinevirtualinherited

Return the names of the UserObjects this Physics adds to the problem.

A Physics that adds a UserObject that another object may reference in its constructor must declare that UserObject's name here so the construction order can be resolved regardless of input file order. This is consulted before the 'add_user_object' task runs, so it must be computable without adding the objects (i.e. from the Physics name, blocks and variables, all known after init_physics). The default is empty: a Physics that adds no such UserObject need not override.

Definition at line 118 of file PhysicsBase.h.

118{ return {}; }

Referenced by PhysicsBase::addUserObject().

◆ hasBase()

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

Definition at line 142 of file MooseBase.h.

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

◆ hasBlocks()

bool PhysicsBase::hasBlocks ( const std::vector< SubdomainName > &  blocks) const
inherited

Whether the Physics is defined on those blocks.

Parameters
blocksthe blocks to check

Definition at line 571 of file PhysicsBase.C.

572{
573 mooseAssert(_blocks.size(), "hasBlocks called before blocks were initialized");
574 return std::all_of(blocks.begin(),
575 blocks.end(),
576 [this](const SubdomainName & block)
577 { return std::find(_blocks.begin(), _blocks.end(), block) != _blocks.end(); });
578}

◆ hasMeshProperty() [1/4]

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

Definition at line 82 of file MeshMetaDataInterface.h.

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

◆ hasMeshProperty() [2/4]

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

Definition at line 90 of file MeshMetaDataInterface.h.

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

◆ hasMeshProperty() [3/4]

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

Definition at line 33 of file MeshMetaDataInterface.C.

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

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

◆ hasMeshProperty() [4/4]

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

Definition at line 166 of file MeshMetaDataInterface.h.

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

◆ initializePhysics()

void PhysicsBase::initializePhysics ( )
privateinherited

Process some parameters that require the problem to be created. Executed on init_physics.

Definition at line 351 of file PhysicsBase.C.

352{
353 // Annoying edge case. We cannot use ANY_BLOCK_ID for kernels and variables since errors got
354 // added downstream for using it, we cannot leave it empty as that sets all objects to not live
355 // on any block
356 if (isParamSetByUser("block") && _blocks.empty())
357 paramError("block",
358 "Empty block restriction is not supported. Comment out the Physics if you are "
359 "trying to disable it.");
360
361 // Components should have added their blocks already.
362 if (_blocks.empty())
363 _blocks.push_back("ANY_BLOCK_ID");
364
365 mooseAssert(_mesh, "We should have a mesh to find the dimension");
366 if (_blocks.size())
367 _dim = _mesh->getBlocksMaxDimension(_blocks);
368 else
369 _dim = _mesh->dimension();
370
371 // Forward physics verbosity to problem to output the setup
372 if (_verbose)
374
375 // If the derived physics need additional initialization very early on
377
378 // Check that the systems exist in the Problem
379 // TODO: try to add the systems to the problem from here instead
380 // NOTE: this must be performed after the "Additional" initialization because the list
381 // of systems might have been adjusted once the dimension of the Physics is known
382 const auto & problem_nl_systems = getProblem().getNonlinearSystemNames();
383 const auto & problem_lin_systems = getProblem().getLinearSystemNames();
384 for (const auto & sys_name : _system_names)
385 if (std::find(problem_nl_systems.begin(), problem_nl_systems.end(), sys_name) ==
386 problem_nl_systems.end() &&
387 std::find(problem_lin_systems.begin(), problem_lin_systems.end(), sys_name) ==
388 problem_lin_systems.end() &&
389 solverVariableNames().size())
390 mooseError("System '", sys_name, "' is not found in the Problem");
391
392 // Cache system number as it makes some logic easier
393 for (const auto & sys_name : _system_names)
394 _system_numbers.push_back(getProblem().solverSysNum(sys_name));
395}
void setVerboseProblem(bool verbose)
Make the problem be verbose.
const std::vector< LinearSystemName > & getLinearSystemNames() const
const std::vector< NonlinearSystemName > & getNonlinearSystemNames() const
virtual void initializePhysicsAdditional()
Additional initialization work that should happen very early, as soon as the problem is created.
const bool _verbose
Whether to output additional information.

Referenced by PhysicsBase::act().

◆ initializePhysicsAdditional()

void DiffusionFV::initializePhysicsAdditional ( )
overrideprivatevirtual

Additional initialization work that should happen very early, as soon as the problem is created.

Reimplemented from PhysicsBase.

Definition at line 41 of file DiffusionFV.C.

42{
44}
virtual void needFV() override
marks this problem as including/needing finite volume functionality.

◆ isParamSetByUser()

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

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

Parameters
nameThe name of the parameter to test

Definition at line 205 of file MooseBase.h.

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

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

◆ isParamValid()

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

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 199 of file MooseBase.h.

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

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

◆ isTransient()

bool PhysicsBase::isTransient ( ) const
protectedinherited

Return whether the Physics is solved using a transient.

Definition at line 260 of file PhysicsBase.C.

261{
262 mooseAssert(_problem, "We don't have a problem yet");
263 if (_is_transient == "true")
264 return true;
265 else if (_is_transient == "false")
266 return false;
267 else
268 return getProblem().isTransient();
269}
virtual bool isTransient() const override

Referenced by PhysicsBase::checkIntegrityEarly(), and PhysicsBase::shouldCreateTimeDerivative().

◆ isVariableFV()

bool PhysicsBase::isVariableFV ( const VariableName &  var_name) const
protectedinherited

Whether the variable is a finite volume variable.

Definition at line 626 of file PhysicsBase.C.

627{
628 const auto var = &_problem->getVariable(0, var_name);
629 return var->isFV();
630}

Referenced by PhysicsBase::shouldCreateIC().

◆ isVariableScalar()

bool PhysicsBase::isVariableScalar ( const VariableName &  var_name) const
protectedinherited

Whether the variable is a scalar variable (global single scalar, not a field)

Definition at line 633 of file PhysicsBase.C.

634{
635 return _problem->hasScalarVariable(var_name);
636}

Referenced by PhysicsBase::shouldCreateIC(), and PhysicsBase::shouldCreateTimeDerivative().

◆ meshPropertyName() [1/2]

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

Definition at line 103 of file MeshMetaDataInterface.h.

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

◆ meshPropertyName() [2/2]

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

Definition at line 41 of file MeshMetaDataInterface.C.

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

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

◆ meshPropertyPrefix()

std::string MeshMetaDataInterface::meshPropertyPrefix ( const std::string &  data_name) const
privatevirtualinherited

The default prefix to use for getting/seeing if mesh properties exist.

For now, this is not supported except in MeshGenerators. In the future, we will automate looking for mesh properties.

Reimplemented in MeshGenerator.

Definition at line 47 of file MeshMetaDataInterface.C.

48{
49 mooseError("This object does not support obtaining a mesh property without a prefix.\n\nThis "
50 "capability is upcoming.");
51}
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311

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

◆ messagePrefix() [1/2]

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

Definition at line 256 of file MooseBase.h.

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

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

◆ messagePrefix() [2/2]

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

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

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

Definition at line 140 of file MooseBase.C.

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

◆ mooseDeprecated() [1/2]

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

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

Definition at line 317 of file MooseBase.h.

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

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

◆ mooseDeprecated() [2/2]

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

◆ mooseDeprecatedNoTrace()

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

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

Definition at line 327 of file MooseBase.h.

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

◆ mooseDocumentedError()

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

Definition at line 277 of file MooseBase.h.

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

Referenced by ManifoldSubdomainGenerator::ManifoldSubdomainGenerator().

◆ mooseError()

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

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

Definition at line 271 of file MooseBase.h.

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

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

◆ mooseErrorInternal()

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

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

Definition at line 132 of file MeshMetaDataInterface.h.

133 {
135 _meta_data_object->mooseError(std::forward<Args>(args)...);
136 mooseError(std::forward<Args>(args)...);
137 }
const MooseObject *const _meta_data_object
The MooseObject (if any); used for better error handling.

Referenced by MeshMetaDataInterface::getMeshProperty().

◆ mooseErrorNonPrefixed()

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

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

Definition at line 290 of file MooseBase.h.

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

◆ mooseInfo()

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

◆ mooseWarning() [1/2]

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

Emits a warning prefixed with object name and type.

Definition at line 299 of file MooseBase.h.

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

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

◆ mooseWarning() [2/2]

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

Definition at line 73 of file SolutionInvalidInterface.h.

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

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

◆ mooseWarningNonPrefixed() [1/2]

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

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

Definition at line 308 of file MooseBase.h.

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

◆ mooseWarningNonPrefixed() [2/2]

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

Definition at line 80 of file SolutionInvalidInterface.h.

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

◆ name()

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

Get the name of the class.

Returns
The name of the class

Definition at line 103 of file MooseBase.h.

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

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

◆ paramError()

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

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

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

Definition at line 457 of file MooseBase.h.

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

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

◆ parameterConsistent()

bool InputParametersChecksUtils< PhysicsBase >::parameterConsistent ( const InputParameters other_param,
const std::string &  param_name 
) const
protectedinherited

Return whether two parameters are consistent.

Parameters
other_paramInputParameters object from another object to check the 'param_name' parameter in
param_namethe name of the parameter to check for consistency

Definition at line 126 of file InputParametersChecksUtils.h.

462{
463 assertParamDefined<T>(param_name);
464 mooseAssert(other_param.have_parameter<T>(param_name),
465 "This should have been a parameter from the parameters being compared");
466 bool consistent = true;
467 if (forwardParameters().isParamValid(param_name) && other_param.isParamValid(param_name))
468 {
469 if constexpr (std::is_same_v<MooseEnum, T>)
470 {
471 if (!forwardGetParam<T>(param_name).compareCurrent(other_param.get<T>(param_name)))
472 consistent = false;
473 }
474 else if (forwardGetParam<T>(param_name) != other_param.get<T>(param_name))
475 consistent = false;
476 }
477 return consistent;
478}
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.

◆ parameters()

const InputParameters & MooseBase::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 131 of file MooseBase.h.

131{ return _pars; }

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

◆ paramInfo()

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

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

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

Definition at line 471 of file MooseBase.h.

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

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

◆ paramWarning() [1/2]

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

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

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

Definition at line 464 of file MooseBase.h.

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

◆ paramWarning() [2/2]

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

◆ perfGraph()

PerfGraph & PerfGraphInterface::perfGraph ( )
inherited

Get the PerfGraph.

Definition at line 86 of file PerfGraphInterface.C.

87{
88 return _pg_moose_app.perfGraph();
89}
PerfGraph & perfGraph()
Get the PerfGraph for this app.
Definition MooseApp.h:179
MooseApp & _pg_moose_app
The MooseApp that owns the PerfGraph.

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

◆ prefix()

std::string PhysicsBase::prefix ( ) const
inlineprotectedinherited

◆ prepareCopyVariablesFromMesh()

void PhysicsBase::prepareCopyVariablesFromMesh ( ) const
protectedinherited

Tell the app if we want to use Exodus restart.

Definition at line 250 of file PhysicsBase.C.

251{
252 if (getParam<bool>("initialize_variables_from_mesh_file"))
254
255 checkSecondParamSetOnlyIfFirstOneTrue("initialize_variables_from_mesh_file",
256 "initial_from_file_timestep");
257}
void checkSecondParamSetOnlyIfFirstOneTrue(const std::string &param1, const std::string &param2) const
Check that a parameter is set only if the first one is set to true.
void setExodusFileRestart(bool flag)
Set the flag to indicate whether or not we need to use a separate Exodus reader to read the mesh BEFO...
Definition MooseApp.h:430

Referenced by PhysicsBase::PhysicsBase().

◆ queryParam()

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

Query a parameter for the object.

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

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

Definition at line 413 of file MooseBase.h.

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

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

◆ registerInvalidSolutionInternal()

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

Definition at line 55 of file SolutionInvalidInterface.C.

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

◆ registerTimedSection() [1/2]

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

Call to register a named section for timing.

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

Definition at line 61 of file PerfGraphInterface.C.

63{
64 const auto timed_section_name = timedSectionName(section_name);
65 if (!moose::internal::getPerfGraphRegistry().sectionExists(timed_section_name))
66 return moose::internal::getPerfGraphRegistry().registerSection(timed_section_name, level);
67 else
68 return moose::internal::getPerfGraphRegistry().sectionID(timed_section_name);
69}
std::string timedSectionName(const std::string &section_name) const
PerfID sectionID(const std::string &section_name) const
Given a name return the PerfID @section_name The name of the section.
PerfID registerSection(const std::string &section_name, const unsigned int level)
Call to register a named section for timing.
PerfGraphRegistry & getPerfGraphRegistry()
Get the global PerfGraphRegistry singleton.

◆ registerTimedSection() [2/2]

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

Call to register a named section for timing.

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

Definition at line 72 of file PerfGraphInterface.C.

76{
77 const auto timed_section_name = timedSectionName(section_name);
78 if (!moose::internal::getPerfGraphRegistry().sectionExists(timed_section_name))
80 timedSectionName(section_name), level, live_message, print_dots);
81 else
82 return moose::internal::getPerfGraphRegistry().sectionID(timed_section_name);
83}

◆ reportPotentiallyMissedParameters()

void PhysicsBase::reportPotentiallyMissedParameters ( const std::vector< std::string > &  param_names,
const std::string &  object_type,
const std::string &  object_name = "" 
) const
protectedinherited

When this is called, we are knowingly not using the value of these parameters.

This routine checks whether these parameters simply have defaults or were passed by the user

Parameters
param_namesthe parameters we are ignoring
object_typethe type of the object we are not building (thus ignoring the parameters)
object_namethe name of the object we are not building

Definition at line 826 of file PhysicsBase.C.

829{
830 std::vector<std::string> defaults_unused;
831 std::vector<std::string> user_values_unused;
832 for (const auto & param : param_names)
833 {
834 if (isParamSetByUser(param))
835 user_values_unused.push_back(param);
836 else if (isParamValid(param))
837 defaults_unused.push_back(param);
838 }
839 const std::string object_name_string =
840 object_name.empty() ? "" : ("and name '" + object_name + "' ");
841
842 if (defaults_unused.size() && _verbose)
843 mooseInfoRepeated("Defaults for parameters '" + Moose::stringify(defaults_unused) +
844 "' for object of type '" + object_type + "' " + object_name_string +
845 "were not used because the object was not created by this Physics.");
846 if (user_values_unused.size())
847 {
850 "User-specifed values for parameters '" + Moose::stringify(user_values_unused) +
851 "' for object of type '" + object_type + "' " + object_name_string +
852 "were not used because the corresponding object was not created by this Physics.");
853 else if (_app.unusedFlagIsError())
854 mooseError("User-specified values for parameters '" + Moose::stringify(user_values_unused) +
855 "' for object of type '" + object_type + "' " + object_name_string +
856 "were not used because the corresponding object was not created by this Physics.");
857 }
858}
bool unusedFlagIsError() const
Returns whether the flag for unused parameters is set to throw an error.
Definition MooseApp.h:1120
bool unusedFlagIsWarning() const
Returns whether the flag for unused parameters is set to throw a warning only.
Definition MooseApp.h:1117

Referenced by DiffusionCG::addSolverVariables(), and addSolverVariables().

◆ saveAuxVariableName()

void PhysicsBase::saveAuxVariableName ( const VariableName &  var_name)
inlineprotectedinherited

Keep track of the name of an aux variable defined in the Physics.

Definition at line 171 of file PhysicsBase.h.

171{ _aux_var_names.push_back(var_name); }

◆ saveSolverVariableName()

void PhysicsBase::saveSolverVariableName ( const VariableName &  var_name)
inlineprotectedinherited

Keep track of the name of the solver variable defined in the Physics.

Definition at line 166 of file PhysicsBase.h.

167 {
168 _solver_var_names.push_back(var_name);
169 }

Referenced by DiffusionPhysicsBase::DiffusionPhysicsBase().

◆ shouldCreateIC()

bool PhysicsBase::shouldCreateIC ( const VariableName &  var_name,
const std::vector< SubdomainName > &  blocks,
const bool  ic_is_default_ic,
const bool  error_if_already_defined 
) const
protectedinherited

Returns whether this Physics should create the variable.

Will return false if the initial condition already exists and has the necessary block restriction.

Parameters
var_namename of the variable
blocksblock restriction to use. If empty, no block restriction
ic_is_default_icwhether this IC is from a default parameter, and therefore should be skipped when recovering/restarting
error_if_already_definedtwo ICs cannot be defined on the same subdomain, so if this is set to true, any overlap between the subdomains of two ICs for the same variable will cause an error. If set to false, the existing ICs will take priority, and this routine will return false. Setting 'error_if_already_defined' to '!ic_is_default_ic' is a good idea if it is ok to overwrite the default IC value of the Physics.

Definition at line 663 of file PhysicsBase.C.

667{
668 // Handle recover
669 if (ic_is_default_ic && (_app.isRestarting() || _app.isRecovering()))
670 return false;
671 // do not set initial conditions if we are loading fields from the mesh file
672 if (getParam<bool>("initialize_variables_from_mesh_file"))
673 return false;
674 // Different type of ICs, not block restrictable
675 mooseAssert(!isVariableScalar(var_name), "shouldCreateIC not implemented for scalar variables");
676
677 // Process the desired block restriction into a set of subdomain IDs
678 std::set<SubdomainName> blocks_set(blocks.begin(), blocks.end());
679 const auto blocks_ids_set = getSubdomainIDs(blocks_set);
680
681 // Check whether there are any ICs for this variable already in the problem
682 std::set<SubdomainID> blocks_ids_covered;
683 bool has_all_blocks;
684 if (isVariableFV(var_name))
685 {
686 has_all_blocks = _problem->getFVInitialConditionWarehouse().hasObjectsForVariableAndBlocks(
687 var_name, blocks_ids_set, blocks_ids_covered, /*tid =*/0);
688 // FV variables can be initialized by non-FV ICs
689 std::set<SubdomainID> blocks_ids_covered_fe;
690 const bool has_all_blocks_from_feics =
691 _problem->getInitialConditionWarehouse().hasObjectsForVariableAndBlocks(
692 var_name, blocks_ids_set, blocks_ids_covered_fe, /*tid =*/0);
693 // Note we are missing the case with complete but split coverage
694 has_all_blocks = has_all_blocks || has_all_blocks_from_feics;
695 blocks_ids_covered.insert(blocks_ids_covered_fe.begin(), blocks_ids_covered_fe.end());
696 }
697 else
698 has_all_blocks = _problem->getInitialConditionWarehouse().hasObjectsForVariableAndBlocks(
699 var_name, blocks_ids_set, blocks_ids_covered, /*tid =*/0);
700
701 const bool has_some_blocks = !blocks_ids_covered.empty();
702 if (!has_some_blocks)
703 return true;
704
705 if (has_all_blocks)
706 {
707 if (error_if_already_defined)
708 mooseError("ICs for variable '" + var_name + "' have already been defined for blocks '" +
709 Moose::stringify(blocks) + "'.");
710 else
711 return false;
712 }
713
714 // Partial overlap between Physics is not implemented.
715 mooseError("There is a partial overlap between the subdomains covered by pre-existing initial "
716 "conditions (ICs), defined on blocks (ids): " +
717 Moose::stringify(getSubdomainNamesAndIDs(blocks_ids_covered)) +
718 "\n and a newly created IC for variable '" + var_name +
719 "', to be defined on blocks: " + Moose::stringify(blocks) +
720 ".\nWe should be creating the Physics' IC only for non-covered blocks. This is not "
721 "implemented at this time.");
722}
bool isRestarting() const
Whether or not this is a "restart" calculation.
Definition MooseApp.C:1675
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition MooseApp.C:1669
std::set< SubdomainID > getSubdomainIDs(const std::set< SubdomainName > &blocks) const
Get the set of subdomain ids for the incoming vector of subdomain names.
std::vector< std::string > getSubdomainNamesAndIDs(const std::set< SubdomainID > &blocks) const
Get the vector of subdomain names and ids for the incoming set of subdomain IDs.
bool isVariableScalar(const VariableName &var_name) const
Whether the variable is a scalar variable (global single scalar, not a field)
bool isVariableFV(const VariableName &var_name) const
Whether the variable is a finite volume variable.

Referenced by DiffusionPhysicsBase::addInitialConditions().

◆ shouldCreateTimeDerivative()

bool PhysicsBase::shouldCreateTimeDerivative ( const VariableName &  var_name,
const std::vector< SubdomainName > &  blocks,
const bool  error_if_already_defined 
) const
protectedinherited

Returns whether this Physics should create the variable.

Will return false if the time derivative kernel already exists and has the necessary block restriction.

Parameters
var_namename of the variable
blocksblock restriction to use. If empty, no block restriction
error_if_already_definedtwo time derivatives can be defined on the same subdomain, but it is usually not correct. So if this is set to true, any overlap between the subdomains of two time derivatives for the same variable will cause an error. If set to false, the existing time derivative will be deemed as sufficient, and this routine will return false.

Definition at line 725 of file PhysicsBase.C.

728{
729 // Follow the transient setting of the Physics
730 if (!isTransient())
731 return false;
732
733 // Variable is either nonlinear (FV/FE), nodal nonlinear (field of ODEs), linear, or scalar.
734 // The warehouses hosting the time kernels are different for each of these types
735 // Different type of time derivatives, not block restrictable
736 mooseAssert(!isVariableScalar(var_name),
737 "shouldCreateTimeDerivative not implemented for scalar variables");
738 mooseAssert(!_problem->hasAuxiliaryVariable(var_name),
739 "Should not be called with auxiliary variables");
740
741 // Get solver system type
742 const auto var = &_problem->getVariable(0, var_name);
743 const auto var_id = var->number();
744 const auto sys_num = var->sys().number();
745 const auto time_vector_tag =
746 (sys_num < _problem->numNonlinearSystems())
747 ? var->sys().timeVectorTag()
748 // this is not quite correct. Many kernels can contribute to RHS time vector on paper
749 : dynamic_cast<LinearSystem *>(&var->sys())->rightHandSideTimeVectorTag();
750
751 // We just use the warehouse, it should cover every time derivative object type
752 bool all_blocks_covered = true;
753 std::set<SubdomainID> blocks_ids_covered;
754 // we examine subdomain by subdomain, because mutiple kernels could be covering every block in
755 // the 'blocks' parameter
756 for (const auto & block : blocks)
757 {
758 std::vector<MooseObject *> time_kernels;
759 if (block != "ANY_BLOCK_ID")
760 {
761 const auto bid = _mesh->getSubdomainID(block);
762 _problem->theWarehouse()
763 .query()
764 .template condition<AttribSysNum>(sys_num)
765 .template condition<AttribVar>(var_id)
766 .template condition<AttribSubdomains>(bid)
767 // we use the time tag as a proxy for time derivatives
768 .template condition<AttribVectorTags>(time_vector_tag)
769 .queryInto(time_kernels);
770 }
771 else
772 _problem->theWarehouse()
773 .query()
774 .template condition<AttribSysNum>(sys_num)
775 .template condition<AttribVar>(var_id)
776 // we use the time tag as a proxy for time derivatives
777 .template condition<AttribVectorTags>(time_vector_tag)
778 .queryInto(time_kernels);
779
780 if (time_kernels.size())
781 {
782 if (block == "ANY_BLOCK_ID")
783 {
784 for (const auto & time_kernel : time_kernels)
785 if (const auto blk = dynamic_cast<BlockRestrictable *>(time_kernel))
786 blocks_ids_covered.insert(blk->blockIDs().begin(), blk->blockIDs().end());
787 }
788 else
789 blocks_ids_covered.insert(_mesh->getSubdomainID(block));
790 }
791 else
792 all_blocks_covered = false;
793 }
794
795 // From the set of covered blocks, see if the blocks we needed are found
796 if (all_blocks_covered)
797 {
798 std::set<SubdomainName> blocks_set(blocks.begin(), blocks.end());
799 const auto blocks_ids = getSubdomainIDs(blocks_set);
800 if (blocks_ids != blocks_ids_covered)
801 all_blocks_covered = false;
802 }
803 const bool has_some_blocks = !blocks_ids_covered.empty();
804 if (!has_some_blocks)
805 return true;
806 if (all_blocks_covered)
807 {
808 if (error_if_already_defined)
809 mooseError("A time kernel for variable '" + var_name +
810 "' has already been defined on blocks '" + Moose::stringify(blocks) + "'.");
811 else
812 return false;
813 }
814
815 // Partial overlap between Physics is not implemented.
816 mooseError("There is a partial overlap between the subdomains covered by pre-existing time "
817 "derivative kernel(s), defined on blocks (ids): " +
818 Moose::stringify(getSubdomainNamesAndIDs(blocks_ids_covered)) +
819 "\nand a newly created time derivative kernel for variable " + var_name +
820 ", to be defined on blocks: " + Moose::stringify(blocks) +
821 ".\nWe should be creating the Physics' time derivative only for non-covered "
822 "blocks. This is not implemented at this time.");
823}
An interface that restricts an object to subdomains via the 'blocks' input parameter.
Linear system to be solved.

Referenced by DiffusionCG::addFEKernels(), and addFVKernels().

◆ shouldCreateVariable()

bool PhysicsBase::shouldCreateVariable ( const VariableName &  var_name,
const std::vector< SubdomainName > &  blocks,
const bool  error_if_aux 
)
protectedinherited

Returns whether this Physics should create the variable.

Will return false if the variable already exists and has the necessary block restriction.

Parameters
var_namename of the variable
blocksblock restriction to use. If empty, no block restriction
error_if_auxerror if the variable is auxiliary

Definition at line 639 of file PhysicsBase.C.

642{
643 if (!variableExists(var_name, error_if_aux))
644 return true;
645 // check block restriction
646 auto & var = _problem->getVariable(0, var_name);
647 const bool not_block_restricted =
648 (std::find(blocks.begin(), blocks.end(), "ANY_BLOCK_ID") != blocks.end()) ||
650 if (!var.blockRestricted() || (!not_block_restricted && var.hasBlocks(blocks)))
651 return false;
652
653 // This is an edge case, which might warrant a warning
654 if (allMeshBlocks(var.blocks()) && not_block_restricted)
655 return false;
656 else
657 mooseError("Variable '" + var_name + "' already exists with subdomain restriction '" +
658 Moose::stringify(var.blocks()) + "' which does not include the subdomains '" +
659 Moose::stringify(blocks) + "', required for this Physics.");
660}
bool variableExists(const VariableName &var_name, bool error_if_aux) const
Check whether a variable already exists.

Referenced by DiffusionCG::addSolverVariables(), and addSolverVariables().

◆ solverVariableExists()

bool PhysicsBase::solverVariableExists ( const VariableName &  var_name) const
protectedinherited

Check whether a variable already exists and is a solver variable.

Definition at line 461 of file PhysicsBase.C.

462{
463 return _problem->hasSolverVariable(var_name);
464}

◆ solverVariableNames()

const std::vector< VariableName > & PhysicsBase::solverVariableNames ( ) const
inlineinherited

Return the list of solver (nonlinear + linear) variables in this physics.

Definition at line 104 of file PhysicsBase.h.

104{ return _solver_var_names; };

Referenced by PhysicsBase::act(), PhysicsComponentInterface::addComponent(), and PhysicsBase::initializePhysics().

◆ specificTaskName()

const std::string & Action::specificTaskName ( ) const
inlineinherited

Definition at line 110 of file Action.h.

110{ return _specific_task_name; }
std::string _specific_task_name
This member will only be populated if this Action instance is only designed to handle one task.
Definition Action.h:159

◆ timedAct()

void Action::timedAct ( )
inherited

The method called externally that causes the action to act()

Definition at line 76 of file Action.C.

77{
78 TIME_SECTION(_act_timer);
79
80 const auto parallel_verify = [libmesh_dbg_var(this)](const bool libmesh_dbg_var(before))
81 {
82#ifndef NDEBUG
83 const std::string value = this->typeAndName() + "_" + _current_task;
84 if (!comm().verify(value.size()) || !comm().verify(value))
85 mooseError("Parallel inconsistency found ",
86 before ? "before" : "after",
87 " executing task ",
89#endif
90 };
91
92 parallel_verify(true);
93
94 act();
95
96 parallel_verify(false);
97}
virtual void act()=0
Method to add objects to the simulation or perform other setup tasks.
PerfID _act_timer
Timers.
Definition Action.h:181
std::string typeAndName() const
Get the class's combined type and name; useful in error handling.
Definition MooseBase.C:57
const Parallel::Communicator & comm() const

Referenced by ActionWarehouse::executeActionsWithAction().

◆ timedSectionName()

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

Optionally adds a prefix if one is defined.

Definition at line 55 of file PerfGraphInterface.C.

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

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

◆ type()

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

Get the type of this class.

Returns
the name of the type of this class

Definition at line 93 of file MooseBase.h.

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

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

◆ typeAndName()

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

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

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

Definition at line 57 of file MooseBase.C.

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

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

◆ uniqueActionName()

MooseObjectName Action::uniqueActionName ( ) const
inlineinherited

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

Definition at line 108 of file Action.h.

108{ return uniqueName(); }

Referenced by NEML2Action::NEML2Action().

◆ uniqueName()

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

Definition at line 69 of file MooseBase.C.

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

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

◆ uniqueParameterName()

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

Definition at line 63 of file MooseBase.C.

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

◆ validParams()

InputParameters DiffusionFV::validParams ( )
static

Definition at line 20 of file DiffusionFV.C.

21{
23 params.addClassDescription("Add diffusion physics discretized with cell-centered finite volume");
24 // No kernel implemented in the framework for a material property diffusivity
25 params.suppressParameter<MaterialPropertyName>("diffusivity_matprop");
26 params.addRequiredParam<MooseFunctorName>("diffusivity_functor",
27 "Functor specifying the diffusivity");
28
29 params.addParam<unsigned short>(
30 "ghost_layers", 2, "Number of ghosting layers for distributed memory parallel calculations");
31 params.addParamNamesToGroup("ghost_layers", "Advanced");
32 return params;
33}
static InputParameters validParams()
void suppressParameter(const std::string &name)
This method suppresses an inherited parameter so that it isn't required or valid in the derived class...
void addParamNamesToGroup(const std::string &space_delim_names, const std::string group_name)
This method takes a space delimited list of parameter names and adds them to the specified group name...
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object.
void addRequiredParam(const std::string &name, const std::string &doc_string)
This method adds a parameter and documentation string to the InputParameters object that will be extr...
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump.

◆ variableExists()

bool PhysicsBase::variableExists ( const VariableName &  var_name,
bool  error_if_aux 
) const
protectedinherited

Check whether a variable already exists.

Definition at line 448 of file PhysicsBase.C.

449{
450 if (error_if_aux && _problem->getAuxiliarySystem().hasVariable(var_name))
451 mooseError("Variable '",
452 var_name,
453 "' is supposed to be nonlinear for physics '",
454 name(),
455 "' but it is already defined as auxiliary");
456 else
457 return _problem->hasVariable(var_name);
458}

Referenced by PhysicsBase::shouldCreateVariable().

◆ warnInconsistent()

void InputParametersChecksUtils< PhysicsBase >::warnInconsistent ( const InputParameters parameters,
const std::string &  param_name 
) const
protectedinherited

Emits a warning if two parameters are not equal to each other.

Parameters
other_paramInputParameters object from another object to check the 'param_name' parameter in
param_namethe name of the parameter to check for consistency

Definition at line 132 of file InputParametersChecksUtils.h.

551{
552 const bool consistent = parameterConsistent<T>(other_param, param_name);
553 if (!consistent)
554 forwardMooseWarning("Parameter " + param_name + " is inconsistent between Physics \"" +
555 forwardName() + "\" of type \"" + forwardType() +
556 "\" and the parameter set for \"" + other_param.getObjectName() +
557 "\" of type \"" + other_param.getObjectType() + "\"");
558}
void forwardMooseWarning(Args &&... args) const
Forwards warning to the class using this utility to get better error messages.

Member Data Documentation

◆ _act_timer

PerfID Action::_act_timer
protectedinherited

Timers.

Definition at line 181 of file Action.h.

Referenced by Action::timedAct().

◆ _action_factory

ActionFactory& ParallelParamObject::_action_factory
protectedinherited

◆ _all_tasks

std::set<std::string> Action::_all_tasks
protectedinherited

A list of all the tasks that this Action will satisfy.

Note: That this is not populated at construction time. However, all tasks will be added prior to act().

Definition at line 166 of file Action.h.

Referenced by Action::appendTask(), and Action::getAllTasks().

◆ _app

MooseApp& MooseBase::_app
protectedinherited

The MOOSE application this is associated with.

Definition at line 375 of file MooseBase.h.

Referenced by ElementIDOutputAction::act(), AdaptivityAction::act(), AddExecutorAction::act(), AddMeshGeneratorAction::act(), AddPeriodicBCAction::act(), AddRelationshipManager::act(), AddTimeStepperAction::act(), AutoCheckpointAction::act(), CheckIntegrityAction::act(), CombineComponentsMeshes::act(), CommonOutputAction::act(), ComposeTimeStepperAction::act(), CopyNodalVarsAction::act(), CouplingFunctorCheckAction::act(), CreateAddedMeshGenerators::act(), CreateExecutionerAction::act(), CreateProblemAction::act(), CreateProblemDefaultAction::act(), CSGOnlyAction::act(), DeclareLateReportersAction::act(), DisplayGhostingAction::act(), ExecuteMeshGenerators::act(), MaterialOutputAction::act(), MeshOnlyAction::act(), ReadExecutorParamsAction::act(), ResolveOptionalMaterialPropertiesAction::act(), SetAdaptivityOptionsAction::act(), SetupDebugAction::act(), SetupMeshAction::act(), SetupMeshCompleteAction::act(), SetupPredictorAction::act(), SetupRecoverFileBaseAction::act(), SetupTimeStepperAction::act(), SplitMeshAction::act(), Action::Action(), BatchMeshGeneratorAction::addMeshGenerators(), ComponentJunction::addMeshGenerators(), ComponentMeshTransformHelper::addMeshGenerators(), CylinderComponent::addMeshGenerators(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), AddActionComponentAction::addRelationshipManagers(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), CheckOutputAction::checkConsoleOutput(), CheckOutputAction::checkMaterialOutput(), CheckOutputAction::checkPerfLogOutput(), CheckOutputAction::checkVariableOutput(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), NEML2Action::NEML2Action(), PhysicsBase::prepareCopyVariablesFromMesh(), NEML2Action::printSummary(), PhysicsBase::reportPotentiallyMissedParameters(), MeshGeneratorComponent::setupComponent(), SetupMeshAction::setupMesh(), and PhysicsBase::shouldCreateIC().

◆ _aux_var_names

std::vector<VariableName> PhysicsBase::_aux_var_names
privateinherited

Vector of the aux variables in the Physics.

Definition at line 356 of file PhysicsBase.h.

Referenced by PhysicsBase::act(), PhysicsBase::auxVariableNames(), and PhysicsBase::saveAuxVariableName().

◆ _awh

ActionWarehouse& Action::_awh
protectedinherited

◆ _blocks

std::vector<SubdomainName> PhysicsBase::_blocks
protectedinherited

◆ _components_boundary_conditions

std::map<std::string, std::map<std::pair<VariableName, BoundaryName>, std::pair<MooseFunctorName, ComponentBoundaryConditionInterface::BoundaryConditionType> > > PhysicsComponentInterface::_components_boundary_conditions
protectedinherited

◆ _components_initial_conditions

std::map<std::string, std::map<VariableName, MooseFunctorName> > PhysicsComponentInterface::_components_initial_conditions
protectedinherited

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

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

Definition at line 31 of file ConsoleStreamInterface.h.

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

◆ _current_task

const std::string& Action::_current_task
protectedinherited

◆ _customer_class

const PhysicsBase * const InputParametersChecksUtils< PhysicsBase >::_customer_class
privateinherited

Definition at line 200 of file InputParametersChecksUtils.h.

◆ _dim

unsigned int PhysicsBase::_dim = libMesh::invalid_uint
privateinherited

Dimension of the physics, which we expect for now to be the dimension of the mesh NOTE: this is not known at construction time, only after initializePhysics which is a huge bummer.

Definition at line 360 of file PhysicsBase.h.

Referenced by PhysicsBase::addBlocks(), PhysicsBase::addBlocksById(), PhysicsBase::dimension(), and PhysicsBase::initializePhysics().

◆ _dirichlet_boundaries

const std::vector<BoundaryName>& DiffusionPhysicsBase::_dirichlet_boundaries
protectedinherited

Boundaries on which a Dirichlet boundary condition is applied.

Definition at line 40 of file DiffusionPhysicsBase.h.

Referenced by DiffusionCG::addFEBCs(), and addFVBCs().

◆ _displaced_mesh

std::shared_ptr<MooseMesh>& Action::_displaced_mesh
protectedinherited

◆ _factory

Factory& ParallelParamObject::_factory
protectedinherited

◆ _is_transient

MooseEnum PhysicsBase::_is_transient
privateinherited

Whether the physics is to be solved as a transient.

It can be advantageous to solve some physics directly to steady state

Definition at line 351 of file PhysicsBase.h.

Referenced by PhysicsBase::checkIntegrityEarly(), and PhysicsBase::isTransient().

◆ _mesh

std::shared_ptr<MooseMesh>& Action::_mesh
protectedinherited

◆ _meta_data_app

MooseApp& MeshMetaDataInterface::_meta_data_app
privateinherited

Reference to the application.

Definition at line 122 of file MeshMetaDataInterface.h.

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

◆ _meta_data_object

const MooseObject* const MeshMetaDataInterface::_meta_data_object
privateinherited

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

Definition at line 125 of file MeshMetaDataInterface.h.

Referenced by MeshMetaDataInterface::mooseErrorInternal().

◆ _name

const std::string& MooseBase::_name
protectedinherited

The name of this class.

Definition at line 381 of file MooseBase.h.

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

◆ _neumann_boundaries

const std::vector<BoundaryName>& DiffusionPhysicsBase::_neumann_boundaries
protectedinherited

Boundaries on which a Neumann boundary condition is applied.

Definition at line 38 of file DiffusionPhysicsBase.h.

Referenced by DiffusionCG::addFEBCs(), and addFVBCs().

◆ _parent

const ParallelParamObject& DataFileInterface::_parent
privateinherited

◆ _pars

const InputParameters& MooseBase::_pars
protectedinherited

The object's parameters.

Definition at line 384 of file MooseBase.h.

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

◆ _pg_moose_app

MooseApp& PerfGraphInterface::_pg_moose_app
protectedinherited

The MooseApp that owns the PerfGraph.

Definition at line 135 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::perfGraph().

◆ _preconditioning

const MooseEnum& PhysicsBase::_preconditioning
protectedinherited

Whether to add a default preconditioning.

The implementation of the default is defined by the derived class

Definition at line 292 of file PhysicsBase.h.

Referenced by DiffusionPhysicsBase::addPreconditioning().

◆ _prefix

const std::string PerfGraphInterface::_prefix
protectedinherited

A prefix to use for all sections.

Definition at line 138 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::timedSectionName().

◆ _problem

std::shared_ptr<FEProblemBase>& Action::_problem
protectedinherited

Convenience reference to a problem this action works on.

Definition at line 178 of file Action.h.

Referenced by AddFieldSplitAction::act(), ElementIDOutputAction::act(), AdaptivityAction::act(), AddAuxKernelAction::act(), AddBCAction::act(), AddBoundsVectorsAction::act(), AddConstraintAction::act(), AddControlAction::act(), AddConvergenceAction::act(), AddCorrectorAction::act(), AddDamperAction::act(), AddDGKernelAction::act(), AddDiracKernelAction::act(), AddDistributionAction::act(), AddExternalAuxVariableAction::act(), AddFunctionAction::act(), AddFunctorMaterialAction::act(), AddFVBCAction::act(), AddFVICAction::act(), AddFVInitialConditionAction::act(), AddFVInterfaceKernelAction::act(), AddFVInterpolationMethodAction::act(), AddFVKernelAction::act(), AddHDGKernelAction::act(), AddICAction::act(), AddIndicatorAction::act(), AddInitialConditionAction::act(), AddInterfaceKernelAction::act(), AddKernelAction::act(), AddLinearFVBCAction::act(), AddLinearFVKernelAction::act(), AddMarkerAction::act(), AddMaterialAction::act(), AddMeshDivisionAction::act(), AddMeshModifiersAction::act(), AddMultiAppAction::act(), AddNodalKernelAction::act(), AddNodalNormalsAction::act(), AddOutputAction::act(), AddPeriodicBCAction::act(), AddPositionsAction::act(), AddPostprocessorAction::act(), AddReporterAction::act(), AddSamplerAction::act(), AddScalarKernelAction::act(), AddTaggedMatricesAction::act(), AddTimesAction::act(), AddTimeStepperAction::act(), AddTransferAction::act(), AddUserObjectAction::act(), AddVectorPostprocessorAction::act(), AutoCheckpointAction::act(), ChainControlSetupAction::act(), CheckFVBCAction::act(), CheckIntegrityAction::act(), CommonOutputAction::act(), ComposeTimeStepperAction::act(), CopyNodalVarsAction::act(), CouplingFunctorCheckAction::act(), CreateDisplacedProblemAction::act(), CreateExecutionerAction::act(), CreateProblemAction::act(), CreateProblemDefaultAction::act(), DisplayGhostingAction::act(), DumpObjectsAction::act(), InitProblemAction::act(), MaterialDerivativeTestAction::act(), MaterialOutputAction::act(), ResolveOptionalMaterialPropertiesAction::act(), SetAdaptivityOptionsAction::act(), SetupDampersAction::act(), SetupDebugAction::act(), SetupMeshCompleteAction::act(), SetupPreconditionerAction::act(), SetupPredictorAction::act(), SetupQuadratureAction::act(), SetupResidualDebugAction::act(), SetupTimeIntegratorAction::act(), SetupTimeStepperAction::act(), AddMFEMComplexBCComponentAction::act(), AddMFEMComplexKernelComponentAction::act(), AddMFEMFESpaceAction::act(), AddMFEMFESpaceHierarchyAction::act(), AddMFEMQuadratureFunctionAction::act(), AddMFEMSolverAction::act(), AddMFEMSubMeshAction::act(), ResolveMFEMSolversAction::act(), SetMFEMMeshFESpaceAction::act(), StartWebServerControlAction::act(), AddDefaultConvergenceAction::addDefaultMultiAppFixedPointConvergence(), AddDefaultConvergenceAction::addDefaultNonlinearConvergence(), AddDefaultConvergenceAction::addDefaultSteadyStateConvergence(), PhysicsBase::addPetscPairsToPetscOptions(), AddVariableAction::addVariable(), PhysicsBase::checkIntegrityEarly(), CheckOutputAction::checkMaterialOutput(), AddDefaultConvergenceAction::checkUnusedMultiAppFixedPointConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedNonlinearConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedSteadyStateConvergenceParameters(), CheckOutputAction::checkVariableOutput(), PhysicsBase::getProblem(), PhysicsBase::getProblem(), AddVariableAction::getSubdomainIDs(), AddPeriodicBCAction::getVariables(), MaterialOutputAction::hasFunctorProperty(), NEML2Action::inferMOOSEIOType(), AddVariableAction::init(), PhysicsBase::isTransient(), PhysicsBase::isVariableFV(), PhysicsBase::isVariableScalar(), AddPeriodicBCAction::onSetupPeriodicBoundary(), MaterialOutputAction::outputHelper(), ProjectedStatefulMaterialStorageAction::processProperty(), CreateExecutionerAction::setupAutoPreconditioning(), PhysicsBase::shouldCreateIC(), PhysicsBase::shouldCreateTimeDerivative(), PhysicsBase::shouldCreateVariable(), PhysicsBase::solverVariableExists(), and PhysicsBase::variableExists().

◆ _registered_identifier

std::string Action::_registered_identifier
protectedinherited

Definition at line 151 of file Action.h.

Referenced by SetupMeshAction::act().

◆ _required_tasks

std::set<std::string> PhysicsBase::_required_tasks
privateinherited

Manually keeps track of the tasks required by each physics as tasks cannot be inherited.

Definition at line 363 of file PhysicsBase.h.

Referenced by PhysicsBase::addRequiredPhysicsTask(), and PhysicsBase::checkRequiredTasks().

◆ _si_moose_base

const MooseBase& SolutionInvalidInterface::_si_moose_base
privateinherited

◆ _si_problem

const FEProblemBase* SolutionInvalidInterface::_si_problem
privateinherited

A pointer to FEProblem base.

Definition at line 114 of file SolutionInvalidInterface.h.

Referenced by SolutionInvalidInterface::flagInvalidSolutionInternal().

◆ _solver_var_names

std::vector<VariableName> PhysicsBase::_solver_var_names
privateinherited

Vector of the solver variables (nonlinear and linear) in the Physics.

Definition at line 354 of file PhysicsBase.h.

Referenced by PhysicsBase::checkIntegrityEarly(), PhysicsBase::getSolverSystem(), PhysicsBase::saveSolverVariableName(), and PhysicsBase::solverVariableNames().

◆ _specific_task_name

std::string Action::_specific_task_name
protectedinherited

This member will only be populated if this Action instance is only designed to handle one task.

This happens when an Action is registered with several pieces of syntax in which case separate instances are built to handle the different incoming parameter values.

Definition at line 159 of file Action.h.

Referenced by Action::specificTaskName().

◆ _system_names

std::vector<SolverSystemName> PhysicsBase::_system_names
protectedinherited

System names for the system(s) owning the solver variables.

Definition at line 282 of file PhysicsBase.h.

Referenced by PhysicsBase::checkIntegrityEarly(), PhysicsBase::getSolverSystem(), PhysicsBase::getSolverSystem(), and PhysicsBase::initializePhysics().

◆ _system_numbers

std::vector<unsigned int> PhysicsBase::_system_numbers
protectedinherited

System numbers for the system(s) owning the solver variables.

Definition at line 285 of file PhysicsBase.h.

Referenced by PhysicsBase::addPetscPairsToPetscOptions(), PhysicsBase::copyVariablesFromMesh(), and PhysicsBase::initializePhysics().

◆ _type

const std::string& MooseBase::_type
protectedinherited

◆ _var_name

const VariableName& DiffusionPhysicsBase::_var_name
protectedinherited

◆ _verbose

const bool PhysicsBase::_verbose
protectedinherited

Whether to output additional information.

Definition at line 288 of file PhysicsBase.h.

Referenced by PhysicsBase::initializePhysics(), and PhysicsBase::reportPotentiallyMissedParameters().

◆ app_param

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

◆ kokkos_object_param

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

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

Definition at line 64 of file MooseBase.h.

Referenced by InputParameters::isKokkosObject().

◆ moose_base_param

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

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

Definition at line 61 of file MooseBase.h.

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

◆ NAME

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

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

Definition at line 33 of file MeshMetaDataInterface.h.

◆ name_param

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

◆ SYSTEM

constexpr auto MeshMetaDataInterface::SYSTEM = "MeshMetaData"
staticconstexprinherited

The system name used when initializing the Restartable interface.

Definition at line 30 of file MeshMetaDataInterface.h.

Referenced by MeshMetaDataInterface::meshPropertyName().

◆ type_param

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

◆ unique_action_name_param

const std::string Action::unique_action_name_param = "_unique_action_name"
staticinherited

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

Definition at line 41 of file Action.h.

Referenced by Action::validParams().

◆ unique_name_param

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

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

Definition at line 57 of file MooseBase.h.

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

◆ usingCombinedWarningSolutionWarnings

Action::usingCombinedWarningSolutionWarnings
inherited

Definition at line 55 of file Action.h.


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