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

Base class for MOOSE-based applications. More...

#include <MooseApp.h>

Inheritance diagram for MooseApp:
[legend]

Classes

struct  DynamicLibraryInfo
 
struct  FixedPointConfig
 Stores configuration options relating to the fixed-point solving capability. More...
 
struct  InterfaceRegistryObjects
 
struct  InterfaceRegistryObjectsBase
 

Public Member Functions

torch::DeviceType getLibtorchDevice () const
 Get the device torch is supposed to be running on.
 
virtual ~MooseApp ()
 
TheWarehouse & theWarehouse ()
 
virtual std::string getPrintableName () const
 Get printable name of the application.
 
virtual std::string appBinaryName () const
 
int exitCode () const
 Get the shell exit code for the application.
 
void setExitCode (const int exit_code)
 Sets the exit code that the application will exit with.
 
const RankMap & rankMap ()
 The RankMap is a useful object for determining how the processes are laid out on the physical nodes of the cluster.
 
PerfGraph & perfGraph ()
 Get the PerfGraph for this app.
 
virtual void run ()
 Run the application.
 
std::string getFrameworkVersion () const
 Returns the framework version.
 
virtual std::string getVersion () const
 Returns the current version of the framework or application (default: framework version).
 
std::string getPrintableVersion () const
 Non-virtual method for printing out the version string in a consistent format.
 
virtual void setupOptions ()
 Setup options based on InputParameters.
 
ActionWarehouse & actionWarehouse ()
 Return a writable reference to the ActionWarehouse associated with this app.
 
const ActionWarehouse & actionWarehouse () const
 Return a const reference to the ActionWarehouse associated with this app.
 
Moose::Builder & builder ()
 Returns a writable reference to the builder.
 
Syntax & syntax ()
 Returns a writable reference to the syntax object.
 
const std::vector< std::string > & getInputFileNames () const
 
const std::string & getLastInputFileName () const
 
void setOutputFileBase (const std::string &output_file_base)
 Override the selection of the output file base name.
 
std::string getOutputFileBase (bool for_non_moose_build_output=false) const
 Get the output file base name.
 
void setOutputPosition (const Point &p)
 Tell the app to output in a specific position.
 
std::list< std::string > getCheckpointDirectories () const
 Get all checkpoint directories.
 
std::list< std::string > getCheckpointFiles () const
 Extract all possible checkpoint file names.
 
bool hasOutputPosition () const
 Whether or not an output position has been set.
 
Point getOutputPosition () const
 Get the output position.
 
void setStartTime (Real time)
 Set the starting time for the simulation.
 
bool hasStartTime () const
 
Real getStartTime () const
 
void setGlobalTimeOffset (Real offset)
 Each App has it's own local time.
 
Real getGlobalTimeOffset () const
 Each App has it's own local time.
 
std::string getFileName (bool stripLeadingPath=true) const
 Return the primary (first) filename that was parsed Note: When stripLeadingPath is false, this function returns the same name as getInputFileName() method when the input file is not a link.
 
void setErrorOverridden ()
 Set a flag so that the parser will throw an error if overridden parameters are detected.
 
void disableCheckUnusedFlag ()
 Removes warnings and error checks for unrecognized variables in the input file.
 
Executioner * getExecutioner () const
 Retrieve the Executioner for this App.
 
Executor * getExecutor () const
 
NullExecutor * getNullExecutor () const
 
bool useExecutor () const
 
FEProblemBase & feProblem () const
 
void setExecutioner (std::shared_ptr< Executioner > &&executioner)
 Set the Executioner for this App.
 
void setExecutor (std::shared_ptr< Executor > &&executor)
 
void addExecutor (const std::string &type, const std::string &name, const InputParameters &params)
 
void addExecutorParams (const std::string &type, const std::string &name, const InputParameters &params)
 Adds the parameters for an Executor to the list of parameters.
 
void createExecutors ()
 After adding all of the Executor Params - this function will actually cause all of them to be built.
 
Executor & getExecutor (const std::string &name, bool fail_if_not_found=true)
 Get an Executor.
 
FixedPointConfig & fixedPointConfig ()
 This info is stored here because we need a "globalish" place to put it in order to allow communication between a multiapp and solver-specific internals (i.e.
 
bool & useNonlinear ()
 Returns a writable Boolean indicating whether this app will use a Nonlinear or Eigen System.
 
bool & useEigenvalue ()
 Returns a writable Boolean indicating whether this app will use an eigenvalue executioner.
 
Factory & getFactory ()
 Retrieve a writable reference to the Factory associated with this App.
 
ActionFactory & getActionFactory ()
 Retrieve a writable reference to the ActionFactory associated with this App.
 
processor_id_type processor_id () const
 Returns the MPI processor ID of the current processor.
 
std::shared_ptr< CommandLine > commandLine () const
 Get the command line.
 
void setExodusFileRestart (bool flag)
 Set the flag to indicate whether or not we need to use a separate Exodus reader to read the mesh BEFORE we create the mesh.
 
bool getExodusFileRestart () const
 Whether or not we need to use a separate Exodus reader to read the mesh BEFORE we create the mesh.
 
void setExReaderForRestart (std::shared_ptr< libMesh::ExodusII_IO > &&exreader)
 Set the Exodus reader to restart variables from an Exodus mesh file.
 
libMesh::ExodusII_IO * getExReaderForRestart () const
 Get the Exodus reader to restart variables from an Exodus mesh file.
 
virtual void runInputFile ()
 Actually build everything in the input file.
 
virtual void executeExecutioner ()
 Execute the Executioner that was built.
 
bool getDistributedMeshOnCommandLine () const
 Returns true if the user specified –distributed-mesh (or –parallel-mesh, for backwards compatibility) on the command line and false otherwise.
 
bool isRecovering () const
 Whether or not this is a "recover" calculation.
 
bool isRestarting () const
 Whether or not this is a "restart" calculation.
 
bool isSplitMesh () const
 Whether or not this is a split mesh operation.
 
void setRestartRecoverFileBase (const std::string &file_base)
 mutator for recover_base (set by RecoverBaseAction)
 
bool testCheckpointHalfTransient () const
 Whether or not this simulation should only run half its transient (useful for testing recovery)
 
bool testReStep () const
 Whether or not this simulation should fail a timestep and repeat (for testing).
 
void setOutputFileNumbers (const std::map< std::string, unsigned int > &numbers)
 Store a map of outputter names and file numbers The MultiApp system requires this to get the file numbering to propagate down through the Multiapps.
 
const std::map< std::string, unsigned int > & getOutputFileNumbers () const
 Store a map of outputter names and file numbers The MultiApp system requires this to get the file numbering to propogate down through the multiapps.
 
OutputWarehouse & getOutputWarehouse ()
 Get the OutputWarehouse objects.
 
const OutputWarehouse & getOutputWarehouse () const
 
const SystemInfo & getSystemInfo () const
 Get SystemInfo object.
 
std::string appNameToLibName (const std::string &app_name) const
 Converts an application name to a library name: Examples: AnimalApp -> libanimal-oprof.la (assuming METHOD=oprof) ThreeWordAnimalApp -> libthree_word_animal-dbg.la (assuming METHOD=dbg)
 
std::string libNameToAppName (const std::string &library_name) const
 Converts a library name to an application name:
 
std::set< std::string > getLoadedLibraryPaths () const
 Return the paths of loaded libraries.
 
std::set< std::string > getLibrarySearchPaths (const std::string &library_path_from_param) const
 Return the paths searched by MOOSE when loading libraries.
 
InputParameterWarehouse & getInputParameterWarehouse ()
 Get the InputParameterWarehouse for MooseObjects.
 
RestartableDataValue & registerRestartableData (std::unique_ptr< RestartableDataValue > data, THREAD_ID tid, bool read_only, const RestartableDataMapName &metaname="")
 
RestartableDataValue & registerRestartableData (const std::string &name, std::unique_ptr< RestartableDataValue > data, THREAD_ID tid, bool read_only, const RestartableDataMapName &metaname="")
 
bool hasRestartableMetaData (const std::string &name, const RestartableDataMapName &metaname) const
 
RestartableDataValue & getRestartableMetaData (const std::string &name, const RestartableDataMapName &metaname, THREAD_ID tid)
 
void possiblyLoadRestartableMetaData (const RestartableDataMapName &name, const std::filesystem::path &folder_base)
 Loads the restartable meta data for name if it is available with the folder base folder_base.
 
void loadRestartableMetaData (const std::filesystem::path &folder_base)
 Loads all available restartable meta data if it is available with the folder base folder_base.
 
std::vector< std::filesystem::path > writeRestartableMetaData (const RestartableDataMapName &name, const std::filesystem::path &folder_base)
 Writes the restartable meta data for name with a folder base of folder_base.
 
std::vector< std::filesystem::path > writeRestartableMetaData (const std::filesystem::path &folder_base)
 Writes all available restartable meta data with a file base of file_base.
 
RestartableDataMap & getRestartableDataMap (const RestartableDataMapName &name)
 Return a reference to restartable data for the specific type flag.
 
bool hasRestartableDataMap (const RestartableDataMapName &name) const
 
void registerRestartableDataMapName (const RestartableDataMapName &name, std::string suffix="")
 Reserve a location for storing custom RestartableDataMap objects.
 
const std::string & getRestartableDataMapName (const RestartableDataMapName &name) const
 
const DataNames & getRecoverableData () const
 Return a reference to the recoverable data object.
 
std::vector< std::filesystem::path > backup (const std::filesystem::path &folder_base)
 Backs up the application to the folder folder_base.
 
std::unique_ptr< Backup > backup ()
 Backs up the application memory in a Backup.
 
bool hasInitialBackupMesh () const
 Whether this app has an initial Backup object with mesh checkpoint entries.
 
bool restoredInitialBackupMesh () const
 Whether this app has restored mesh topology from its initial Backup object.
 
void markMeshChangedForBackup ()
 Mark this app as requiring mesh topology data in its next Backup object.
 
bool meshChangedForBackup () const
 Whether this app requires mesh topology data in its next Backup object.
 
void restoreMeshFromInitialBackup (MooseMesh &mesh)
 Restore mesh from this app's initial Backup object and consume the mesh checkpoint entries.
 
virtual void preBackup ()
 Insertion point for other apps that is called before backup()
 
void restore (const std::filesystem::path &folder_base, const bool for_restart)
 Restore an application from file.
 
void restore (std::unique_ptr< Backup > backup, const bool for_restart)
 Restore an application from the backup backup.
 
virtual void postRestore (const bool)
 Insertion point for other apps that is called after restore()
 
void restoreFromInitialBackup (const bool for_restart)
 Restores from a "initial" backup, that is, one set in _initial_backup.
 
std::unique_ptr< Backup > finalizeRestore ()
 Finalizes (closes) the restoration process done in restore().
 
bool restoreDataIfAvailable (RestartableDataValue &value, const THREAD_ID tid, Moose::PassKey< ReporterData >)
 Restores value in place from the checkpoint reader if it is present in the checkpoint and has not yet been loaded.
 
virtual std::string header () const
 Returns a string to be printed at the beginning of a simulation.
 
unsigned int multiAppLevel () const
 The MultiApp Level.
 
unsigned int multiAppNumber () const
 The MultiApp number.
 
bool isUltimateMaster () const
 Whether or not this app is the ultimate master app.
 
bool useMasterMesh () const
 Returns whether to use the parent app mesh as the mesh for this app.
 
const MooseMesh * masterMesh () const
 Returns a pointer to the master mesh.
 
const MooseMesh * masterDisplacedMesh () const
 Returns a pointer to the master displaced mesh.
 
MeshGeneratorSystem & getMeshGeneratorSystem ()
 Gets the system that manages the MeshGenerators.
 
ChainControlDataSystem & getChainControlDataSystem ()
 Gets the system that manages the ChainControls.
 
void addMeshGenerator (const std::string &type, const std::string &name, const InputParameters &params)
 Add a mesh generator that will act on the meshes in the system.
 
bool hasMeshGenerator (const MeshGeneratorName &name) const
 
const MeshGenerator & getMeshGenerator (const std::string &name) const
 
std::unique_ptr< MeshBase > getMeshGeneratorMesh ()
 
std::vector< std::string > getMeshGeneratorNames () const
 
const MeshGenerator & appendMeshGenerator (const std::string &type, const std::string &name, InputParameters params)
 Append a mesh generator that will act on the final mesh generator in the system.
 
virtual bool constructingMeshGenerators () const
 Whether this app is constructing mesh generators.
 
bool checkInput () const
 Returns whether the Application is running in check input mode.
 
bool getFPTrapFlag () const
 Returns whether FPE trapping is turned on (either because of debug or user requested)
 
bool hasRelationshipManager (const std::string &name) const
 Returns a Boolean indicating whether a RelationshipManater exists with the same name.
 
bool addRelationshipManager (std::shared_ptr< RelationshipManager > relationship_manager)
 Transfers ownership of a RelationshipManager to the application for lifetime management.
 
std::filesystem::path restartFolderBase (const std::filesystem::path &folder_base) const
 The file suffix for restartable data.
 
const hit::Node * getCurrentActionHitNode () const
 
void attachRelationshipManagers (Moose::RelationshipManagerType rm_type, bool attach_geometric_rm_final=false)
 Attach the relationship managers of the given type Note: Geometric relationship managers that are supposed to be attached late will be attached when Algebraic are attached.
 
void attachRelationshipManagers (MeshBase &mesh, MooseMesh &moose_mesh)
 Attach geometric relationship managers to the given MeshBase object.
 
const std::vector< std::shared_ptr< RelationshipManager > > & getReleationshipManagers ()
 Retrieve the relationship managers.
 
std::vector< std::pair< std::string, std::string > > getRelationshipManagerInfo () const
 Returns the Relationship managers info suitable for printing.
 
const ExecFlagEnum & getExecuteOnEnum () const
 Return the app level ExecFlagEnum, this contains all the available flags for the app.
 
bool hasInitialBackup () const
 
bool defaultAutomaticScaling () const
 Whether to enable automatic scaling by default.
 
const std::shared_ptr< libMesh::Parallel::Communicator > getCommunicator () const
 
const std::set< std::shared_ptr< RelationshipManager > > & relationshipManagers () const
 Return the container of relationship managers.
 
void checkMetaDataIntegrity () const
 Function to check the integrity of the restartable meta data structure.
 
virtual bool errorOnJacobianNonzeroReallocation () const
 Whether this application should by default error on Jacobian nonzero reallocations.
 
template<class T >
void registerInterfaceObject (T &interface)
 Registers an interface object for accessing with getInterfaceObjects.
 
template<class T >
const std::vector< T * > & getInterfaceObjects () const
 Gets the registered interface objects for a given interface.
 
bool forceRestart () const
 Whether or not we are forcefully restarting (allowing the load of potentially incompatibie checkpoints); used within RestartableDataReader.
 
bool unusedFlagIsWarning () const
 Returns whether the flag for unused parameters is set to throw a warning only.
 
bool unusedFlagIsError () const
 Returns whether the flag for unused parameters is set to throw an error.
 
void setMFEMDevice (const std::string &executioner_device, const bool &gpu_aware_mpi)
 Create/configure the MFEM device.
 
bool isKokkosAvailable () const
 Get whether Kokkos is available.
 
void allocateKokkosMemoryPool (std::size_t size, unsigned int ways) const
 Allocate Kokkos memory pool.
 
const Moose::Kokkos::MemoryPool & getKokkosMemoryPool () const
 Get Kokkos memory pool.
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
MooseApp & getMooseApp () 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 InputParameters & parameters () 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 >
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 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 mooseWarningNonPrefixed (Args &&... args) const
 Emits a warning without the prefixing included in mooseWarning().
 
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 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.
 
SolutionInvalidity & solutionInvalidity ()
 Get the SolutionInvalidity for this app.
 
const SolutionInvalidity & solutionInvalidity () const
 
const Parser & parser () const
 
Parser & parser ()
 
bool hasRestartRecoverFileBase () const
 Return true if the recovery file base is set.
 
bool hasRecoverFileBase () const
 
std::string getRestartRecoverFileBase () const
 The file_base for the recovery file.
 
std::string getRecoverFileBase () const
 
void dynamicAllRegistration (const std::string &app_name, Factory *factory, ActionFactory *action_factory, Syntax *syntax, std::string library_path, const std::string &library_name)
 Thes methods are called to register applications or objects on demand.
 
void dynamicAppRegistration (const std::string &app_name, std::string library_path, const std::string &library_name, bool lib_load_deps)
 
const std::vector< RestartableDataMap > & getRestartableData () const
 Return reference to the restartable data object.
 
std::vector< RestartableDataMap > & getRestartableData ()
 
void setRestart (bool value)
 Sets the restart/recover flags.
 
void setRecover (bool value)
 
auto getRestartableDataMapBegin ()
 Iterator based access to the extra RestartableDataMap objects; see Checkpoint.C for use case.
 
auto getRestartableDataMapEnd ()
 

Static Public Member Functions

static InputParameters validParams ()
 
static const std::string & checkpointSuffix ()
 The file suffix for the checkpoint mesh.
 
static std::filesystem::path metaDataFolderBase (const std::filesystem::path &folder_base, const std::string &map_suffix)
 The file suffix for meta data (header and data)
 
static void addAppParam (InputParameters &params)
 
static void addInputParam (InputParameters &params)
 
static bool isRelocated ()
 
static bool isInTree ()
 
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

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

Static Public Attributes

static const RestartableDataMapName MESH_META_DATA = "MeshMetaData"
 
static const std::string MESH_META_DATA_SUFFIX = "mesh"
 
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.
 

Protected Types

enum  UNUSED_CHECK { OFF , WARN_UNUSED , ERROR_UNUSED }
 Indicates whether warnings, errors, or no output is displayed when unused parameters are detected. More...
 

Protected Member Functions

 FRIEND_TEST (::CapabilitiesTest, mooseAppAddBoolCapability)
 
 FRIEND_TEST (::CapabilitiesTest, mooseAppAddIntCapability)
 
 FRIEND_TEST (::CapabilitiesTest, mooseAppAddStringCapability)
 
 FRIEND_TEST (::CapabilitiesTest, mooseAppAddCapability)
 
void dynamicRegistration (const libMesh::Parameters &params)
 Helper method for dynamic loading of objects.
 
void loadLibraryAndDependencies (const std::string &library_filename, const libMesh::Parameters &params, bool load_dependencies=true)
 Recursively loads libraries and dependencies in the proper order to fully register a MOOSE application that may have several dependencies.
 
 MooseApp (const InputParameters &parameters)
 Constructor is protected so that this object is constructed through the AppFactory object.
 
void registerRestartableNameWithFilter (const std::string &name, Moose::RESTARTABLE_FILTER filter)
 NOTE: This is an internal function meant for MOOSE use only!
 
void errorCheck ()
 Runs post-initialization error checking that cannot be run correctly unless the simulation has been fully set up and initialized.
 
void outputMachineReadableData (const std::string &param, const std::string &start_marker, const std::string &end_marker, const std::string &data) const
 Outputs machine readable data (JSON, YAML, etc.) either to the screen (if no filename was provided as an argument to the parameter param) or to a file (if a filename was provided).
 
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
 

Static Protected Member Functions

static Moose::Capability & addBoolCapability (const std::string_view capability, const bool value, const std::string_view doc)
 Register a boolean capability.
 
static Moose::Capability & addIntCapability (const std::string_view capability, const int value, const std::string_view doc)
 Register an integer capability.
 
static Moose::Capability & addStringCapability (const std::string_view capability, const std::string_view value, const std::string_view doc)
 Register a string capability.
 
static Moose::Capability & addCapability (const std::string_view capability, const Moose::Capability::Value &value, const std::string_view doc)
 Deprecated method for adding a capability.
 

Protected Attributes

const std::string _type
 The string representation of the type of this object as registered (see registerApp(AppName))
 
const std::shared_ptr< libMesh::Parallel::Communicator > _comm
 The MPI communicator this App is going to use.
 
std::string _output_file_base
 The output file basename.
 
bool _file_base_set_by_user
 Whether or not file base is set through input or setOutputFileBase by MultiApp.
 
bool _output_position_set
 Whether or not an output position has been set for this app.
 
Point _output_position
 The output position.
 
bool _start_time_set
 Whether or not an start time has been set.
 
Real _start_time
 The time at which to start the simulation.
 
Real _global_time_offset
 Offset of the local App time to the "global" problem time.
 
Syntax _syntax
 Syntax of the input file.
 
std::unique_ptr< InputParameterWarehouse > _input_parameter_warehouse
 Input parameter storage structure; unique_ptr so we can control its destruction order.
 
ActionFactory _action_factory
 The Factory responsible for building Actions.
 
ActionWarehouse _action_warehouse
 Where built actions are stored.
 
OutputWarehouse _output_warehouse
 OutputWarehouse object for this App.
 
const std::shared_ptr< Parser > _parser
 Parser for parsing the input file (owns the root hit node)
 
const std::shared_ptr< CommandLine > _command_line
 The CommandLine object.
 
SystemInfo _sys_info
 System Information.
 
Moose::Builder _builder
 Builder for building app related parser tree.
 
std::vector< RestartableDataMap > _restartable_data
 Where the restartable data is held (indexed on tid)
 
DataNames _recoverable_data_names
 Data names that will only be read from the restart file during RECOVERY.
 
PerfGraph & _perf_graph
 The PerfGraph object for this application (recoverable)
 
SolutionInvalidity & _solution_invalidity
 The SolutionInvalidity object for this application.
 
const RankMap _rank_map
 The RankMap is a useful object for determining how the processes are laid out on the physical hardware.
 
std::shared_ptr< Executioner > _executioner
 Pointer to the executioner of this run (typically build by actions)
 
std::shared_ptr< Executor > _executor
 Pointer to the Executor of this run.
 
std::map< std::string, std::shared_ptr< Executor > > _executors
 Pointers to all of the Executors for this run.
 
std::unordered_map< std::string, std::pair< std::string, std::unique_ptr< InputParameters > > > _executor_params
 Used in building the Executors Maps the name of the Executor block to the <type, params>
 
FixedPointConfig _fixed_point_config
 Multiapp-related fixed point algorithm configuration details primarily intended to be passed to and used by the executioner/executor system.
 
const bool _use_executor
 Indicates whether we are operating in the new/experimental executor mode instead of using the legacy executioner system.
 
std::shared_ptr< NullExecutor > _null_executor
 Used to return an executor that does nothing.
 
bool _use_nonlinear
 Boolean to indicate whether to use a Nonlinear or EigenSystem (inspected by actions)
 
bool _use_eigen_value
 Boolean to indicate whether to use an eigenvalue executioner.
 
enum MooseApp::UNUSED_CHECK _enable_unused_check
 
Factory _factory
 
bool _error_overridden
 Indicates whether warnings or errors are displayed when overridden parameters are detected.
 
std::string _early_exit_param
 Indicates if simulation is ready to exit, and keeps track of which param caused it to exit.
 
bool _ready_to_exit
 
int _exit_code
 The exit code.
 
bool _initial_from_file
 This variable indicates when a request has been made to restart from an Exodus file.
 
std::shared_ptr< libMesh::ExodusII_IO > _ex_reader
 The Exodus reader when _initial_from_file is set to true.
 
const bool _distributed_mesh_on_command_line
 This variable indicates that DistributedMesh should be used for the libMesh mesh underlying MooseMesh.
 
bool _recover
 Whether or not this is a recovery run.
 
bool _restart
 Whether or not this is a restart run.
 
bool _split_mesh
 Whether or not we are performing a split mesh operation (–split-mesh)
 
const bool _use_split
 Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)
 
const bool _force_restart
 Whether or not we are forcefully attempting to load checkpoints (–force-restart)
 
bool _trap_fpe
 Whether or not FPE trapping should be turned on.
 
std::string _restart_recover_base
 The base name to restart/recover from. If blank then we will find the newest checkpoint file.
 
const bool _test_checkpoint_half_transient
 Whether or not this simulation should only run half its transient (useful for testing recovery)
 
const bool _test_restep
 Whether or not this simulation should fail its middle timestep and repeat (for testing)
 
std::map< std::string, unsigned int > _output_file_numbers
 Map of outputer name and file number (used by MultiApps to propagate file numbers down through the multiapps)
 
const bool _check_input
 true if we want to just check the input file
 
std::set< std::shared_ptr< RelationshipManager > > _relationship_managers
 The relationship managers that have been added.
 
std::map< Moose::RelationshipManagerType, std::set< const RelationshipManager * > > _attached_relationship_managers
 The relationship managers that have been attached (type -> RMs)
 
std::unordered_map< RelationshipManager *, std::shared_ptr< libMesh::GhostingFunctor > > _undisp_to_disp_rms
 A map from undisplaced relationship managers to their displaced clone (stored as the base GhostingFunctor).
 
std::unordered_map< std::string, DynamicLibraryInfo > _lib_handles
 The library archive (name only), registration method and the handle to the method.
 
MooseApp & _pg_moose_app
 The MooseApp that owns the PerfGraph.
 
const std::string _prefix
 A prefix to use for all sections.
 
const Parallel::Communicator & _communicator
 
MooseApp & _app
 The MOOSE application this is associated with.
 
const std::string & _name
 The name of this class.
 
const InputParameters & _pars
 The object's parameters.
 

Private Types

enum  RegistrationType { APPLICATION , REGALL }
 Enumeration for holding the valid types of dynamic registrations allowed. More...
 

Private Member Functions

void recursivelyCreateExecutors (const std::string &current_executor_name, std::list< std::string > &possible_roots, std::list< std::string > &current_branch)
 Internal function used to recursively create the executor objects.
 
void removeRelationshipManager (std::shared_ptr< RelationshipManager > relationship_manager)
 Purge this relationship manager from meshes and DofMaps and finally from us.
 
torch::DeviceType determineLibtorchDeviceType (const MooseEnum &device) const
 Function to determine the device which should be used by libtorch on this application.
 
void createMinimalApp ()
 Method for creating the minimum required actions for an application (no input file)
 
void setCheckUnusedFlag (bool warn_is_error=false)
 Set a flag so that the parser will either warn or error when unused variables are seen after parsing is complete.
 
bool hasRMClone (const RelationshipManager &template_rm, const MeshBase &mesh) const
 
RelationshipManager & getRMClone (const RelationshipManager &template_rm, const MeshBase &mesh) const
 Return the relationship manager clone originally created from the provided template relationship manager and mesh.
 
RelationshipManager & createRMFromTemplateAndInit (const RelationshipManager &template_rm, MooseMesh &moose_mesh, MeshBase &mesh, const libMesh::DofMap *dof_map=nullptr)
 Take an input relationship manager, clone it, and then initialize it with provided mesh and optional dof_map.
 
PerfGraph & createRecoverablePerfGraph ()
 Creates a recoverable PerfGraph.
 
SolutionInvalidity & createRecoverableSolutionInvalidity ()
 Creates a recoverable SolutionInvalidity.
 
bool showInputs () const
 Prints a message showing the installable inputs for a given application (if getInstallableInputs has been overridden for an application).
 
virtual std::string getInstallableInputs () const
 Method to retrieve the installable inputs from a given applications <app>Revision.h file.
 
bool copyInputs ()
 Handles the copy_inputs input parameter logic: Checks to see whether the passed argument is valid (a readable installed directory) and recursively copies those files into a read/writable location for the user.
 
bool runInputs ()
 Handles the run input parameter logic: Checks to see whether a directory exists in user space and launches the TestHarness to process the given directory.
 
void requestCitations ()
 Handles the –citations command-line option: registers with PETSc the BibTeX entries that should be cited for the framework and the modules/objects used in this simulation, and enables PETSc's -citations option.
 
void collectCitations (std::map< std::string, std::string > &citations) const
 Collects the BibTeX citations for the modules/objects constructed in this app and the finite element backend it uses, then recurses into every MultiApp subapp to do the same.
 
void queryKokkosGPUs ()
 Query the Kokkos GPUs in the system and check whether every process has an associated GPU.
 
void deallocateKokkosMemoryPool ()
 Deallocate Kokkos memory pool.
 

Static Private Member Functions

static Moose::Capability & addCapabilityInternal (const std::string_view capability, const Moose::Capability::Value &value, const std::string_view doc)
 Internal method for adding a capability.
 
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

std::unordered_map< RestartableDataMapName, std::pair< RestartableDataMap, std::string > > _restartable_meta_data
 General storage for custom RestartableData that can be added to from outside applications.
 
std::unique_ptr< TheWarehouse > _the_warehouse
 The combined warehouse for storing any MooseObject based object.
 
const unsigned int _multiapp_level
 Level of multiapp, the master is level 0. This used by the Console to indent output.
 
const unsigned int _multiapp_number
 Numbering in all the sub-apps on the same level.
 
const bool _use_master_mesh
 Whether to use the parent app mesh for this app.
 
const MooseMesh *const _master_mesh
 The mesh from master app.
 
const MooseMesh *const _master_displaced_mesh
 The displaced mesh from master app.
 
MeshGeneratorSystem _mesh_generator_system
 The system that manages the MeshGenerators.
 
ChainControlDataSystem _chain_control_system
 The system that manages the ChainControls.
 
RestartableDataReader _rd_reader
 
const ExecFlagEnum _execute_flags
 Execution flags for this App.
 
std::streambuf * _output_buffer_cache
 Cache output buffer so the language server can turn it off then back on.
 
const bool _automatic_automatic_scaling
 Whether to turn on automatic scaling by default.
 
bool _cpu_profiling = false
 CPU profiling.
 
bool _heap_profiling = false
 Memory profiling.
 
std::map< const RelationshipManager *, std::map< const MeshBase *, std::unique_ptr< RelationshipManager > > > _template_to_clones
 Map from a template relationship manager to a map in which the key-value pairs represent the MeshBase object and the clone of the template relationship manager, e.g.
 
std::map< std::type_index, std::unique_ptr< InterfaceRegistryObjectsBase > > _interface_registry
 Registration for interface objects.
 
std::unique_ptr< Backup > *const _initial_backup
 The backup for use in initial setup; this will get set from the _initial_backup input parameter that typically gets set from a MultiApp that has a backup This is a pointer to a pointer because at the time of construction of the app, the backup will not be filled yet.
 
bool _restored_initial_backup_mesh = false
 Whether mesh topology has been restored from the initial Backup object.
 
bool _mesh_changed_for_backup = false
 Whether mesh topology has changed and should be included in Backup objects.
 
const torch::DeviceType _libtorch_device
 The libtorch device this app is using (converted from compute_device)
 
bool _has_kokkos_gpus = false
 Flag whether every process has an associated Kokkos GPU.
 

Friends

class FEProblemBase
 
class Restartable
 
class SubProblem
 

Detailed Description

Base class for MOOSE-based applications.

This generic class for application provides:

Each application should register its own objects and register its own special syntax

Definition at line 109 of file MooseApp.h.

Member Enumeration Documentation

◆ RegistrationType

Enumeration for holding the valid types of dynamic registrations allowed.

Enumerator
APPLICATION 
REGALL 

Definition at line 1654 of file MooseApp.h.

1655 {
1657 REGALL
1658 };
@ APPLICATION
Definition MooseApp.h:1656

◆ UNUSED_CHECK

enum MooseApp::UNUSED_CHECK
protected

Indicates whether warnings, errors, or no output is displayed when unused parameters are detected.

Enumerator
OFF 
WARN_UNUSED 
ERROR_UNUSED 

Definition at line 1382 of file MooseApp.h.

1383 {
1384 OFF,
@ WARN_UNUSED
Definition MooseApp.h:1385
@ ERROR_UNUSED
Definition MooseApp.h:1386
enum MooseApp::UNUSED_CHECK _enable_unused_check

Constructor & Destructor Documentation

◆ ~MooseApp()

virtual MooseApp::~MooseApp ( )
virtual

◆ MooseApp()

MooseApp::MooseApp ( const InputParameters &  parameters)
protected

Constructor is protected so that this object is constructed through the AppFactory object.

Definition at line 617 of file MooseApp.C.

618 : PerfGraphInterface(*this, "MooseApp"),
619 ParallelObject(*parameters.get<std::shared_ptr<Parallel::Communicator>>(
620 "_comm")), // Can't call getParam() before pars is set
621 // The use of AppFactory::getAppParams() is atrocious. However, a long time ago
622 // we decided to copy construct parameters in each derived application...
623 // which means that the "parameters" we get if someone derives from MooseApp are
624 // actually a copy of the ones built by the factory. Because we have unique
625 // application names, this allows us to reference (using _pars and MooseBase)
626 // the actual const parameters that the AppFactory made for this application
627 MooseBase(*this, AppFactory::instance().getAppParams(parameters)),
628 _comm(getParam<std::shared_ptr<Parallel::Communicator>>("_comm")),
631 _start_time_set(false),
632 _start_time(0.0),
634 _input_parameter_warehouse(std::make_unique<InputParameterWarehouse>()),
635 _action_factory(*this),
637 _output_warehouse(*this),
638 _parser(getCheckedPointerParam<std::shared_ptr<Parser>>("_parser")),
639 _command_line(getCheckedPointerParam<std::shared_ptr<CommandLine>>("_command_line")),
645 _use_executor(getParam<bool>("use_executor")),
646 _null_executor(NULL),
647 _use_nonlinear(true),
648 _use_eigen_value(false),
650 _factory(*this),
651 _error_overridden(false),
653 _ready_to_exit(false),
654 _exit_code(0),
655 _initial_from_file(false),
656 _distributed_mesh_on_command_line(getParam<bool>("distributed_mesh")),
657 _recover(false),
658 _restart(false),
659 _split_mesh(false),
660 _use_split(getParam<bool>("use_split")),
661 _force_restart(getParam<bool>("force_restart")),
662#ifdef DEBUG
663 _trap_fpe(true),
664#else
665 _trap_fpe(false),
666#endif
667 _test_checkpoint_half_transient(parameters.get<bool>("test_checkpoint_half_transient")),
668 _test_restep(parameters.get<bool>("test_restep")),
669 _check_input(getParam<bool>("check_input")),
670 _multiapp_level(isParamValid("_multiapp_level") ? getParam<unsigned int>("_multiapp_level")
671 : 0),
672 _multiapp_number(isParamValid("_multiapp_number") ? getParam<unsigned int>("_multiapp_number")
673 : 0),
674 _use_master_mesh(getParam<bool>("_use_master_mesh")),
675 _master_mesh(isParamValid("_master_mesh") ? getParam<const MooseMesh *>("_master_mesh")
676 : nullptr),
677 _master_displaced_mesh(isParamValid("_master_displaced_mesh")
678 ? getParam<const MooseMesh *>("_master_displaced_mesh")
679 : nullptr),
683 _execute_flags(moose::internal::ExecFlagRegistry::getExecFlagRegistry().getFlags()),
684 _output_buffer_cache(nullptr),
685 _automatic_automatic_scaling(getParam<bool>("automatic_automatic_scaling")),
686 _initial_backup(getParam<std::unique_ptr<Backup> *>("_initial_backup"))
687#ifdef MOOSE_LIBTORCH_ENABLED
688 ,
690#endif
691{
692 if (&parameters != &_pars)
693 {
694 const std::string bad_params = "(InputParameters parameters)";
695 const std::string good_params = "(const InputParameters & parameters)";
696 const std::string source_constructor = type() + "::" + type();
697 mooseDoOnce(
699 " copy-constructs its input parameters.\n\n",
700 "This is deprecated and will not be allowed in the future.\n\n",
701 "In ",
702 type(),
703 ".C, change:\n ",
704 source_constructor,
705 bad_params,
706 " -> ",
707 source_constructor,
708 good_params,
709 "\n\n",
710 "In ",
711 type(),
712 ".h, change:\n ",
713 type(),
714 bad_params,
715 "; -> ",
716 type(),
717 good_params,
718 ";"));
719 }
720
721 mooseAssert(_command_line->hasParsed(), "Command line has not parsed");
722 mooseAssert(_parser->queryRoot(), "Parser has not parsed");
723
724 // Set the TIMPI sync type via --timpi-sync
725 const auto & timpi_sync = getParam<std::string>("timpi_sync");
726 const_cast<Parallel::Communicator &>(comm()).sync_type(timpi_sync);
727
728#ifdef HAVE_GPERFTOOLS
729 if (isUltimateMaster())
730 {
731 bool has_cpu_profiling = false;
732 bool has_heap_profiling = false;
733 static std::string cpu_profile_file;
734 static std::string heap_profile_file;
735
736 // For CPU profiling, users need to have environment 'MOOSE_PROFILE_BASE'
737 if (std::getenv("MOOSE_PROFILE_BASE"))
738 {
739 has_cpu_profiling = true;
740 cpu_profile_file =
741 std::getenv("MOOSE_PROFILE_BASE") + std::to_string(_comm->rank()) + ".prof";
742 // create directory if needed
743 auto name = MooseUtils::splitFileName(cpu_profile_file);
744 if (!name.first.empty())
745 {
746 if (processor_id() == 0)
747 MooseUtils::makedirs(name.first.c_str());
748 _comm->barrier();
749 }
750 }
751
752 // For Heap profiling, users need to have 'MOOSE_HEAP_BASE'
753 if (std::getenv("MOOSE_HEAP_BASE"))
754 {
755 has_heap_profiling = true;
756 heap_profile_file = std::getenv("MOOSE_HEAP_BASE") + std::to_string(_comm->rank());
757 // create directory if needed
758 auto name = MooseUtils::splitFileName(heap_profile_file);
759 if (!name.first.empty())
760 {
761 if (processor_id() == 0)
762 MooseUtils::makedirs(name.first.c_str());
763 _comm->barrier();
764 }
765 }
766
767 // turn on profiling only on selected ranks
768 if (isParamSetByUser("gperf_profiler_on"))
769 {
770 auto rankstr = getParam<std::string>("gperf_profiler_on");
771 std::vector<processor_id_type> ranks;
772 bool success = MooseUtils::tokenizeAndConvert(rankstr, ranks, ", ");
773 if (!success)
774 mooseError("Invalid argument for --gperf-profiler-on: '", rankstr, "'");
775 for (auto & rank : ranks)
776 {
777 if (rank >= _comm->size())
778 mooseError("Invalid argument for --gperf-profiler-on: ",
779 rank,
780 " is greater than or equal to ",
781 _comm->size());
782 if (rank == _comm->rank())
783 {
784 _cpu_profiling = has_cpu_profiling;
785 _heap_profiling = has_heap_profiling;
786 }
787 }
788 }
789 else
790 {
791 _cpu_profiling = has_cpu_profiling;
792 _heap_profiling = has_heap_profiling;
793 }
794
795 if (_cpu_profiling)
796 if (!ProfilerStart(cpu_profile_file.c_str()))
797 mooseError("CPU profiler is not started properly");
798
799 if (_heap_profiling)
800 {
801 HeapProfilerStart(heap_profile_file.c_str());
802 if (!IsHeapProfilerRunning())
803 mooseError("Heap profiler is not started properly");
804 }
805 }
806#else
807 if (std::getenv("MOOSE_PROFILE_BASE") || std::getenv("MOOSE_HEAP_BASE"))
808 mooseError("gperftool is not available for CPU or heap profiling");
809#endif
810
811 // If this will be a language server then turn off output until that starts
812 if (isParamValid("language_server") && getParam<bool>("language_server"))
813 _output_buffer_cache = Moose::out.rdbuf(nullptr);
814
817
818 _the_warehouse = std::make_unique<TheWarehouse>();
819 _the_warehouse->registerAttribute<AttribMatrixTags>("matrix_tags", 0);
820 _the_warehouse->registerAttribute<AttribVectorTags>("vector_tags", 0);
821 _the_warehouse->registerAttribute<AttribExecOns>("exec_ons", 0);
822 _the_warehouse->registerAttribute<AttribSubdomains>("subdomains", 0);
823 _the_warehouse->registerAttribute<AttribBoundaries>("boundaries", 0);
824 _the_warehouse->registerAttribute<AttribThread>("thread", 0);
825 _the_warehouse->registerAttribute<AttribExecutionOrderGroup>("execution_order_group", 0);
826 _the_warehouse->registerAttribute<AttribPreIC>("pre_ic", 0);
827 _the_warehouse->registerAttribute<AttribPreAux>("pre_aux");
828 _the_warehouse->registerAttribute<AttribPostAux>("post_aux");
829 _the_warehouse->registerAttribute<AttribName>("name", "dummy");
830 _the_warehouse->registerAttribute<AttribSystem>("system", "dummy");
831 _the_warehouse->registerAttribute<AttribKokkos>("kokkos", false);
832 _the_warehouse->registerAttribute<AttribVar>("variable", -1);
833 _the_warehouse->registerAttribute<AttribInterfaces>("interfaces", 0);
834 _the_warehouse->registerAttribute<AttribSysNum>("sys_num", libMesh::invalid_uint);
835 _the_warehouse->registerAttribute<AttribResidualObject>("residual_object");
836 _the_warehouse->registerAttribute<AttribSorted>("sorted");
837 _the_warehouse->registerAttribute<AttribDisplaced>("displaced", -1);
838
840
841 if (_check_input && isParamSetByUser("recover"))
842 mooseError("Cannot run --check-input with --recover. Recover files might not exist");
843
844 if (isParamSetByUser("start_in_debugger") && isUltimateMaster())
845 {
846 auto command = getParam<std::string>("start_in_debugger");
847
848 Moose::out << "Starting in debugger using: " << command << std::endl;
849
851
852 std::stringstream command_stream;
853
854 // This will start XTerm and print out some info first... then run the debugger
855 command_stream << "xterm -e \"echo 'Rank: " << processor_id() << " Hostname: " << hostname
856 << " PID: " << getpid() << "'; echo ''; ";
857
858 // Figure out how to run the debugger
859 if (command.find("lldb") != std::string::npos || command.find("gdb") != std::string::npos)
860 command_stream << command << " -p " << getpid();
861 else
862 mooseError("Unknown debugger: ",
863 command,
864 "\nIf this is truly what you meant then contact moose-users to have a discussion "
865 "about adding your debugger.");
866
867 // Finish up the command
868 command_stream << "\"" << " & ";
869 std::string command_string = command_stream.str();
870 Moose::out << "Running: " << command_string << std::endl;
871
872 int ret = std::system(command_string.c_str());
873 libmesh_ignore(ret);
874
875 // Sleep to allow time for the debugger to attach
876 std::this_thread::sleep_for(std::chrono::seconds(10));
877 }
878
879 if (isParamSetByUser("stop_for_debugger") && isUltimateMaster())
880 {
881 Moose::out << "\nStopping for " << getParam<unsigned int>("stop_for_debugger")
882 << " seconds to allow attachment from a debugger.\n";
883
884 Moose::out << "\nAll of the processes you can connect to:\n";
885 Moose::out << "rank - hostname - pid\n";
886
888
889 {
890 // The 'false' turns off the serialization warning
891 SerializerGuard sg(_communicator, false); // Guarantees that the processors print in order
892 Moose::err << processor_id() << " - " << hostname << " - " << getpid() << "\n";
893 }
894
895 Moose::out << "\nWaiting...\n" << std::endl;
896
897 // Sleep to allow time for the debugger to attach
898 std::this_thread::sleep_for(std::chrono::seconds(getParam<unsigned int>("stop_for_debugger")));
899 }
900
901 if (isParamSetByUser("show_actions"))
903
905 mooseError("Mesh can be passed in only for sub-apps");
906
908 mooseError("_master_mesh should have been set when _master_displaced_mesh is set");
909
910 // Data specifically associated with the mesh (meta-data) that will read from the restart
911 // file early during the simulation setup so that they are available to Actions and other objects
912 // that need them during the setup process. Most of the restartable data isn't made available
913 // until all objects have been created and all Actions have been executed (i.e. initialSetup).
915
916 if (_pars.have_parameter<bool>("use_legacy_dirichlet_bc"))
917 mooseDeprecated("The parameter 'use_legacy_dirichlet_bc' is no longer valid.\n\n",
918 "All Dirichlet boundary conditions are preset by default.\n\n",
919 "Remove said parameter in ",
920 name(),
921 " to remove this deprecation warning.");
922
924 mooseError("Cannot use --test-restep and --test-checkpoint-half-transient together");
925
926 Moose::out << std::flush;
927
928#ifdef MOOSE_KOKKOS_ENABLED
929#ifdef MOOSE_ENABLE_KOKKOS_GPU
931#endif
932#endif
933}
934
936{
937#ifdef HAVE_GPERFTOOLS
938 // CPU profiling stop
939 if (_cpu_profiling)
940 ProfilerStop();
941 // Heap profiling stop
942 if (_heap_profiling)
943 HeapProfilerStop();
944#endif
946 _the_warehouse.reset();
947 _executioner.reset();
948
949 // Don't wait for implicit destruction of input parameter storage
951
952 // This is dirty, but I don't know what else to do. Obviously, others
953 // have had similar problems if you look above. In specific, the
954 // dlclose below on macs is destructing some data that does not
955 // belong to it in garbage collection. So... don't even give
956 // dlclose an option
957 _restartable_data.clear();
958
959 // Remove this app's parameters from the AppFactory. This allows
960 // for creating an app with this name again in the same execution,
961 // which needs to be done when resetting applications in MultiApp
963
964#ifdef LIBMESH_HAVE_DLOPEN
965 // Close any open dynamic libraries
966 for (const auto & lib_pair : _lib_handles)
967 dlclose(lib_pair.second.library_handle);
968#endif
969
970#ifdef MOOSE_KOKKOS_ENABLED
972#endif
973}
void ErrorVector unsigned int
void clear()
This method deletes all of the Actions in the warehouse.
void showActions(bool state=true)
This method sets a Boolean which is used to show information about action execution of various wareho...
static AppFactory & instance()
Get the instance of the AppFactory.
Definition AppFactory.C:20
void clearAppParams(const InputParameters &params, const ClearAppParamsKey)
Clears the stored parameters for the given application parameteres.
Definition AppFactory.C:53
AttribBoundaries tracks all boundary IDs associated with an object.
Definition Attributes.h:190
Tracks whether the object is on the displaced mesh.
Definition Attributes.h:501
TODO: delete this later - it is a temporary hack for dealing with inter-system dependencies.
Definition Attributes.h:346
TODO: delete this later - it is a temporary hack for dealing with inter-system dependencies.
Definition Attributes.h:315
TODO: delete this later - it is a temporary hack for dealing with inter-system dependencies.
Definition Attributes.h:296
Residual objects have this attribute.
Definition Attributes.h:431
This attribute describes sorting state.
Tracks the libmesh system number that a MooseObject is associated with.
Definition Attributes.h:277
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.
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.
const bool _distributed_mesh_on_command_line
This variable indicates that DistributedMesh should be used for the libMesh mesh underlying MooseMesh...
Definition MooseApp.h:1406
bool _heap_profiling
Memory profiling.
Definition MooseApp.h:1705
const bool _use_split
Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)
Definition MooseApp.h:1418
const MooseMesh *const _master_mesh
The mesh from master app.
Definition MooseApp.h:1673
const torch::DeviceType _libtorch_device
The libtorch device this app is using (converted from compute_device)
Definition MooseApp.h:1730
processor_id_type processor_id() const
Returns the MPI processor ID of the current processor.
Definition MooseApp.h:414
const std::shared_ptr< CommandLine > _command_line
The CommandLine object.
Definition MooseApp.h:1324
void registerRestartableDataMapName(const RestartableDataMapName &name, std::string suffix="")
Reserve a location for storing custom RestartableDataMap objects.
Definition MooseApp.C:3410
MeshGeneratorSystem _mesh_generator_system
The system that manages the MeshGenerators.
Definition MooseApp.h:1679
void queryKokkosGPUs()
Query the Kokkos GPUs in the system and check whether every process has an associated GPU.
SolutionInvalidity & _solution_invalidity
The SolutionInvalidity object for this application.
Definition MooseApp.h:1345
std::shared_ptr< Executioner > _executioner
Pointer to the executioner of this run (typically build by actions)
Definition MooseApp.h:1351
bool forceRestart() const
Whether or not we are forcefully restarting (allowing the load of potentially incompatibie checkpoint...
Definition MooseApp.h:1111
bool _start_time_set
Whether or not an start time has been set.
Definition MooseApp.h:1296
std::vector< RestartableDataMap > _restartable_data
Where the restartable data is held (indexed on tid)
Definition MooseApp.h:1333
const std::shared_ptr< libMesh::Parallel::Communicator > _comm
The MPI communicator this App is going to use.
Definition MooseApp.h:1281
std::unique_ptr< TheWarehouse > _the_warehouse
The combined warehouse for storing any MooseObject based object.
Definition MooseApp.h:1661
torch::DeviceType determineLibtorchDeviceType(const MooseEnum &device) const
Function to determine the device which should be used by libtorch on this application.
Definition MooseApp.C:3468
std::unordered_map< std::string, DynamicLibraryInfo > _lib_handles
The library archive (name only), registration method and the handle to the method.
Definition MooseApp.h:1462
const unsigned int _multiapp_number
Numbering in all the sub-apps on the same level.
Definition MooseApp.h:1667
ActionFactory _action_factory
The Factory responsible for building Actions.
Definition MooseApp.h:1312
SolutionInvalidity & createRecoverableSolutionInvalidity()
Creates a recoverable SolutionInvalidity.
Definition MooseApp.C:3447
const std::string _type
The string representation of the type of this object as registered (see registerApp(AppName))
Definition MooseApp.h:1278
virtual ~MooseApp()
bool _output_position_set
Whether or not an output position has been set for this app.
Definition MooseApp.h:1290
Real _start_time
The time at which to start the simulation.
Definition MooseApp.h:1299
Real _global_time_offset
Offset of the local App time to the "global" problem time.
Definition MooseApp.h:1302
bool _recover
Whether or not this is a recovery run.
Definition MooseApp.h:1409
ActionWarehouse _action_warehouse
Where built actions are stored.
Definition MooseApp.h:1315
bool _initial_from_file
This variable indicates when a request has been made to restart from an Exodus file.
Definition MooseApp.h:1400
bool _use_nonlinear
Boolean to indicate whether to use a Nonlinear or EigenSystem (inspected by actions)
Definition MooseApp.h:1376
bool isUltimateMaster() const
Whether or not this app is the ultimate master app.
Definition MooseApp.h:863
bool _ready_to_exit
Definition MooseApp.h:1395
std::unique_ptr< InputParameterWarehouse > _input_parameter_warehouse
Input parameter storage structure; unique_ptr so we can control its destruction order.
Definition MooseApp.h:1309
OutputWarehouse _output_warehouse
OutputWarehouse object for this App.
Definition MooseApp.h:1318
ChainControlDataSystem _chain_control_system
The system that manages the ChainControls.
Definition MooseApp.h:1682
Factory _factory
Definition MooseApp.h:1389
std::shared_ptr< NullExecutor > _null_executor
Used to return an executor that does nothing.
Definition MooseApp.h:1373
PerfGraph & createRecoverablePerfGraph()
Creates a recoverable PerfGraph.
Definition MooseApp.C:3429
void deallocateKokkosMemoryPool()
Deallocate Kokkos memory pool.
bool _restart
Whether or not this is a restart run.
Definition MooseApp.h:1412
const MooseMesh *const _master_displaced_mesh
The displaced mesh from master app.
Definition MooseApp.h:1676
const bool _use_master_mesh
Whether to use the parent app mesh for this app.
Definition MooseApp.h:1670
const unsigned int _multiapp_level
Level of multiapp, the master is level 0. This used by the Console to indent output.
Definition MooseApp.h:1664
Moose::Builder _builder
Builder for building app related parser tree.
Definition MooseApp.h:1330
bool _cpu_profiling
CPU profiling.
Definition MooseApp.h:1702
const bool _test_restep
Whether or not this simulation should fail its middle timestep and repeat (for testing)
Definition MooseApp.h:1432
const ExecFlagEnum _execute_flags
Execution flags for this App.
Definition MooseApp.h:1693
bool _trap_fpe
Whether or not FPE trapping should be turned on.
Definition MooseApp.h:1424
bool _error_overridden
Indicates whether warnings or errors are displayed when overridden parameters are detected.
Definition MooseApp.h:1392
const bool _check_input
true if we want to just check the input file
Definition MooseApp.h:1438
const bool _test_checkpoint_half_transient
Whether or not this simulation should only run half its transient (useful for testing recovery)
Definition MooseApp.h:1430
PerfGraph & _perf_graph
The PerfGraph object for this application (recoverable)
Definition MooseApp.h:1342
static const std::string MESH_META_DATA_SUFFIX
Definition MooseApp.h:134
bool _file_base_set_by_user
Whether or not file base is set through input or setOutputFileBase by MultiApp.
Definition MooseApp.h:1287
const std::shared_ptr< Parser > _parser
Parser for parsing the input file (owns the root hit node)
Definition MooseApp.h:1321
bool _split_mesh
Whether or not we are performing a split mesh operation (–split-mesh)
Definition MooseApp.h:1415
std::streambuf * _output_buffer_cache
Cache output buffer so the language server can turn it off then back on.
Definition MooseApp.h:1696
Syntax _syntax
Syntax of the input file.
Definition MooseApp.h:1305
RestartableDataReader _rd_reader
Definition MooseApp.h:1684
const bool _force_restart
Whether or not we are forcefully attempting to load checkpoints (–force-restart)
Definition MooseApp.h:1421
const bool _automatic_automatic_scaling
Whether to turn on automatic scaling by default.
Definition MooseApp.h:1699
std::unique_ptr< Backup > *const _initial_backup
The backup for use in initial setup; this will get set from the _initial_backup input parameter that ...
Definition MooseApp.h:1720
static const RestartableDataMapName MESH_META_DATA
Definition MooseApp.h:133
bool _use_eigen_value
Boolean to indicate whether to use an eigenvalue executioner.
Definition MooseApp.h:1379
std::string _early_exit_param
Indicates if simulation is ready to exit, and keeps track of which param caused it to exit.
Definition MooseApp.h:1394
int _exit_code
The exit code.
Definition MooseApp.h:1397
const RankMap _rank_map
The RankMap is a useful object for determining how the processes are laid out on the physical hardwar...
Definition MooseApp.h:1348
const bool _use_executor
Indicates whether we are operating in the new/experimental executor mode instead of using the legacy ...
Definition MooseApp.h:1370
Base class for everything in MOOSE with a name and a type.
Definition MooseBase.h:50
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
const std::string & type() const
Get the type of this class.
Definition MooseBase.h:93
void mooseDeprecated(Args &&... args) const
Emits a deprecation warning prefixed with the object name and type, and a stack trace.
Definition MooseBase.h:317
void mooseDeprecatedNoTrace(Args &&... args) const
Emits a deprecation warning prefixed with the object name and type, and no stack trace.
Definition MooseBase.h:327
const std::string & name() const
Get the name of the class.
Definition MooseBase.h:103
bool isParamSetByUser(const std::string &name) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
Definition MooseBase.h:205
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition MooseBase.h:271
const InputParameters & _pars
The object's parameters.
Definition MooseBase.h:384
T getCheckedPointerParam(const std::string &name, const std::string &error_string="") const
Verifies that the requested parameter exists and is not NULL and returns it to the caller.
Definition MooseBase.h:450
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition MooseBase.h:406
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition MooseBase.h:199
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition MooseMesh.h:95
Interface for objects interacting with the PerfGraph.
void enableLivePrint()
Enables Live Print.
Definition PerfGraph.C:58
static char addKnownLabel(const std::string &label)
addKnownLabel whitelists a label as valid for purposes of the checkLabels function.
Definition Registry.C:85
A scope guard that guarantees that whatever happens between when it gets created and when it is destr...
const Parallel::Communicator & _communicator
ParallelObject(const Parallel::Communicator &comm_in)
const Parallel::Communicator & comm() const
std::string hostname()
Definition MooseUtils.C:687
bool tokenizeAndConvert(const std::string &str, std::vector< T > &tokenized_vector, const std::string &delimiter=" \t\n\v\f\r")
tokenizeAndConvert splits a string using delimiter and then converts to type T.
void makedirs(const std::string &dir_name, bool throw_on_failure)
Definition MooseUtils.C:512
void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Register objects that are in MOOSE.
Definition Moose.C:76
void libmesh_ignore(const Args &...)
const unsigned int invalid_uint
unsigned int n_threads()
Helper class to hold streams for Backup and Restore operations.
Definition Backup.h:26

Member Function Documentation

◆ actionWarehouse() [1/2]

ActionWarehouse & MooseApp::actionWarehouse ( )
inline

◆ actionWarehouse() [2/2]

const ActionWarehouse & MooseApp::actionWarehouse ( ) const
inline

Return a const reference to the ActionWarehouse associated with this app.

Definition at line 218 of file MooseApp.h.

218{ return _action_warehouse; }

◆ addAppParam()

void MooseApp::addAppParam ( InputParameters &  params)
static

Definition at line 261 of file MooseApp.C.

262{
263 params.addCommandLineParam<std::string>(
264 "app_to_run", "--app <type>", "Specify the application type to run (case-sensitive)");
265}
void addCommandLineParam(const std::string &name, const std::string &syntax, const std::string &doc_string)

Referenced by AppFactory::createAppShared(), Moose::createMooseApp(), and validParams().

◆ addBoolCapability()

Moose::Capability & MooseApp::addBoolCapability ( const std::string_view  capability,
const bool  value,
const std::string_view  doc 
)
staticprotected

Register a boolean capability.

Parameters
capabilityThe name of the capability
valueThe value of the boolean capability
docThe documentation string
Returns
The capability

Definition at line 3537 of file MooseApp.C.

3540{
3541 return addCapabilityInternal(capability, value, doc);
3542}
static Moose::Capability & addCapabilityInternal(const std::string_view capability, const Moose::Capability::Value &value, const std::string_view doc)
Internal method for adding a capability.
Definition MooseApp.C:2297

◆ addCapability()

Moose::Capability & MooseApp::addCapability ( const std::string_view  capability,
const Moose::Capability::Value &  value,
const std::string_view  doc 
)
staticprotected

Deprecated method for adding a capability.

It is deprecated due to ambiguity between compilers with an implicit conversion for CapabilityValue (a variant).

Use one of add[Bool,Int,String]Capability instead.

Parameters
capabilityThe name of the capability
valueThe value of the capability
docThe documentation string
Returns
The capability

Definition at line 3561 of file MooseApp.C.

3564{
3565
3566 // Warn deprecation on the first time this is added so that we
3567 // don't get multiple warnings if the app is registered more
3568 // than once
3569 if (!Moose::internal::Capabilities::getCapabilities({}).query(std::string(capability)))
3570 ::mooseDeprecated("MooseApp::addCapability() is deprecated (adding capability '",
3571 capability,
3572 "'); use one of MooseApp::add[Bool,Int,String]Capability instead.");
3573
3574 return addCapabilityInternal(capability, value, doc);
3575}
static Capabilities & getCapabilities(const GetCapabilitiesPassKey)
Get the singleton Capabilities.
query_obj query

◆ addCapabilityInternal()

Moose::Capability & MooseApp::addCapabilityInternal ( const std::string_view  capability,
const Moose::Capability::Value &  value,
const std::string_view  doc 
)
staticprivate

Internal method for adding a capability.

Used to catch exceptions and report them as a mooseError.

Parameters
capabilityThe name of the capability
valueThe value of the capability
docThe documentation string
Returns
The capability

Definition at line 2297 of file MooseApp.C.

2300{
2301 try
2302 {
2303 return Moose::internal::Capabilities::getCapabilities({}).add(capability, value, doc);
2304 }
2305 catch (const std::exception & e)
2306 {
2307 ::mooseError(e.what());
2308 }
2309}

Referenced by addBoolCapability(), addCapability(), addIntCapability(), and addStringCapability().

◆ addExecutor()

void MooseApp::addExecutor ( const std::string &  type,
const std::string &  name,
const InputParameters &  params 
)

Definition at line 1825 of file MooseApp.C.

1828{
1829 std::shared_ptr<Executor> executor = _factory.create<Executor>(type, name, params);
1830
1831 if (_executors.count(executor->name()) > 0)
1832 mooseError("an executor with name '", executor->name(), "' already exists");
1833 _executors[executor->name()] = executor;
1834}
The Executor class directs the execution flow of simulations.
Definition Executor.h:27
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
std::map< std::string, std::shared_ptr< Executor > > _executors
Pointers to all of the Executors for this run.
Definition MooseApp.h:1357

Referenced by recursivelyCreateExecutors().

◆ addExecutorParams()

void MooseApp::addExecutorParams ( const std::string &  type,
const std::string &  name,
const InputParameters &  params 
)

Adds the parameters for an Executor to the list of parameters.

This is done so that the Executors can be created in exactly the correct order.

Definition at line 1837 of file MooseApp.C.

1840{
1841 _executor_params[name] = std::make_pair(type, std::make_unique<InputParameters>(params));
1842}
std::unordered_map< std::string, std::pair< std::string, std::unique_ptr< InputParameters > > > _executor_params
Used in building the Executors Maps the name of the Executor block to the <type, params>
Definition MooseApp.h:1362

Referenced by ReadExecutorParamsAction::act().

◆ addInputParam()

void MooseApp::addInputParam ( InputParameters &  params)
static

Definition at line 268 of file MooseApp.C.

269{
270 params.addCommandLineParam<std::vector<std::string>>(
271 "input_file", "-i <input file(s)>", "Specify input file(s); multiple files are merged");
272}

Referenced by AppFactory::createAppShared(), Moose::createMooseApp(), and validParams().

◆ addIntCapability()

Moose::Capability & MooseApp::addIntCapability ( const std::string_view  capability,
const int  value,
const std::string_view  doc 
)
staticprotected

Register an integer capability.

Parameters
capabilityThe name of the capability
valueThe value of the integer capability
docThe documentation string
Returns
The capability

Definition at line 3545 of file MooseApp.C.

3548{
3549 return addCapabilityInternal(capability, value, doc);
3550}

◆ addMeshGenerator()

void MooseApp::addMeshGenerator ( const std::string &  type,
const std::string &  name,
const InputParameters &  params 
)
inline

Add a mesh generator that will act on the meshes in the system.

Parameters
typeThe type of MeshGenerator
nameThe name of the MeshGenerator
paramsThe params used to construct the MeshGenerator

See MeshGeneratorSystem::addMeshGenerator()

Definition at line 899 of file MooseApp.h.

902 {
904 }
void addMeshGenerator(const std::string &type, const std::string &name, const InputParameters &params)
Add a mesh generator that will act on the meshes in the system.

Referenced by AddMeshGeneratorAction::act(), and MeshGenerator::addMeshSubgenerator().

◆ addRelationshipManager()

bool MooseApp::addRelationshipManager ( std::shared_ptr< RelationshipManager >  relationship_manager)

Transfers ownership of a RelationshipManager to the application for lifetime management.

The RelationshipManager will NOT be duplicately added if an equivalent RelationshipManager is already active. In that case, it's possible that the object will be destroyed if the reference count drops to zero.

Definition at line 2957 of file MooseApp.C.

2958{
2959 // We prefer to always add geometric RMs. There is no hurt to add RMs for replicated mesh
2960 // since MeshBase::delete_remote_elements{} is a no-op (empty) for replicated mesh.
2961 // The motivation here is that MooseMesh::_use_distributed_mesh may not be properly set
2962 // at the time we are adding geometric relationship managers. We deleted the following
2963 // old logic to add all geometric RMs regardless of there is a distributed mesh or not.
2964 // Otherwise, all geometric RMs will be improperly ignored for a distributed mesh generator.
2965
2966 // if (!_action_warehouse.mesh()->isDistributedMesh() && !_split_mesh &&
2967 // (relationship_manager->isType(Moose::RelationshipManagerType::GEOMETRIC) &&
2968 // !(relationship_manager->isType(Moose::RelationshipManagerType::ALGEBRAIC) ||
2969 // relationship_manager->isType(Moose::RelationshipManagerType::COUPLING))))
2970 // return false;
2971
2972 bool add = true;
2973
2974 std::set<std::shared_ptr<RelationshipManager>> rms_to_erase;
2975
2976 for (const auto & existing_rm : _relationship_managers)
2977 {
2978 if (*existing_rm >= *new_rm)
2979 {
2980 add = false;
2981 donateForWhom(*new_rm, *existing_rm);
2982 break;
2983 }
2984 // The new rm did not provide less or the same amount/type of ghosting as the existing rm, but
2985 // what about the other way around?
2986 else if (*new_rm >= *existing_rm)
2987 rms_to_erase.emplace(existing_rm);
2988 }
2989
2990 if (add)
2991 {
2992 _relationship_managers.emplace(new_rm);
2993 for (const auto & rm_to_erase : rms_to_erase)
2994 {
2995 donateForWhom(*rm_to_erase, *new_rm);
2996 removeRelationshipManager(rm_to_erase);
2997 }
2998 }
2999
3000 // Inform the caller whether the object was added or not
3001 return add;
3002}
std::set< std::shared_ptr< RelationshipManager > > _relationship_managers
The relationship managers that have been added.
Definition MooseApp.h:1441
void removeRelationshipManager(std::shared_ptr< RelationshipManager > relationship_manager)
Purge this relationship manager from meshes and DofMaps and finally from us.
Definition MooseApp.C:3059

Referenced by AdaptivityAction::act(), AddPeriodicBCAction::act(), SetAdaptivityOptionsAction::act(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), AddActionComponentAction::addRelationshipManagers(), and FunctorSmootherTempl< T >::FunctorSmootherTempl().

◆ addStringCapability()

Moose::Capability & MooseApp::addStringCapability ( const std::string_view  capability,
const std::string_view  value,
const std::string_view  doc 
)
staticprotected

Register a string capability.

Parameters
capabilityThe name of the capability
valueThe value of the string capability
docThe documentation string
Returns
The capability

Definition at line 3553 of file MooseApp.C.

3556{
3557 return addCapabilityInternal(capability, std::string(value), doc);
3558}

◆ allocateKokkosMemoryPool()

void MooseApp::allocateKokkosMemoryPool ( std::size_t  size,
unsigned int  ways 
) const

Allocate Kokkos memory pool.

Parameters
sizeThe memory pool size in the number of bytes
waysThe number of parallel ways

◆ appBinaryName()

virtual std::string MooseApp::appBinaryName ( ) const
inlinevirtual

Definition at line 147 of file MooseApp.h.

148 {
150 name = name.substr(0, name.find_last_of("-"));
151 if (name.find_first_of("/") != std::string::npos)
152 name = name.substr(name.find_first_of("/") + 1, std::string::npos);
153 return name;
154 }
std::string getExecutableName()
Gets the name of the running executable on Mac OS X and linux.

Referenced by copyInputs(), run(), and runInputs().

◆ appendMeshGenerator()

const MeshGenerator & MooseApp::appendMeshGenerator ( const std::string &  type,
const std::string &  name,
InputParameters  params 
)
inline

Append a mesh generator that will act on the final mesh generator in the system.

Parameters
typeThe type of MeshGenerator
nameThe name of the MeshGenerator
paramsThe params used to construct the MeshGenerator

See MeshGeneratorSystem::appendMeshGenerator()

Definition at line 950 of file MooseApp.h.

951 {
953 }
const MeshGenerator & appendMeshGenerator(const std::string &type, const std::string &name, InputParameters params)
Append a mesh generator that will act on the current final mesh generator in the system.

◆ appNameToLibName()

std::string MooseApp::appNameToLibName ( const std::string &  app_name) const

Converts an application name to a library name: Examples: AnimalApp -> libanimal-oprof.la (assuming METHOD=oprof) ThreeWordAnimalApp -> libthree_word_animal-dbg.la (assuming METHOD=dbg)

Definition at line 2387 of file MooseApp.C.

2388{
2389 std::string library_name(app_name);
2390
2391 // Strip off the App part (should always be the last 3 letters of the name)
2392 size_t pos = library_name.find("App");
2393 if (pos != library_name.length() - 3)
2394 mooseError("Invalid application name: ", library_name);
2395 library_name.erase(pos);
2396
2397 // Now get rid of the camel case, prepend lib, and append the method and suffix
2398 return std::string("lib") + MooseUtils::camelCaseToUnderscore(library_name) + '-' +
2399 QUOTE(METHOD) + ".la";
2400}
std::string camelCaseToUnderscore(const std::string &camel_case_name)
Definition MooseUtils.C:631

Referenced by dynamicAllRegistration(), and dynamicAppRegistration().

◆ attachRelationshipManagers() [1/2]

void MooseApp::attachRelationshipManagers ( MeshBase &  mesh,
MooseMesh &  moose_mesh 
)

Attach geometric relationship managers to the given MeshBase object.

This API is designed to work with MeshGenerators which are executed at the very beginning of a simulation. No attempt will be made to add relationship managers to a displaced mesh, because it doesn't exist yet.

Definition at line 3137 of file MooseApp.C.

3138{
3139 for (auto & rm : _relationship_managers)
3140 {
3142 {
3143 if (rm->attachGeometricEarly())
3144 {
3145 mesh.add_ghosting_functor(createRMFromTemplateAndInit(*rm, moose_mesh, mesh));
3147 }
3148 else
3149 {
3150 // If we have a geometric ghosting functor that can't be attached early, then we have to
3151 // prevent the mesh from deleting remote elements
3152 moose_mesh.allowRemoteElementRemoval(false);
3153
3154 if (const MeshBase * const moose_mesh_base = moose_mesh.getMeshPtr())
3155 {
3156 if (moose_mesh_base != &mesh)
3157 mooseError("The MooseMesh MeshBase and the MeshBase we're trying to attach "
3158 "relationship managers to are different");
3159 }
3160 else
3161 // The MeshBase isn't attached to the MooseMesh yet, so have to tell it not to remove
3162 // remote elements independently
3163 mesh.allow_remote_element_removal(false);
3164 }
3165 }
3166 }
3167}
std::map< Moose::RelationshipManagerType, std::set< const RelationshipManager * > > _attached_relationship_managers
The relationship managers that have been attached (type -> RMs)
Definition MooseApp.h:1445
RelationshipManager & createRMFromTemplateAndInit(const RelationshipManager &template_rm, MooseMesh &moose_mesh, MeshBase &mesh, const libMesh::DofMap *dof_map=nullptr)
Take an input relationship manager, clone it, and then initialize it with provided mesh and optional ...
Definition MooseApp.C:3101
const MeshBase * getMeshPtr() const
Definition MooseMesh.C:3506
void allowRemoteElementRemoval(bool allow_removal)
Set whether to allow remote element removal.
Definition MooseMesh.C:3999
MeshBase & mesh

◆ attachRelationshipManagers() [2/2]

void MooseApp::attachRelationshipManagers ( Moose::RelationshipManagerType  rm_type,
bool  attach_geometric_rm_final = false 
)

Attach the relationship managers of the given type Note: Geometric relationship managers that are supposed to be attached late will be attached when Algebraic are attached.

Definition at line 3170 of file MooseApp.C.

3172{
3173 for (auto & rm : _relationship_managers)
3174 {
3175 if (!rm->isType(rm_type))
3176 continue;
3177
3178 // RM is already attached (this also handles the geometric early case)
3179 if (_attached_relationship_managers[rm_type].count(rm.get()))
3180 continue;
3181
3183 {
3184 // The problem is not built yet - so the ActionWarehouse currently owns the mesh
3185 MooseMesh * const mesh = _action_warehouse.mesh().get();
3186
3187 // "attach_geometric_rm_final = true" inidicate that it is the last chance to attach
3188 // geometric RMs. Therefore, we need to attach them.
3189 if (!rm->attachGeometricEarly() && !attach_geometric_rm_final)
3190 // Will attach them later (during algebraic). But also, we need to tell the mesh that we
3191 // shouldn't be deleting remote elements yet
3192 mesh->allowRemoteElementRemoval(false);
3193 else
3194 {
3195 MeshBase & undisp_mesh_base = mesh->getMesh();
3196 const DofMap * const undisp_sys_dof_map =
3197 _executioner ? &feProblem().getSolverSystem(0).dofMap() : nullptr;
3198 undisp_mesh_base.add_ghosting_functor(
3199 createRMFromTemplateAndInit(*rm, *mesh, undisp_mesh_base, undisp_sys_dof_map));
3200
3201 // In the final stage, if there is a displaced mesh, we need to
3202 // clone ghosting functors for displacedMesh
3203 if (auto & disp_moose_mesh = _action_warehouse.displacedMesh();
3204 attach_geometric_rm_final && disp_moose_mesh)
3205 {
3206 MeshBase & disp_mesh_base = _action_warehouse.displacedMesh()->getMesh();
3207 const DofMap * disp_sys_dof_map = nullptr;
3209 disp_sys_dof_map = &feProblem().getDisplacedProblem()->solverSys(0).dofMap();
3210 disp_mesh_base.add_ghosting_functor(
3211 createRMFromTemplateAndInit(*rm, *disp_moose_mesh, disp_mesh_base, disp_sys_dof_map));
3212 }
3214 mooseError("The displaced mesh should not yet exist at the time that we are attaching "
3215 "early geometric relationship managers.");
3216
3217 // Mark this RM as attached
3218 mooseAssert(!_attached_relationship_managers[rm_type].count(rm.get()), "Already attached");
3219 _attached_relationship_managers[rm_type].insert(rm.get());
3220 }
3221 }
3222 else // rm_type is algebraic or coupling
3223 {
3224 if (!_executioner && !_executor)
3225 mooseError("We must have an executioner by now or else we do not have to data to add "
3226 "algebraic or coupling functors to in MooseApp::attachRelationshipManagers");
3227
3228 // Now we've built the problem, so we can use it
3229 auto & problem = feProblem();
3230 auto & undisp_moose_mesh = problem.mesh();
3231 auto & undisp_sys = feProblem().getSolverSystem(0);
3232 auto & undisp_sys_dof_map = undisp_sys.dofMap();
3233 auto & undisp_mesh = undisp_moose_mesh.getMesh();
3234
3235 if (rm->useDisplacedMesh() && problem.getDisplacedProblem())
3236 {
3238 // We actually need to add this to the FEProblemBase NonlinearSystemBase's DofMap
3239 // because the DisplacedProblem "nonlinear" DisplacedSystem doesn't have any matrices
3240 // for which to do coupling. It's actually horrifying to me that we are adding a
3241 // coupling functor, that is going to determine its couplings based on a displaced
3242 // MeshBase object, to a System associated with the undisplaced MeshBase object (there
3243 // is only ever one EquationSystems object per MeshBase object and visa versa). So here
3244 // I'm left with the choice of whether to pass in a MeshBase object that is *not* the
3245 // MeshBase object that will actually determine the couplings or to pass in the MeshBase
3246 // object that is inconsistent with the System DofMap that we are adding the coupling
3247 // functor for! Let's err on the side of *libMesh* consistency and pass properly paired
3248 // MeshBase-DofMap
3249 problem.addCouplingGhostingFunctor(
3250 createRMFromTemplateAndInit(*rm, undisp_moose_mesh, undisp_mesh, &undisp_sys_dof_map),
3251 /*to_mesh = */ false);
3252
3254 {
3255 auto & displaced_problem = *problem.getDisplacedProblem();
3256 auto & disp_moose_mesh = displaced_problem.mesh();
3257 auto & disp_mesh = disp_moose_mesh.getMesh();
3258 const DofMap * const disp_nl_dof_map = &displaced_problem.solverSys(0).dofMap();
3259 displaced_problem.addAlgebraicGhostingFunctor(
3260 createRMFromTemplateAndInit(*rm, disp_moose_mesh, disp_mesh, disp_nl_dof_map),
3261 /*to_mesh = */ false);
3262 }
3263 }
3264 else // undisplaced
3265 {
3267 problem.addCouplingGhostingFunctor(
3268 createRMFromTemplateAndInit(*rm, undisp_moose_mesh, undisp_mesh, &undisp_sys_dof_map),
3269 /*to_mesh = */ false);
3270
3272 problem.addAlgebraicGhostingFunctor(
3273 createRMFromTemplateAndInit(*rm, undisp_moose_mesh, undisp_mesh, &undisp_sys_dof_map),
3274 /*to_mesh = */ false);
3275 }
3276
3277 // Mark this RM as attached
3278 mooseAssert(!_attached_relationship_managers[rm_type].count(rm.get()), "Already attached");
3279 _attached_relationship_managers[rm_type].insert(rm.get());
3280 }
3281 }
3282}
unsigned int count
Definition MortarUtils.C:53
std::shared_ptr< DisplacedProblem > displaced_problem
std::shared_ptr< MooseMesh > & mesh()
std::shared_ptr< MooseMesh > & displacedMesh()
virtual std::shared_ptr< const DisplacedProblem > getDisplacedProblem() const
SolverSystem & getSolverSystem(unsigned int sys_num)
Get non-constant reference to a solver system.
FEProblemBase & feProblem() const
Definition MooseApp.C:1818
std::shared_ptr< Executor > _executor
Pointer to the Executor of this run.
Definition MooseApp.h:1354
virtual libMesh::DofMap & dofMap()
Gets writeable reference to the dof map.

Referenced by AddRelationshipManager::act(), CouplingFunctorCheckAction::act(), and MooseMesh::buildTypedMesh().

◆ backup() [1/2]

std::unique_ptr< Backup > MooseApp::backup ( )

Backs up the application memory in a Backup.

Returns
The backup

Definition at line 1693 of file MooseApp.C.

1694{
1695 TIME_SECTION("backup", 2, "Backing Up Application");
1696
1698
1699 preBackup();
1700
1701 auto backup = std::make_unique<Backup>();
1702 packMeshBackup(*this, *backup);
1703 writer.write(*backup->header, *backup->data);
1704
1705 return backup;
1706}
std::unique_ptr< Backup > backup()
Backs up the application memory in a Backup.
Definition MooseApp.C:1693
virtual void preBackup()
Insertion point for other apps that is called before backup()
Definition MooseApp.h:767
Writer for restartable data, to be read by the RestartableDataReader.

Referenced by backup(), finalizeRestore(), and restore().

◆ backup() [2/2]

std::vector< std::filesystem::path > MooseApp::backup ( const std::filesystem::path &  folder_base)

Backs up the application to the folder folder_base.

Returns
The files that are written in the backup

Definition at line 1682 of file MooseApp.C.

1683{
1684 TIME_SECTION("backup", 2, "Backing Up Application to File");
1685
1686 preBackup();
1687
1689 return writer.write(folder_base);
1690}

Referenced by Checkpoint::output().

◆ builder()

Moose::Builder & MooseApp::builder ( )
inline

Returns a writable reference to the builder.

Definition at line 223 of file MooseApp.h.

223{ return _builder; }

Referenced by CreateProblemDefaultAction::act(), MeshOnlyAction::act(), and SetupMeshAction::act().

◆ 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:2375
const hit::Node * getHitNode() const
Definition MooseBase.h:136
std::string messagePrefix(const bool hit_prefix=true) const
Definition MooseBase.h:256
void mooseConsole()
Send current output buffer to Console output objects.
void mooseErrorRaw(std::string msg, const std::string &prefix="", const hit::Node *node=nullptr, const bool show_trace=true)
Main callback for emitting a moose error.
Definition MooseError.C:51

◆ callMooseError() [2/2]

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

External method for calling moose error with added object context.

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

Definition at line 105 of file MooseBase.C.

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

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

◆ checkInput()

bool MooseApp::checkInput ( ) const
inline

Returns whether the Application is running in check input mode.

Definition at line 973 of file MooseApp.h.

973{ return _check_input; }

◆ checkMetaDataIntegrity()

void MooseApp::checkMetaDataIntegrity ( ) const

Function to check the integrity of the restartable meta data structure.

Definition at line 3361 of file MooseApp.C.

3362{
3363 for (auto map_iter = _restartable_meta_data.begin(); map_iter != _restartable_meta_data.end();
3364 ++map_iter)
3365 {
3366 const RestartableDataMapName & name = map_iter->first;
3367 const RestartableDataMap & meta_data = map_iter->second.first;
3368
3369 std::vector<std::string> not_declared;
3370
3371 for (const auto & data : meta_data)
3372 if (!data.declared())
3373 not_declared.push_back(data.name());
3374
3375 if (!not_declared.empty())
3376 {
3377 std::ostringstream oss;
3378 std::copy(
3379 not_declared.begin(), not_declared.end(), infix_ostream_iterator<std::string>(oss, ", "));
3380
3381 mooseError("The following '",
3382 name,
3383 "' meta-data properties were retrieved but never declared: ",
3384 oss.str());
3385 }
3386 }
3387}
std::string RestartableDataMapName
Definition MooseTypes.h:242
if(!dmm->_nl) SETERRQ(PETSC_COMM_WORLD
std::unordered_map< RestartableDataMapName, std::pair< RestartableDataMap, std::string > > _restartable_meta_data
General storage for custom RestartableData that can be added to from outside applications.
Definition MooseApp.h:1651
Storage for restartable data that is ordered based on insertion order.
GCC9 currently hits a "no type named 'value_type'" error during build if this is removed and iterator...

Referenced by SetupRecoverFileBaseAction::act().

◆ checkpointSuffix()

const std::string & MooseApp::checkpointSuffix ( )
static

The file suffix for the checkpoint mesh.

Definition at line 3005 of file MooseApp.C.

3006{
3007 static const std::string suffix = "-mesh.cpa.gz";
3008 return suffix;
3009}

Referenced by SetupRecoverFileBaseAction::act(), MooseMesh::init(), MFEMMesh::init(), and Checkpoint::output().

◆ collectCitations()

void MooseApp::collectCitations ( std::map< std::string, std::string > &  citations) const
private

Collects the BibTeX citations for the modules/objects constructed in this app and the finite element backend it uses, then recurses into every MultiApp subapp to do the same.

The map is keyed by BibTeX key so a citation shared across apps is folded in only once.

Definition at line 2067 of file MooseApp.C.

2068{
2069 // Gather the citations that apply to this app: for every object type actually constructed, the
2070 // citations registered for its owning app/module. The framework paper is tied to "MooseApp", so
2071 // it is gathered whenever a MooseApp object is used; apps composed of MooseApp inherit it. The
2072 // map is keyed by BibTeX key so a citation shared across apps is folded in only once.
2073 for (const auto & objname : _factory.getConstructedObjects())
2074 {
2075 mooseAssert(Registry::isRegisteredObj(objname),
2076 "Constructed object '" + objname + "' is not registered");
2077 const auto & app_citations = Registry::getCitations(Registry::objData(objname)._label);
2078 citations.insert(app_citations.begin(), app_citations.end());
2079 }
2080
2081 // Credit the finite element backend actually used in the run. These are mutually exclusive, so
2082 // only the backend in use is cited.
2083 std::string backend = "libMesh";
2084#ifdef MOOSE_MFEM_ENABLED
2085 if ((_executor || _executioner) && feProblem().feBackend() == Moose::FEBackend::MFEM)
2086 backend = "MFEM";
2087#endif
2088 const auto & backend_citations = Registry::getCitations(backend);
2089 citations.insert(backend_citations.begin(), backend_citations.end());
2090
2091 // Recurse into the MultiApp subapps so that objects/modules used only inside subapps are still
2092 // attributed. Each subapp is a separate MooseApp whose run() (and thus requestCitations()) is
2093 // never called, so the master gathers their citations here. feProblem() asserts when there is no
2094 // executioner, so only descend once one exists; nested MultiApps are handled by the recursion.
2095 if (_executor || _executioner)
2096 for (const auto & multi_app : feProblem().getMultiAppWarehouse().getObjects())
2097 for (const auto i : make_range(multi_app->numLocalApps()))
2098 multi_app->localApp(i)->collectCitations(citations);
2099}
for(PetscInt i=0;i< nvars;++i)
void collectCitations(std::map< std::string, std::string > &citations) const
Collects the BibTeX citations for the modules/objects constructed in this app and the finite element ...
Definition MooseApp.C:2067
static const RegistryEntryBase & objData(const std::string &name)
Definition Registry.C:58
static bool isRegisteredObj(const std::string &name)
Definition Registry.h:265
static const std::map< std::string, std::map< std::string, std::string > > & getCitations()
Returns the registered citations, keyed by app/module name and then by BibTeX key (app/module name ->...
Definition Registry.h:291
IntRange< T > make_range(T beg, T end)

Referenced by requestCitations().

◆ commandLine()

std::shared_ptr< CommandLine > MooseApp::commandLine ( ) const
inline

Get the command line.

Returns
The reference to the command line object Setup options based on InputParameters.

Definition at line 421 of file MooseApp.h.

421{ return _command_line; }

Referenced by MultiApp::createApp(), Moose::Builder::errorCheck(), ConsoleUtils::outputExecutionInformation(), ConsoleUtils::outputFrameworkInformation(), and MooseServer::parseDocumentForDiagnostics().

◆ 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}
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
Definition MooseApp.h:404
InputParameterWarehouse & getInputParameterWarehouse()
Get the InputParameterWarehouse for MooseObjects.
Definition MooseApp.C:2833
MooseObjectName uniqueName() const
Definition MooseBase.C:69
A class for storing an input parameter name.

◆ constructingMeshGenerators()

bool MooseApp::constructingMeshGenerators ( ) const
virtual

Whether this app is constructing mesh generators.

This is virtual to allow MooseUnitApp to override it so that we can construct MeshGenerators in unit tests

Definition at line 3460 of file MooseApp.C.

3461{
3462 return _action_warehouse.getCurrentTaskName() == "create_added_mesh_generators" ||
3464}
const std::string & getCurrentTaskName() const
bool appendingMeshGenerators() const
Whether or not mesh generators are currently being appended (append_mesh_generator task)

Referenced by MeshGenerator::addChildMeshGenerator(), MeshGeneratorSystem::addMeshGenerator(), MeshGenerator::addMeshSubgenerator(), MeshGenerator::addParentMeshGenerator(), MeshGenerator::checkGetMesh(), MeshGeneratorSystem::createMeshGenerator(), MeshGeneratorSystem::createMeshGeneratorOrder(), MeshGenerator::declareMeshProperty(), MeshGenerator::declareNullMeshName(), MeshGeneratorSystem::getCSGBaseGeneratorOutput(), and MeshGeneratorSystem::getMeshGeneratorOutput().

◆ copyInputs()

bool MooseApp::copyInputs ( )
private

Handles the copy_inputs input parameter logic: Checks to see whether the passed argument is valid (a readable installed directory) and recursively copies those files into a read/writable location for the user.

Returns
a Boolean value used to indicate whether the application should exit early

Definition at line 2175 of file MooseApp.C.

2176{
2177 if (isParamSetByUser("copy_inputs"))
2178 {
2179 if (comm().size() > 1)
2180 mooseError("The --copy-inputs option should not be ran in parallel");
2181
2182 // Get command line argument following --copy-inputs on command line
2183 auto dir_to_copy = getParam<std::string>("copy_inputs");
2184
2185 if (dir_to_copy.empty())
2186 mooseError("Error retrieving directory to copy");
2187 if (dir_to_copy.back() != '/')
2188 dir_to_copy += '/';
2189
2190 // This binary name is the actual binary. That is, if we called a symlink it'll
2191 // be the name of what the symlink points to
2192 auto binname = appBinaryName();
2193 if (binname == "")
2194 mooseError("could not locate installed tests to run (unresolved binary/app name)");
2195
2196 auto src_dir = MooseUtils::installedInputsDir(
2197 binname,
2198 dir_to_copy,
2199 "Rerun binary with " + _pars.getCommandLineMetadata("show_inputs").switches[0] +
2200 " to get a list of installable directories.");
2201
2202 // Use the command line here because if we have a symlink to another binary,
2203 // we want to dump into a directory that is named after the symlink not the true binary
2204 auto dst_dir = _command_line->getExecutableNameBase() + "/" + dir_to_copy;
2205 auto cmdname = _command_line->getExecutableName();
2206 if (cmdname.find_first_of("/") != std::string::npos)
2207 cmdname = cmdname.substr(cmdname.find_first_of("/") + 1, std::string::npos);
2208
2209 if (MooseUtils::pathExists(dst_dir))
2210 mooseError(
2211 "The directory \"./",
2212 dst_dir,
2213 "\" already exists.\nTo update/recopy the contents of this directory, rename (\"mv ",
2214 dst_dir,
2215 " new_dir_name\") or remove (\"rm -r ",
2216 dst_dir,
2217 "\") the existing directory.\nThen re-run \"",
2218 cmdname,
2219 " --copy-inputs ",
2220 dir_to_copy,
2221 "\".");
2222
2223 std::string cmd = "mkdir -p " + dst_dir + "; rsync -av " + src_dir + " " + dst_dir;
2224
2225 TIME_SECTION("copy_inputs", 2, "Copying Inputs");
2226
2227 mooseAssert(comm().size() == 1, "Should be run in serial");
2228 const auto return_value = system(cmd.c_str());
2229 if (!WIFEXITED(return_value))
2230 mooseError("Process exited unexpectedly");
2231 setExitCode(WEXITSTATUS(return_value));
2232 if (exitCode() == 0)
2233 Moose::out << "Directory successfully copied into ./" << dst_dir << '\n';
2234 return true;
2235 }
2236 return false;
2237}
const InputParameters::CommandLineMetadata & getCommandLineMetadata(const std::string &name) const
virtual std::string appBinaryName() const
Definition MooseApp.h:147
void setExitCode(const int exit_code)
Sets the exit code that the application will exit with.
Definition MooseApp.h:165
int exitCode() const
Get the shell exit code for the application.
Definition MooseApp.h:160
std::string installedInputsDir(const std::string &app_name, const std::string &dir_name, const std::string &extra_error_msg)
Definition MooseUtils.C:166
bool pathExists(const std::string &path)
Definition MooseUtils.C:310
std::vector< std::string > switches
The switches for the parameter (i.e., [-t, –timing])

Referenced by run().

◆ createExecutors()

void MooseApp::createExecutors ( )

After adding all of the Executor Params - this function will actually cause all of them to be built.

Definition at line 1910 of file MooseApp.C.

1911{
1912 // Do we have any?
1913 if (_executor_params.empty())
1914 return;
1915
1916 // Holds the names of Executors that may be the root executor
1917 std::list<std::string> possibly_root;
1918
1919 // What is already built
1920 std::map<std::string, bool> already_built;
1921
1922 // The Executors that are currently candidates for being roots
1923 std::list<std::string> possible_roots;
1924
1925 // The current line of dependencies - used for finding cycles
1926 std::list<std::string> current_branch;
1927
1928 // Build the NullExecutor
1929 {
1930 auto params = _factory.getValidParams("NullExecutor");
1931 _null_executor = _factory.create<NullExecutor>("NullExecutor", "_null_executor", params);
1932 }
1933
1934 for (const auto & params_entry : _executor_params)
1935 {
1936 const auto & name = params_entry.first;
1937
1938 // Did we already make this one?
1939 if (_executors.find(name) != _executors.end())
1940 continue;
1941
1942 possible_roots.emplace_back(name);
1943
1944 recursivelyCreateExecutors(name, possible_roots, current_branch);
1945 }
1946
1947 // If there is more than one possible root - error
1948 if (possible_roots.size() > 1)
1949 {
1950 auto root_string_it = possible_roots.begin();
1951
1952 std::stringstream roots_string;
1953
1954 roots_string << *root_string_it++;
1955
1956 for (; root_string_it != possible_roots.end(); ++root_string_it)
1957 roots_string << ", " << *root_string_it;
1958
1959 mooseError("Multiple Executor roots found: ", roots_string.str());
1960 }
1961
1962 // Set the root executor
1963 _executor = _executors[possible_roots.front()];
1964}
InputParameters getValidParams(const std::string &name) const
Get valid parameters for the object.
Definition Factory.C:68
void recursivelyCreateExecutors(const std::string &current_executor_name, std::list< std::string > &possible_roots, std::list< std::string > &current_branch)
Internal function used to recursively create the executor objects.
Definition MooseApp.C:1858

Referenced by AddExecutorAction::act().

◆ createMinimalApp()

void MooseApp::createMinimalApp ( )
private

Method for creating the minimum required actions for an application (no input file)

Mimics the following input file:

[Mesh] type = GeneratedMesh dim = 1 nx = 1 []

[Executioner] type = Transient num_steps = 1 dt = 1 []

[Problem] solve = false []

[Outputs] console = false []

Definition at line 2857 of file MooseApp.C.

2858{
2859 TIME_SECTION("createMinimalApp", 3, "Creating Minimal App");
2860
2861 // SetupMeshAction
2862 {
2863 // Build the Action parameters
2864 InputParameters action_params = _action_factory.getValidParams("SetupMeshAction");
2865 action_params.set<std::string>("type") = "GeneratedMesh";
2866
2867 // Create The Action
2868 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
2869 _action_factory.create("SetupMeshAction", "Mesh", action_params));
2870
2871 // Set the object parameters
2872 InputParameters & params = action->getObjectParams();
2873 params.set<MooseEnum>("dim") = "1";
2874 params.set<unsigned int>("nx") = 1;
2875
2876 // Add Action to the warehouse
2878 }
2879
2880 // Executioner
2881 {
2882 // Build the Action parameters
2883 InputParameters action_params = _action_factory.getValidParams("CreateExecutionerAction");
2884 action_params.set<std::string>("type") = "Transient";
2885
2886 // Create the action
2887 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
2888 _action_factory.create("CreateExecutionerAction", "Executioner", action_params));
2889
2890 // Set the object parameters
2891 InputParameters & params = action->getObjectParams();
2892 params.set<unsigned int>("num_steps") = 1;
2893 params.set<Real>("dt") = 1;
2894
2895 // Add Action to the warehouse
2897 }
2898
2899 // Problem
2900 {
2901 // Build the Action parameters
2902 InputParameters action_params = _action_factory.getValidParams("CreateProblemDefaultAction");
2903 action_params.set<bool>("_solve") = false;
2904
2905 // Create the action
2906 std::shared_ptr<Action> action = std::static_pointer_cast<Action>(
2907 _action_factory.create("CreateProblemDefaultAction", "Problem", action_params));
2908
2909 // Add Action to the warehouse
2911 }
2912
2913 // Outputs
2914 {
2915 // Build the Action parameters
2916 InputParameters action_params = _action_factory.getValidParams("CommonOutputAction");
2917 action_params.set<bool>("console") = false;
2918
2919 // Create action
2920 std::shared_ptr<Action> action =
2921 _action_factory.create("CommonOutputAction", "Outputs", action_params);
2922
2923 // Add Action to the warehouse
2925 }
2926
2928}
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters &parameters)
InputParameters getValidParams(const std::string &name)
void build()
Builds all auto-buildable tasks.
void addActionBlock(std::shared_ptr< Action > blk)
This method add an Action instance to the warehouse.
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.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Referenced by setupOptions().

◆ createRecoverablePerfGraph()

PerfGraph & MooseApp::createRecoverablePerfGraph ( )
private

Creates a recoverable PerfGraph.

This is a separate method so that it can be used in the constructor (multiple calls are required to declare it).

Definition at line 3429 of file MooseApp.C.

3430{
3432
3433 auto perf_graph =
3434 std::make_unique<RestartableData<PerfGraph>>("perf_graph",
3435 this,
3436 type() + " (" + name() + ')',
3437 *this,
3438 getParam<bool>("perf_graph_live_all"),
3439 !getParam<bool>("disable_perf_graph_live"));
3440
3441 return dynamic_cast<RestartableData<PerfGraph> &>(
3442 registerRestartableData(std::move(perf_graph), 0, false))
3443 .set();
3444}
void registerRestartableNameWithFilter(const std::string &name, Moose::RESTARTABLE_FILTER filter)
NOTE: This is an internal function meant for MOOSE use only!
Definition MooseApp.C:1667
RestartableDataValue & registerRestartableData(std::unique_ptr< RestartableDataValue > data, THREAD_ID tid, bool read_only, const RestartableDataMapName &metaname="")
Definition MooseApp.C:2415
Concrete definition of a parameter value for a specified type.

◆ createRecoverableSolutionInvalidity()

SolutionInvalidity & MooseApp::createRecoverableSolutionInvalidity ( )
private

Creates a recoverable SolutionInvalidity.

This is a separate method so that it can be used in the constructor (multiple calls are required to declare it).

Definition at line 3447 of file MooseApp.C.

3448{
3450
3451 auto solution_invalidity =
3452 std::make_unique<RestartableData<SolutionInvalidity>>("solution_invalidity", nullptr, *this);
3453
3454 return dynamic_cast<RestartableData<SolutionInvalidity> &>(
3455 registerRestartableData(std::move(solution_invalidity), 0, false))
3456 .set();
3457}

◆ createRMFromTemplateAndInit()

RelationshipManager & MooseApp::createRMFromTemplateAndInit ( const RelationshipManager &  template_rm,
MooseMesh &  moose_mesh,
MeshBase &  mesh,
const libMesh::DofMap *  dof_map = nullptr 
)
private

Take an input relationship manager, clone it, and then initialize it with provided mesh and optional dof_map.

Parameters
template_rmThe relationship manager template from which we will clone
moose_meshThe moose mesh to use for initialization
meshThe mesh to use for initialization
dof_mapAn optional parameter that, if provided, will be used to help init the cloned relationship manager
Returns
a reference to the cloned and initialized relationship manager

Definition at line 3101 of file MooseApp.C.

3105{
3106 auto & mesh_to_clone = _template_to_clones[&template_rm];
3107 auto it = mesh_to_clone.find(&mesh);
3108 if (it != mesh_to_clone.end())
3109 {
3110 // We've already created a clone for this mesh
3111 auto & clone_rm = *it->second;
3112 if (!clone_rm.dofMap() && dof_map)
3113 // We didn't have a DofMap before, but now we do, so we should re-init
3114 clone_rm.init(moose_mesh, mesh, dof_map);
3115 else if (clone_rm.dofMap() && dof_map && (clone_rm.dofMap() != dof_map))
3116 mooseError("Attempting to create and initialize an existing clone with a different DofMap. "
3117 "This should not happen.");
3118
3119 return clone_rm;
3120 }
3121
3122 // It's possible that this method is going to get called for multiple different MeshBase
3123 // objects. If that happens, then we *cannot* risk having a MeshBase object with a ghosting
3124 // functor that is init'd with another MeshBase object. So the safe thing to do is to make a
3125 // different RM for every MeshBase object that gets called here. Then the
3126 // RelationshipManagers stored here in MooseApp are serving as a template only
3127 auto pr = mesh_to_clone.emplace(
3128 std::make_pair(&const_cast<const MeshBase &>(mesh),
3129 dynamic_pointer_cast<RelationshipManager>(template_rm.clone())));
3130 mooseAssert(pr.second, "An insertion should have happened");
3131 auto & clone_rm = *pr.first->second;
3132 clone_rm.init(moose_mesh, mesh, dof_map);
3133 return clone_rm;
3134}
std::map< const RelationshipManager *, std::map< const MeshBase *, std::unique_ptr< RelationshipManager > > > _template_to_clones
Map from a template relationship manager to a map in which the key-value pairs represent the MeshBase...
Definition MooseApp.h:1711
virtual std::unique_ptr< GhostingFunctor > clone() const=0

Referenced by attachRelationshipManagers(), and attachRelationshipManagers().

◆ deallocateKokkosMemoryPool()

void MooseApp::deallocateKokkosMemoryPool ( )
private

Deallocate Kokkos memory pool.

◆ defaultAutomaticScaling()

bool MooseApp::defaultAutomaticScaling ( ) const
inline

Whether to enable automatic scaling by default.

Definition at line 1052 of file MooseApp.h.

Referenced by FEProblemSolve::FEProblemSolve().

◆ determineLibtorchDeviceType()

torch::DeviceType MooseApp::determineLibtorchDeviceType ( const MooseEnum &  device) const
private

Function to determine the device which should be used by libtorch on this application.

We use this function to decide what is available on different builds.

Parameters
deviceEnum to describe if a cpu or a gpu should be used.

Definition at line 3468 of file MooseApp.C.

3469{
3470 const auto pname = "--compute-device";
3471 if (device_enum == "cuda")
3472 {
3473#ifdef __linux__
3474 if (!torch::cuda::is_available())
3475 mooseError(pname, "=cuda: CUDA support is not available in the linked libtorch library");
3476 return torch::kCUDA;
3477#else
3478 mooseError(pname, "=cuda: CUDA is not supported on your platform");
3479#endif
3480 }
3481 else if (device_enum == "mps")
3482 {
3483#ifdef __APPLE__
3484 if (!torch::mps::is_available())
3485 mooseError(pname, "=mps: MPS support is not available in the linked libtorch library");
3486 return torch::kMPS;
3487#else
3488 mooseError(pname, "=mps: MPS is not supported on your platform");
3489#endif
3490 }
3491 else if (device_enum == "xpu")
3492 {
3493#ifdef MOOSE_HAVE_XPU
3494 if (!torch::xpu::is_available())
3495 mooseError(pname, "=xpu: XPU support is not available in the linked libtorch library");
3496 return torch::kXPU;
3497#else
3498 mooseError(pname, "=xpu: XPU is not supported in the current application");
3499#endif
3500 }
3501 else if (device_enum != "cpu")
3502 mooseError("The device '",
3503 device_enum,
3504 "' is not currently supported by the MOOSE libtorch integration.");
3505 return torch::kCPU;
3506}

◆ disableCheckUnusedFlag()

void MooseApp::disableCheckUnusedFlag ( )

Removes warnings and error checks for unrecognized variables in the input file.

Definition at line 1812 of file MooseApp.C.

1813{
1815}

◆ dynamicAllRegistration()

void MooseApp::dynamicAllRegistration ( const std::string &  app_name,
Factory *  factory,
ActionFactory *  action_factory,
Syntax *  syntax,
std::string  library_path,
const std::string &  library_name 
)

Thes methods are called to register applications or objects on demand.

This method attempts to load a dynamic library and register it when it is needed. Throws an error if no suitable library is found that contains the app_name in question.

Definition at line 2604 of file MooseApp.C.

2610{
2611#ifdef LIBMESH_HAVE_DLOPEN
2612 libMesh::Parameters params;
2613 params.set<std::string>("app_name") = app_name;
2614 params.set<RegistrationType>("reg_type") = REGALL;
2615 params.set<std::string>("registration_method") = app_name + "__registerAll";
2616 params.set<std::string>("library_path") = library_path;
2617 params.set<std::string>("library_name") =
2618 library_name.empty() ? appNameToLibName(app_name) : library_name;
2619
2620 params.set<Factory *>("factory") = factory;
2621 params.set<Syntax *>("syntax") = syntax;
2622 params.set<ActionFactory *>("action_factory") = action_factory;
2623 params.set<bool>("library_load_dependencies") = false;
2624
2625 dynamicRegistration(params);
2626#else
2627 libmesh_ignore(app_name, factory, action_factory, syntax, library_path, library_name);
2628 mooseError("Dynamic Loading is either not supported or was not detected by libMesh configure.");
2629#endif
2630}
Specialized factory for generic Action System objects.
Generic factory class for build all sorts of objects.
Definition Factory.h:29
Syntax & syntax()
Returns a writable reference to the syntax object.
Definition MooseApp.h:228
void dynamicRegistration(const libMesh::Parameters &params)
Helper method for dynamic loading of objects.
Definition MooseApp.C:2633
RegistrationType
Enumeration for holding the valid types of dynamic registrations allowed.
Definition MooseApp.h:1655
std::string appNameToLibName(const std::string &app_name) const
Converts an application name to a library name: Examples: AnimalApp -> libanimal-oprof....
Definition MooseApp.C:2387
Holding syntax for parsing input files.
Definition Syntax.h:22
T & set(const std::string &)

Referenced by DynamicObjectRegistrationAction::DynamicObjectRegistrationAction().

◆ dynamicAppRegistration()

void MooseApp::dynamicAppRegistration ( const std::string &  app_name,
std::string  library_path,
const std::string &  library_name,
bool  lib_load_deps 
)

Definition at line 2547 of file MooseApp.C.

2551{
2552#ifdef LIBMESH_HAVE_DLOPEN
2553 libMesh::Parameters params;
2554 params.set<std::string>("app_name") = app_name;
2555 params.set<RegistrationType>("reg_type") = APPLICATION;
2556 params.set<std::string>("registration_method") = app_name + "__registerApps";
2557 params.set<std::string>("library_path") = library_path;
2558
2559 const auto effective_library_name =
2560 library_name.empty() ? appNameToLibName(app_name) : library_name;
2561 params.set<std::string>("library_name") = effective_library_name;
2562 params.set<bool>("library_load_dependencies") = lib_load_deps;
2563
2564 const auto paths = getLibrarySearchPaths(library_path);
2565 std::ostringstream oss;
2566
2567 auto successfully_loaded = false;
2568 if (paths.empty())
2569 oss << '"' << app_name << "\" is not a registered application name.\n"
2570 << "No search paths were set. We made no attempts to locate the corresponding library "
2571 "file.\n";
2572 else
2573 {
2574 dynamicRegistration(params);
2575
2576 // At this point the application should be registered so check it
2577 if (!AppFactory::instance().isRegistered(app_name))
2578 {
2579 oss << '"' << app_name << "\" is not a registered application name.\n"
2580 << "Unable to locate library archive for \"" << app_name
2581 << "\".\nWe attempted to locate the library archive \"" << effective_library_name
2582 << "\" in the following paths:\n\t";
2583 std::copy(paths.begin(), paths.end(), infix_ostream_iterator<std::string>(oss, "\n\t"));
2584 }
2585 else
2586 successfully_loaded = true;
2587 }
2588
2589 if (!successfully_loaded)
2590 {
2591 oss << "\nMake sure you have compiled the library and either set the \"library_path\" "
2592 "variable in your input file or exported \"MOOSE_LIBRARY_PATH\".\n";
2593
2594 mooseError(oss.str());
2595 }
2596
2597#else
2598 libmesh_ignore(app_name, library_path, library_name, lib_load_deps);
2599 mooseError("Dynamic Loading is either not supported or was not detected by libMesh configure.");
2600#endif
2601}
std::set< std::string > getLibrarySearchPaths(const std::string &library_path_from_param) const
Return the paths searched by MOOSE when loading libraries.
Definition MooseApp.C:2807

Referenced by MultiApp::createApps().

◆ dynamicRegistration()

void MooseApp::dynamicRegistration ( const libMesh::Parameters &  params)
protected

Helper method for dynamic loading of objects.

Definition at line 2633 of file MooseApp.C.

2634{
2635 const auto paths = getLibrarySearchPaths(params.get<std::string>("library_path"));
2636 const auto library_name = params.get<std::string>("library_name");
2637
2638 // Attempt to dynamically load the library
2639 for (const auto & path : paths)
2640 if (MooseUtils::checkFileReadable(path + '/' + library_name, false, false))
2642 path + '/' + library_name, params, params.get<bool>("library_load_dependencies"));
2643}
void loadLibraryAndDependencies(const std::string &library_filename, const libMesh::Parameters &params, bool load_dependencies=true)
Recursively loads libraries and dependencies in the proper order to fully register a MOOSE applicatio...
Definition MooseApp.C:2646
const T & get(std::string_view) const
bool checkFileReadable(const std::string &filename, bool check_line_endings, bool throw_on_unreadable, bool check_for_git_lfs_pointer)
Definition MooseUtils.C:317
const Elem & get(const ElemType type_in)

Referenced by dynamicAllRegistration(), and dynamicAppRegistration().

◆ errorCheck()

void MooseApp::errorCheck ( )
protected

Runs post-initialization error checking that cannot be run correctly unless the simulation has been fully set up and initialized.

Definition at line 1567 of file MooseApp.C.

1568{
1569 bool warn = _enable_unused_check == WARN_UNUSED;
1571
1572 _builder.errorCheck(*_comm, warn, err);
1573
1574 // Return early for mesh only mode, since we want error checking to run even though
1575 // an executor is not created for this case
1576 if (isParamSetByUser("mesh_only"))
1577 return;
1578
1579 if (!_executor.get() && !_executioner.get())
1580 {
1581 if (!_early_exit_param.empty())
1582 {
1583 mooseAssert(_check_input,
1584 "Something went wrong, we should only get here if _check_input is true.");
1585 mooseError(
1586 "Incompatible command line arguments provided. --check-input cannot be called with ",
1588 ".");
1589 }
1590 // We should never get here
1591 mooseError("The Executor is being called without being initialized. This is likely "
1592 "caused by "
1593 "incompatible command line arguments");
1594 }
1595
1596 auto apps = feProblem().getMultiAppWarehouse().getObjects();
1597 for (auto app : apps)
1598 for (unsigned int i = 0; i < app->numLocalApps(); i++)
1599 app->localApp(i)->errorCheck();
1600}
ExecuteMooseObjectWarehouse< MultiApp > & getMultiAppWarehouse()
const std::vector< std::shared_ptr< T > > & getObjects(THREAD_ID tid=0) const
Retrieve complete vector to the all/block/boundary restricted objects for a given thread.
void errorCheck(const libMesh::Parallel::Communicator &comm, bool warn_unused, bool err_unused)
Definition Builder.C:358
OStreamProxy err(std::cerr)

Referenced by errorCheck(), executeExecutioner(), and run().

◆ errorOnJacobianNonzeroReallocation()

virtual bool MooseApp::errorOnJacobianNonzeroReallocation ( ) const
inlinevirtual

Whether this application should by default error on Jacobian nonzero reallocations.

The application level setting can always be overridden by setting the error_on_jacobian_nonzero_reallocation parameter in the Problem block of the input file

Definition at line 1086 of file MooseApp.h.

1086{ return false; }

◆ 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(); }

◆ executeExecutioner()

void MooseApp::executeExecutioner ( )
virtual

Execute the Executioner that was built.

Definition at line 1603 of file MooseApp.C.

1604{
1605 TIME_SECTION("executeExecutioner", 3);
1606
1607 // If ready to exit has been set, then just return
1608 if (_ready_to_exit)
1609 return;
1610
1611 // run the simulation
1612 if (_use_executor && _executor)
1613 {
1615 _executor->init();
1616 errorCheck();
1617 auto result = _executor->exec();
1618 if (!result.convergedAll())
1619 mooseError(result.str());
1620 }
1621 else if (_executioner)
1622 {
1624 _executioner->init();
1625 errorCheck();
1626 _executioner->execute();
1627 if (!_executioner->lastSolveConverged())
1628 setExitCode(1);
1629 }
1630 else
1631 mooseError("No executioner was specified (go fix your input file)");
1632}
void errorCheck()
Runs post-initialization error checking that cannot be run correctly unless the simulation has been f...
Definition MooseApp.C:1567
PetscErrorCode petscSetupOutput(CommandLine *cmd_line)

Referenced by run().

◆ exitCode()

int MooseApp::exitCode ( ) const
inline

Get the shell exit code for the application.

Returns
The shell exit code

Definition at line 160 of file MooseApp.h.

160{ return _exit_code; }

Referenced by copyInputs().

◆ feProblem()

FEProblemBase & MooseApp::feProblem ( ) const

◆ finalizeRestore()

std::unique_ptr< Backup > MooseApp::finalizeRestore ( )

Finalizes (closes) the restoration process done in restore().

Returns
The underlying Backup that was used to do the restoration (if any, will be null when backed up from file); can be ignored to destruct it

This releases access to the stream in which the restore was loaded from and makes it no longer possible to restore additional data.

Definition at line 1773 of file MooseApp.C.

1774{
1775 if (!_rd_reader.isRestoring())
1776 mooseError("MooseApp::finalizeRestore(): Not currently restoring");
1777
1778 // This gives us access to the underlying streams so that we can return it if needed
1779 auto input_streams = _rd_reader.clear();
1780
1781 std::unique_ptr<Backup> backup;
1782
1783 // Give them back a backup if this restore started from a Backup, in which case
1784 // the two streams in the Backup are formed into StringInputStreams
1785 if (auto header_string_input = dynamic_cast<StringInputStream *>(input_streams.header.get()))
1786 {
1787 auto data_string_input = dynamic_cast<StringInputStream *>(input_streams.data.get());
1788 mooseAssert(data_string_input, "Should also be a string input");
1789
1790 auto header_sstream = header_string_input->release();
1791 mooseAssert(header_sstream, "Header not available");
1792
1793 auto data_sstream = data_string_input->release();
1794 mooseAssert(data_sstream, "Data not available");
1795
1796 backup = std::make_unique<Backup>();
1797 backup->header = std::move(header_sstream);
1798 backup->data = std::move(data_sstream);
1799 packMeshBackup(*this, *backup);
1800 }
1801
1802 return backup;
1803}
InputStreams clear()
Clears the contents of the reader (header stream, data stream, header)
Helper class that hands out input streams to a stringstream.

◆ fixedPointConfig()

FixedPointConfig & MooseApp::fixedPointConfig ( )
inline

This info is stored here because we need a "globalish" place to put it in order to allow communication between a multiapp and solver-specific internals (i.e.

relating to fixed-point inner loops like picard, etc.) for handling subapp-specific modifications necessary for those solve processes.

Definition at line 389 of file MooseApp.h.

389{ return _fixed_point_config; }
FixedPointConfig _fixed_point_config
Multiapp-related fixed point algorithm configuration details primarily intended to be passed to and u...
Definition MooseApp.h:1366

Referenced by FixedPointSolve::FixedPointSolve().

◆ forceRestart()

bool MooseApp::forceRestart ( ) const
inline

Whether or not we are forcefully restarting (allowing the load of potentially incompatibie checkpoints); used within RestartableDataReader.

Definition at line 1111 of file MooseApp.h.

1111{ return _force_restart; }

Referenced by possiblyLoadRestartableMetaData().

◆ FRIEND_TEST() [1/4]

MooseApp::FRIEND_TEST ( ::CapabilitiesTest  ,
mooseAppAddBoolCapability   
)
protected

◆ FRIEND_TEST() [2/4]

MooseApp::FRIEND_TEST ( ::CapabilitiesTest  ,
mooseAppAddCapability   
)
protected

◆ FRIEND_TEST() [3/4]

MooseApp::FRIEND_TEST ( ::CapabilitiesTest  ,
mooseAppAddIntCapability   
)
protected

◆ FRIEND_TEST() [4/4]

MooseApp::FRIEND_TEST ( ::CapabilitiesTest  ,
mooseAppAddStringCapability   
)
protected

◆ getActionFactory()

ActionFactory & MooseApp::getActionFactory ( )
inline

Retrieve a writable reference to the ActionFactory associated with this App.

Definition at line 409 of file MooseApp.h.

409{ return _action_factory; }

Referenced by Action::Action(), DumpObjectsProblem::DumpObjectsProblem(), and MooseServer::getActionParameters().

◆ getBase()

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

Definition at line 147 of file MooseBase.h.

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

Referenced by MooseBase::uniqueParameterName().

◆ getChainControlDataSystem()

ChainControlDataSystem & MooseApp::getChainControlDataSystem ( )
inline

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

◆ getCheckpointDirectories()

std::list< std::string > MooseApp::getCheckpointDirectories ( ) const

Get all checkpoint directories.

Returns
A Set of checkpoint directories

Definition at line 2323 of file MooseApp.C.

2324{
2325 // Storage for the directory names
2326 std::list<std::string> checkpoint_dirs;
2327
2328 // Add the directories added with Outputs/checkpoint=true input syntax
2329 checkpoint_dirs.push_back(getOutputFileBase() + "_cp");
2330
2331 // Add the directories from any existing checkpoint output objects
2332 const auto & actions = _action_warehouse.getActionListByName("add_output");
2333 for (const auto & action : actions)
2334 {
2335 // Get the parameters from the MooseObjectAction
2336 MooseObjectAction * moose_object_action = dynamic_cast<MooseObjectAction *>(action);
2337 if (!moose_object_action)
2338 continue;
2339
2340 const InputParameters & params = moose_object_action->getObjectParams();
2341 if (moose_object_action->getParam<std::string>("type") == "Checkpoint")
2342 {
2343 // Unless file_base was explicitly set by user, we cannot rely on it, as it will be changed
2344 // later
2345 const std::string cp_dir =
2346 _file_base_set_by_user ? params.get<std::string>("file_base")
2347 : (getOutputFileBase(true) + "_" + moose_object_action->name());
2348 checkpoint_dirs.push_back(cp_dir + "_cp");
2349 }
2350 }
2351 return checkpoint_dirs;
2352}
const std::list< Action * > & getActionListByName(const std::string &task) const
Retrieve a constant list of Action pointers associated with the passed in task.
std::string getOutputFileBase(bool for_non_moose_build_output=false) const
Get the output file base name.
Definition MooseApp.C:1498
InputParameters & getObjectParams()
Retrieve the parameters of the object to be created by this action.

Referenced by getCheckpointFiles().

◆ getCheckpointFiles()

std::list< std::string > MooseApp::getCheckpointFiles ( ) const

Extract all possible checkpoint file names.

Returns
A Set of checkpoint filenames

Definition at line 2355 of file MooseApp.C.

2356{
2357 auto checkpoint_dirs = getCheckpointDirectories();
2358 return MooseUtils::getFilesInDirs(checkpoint_dirs, false);
2359}
std::list< std::string > getCheckpointDirectories() const
Get all checkpoint directories.
Definition MooseApp.C:2323
std::list< std::string > getFilesInDirs(const std::list< std::string > &directory_list, const bool files_only)
Definition MooseUtils.C:871

Referenced by setRestartRecoverFileBase().

◆ getCommunicator()

const std::shared_ptr< libMesh::Parallel::Communicator > MooseApp::getCommunicator ( ) const
inline

Definition at line 1055 of file MooseApp.h.

1055{ return _comm; }

Referenced by MooseServer::parseDocumentForDiagnostics().

◆ getCurrentActionHitNode()

const hit::Node * MooseApp::getCurrentActionHitNode ( ) const
Returns
The hit node that is responsible for creating the current action that is running, if any

Can be used to link objects that are created by an action to the action that created them in input

Definition at line 3028 of file MooseApp.C.

3029{
3030 if (const auto action = _action_warehouse.getCurrentAction())
3031 return action->parameters().getHitNode();
3032 return nullptr;
3033}
const Action * getCurrentAction() const

Referenced by ActionFactory::create(), and Factory::initialize().

◆ getDistributedMeshOnCommandLine()

bool MooseApp::getDistributedMeshOnCommandLine ( ) const
inline

Returns true if the user specified –distributed-mesh (or –parallel-mesh, for backwards compatibility) on the command line and false otherwise.

Definition at line 463 of file MooseApp.h.

Referenced by MooseMesh::determineUseDistributedMesh().

◆ getExecuteOnEnum()

const ExecFlagEnum & MooseApp::getExecuteOnEnum ( ) const
inline

Return the app level ExecFlagEnum, this contains all the available flags for the app.

Definition at line 1037 of file MooseApp.h.

1037{ return _execute_flags; }

Referenced by EigenExecutionerBase::normalizeSolution().

◆ getExecutioner()

Executioner * MooseApp::getExecutioner ( ) const

◆ getExecutor() [1/2]

Executor * MooseApp::getExecutor ( ) const
inline

◆ getExecutor() [2/2]

Executor & MooseApp::getExecutor ( const std::string &  name,
bool  fail_if_not_found = true 
)

Get an Executor.

Parameters
nameThe name of the Executor
fail_if_not_foundWhether or not to fail if the executor doesn't exist. If this is false then this function will return a NullExecutor

Definition at line 1967 of file MooseApp.C.

1968{
1969 auto it = _executors.find(name);
1970
1971 if (it != _executors.end())
1972 return *it->second;
1973
1974 if (fail_if_not_found)
1975 mooseError("Executor not found: ", name);
1976
1977 return *_null_executor;
1978}

◆ getExodusFileRestart()

bool MooseApp::getExodusFileRestart ( ) const
inline

Whether or not we need to use a separate Exodus reader to read the mesh BEFORE we create the mesh.

Definition at line 433 of file MooseApp.h.

433{ return _initial_from_file; }

Referenced by SetupMeshCompleteAction::act(), FileMesh::buildMesh(), and FileMeshGenerator::generate().

◆ getExReaderForRestart()

libMesh::ExodusII_IO * MooseApp::getExReaderForRestart ( ) const
inline

Get the Exodus reader to restart variables from an Exodus mesh file.

Definition at line 446 of file MooseApp.h.

446{ return _ex_reader.get(); }
std::shared_ptr< libMesh::ExodusII_IO > _ex_reader
The Exodus reader when _initial_from_file is set to true.
Definition MooseApp.h:1403

Referenced by FEProblemBase::checkICRestartError(), and FEProblemBase::initialSetup().

◆ getFactory()

Factory & MooseApp::getFactory ( )
inline

Retrieve a writable reference to the Factory associated with this App.

Definition at line 404 of file MooseApp.h.

404{ return _factory; }

Referenced by AB2PredictorCorrector::AB2PredictorCorrector(), BatchMeshGeneratorAction::addMeshGenerators(), MeshGenerator::addMeshSubgenerator(), MooseServer::addValuesToList(), AStableDirk4::AStableDirk4(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), LibmeshPartitioner::clone(), BlockWeightedPartitioner::clone(), CopyMeshPartitioner::clone(), GridPartitioner::clone(), HierarchicalGridPartitioner::clone(), PetscExternalPartitioner::clone(), RandomPartitioner::clone(), SingleRankPartitioner::clone(), ElementPointNeighborLayers::clone(), ElementSideNeighborLayers::clone(), GhostAllPointNeighbors::clone(), GhostBoundary::clone(), GhostEverything::clone(), GhostHigherDLowerDPointNeighbors::clone(), GhostLowerDElems::clone(), GhostPrimaryFace::clone(), ProxyRelationshipManager::clone(), RedistributeProperties::clone(), SampledOutput::cloneMesh(), MooseBase::connectControllableParams(), MeshGeneratorSystem::createMeshGenerator(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), MooseServer::gatherDocumentDefinitionLocations(), MooseServer::getHoverDisplayText(), MooseServer::getObjectParameters(), MooseObject::MooseObject(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), OverlayMeshGenerator::OverlayMeshGenerator(), AuxiliarySystem::registerFVGradient(), AnnularMesh::safeClone(), ConcentricCircleMesh::safeClone(), FileMesh::safeClone(), GeneratedMesh::safeClone(), ImageMesh::safeClone(), MeshGeneratorMesh::safeClone(), PatternedMesh::safeClone(), RinglebMesh::safeClone(), SpiralAnnularMesh::safeClone(), StitchedMesh::safeClone(), TiledMesh::safeClone(), MFEMFileMesh::safeClone(), MFEMMeshGeneratorMesh::safeClone(), TransientBase::setupTimeIntegrator(), SideSetExtruderGenerator::SideSetExtruderGenerator(), and XYQuadrilateralMeshFromBoundaryCurve::XYQuadrilateralMeshFromBoundaryCurve().

◆ getFileName()

std::string MooseApp::getFileName ( bool  stripLeadingPath = true) const

Return the primary (first) filename that was parsed Note: When stripLeadingPath is false, this function returns the same name as getInputFileName() method when the input file is not a link.

Definition at line 2369 of file MooseApp.C.

2370{
2371 return _builder.getPrimaryFileName(stripLeadingPath);
2372}
std::string getPrimaryFileName(bool stripLeadingPath=true) const
Return the primary (first) filename that was parsed.
Definition Builder.C:179

Referenced by ProgressOutput::output().

◆ getFPTrapFlag()

bool MooseApp::getFPTrapFlag ( ) const
inline

Returns whether FPE trapping is turned on (either because of debug or user requested)

Definition at line 976 of file MooseApp.h.

976{ return _trap_fpe; }

◆ getFrameworkVersion()

std::string MooseApp::getFrameworkVersion ( ) const

Returns the framework version.

Definition at line 976 of file MooseApp.C.

977{
978 return MOOSE_VERSION;
979}

◆ getGlobalTimeOffset()

Real MooseApp::getGlobalTimeOffset ( ) const
inline

Each App has it's own local time.

The "global" time of the whole problem might be different. This offset is how far off the local App time is from the global time.

Definition at line 315 of file MooseApp.h.

315{ return _global_time_offset; }

Referenced by Nemesis::output(), Tecplot::output(), Exodus::outputEmptyTimestep(), Exodus::outputNodalVariables(), and TransientMultiApp::solveStep().

◆ getHitNode() [1/2]

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

Definition at line 136 of file MooseBase.h.

136{ return getHitNode(_pars); }

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

◆ getHitNode() [2/2]

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

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

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

Definition at line 167 of file MooseBase.C.

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

◆ getInputFileNames()

const std::vector< std::string > & MooseApp::getInputFileNames ( ) const
Returns
the input file names set in the Parser

Definition at line 1484 of file MooseApp.C.

1485{
1486 mooseAssert(_parser, "Parser is not set");
1487 return _parser->getInputFileNames();
1488}

Referenced by ConsoleUtils::outputFrameworkInformation(), Console::outputInput(), and setupOptions().

◆ getInputParameterWarehouse()

InputParameterWarehouse & MooseApp::getInputParameterWarehouse ( )

◆ getInstallableInputs()

std::string MooseApp::getInstallableInputs ( ) const
privatevirtual

Method to retrieve the installable inputs from a given applications <app>Revision.h file.

Definition at line 2169 of file MooseApp.C.

2170{
2171 return "tests";
2172}

Referenced by showInputs().

◆ getInterfaceObjects()

template<class T >
const std::vector< T * > & MooseApp::getInterfaceObjects ( ) const

Gets the registered interface objects for a given interface.

For this to work, the interface must register itself using registerInterfaceObject.

Definition at line 1780 of file MooseApp.h.

1781{
1782 static_assert(!std::is_base_of<MooseObject, T>::value, "T is not an interface");
1783
1784 const auto it = _interface_registry.find(typeid(T));
1785 if (it != _interface_registry.end())
1786 return cast_ptr<InterfaceRegistryObjects<T> *>(it->second.get())->_objects;
1787 const static std::vector<T *> empty;
1788 return empty;
1789}
std::map< std::type_index, std::unique_ptr< InterfaceRegistryObjectsBase > > _interface_registry
Registration for interface objects.
Definition MooseApp.h:1714

Referenced by DeclareLateReportersAction::act(), ResolveOptionalMaterialPropertiesAction::act(), Coupleable::checkWritableVar(), PetscOutputInterface::petscLinearOutput(), PetscOutputInterface::petscNonlinearOutput(), and PetscOutput::solveSetup().

◆ getKokkosMemoryPool()

const Moose::Kokkos::MemoryPool & MooseApp::getKokkosMemoryPool ( ) const

Get Kokkos memory pool.

Returns
The Kokkos memory pool

◆ getLastInputFileName()

const std::string & MooseApp::getLastInputFileName ( ) const
Returns
The last input filename set (if any)

Definition at line 1491 of file MooseApp.C.

1492{
1493 mooseAssert(_parser, "Parser is not set");
1494 return _parser->getLastInputFileName();
1495}

Referenced by setupOptions().

◆ getLibrarySearchPaths()

std::set< std::string > MooseApp::getLibrarySearchPaths ( const std::string &  library_path_from_param) const

Return the paths searched by MOOSE when loading libraries.

Definition at line 2807 of file MooseApp.C.

2808{
2809 std::set<std::string> paths;
2810
2811 if (!library_path.empty())
2812 {
2813 std::vector<std::string> tmp_paths;
2814 MooseUtils::tokenize(library_path, tmp_paths, 1, ":");
2815
2816 paths.insert(tmp_paths.begin(), tmp_paths.end());
2817 }
2818
2819 char * moose_lib_path_env = std::getenv("MOOSE_LIBRARY_PATH");
2820 if (moose_lib_path_env)
2821 {
2822 std::string moose_lib_path(moose_lib_path_env);
2823 std::vector<std::string> tmp_paths;
2824 MooseUtils::tokenize(moose_lib_path, tmp_paths, 1, ":");
2825
2826 paths.insert(tmp_paths.begin(), tmp_paths.end());
2827 }
2828
2829 return paths;
2830}
void tokenize(const std::string &str, std::vector< T > &elements, unsigned int min_len=1, const std::string &delims="/")
This function will split the passed in string on a set of delimiters appending the substrings to the ...

Referenced by dynamicAppRegistration(), and dynamicRegistration().

◆ getLibtorchDevice()

torch::DeviceType MooseApp::getLibtorchDevice ( ) const
inline

◆ getLoadedLibraryPaths()

std::set< std::string > MooseApp::getLoadedLibraryPaths ( ) const

Return the paths of loaded libraries.

Definition at line 2796 of file MooseApp.C.

2797{
2798 // Return the paths but not the open file handles
2799 std::set<std::string> paths;
2800 for (const auto & it : _lib_handles)
2801 paths.insert(it.first);
2802
2803 return paths;
2804}

Referenced by Factory::reportUnregisteredError().

◆ getMeshGenerator()

const MeshGenerator & MooseApp::getMeshGenerator ( const std::string &  name) const
inline
Returns
The MeshGenerator with the name name.

Definition at line 917 of file MooseApp.h.

918 {
920 }
const MeshGenerator & getMeshGenerator(const std::string &name) const

Referenced by MoveBoundaryNodesToCurveGenerator::curveGenerator(), MeshGenerator::generateInternal(), and MeshGenerator::generateInternalCSG().

◆ getMeshGeneratorMesh()

std::unique_ptr< MeshBase > MooseApp::getMeshGeneratorMesh ( )
inline
Returns
The final mesh generated by the mesh generator system

Definition at line 925 of file MooseApp.h.

926 {
928 }
static std::string mainMeshGeneratorName()
The name reserved for the "main" mesh generator which is the one used for the numerical solver downst...
std::unique_ptr< libMesh::MeshBase > getSavedMesh(const std::string &name)
Get the saved mesh by name.

◆ getMeshGeneratorNames()

std::vector< std::string > MooseApp::getMeshGeneratorNames ( ) const
inline
Returns
The names of all mesh generators

See MeshGeneratorSystem::getMeshGeneratorNames()

Definition at line 935 of file MooseApp.h.

936 {
938 }
std::vector< std::string > getMeshGeneratorNames() const
Get names of all mesh generators Note: This function should be called after all mesh generators are a...

Referenced by SetupMeshAction::act().

◆ getMeshGeneratorSystem()

MeshGeneratorSystem & MooseApp::getMeshGeneratorSystem ( )
inline

◆ 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(), LinearFVGradientManager::checkRestartedGradientHistory(), 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(), AuxiliarySystem::registerFVGradient(), Reporter::Reporter(), ReporterInterface::reportersAdded(), MultiApp::restore(), and VectorPostprocessorInterface::vectorPostprocessorsAdded().

◆ getNullExecutor()

NullExecutor * MooseApp::getNullExecutor ( ) const
inline

Definition at line 339 of file MooseApp.h.

339{ return _null_executor.get(); }

Referenced by ExecutorInterface::getExecutor().

◆ getOutputFileBase()

std::string MooseApp::getOutputFileBase ( bool  for_non_moose_build_output = false) const

Get the output file base name.

Parameters
for_non_moose_build_outputTrue for getting the file base for outputs generated with Outputs/[outputname] input syntax.
Returns
The file base name used by output objects Note: for_non_moose_build_output does not affect the returned value when this is a subapp. for_non_moose_build_output also does not affect the returned value when Outputs/file_base parameter is available. When for_non_moose_build_output does affect the returned value, i.e. master without Outputs/file_base, the suffix _out is removed.

Definition at line 1498 of file MooseApp.C.

1499{
1500 if (_file_base_set_by_user || for_non_moose_build_output || _multiapp_level)
1501 return _output_file_base;
1502 else
1503 return _output_file_base + "_out";
1504}
std::string _output_file_base
The output file basename.
Definition MooseApp.h:1284

Referenced by CSGOnlyAction::act(), getCheckpointDirectories(), AutomaticMortarGeneration::outputMortarMesh(), OutputWarehouse::resetFileBase(), and MultiApp::setAppOutputFileBase().

◆ getOutputFileNumbers()

const std::map< std::string, unsigned int > & MooseApp::getOutputFileNumbers ( ) const
inline

Store a map of outputter names and file numbers The MultiApp system requires this to get the file numbering to propogate down through the multiapps.

See also
MultiApp TransientMultiApp

Definition at line 549 of file MooseApp.h.

550 {
552 }
std::map< std::string, unsigned int > _output_file_numbers
Map of outputer name and file number (used by MultiApps to propagate file numbers down through the mu...
Definition MooseApp.h:1435

Referenced by TransientMultiApp::setupApp().

◆ getOutputPosition()

Point MooseApp::getOutputPosition ( ) const
inline

Get the output position.

Returns
The position offset for the output.

Definition at line 285 of file MooseApp.h.

285{ return _output_position; }
Point _output_position
The output position.
Definition MooseApp.h:1293

Referenced by MultiApp::createApp(), Exodus::output(), and MultiApp::parentOutputPositionChanged().

◆ getOutputWarehouse() [1/2]

OutputWarehouse & MooseApp::getOutputWarehouse ( )

◆ getOutputWarehouse() [2/2]

const OutputWarehouse & MooseApp::getOutputWarehouse ( ) const

Definition at line 2381 of file MooseApp.C.

2382{
2383 return _output_warehouse;
2384}

◆ 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(), DiffusionCG::addFEKernels(), DiffusionFV::addFVKernels(), CylinderComponent::addMeshGenerators(), FEProblemBase::addOutput(), ArrayParsedAux::ArrayParsedAux(), BicubicSplineFunction::BicubicSplineFunction(), SurfaceDelaunayGeneratorBase::checkBoundaryAndHolesParams(), Console::Console(), CutMeshByLevelSetGenerator::CutMeshByLevelSetGenerator(), DebugResidualAux::DebugResidualAux(), DerivativeParsedMaterialTempl< is_ad >::DerivativeParsedMaterialTempl(), DiffusionPhysicsBase::DiffusionPhysicsBase(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), EigenKernel::EigenKernel(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), MFEMEigenvaluesPostprocessor::execute(), FEProblemSolve::FEProblemSolve(), SurfaceDelaunayGeneratorBase::fillDelaunayOptions(), 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(), GenericConstantRankTwoTensorTempl< is_ad >::GenericConstantRankTwoTensorTempl(), GenericConstantSymmetricRankTwoTensorTempl< is_ad >::GenericConstantSymmetricRankTwoTensorTempl(), GeometricSearchInterface::GeometricSearchInterface(), getCheckpointDirectories(), DataFileInterface::getDataFileName(), ExecutorInterface::getExecutor(), DefaultConvergenceBase::getSharedExecutionerParam(), AddVariableAction::init(), AdvancedOutput::init(), FixedPointIterationAdaptiveDT::init(), TimeSequenceStepper::init(), AdvancedOutput::initAvailableLists(), AttribThread::initFrom(), AttribExecutionOrderGroup::initFrom(), AttribSysNum::initFrom(), AttribResidualObject::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), SampledOutput::initSample(), IterationAdaptiveDT::limitDTToPostprocessorValue(), MooseMesh::MooseMesh(), MooseVariableBase::MooseVariableBase(), MoveNodesByParsedExpressionModifier::MoveNodesByParsedExpressionModifier(), MultiPostprocessorConvergence::MultiPostprocessorConvergence(), PerfGraphOutput::output(), Console::outputSystemInformation(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedElementDeletionGenerator::ParsedElementDeletionGenerator(), ParsedGenerateNodeset::ParsedGenerateNodeset(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedMaterialTempl< is_ad >::ParsedMaterialTempl(), ParsedNodeTransformGenerator::ParsedNodeTransformGenerator(), ParsedODEKernel::ParsedODEKernel(), ParsedPostprocessor::ParsedPostprocessor(), ParsedReporterBase::ParsedReporterBase(), ParsedVectorReporter::ParsedVectorReporter(), ProjectSideSetOntoLevelSetGenerator::ProjectSideSetOntoLevelSetGenerator(), ReferenceResidualInterface::ReferenceResidualInterface(), Moose::FV::setInterpolationMethod(), SetupMeshAction::setupMesh(), setupOptions(), Output::setWallTimeIntervalFromCommandLineParam(), PetscOutput::solveSetup(), TimePeriod::TimePeriod(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), VectorOfPostprocessors::VectorOfPostprocessors(), and XYQuadrilateralMeshFromBoundaryCurve::XYQuadrilateralMeshFromBoundaryCurve().

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

◆ getPrintableName()

virtual std::string MooseApp::getPrintableName ( ) const
inlinevirtual

Get printable name of the application.

Definition at line 145 of file MooseApp.h.

145{ return "Application"; }

Referenced by getPrintableVersion().

◆ getPrintableVersion()

std::string MooseApp::getPrintableVersion ( ) const

Non-virtual method for printing out the version string in a consistent format.

Definition at line 988 of file MooseApp.C.

989{
990 return getPrintableName() + " Version: " + getVersion();
991}
virtual std::string getPrintableName() const
Get printable name of the application.
Definition MooseApp.h:145
virtual std::string getVersion() const
Returns the current version of the framework or application (default: framework version).
Definition MooseApp.C:982

Referenced by setupOptions().

◆ getRecoverableData()

const DataNames & MooseApp::getRecoverableData ( ) const
inline

Return a reference to the recoverable data object.

Returns
A const reference to the recoverable data

Definition at line 724 of file MooseApp.h.

724{ return _recoverable_data_names; }
DataNames _recoverable_data_names
Data names that will only be read from the restart file during RECOVERY.
Definition MooseApp.h:1339

Referenced by restore(), and restore().

◆ getRecoverFileBase()

std::string MooseApp::getRecoverFileBase ( ) const
inline

Definition at line 498 of file MooseApp.h.

499 {
500 mooseDeprecated("MooseApp::getRecoverFileBase is deprecated, use "
501 "MooseApp::getRestartRecoverFileBase() instead.");
503 }
std::string _restart_recover_base
The base name to restart/recover from. If blank then we will find the newest checkpoint file.
Definition MooseApp.h:1427

◆ getRelationshipManagerInfo()

std::vector< std::pair< std::string, std::string > > MooseApp::getRelationshipManagerInfo ( ) const

Returns the Relationship managers info suitable for printing.

Definition at line 3285 of file MooseApp.C.

3286{
3287 std::vector<std::pair<std::string, std::string>> info_strings;
3288 info_strings.reserve(_relationship_managers.size());
3289
3290 for (const auto & rm : _relationship_managers)
3291 {
3292 std::stringstream oss;
3293 oss << rm->getInfo();
3294
3295 auto & for_whom = rm->forWhom();
3296
3297 if (!for_whom.empty())
3298 {
3299 oss << " for ";
3300
3301 std::copy(for_whom.begin(), for_whom.end(), infix_ostream_iterator<std::string>(oss, ", "));
3302 }
3303
3304 info_strings.emplace_back(std::make_pair(Moose::stringify(rm->getType()), oss.str()));
3305 }
3306
3307 // List the libMesh GhostingFunctors - Not that in libMesh all of the algebraic and coupling
3308 // Ghosting Functors are also attached to the mesh. This should catch them all.
3309 const auto & mesh = _action_warehouse.getMesh();
3310 if (mesh)
3311 {
3312 // Let us use an ordered map to avoid stochastic console behaviors.
3313 // I believe we won't have many RMs, and there is no performance issue.
3314 // Deterministic behaviors are good for setting up regression tests
3315 std::map<std::string, unsigned int> counts;
3316
3317 for (auto & gf : as_range(mesh->getMesh().ghosting_functors_begin(),
3318 mesh->getMesh().ghosting_functors_end()))
3319 {
3320 const auto * gf_ptr = dynamic_cast<const RelationshipManager *>(gf);
3321 if (!gf_ptr)
3322 // Count how many occurences of the same Ghosting Functor types we are encountering
3323 counts[demangle(typeid(*gf).name())]++;
3324 }
3325
3326 for (const auto & pair : counts)
3327 info_strings.emplace_back(std::make_pair(
3328 "Default", pair.first + (pair.second > 1 ? " x " + std::to_string(pair.second) : "")));
3329 }
3330
3331 // List the libMesh GhostingFunctors - Not that in libMesh all of the algebraic and coupling
3332 // Ghosting Functors are also attached to the mesh. This should catch them all.
3333 const auto & d_mesh = _action_warehouse.getDisplacedMesh();
3334 if (d_mesh)
3335 {
3336 // Let us use an ordered map to avoid stochastic console behaviors.
3337 // I believe we won't have many RMs, and there is no performance issue.
3338 // Deterministic behaviors are good for setting up regression tests
3339 std::map<std::string, unsigned int> counts;
3340
3341 for (auto & gf : as_range(d_mesh->getMesh().ghosting_functors_begin(),
3342 d_mesh->getMesh().ghosting_functors_end()))
3343 {
3344 const auto * gf_ptr = dynamic_cast<const RelationshipManager *>(gf);
3345 if (!gf_ptr)
3346 // Count how many occurences of the same Ghosting Functor types we are encountering
3347 counts[demangle(typeid(*gf).name())]++;
3348 }
3349
3350 for (const auto & pair : counts)
3351 info_strings.emplace_back(
3352 std::make_pair("Default",
3353 pair.first + (pair.second > 1 ? " x " + std::to_string(pair.second) : "") +
3354 " for DisplacedMesh"));
3355 }
3356
3357 return info_strings;
3358}
const std::shared_ptr< MooseMesh > & getDisplacedMesh() const
const std::shared_ptr< MooseMesh > & getMesh() const
RelationshipManagers are used for describing what kinds of non-local resources are needed for an obje...
std::string stringify(const T &t)
conversion to string
Definition Conversion.h:65
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
std::string demangle(const char *name)

Referenced by ConsoleUtils::outputRelationshipManagerInformation().

◆ getReleationshipManagers()

const std::vector< std::shared_ptr< RelationshipManager > > & MooseApp::getReleationshipManagers ( )

Retrieve the relationship managers.

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

◆ getRestartableData() [1/2]

std::vector< RestartableDataMap > & MooseApp::getRestartableData ( )
inline

Definition at line 691 of file MooseApp.h.

691{ return _restartable_data; }

◆ getRestartableData() [2/2]

const std::vector< RestartableDataMap > & MooseApp::getRestartableData ( ) const
inline

Return reference to the restartable data object.

Returns
A reference to the restartable data object

Definition at line 690 of file MooseApp.h.

690{ return _restartable_data; }

◆ getRestartableDataMap()

RestartableDataMap & MooseApp::getRestartableDataMap ( const RestartableDataMapName &  name)

Return a reference to restartable data for the specific type flag.

Definition at line 3393 of file MooseApp.C.

3394{
3395 auto iter = _restartable_meta_data.find(name);
3396 if (iter == _restartable_meta_data.end())
3397 mooseError("Unable to find RestartableDataMap object for the supplied name '",
3398 name,
3399 "', did you call registerRestartableDataMapName in the application constructor?");
3400 return iter->second.first;
3401}

Referenced by getRestartableMetaData(), possiblyLoadRestartableMetaData(), and writeRestartableMetaData().

◆ getRestartableDataMapBegin()

auto MooseApp::getRestartableDataMapBegin ( )
inline

Iterator based access to the extra RestartableDataMap objects; see Checkpoint.C for use case.

These are MOOSE internal functions and should not be used otherwise.

Definition at line 1076 of file MooseApp.h.

1076{ return _restartable_meta_data.begin(); }

Referenced by SetupDebugAction::act().

◆ getRestartableDataMapEnd()

auto MooseApp::getRestartableDataMapEnd ( )
inline

Definition at line 1078 of file MooseApp.h.

1078{ return _restartable_meta_data.end(); }

Referenced by SetupDebugAction::act().

◆ getRestartableDataMapName()

const std::string & MooseApp::getRestartableDataMapName ( const RestartableDataMapName &  name) const
Returns
The output name for the restartable data with name name

Definition at line 3420 of file MooseApp.C.

3421{
3422 const auto it = _restartable_meta_data.find(name);
3423 if (it == _restartable_meta_data.end())
3424 mooseError("MooseApp::getRestartableDataMapName: The name '", name, "' is not registered");
3425 return it->second.second;
3426}

Referenced by possiblyLoadRestartableMetaData(), and writeRestartableMetaData().

◆ getRestartableMetaData()

RestartableDataValue & MooseApp::getRestartableMetaData ( const std::string &  name,
const RestartableDataMapName &  metaname,
THREAD_ID  tid 
)

Definition at line 2477 of file MooseApp.C.

2480{
2481 if (tid != 0)
2482 mooseError(
2483 "The meta data storage for '", metaname, "' is not threaded, so the tid must be zero.");
2484
2485 // Get metadata reference from RestartableDataMap and return a (non-const) reference to its value
2486 auto & restartable_data_map = getRestartableDataMap(metaname);
2487 RestartableDataValue * const data = restartable_data_map.findData(name);
2488 if (!data)
2489 mooseError("Unable to find RestartableDataValue object with name " + name +
2490 " in RestartableDataMap");
2491
2492 return *data;
2493}
RestartableDataMap & getRestartableDataMap(const RestartableDataMapName &name)
Return a reference to restartable data for the specific type flag.
Definition MooseApp.C:3393
Abstract definition of a RestartableData value.

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

◆ getRestartRecoverFileBase()

std::string MooseApp::getRestartRecoverFileBase ( ) const
inline

The file_base for the recovery file.

Definition at line 497 of file MooseApp.h.

497{ return _restart_recover_base; }

Referenced by SetupRecoverFileBaseAction::act(), MooseMesh::init(), and MFEMMesh::init().

◆ getRMClone()

RelationshipManager & MooseApp::getRMClone ( const RelationshipManager &  template_rm,
const MeshBase &  mesh 
) const
private

Return the relationship manager clone originally created from the provided template relationship manager and mesh.

Definition at line 3044 of file MooseApp.C.

3045{
3046 auto outer_it = _template_to_clones.find(&template_rm);
3047 if (outer_it == _template_to_clones.end())
3048 mooseError("The template rm does not exist in our _template_to_clones map");
3049
3050 auto & mesh_to_clone_map = outer_it->second;
3051 auto inner_it = mesh_to_clone_map.find(&mesh);
3052 if (inner_it == mesh_to_clone_map.end())
3053 mooseError("We should have the mesh key in our mesh");
3054
3055 return *inner_it->second;
3056}

Referenced by removeRelationshipManager().

◆ getStartTime()

Real MooseApp::getStartTime ( ) const
inline
Returns
The start time

Definition at line 303 of file MooseApp.h.

303{ return _start_time; }

Referenced by TransientBase::TransientBase().

◆ getSystemInfo()

const SystemInfo & MooseApp::getSystemInfo ( ) const
inline

Get SystemInfo object.

Returns
A pointer to the SystemInformation object

Definition at line 564 of file MooseApp.h.

564{ return _sys_info; }
SystemInfo _sys_info
System Information.
Definition MooseApp.h:1327

Referenced by ConsoleUtils::outputFrameworkInformation(), and to_json().

◆ getVersion()

std::string MooseApp::getVersion ( ) const
virtual

Returns the current version of the framework or application (default: framework version).

Definition at line 982 of file MooseApp.C.

983{
984 return MOOSE_VERSION;
985}

Referenced by getPrintableVersion().

◆ 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

◆ hasInitialBackup()

bool MooseApp::hasInitialBackup ( ) const
inline
Returns
Whether or not this app currently has an "initial" backup

See _initial_backup and restoreFromInitialBackup() for more info.

Definition at line 1044 of file MooseApp.h.

1045 {
1046 return _initial_backup != nullptr && *_initial_backup != nullptr;
1047 }

Referenced by hasInitialBackupMesh(), restoreFromInitialBackup(), and restoreMeshFromInitialBackup().

◆ hasInitialBackupMesh()

bool MooseApp::hasInitialBackupMesh ( ) const

Whether this app has an initial Backup object with mesh checkpoint entries.

Definition at line 1709 of file MooseApp.C.

1710{
1711 return hasInitialBackup() && !(*_initial_backup)->mesh_files.empty();
1712}
bool hasInitialBackup() const
Definition MooseApp.h:1044

◆ hasMeshGenerator()

bool MooseApp::hasMeshGenerator ( const MeshGeneratorName &  name) const
inline
Returns
Whether or not a mesh generator exists with the name name.

Definition at line 909 of file MooseApp.h.

910 {
912 }
bool hasMeshGenerator(const MeshGeneratorName &name) const

◆ hasOutputPosition()

bool MooseApp::hasOutputPosition ( ) const
inline

Whether or not an output position has been set.

Returns
True if it has

Definition at line 279 of file MooseApp.h.

279{ return _output_position_set; }

Referenced by Exodus::output().

◆ hasRecoverFileBase()

bool MooseApp::hasRecoverFileBase ( ) const

Definition at line 1659 of file MooseApp.C.

1660{
1661 mooseDeprecated("MooseApp::hasRecoverFileBase is deprecated, use "
1662 "MooseApp::hasRestartRecoverFileBase() instead.");
1663 return !_restart_recover_base.empty();
1664}

◆ hasRelationshipManager()

bool MooseApp::hasRelationshipManager ( const std::string &  name) const

Returns a Boolean indicating whether a RelationshipManater exists with the same name.

Definition at line 2931 of file MooseApp.C.

2932{
2933 return std::find_if(_relationship_managers.begin(),
2935 [&name](const std::shared_ptr<RelationshipManager> & rm)
2936 { return rm->name() == name; }) != _relationship_managers.end();
2937}

◆ hasRestartableDataMap()

bool MooseApp::hasRestartableDataMap ( const RestartableDataMapName &  name) const
Returns
Whether or not the restartable data has the given name registered.

Definition at line 3404 of file MooseApp.C.

3405{
3406 return _restartable_meta_data.count(name);
3407}

◆ hasRestartableMetaData()

bool MooseApp::hasRestartableMetaData ( const std::string &  name,
const RestartableDataMapName &  metaname 
) const

Definition at line 2467 of file MooseApp.C.

2469{
2470 auto it = _restartable_meta_data.find(metaname);
2471 if (it == _restartable_meta_data.end())
2472 return false;
2473 return it->second.first.hasData(name);
2474}

Referenced by MeshMetaDataInterface::hasMeshProperty().

◆ hasRestartRecoverFileBase()

bool MooseApp::hasRestartRecoverFileBase ( ) const

Return true if the recovery file base is set.

Definition at line 1653 of file MooseApp.C.

1654{
1655 return !_restart_recover_base.empty();
1656}

◆ hasRMClone()

bool MooseApp::hasRMClone ( const RelationshipManager &  template_rm,
const MeshBase &  mesh 
) const
private
Returns
whether we have created any clones for the provided template relationship manager and mesh yet. This may be false for instance when we are in the initial add relationship manager stage and haven't attempted attaching any relationship managers to the mesh or dof map yet (which is when we generate the clones). It's also maybe possible that we've created a clone of a given template_rm but not for the provided mesh so we return false in that case as well

Definition at line 3036 of file MooseApp.C.

3037{
3038 auto it = _template_to_clones.find(&template_rm);
3039 // C++ does short circuiting so we're safe here
3040 return (it != _template_to_clones.end()) && (it->second.find(&mesh) != it->second.end());
3041}

Referenced by removeRelationshipManager().

◆ hasStartTime()

bool MooseApp::hasStartTime ( ) const
inline
Returns
Whether or not a start time has been programmatically set using setStartTime()

Definition at line 298 of file MooseApp.h.

298{ return _start_time_set; }

Referenced by TransientBase::TransientBase().

◆ header()

std::string MooseApp::header ( ) const
virtual

Returns a string to be printed at the beginning of a simulation.

Definition at line 2839 of file MooseApp.C.

2840{
2841 return std::string("");
2842}

Referenced by restore(), and setupOptions().

◆ isInTree()

bool MooseApp::isInTree ( )
static
Returns
Whether or not the application is in-tree

Definition at line 3584 of file MooseApp.C.

3585{
3587}
static bool isInTree()
Definition MooseApp.C:3584

Referenced by isInTree().

◆ isKokkosAvailable()

bool MooseApp::isKokkosAvailable ( ) const
inline

Get whether Kokkos is available.

Returns
1) True if MOOSE is configured with Kokkos and every process has an associated GPU, 2) True if MOOSE is configured with Kokkos and GPU capablities are disabled, 3) False otherwise.

Definition at line 1136 of file MooseApp.h.

1137 {
1138#ifdef MOOSE_KOKKOS_ENABLED
1139#ifdef MOOSE_ENABLE_KOKKOS_GPU
1140 return _has_kokkos_gpus;
1141#else
1142 return true;
1143#endif
1144#else
1145 return false;
1146#endif
1147 }
bool _has_kokkos_gpus
Flag whether every process has an associated Kokkos GPU.
Definition MooseApp.h:1752

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

◆ 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(), DiffusionCG::addFEKernels(), DiffusionPhysicsBase::addInitialConditions(), CylinderComponent::addMeshGenerators(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), MFEMMesh::buildMesh(), MFEMBoundarySubMesh::buildSubMesh(), MFEMDomainSubMesh::buildSubMesh(), SurfaceDelaunayGeneratorBase::checkBoundaryAndHolesParams(), LibtorchNeuralNetControl::conditionalParameterError(), ConservativeAdvectionBCTempl< is_ad >::ConservativeAdvectionBCTempl(), MFEMNewtonNonlinearSolver::ConstructSolver(), copyInputs(), DiffusionPhysicsBase::DiffusionPhysicsBase(), errorCheck(), FileMesh::FileMesh(), FullSolveMultiApp::FullSolveMultiApp(), MeshDiagnosticsGenerator::generate(), OrientSurfaceMeshGenerator::generate(), SurfaceSubdomainsFromAllNormalsGenerator::generate(), MFEMVectorFESpace::getFECName(), MooseBase::getRenamedParam(), MFEMEigenproblem::getRHSCoefficient(), DefaultConvergenceBase::getSharedExecutionerParam(), AddVariableAction::init(), MFEMMesh::init(), PhysicsBase::initializePhysics(), ElementSubdomainModifierBase::initialSetup(), MatrixSymmetryCheck::MatrixSymmetryCheck(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MFEMEigenproblem::MFEMEigenproblem(), MFEMGeneratedMeshGenerator::MFEMGeneratedMeshGenerator(), MFEMVariable::MFEMVariable(), MooseApp(), MortarConstraintBase::MortarConstraintBase(), MoveNodesByParsedExpressionModifier::moveNodes(), MultiAppGeneralFieldFunctorTransfer::MultiAppGeneralFieldFunctorTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), OrientSurfaceMeshGenerator::OrientSurfaceMeshGenerator(), SolutionInvalidityOutput::output(), Output::Output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), PetscExternalPartitioner::partition(), PolyLineMeshFollowingNodeSetGenerator::PolyLineMeshFollowingNodeSetGenerator(), MooseMesh::prepare(), SolutionUserObjectBase::readXda(), ReferenceResidualConvergence::ReferenceResidualConvergence(), PhysicsBase::reportPotentiallyMissedParameters(), run(), runInputFile(), runInputs(), setMFEMDevice(), Moose::MFEM::LinearSolverBase::SetPreconditioner(), MFEMHypreBoomerAMG::SetSolverParameters(), SetupMeshAction::setupMesh(), setupOptions(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SmoothMeshGenerator::SmoothMeshGenerator(), SurfaceSubdomainsDelaunayRemesher::SurfaceSubdomainsDelaunayRemesher(), SurfaceSubdomainsFromAllNormalsGenerator::SurfaceSubdomainsFromAllNormalsGenerator(), TagVectorAux::TagVectorAux(), TimedSubdomainModifier::TimedSubdomainModifier(), TimeIntegratedPostprocessor::TimeIntegratedPostprocessor(), TriToQuadConverter::TriToQuadConverter(), XYFrontalDelaunayGenerator::XYFrontalDelaunayGenerator(), and XYZDelaunayGenerator::XYZDelaunayGenerator().

◆ isParamValid()

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

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 199 of file MooseBase.h.

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

Referenced by GridPartitioner::_do_partition(), HierarchicalGridPartitioner::_do_partition(), AddVariableAction::act(), AutoCheckpointAction::act(), CommonOutputAction::act(), ComposeTimeStepperAction::act(), CopyNodalVarsAction::act(), CreateDisplacedProblemAction::act(), SetAdaptivityOptionsAction::act(), SetupDebugAction::act(), SetupMeshCompleteAction::act(), DiffusionCG::addFEKernels(), DiffusionFV::addFVBCs(), DiffusionFV::addFVKernels(), DiffusionPhysicsBase::addInitialConditions(), ComponentJunction::addMeshGenerators(), CylinderComponent::addMeshGenerators(), DiffusionPhysicsBase::addPostprocessors(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), AdvectiveFluxAux::AdvectiveFluxAux(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), ArrayVarReductionAux::ArrayVarReductionAux(), BicubicSplineFunction::BicubicSplineFunction(), BlockDeletionGenerator::BlockDeletionGenerator(), BSplineCurveGenerator::BSplineCurveGenerator(), TimedSubdomainModifier::buildFromFile(), ParsedChainControl::buildFunction(), GeneratedMesh::buildMesh(), MooseMesh::buildTypedMesh(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), SurfaceDelaunayGeneratorBase::checkBoundaryAndHolesParams(), 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(), DiffusionPhysicsBase::DiffusionPhysicsBase(), 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(), SurfaceDelaunayGeneratorBase::fillDelaunayOptions(), 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(), MooseApp(), MooseMesh::MooseMesh(), MoosePreconditioner::MoosePreconditioner(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MooseVariableFV< RealEigenVector >::MooseVariableFV(), MortarConstraintBase::MortarConstraintBase(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldKDTreeTransferBase::MultiAppGeneralFieldKDTreeTransferBase(), MultiAppGeneralFieldShapeEvaluationTransfer::MultiAppGeneralFieldShapeEvaluationTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppReporterTransfer::MultiAppReporterTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), MultiPostprocessorConvergence::MultiPostprocessorConvergence(), MultiSystemSolveObject::MultiSystemSolveObject(), NodeSetsGeneratorBase::NodeSetsGeneratorBase(), EigenExecutionerBase::normalizeSolution(), OrientSurfaceMeshGenerator::OrientSurfaceMeshGenerator(), Output::Output(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedSubdomainGeneratorBase::ParsedSubdomainGeneratorBase(), PetscOutput::PetscOutput(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), EqualValueBoundaryConstraint::pickPrimaryNode(), PIDTransientControl::PIDTransientControl(), PiecewiseTabularBase::PiecewiseTabularBase(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), EqualValueBoundaryConstraint::populateSecondaryNodes(), MooseMesh::prepare(), MultiApp::readCommandLineArguments(), SolutionUserObjectBase::readExodusIIOrNemesis(), ReferenceResidualInterface::ReferenceResidualInterface(), RenameBlockGenerator::RenameBlockGenerator(), ReporterPointSource::ReporterPointSource(), PhysicsBase::reportPotentiallyMissedParameters(), ParsedSubdomainMeshGenerator::setBlockName(), MooseMesh::setCoordSystem(), FileOutput::setFileBaseInternal(), SideSetsGeneratorBase::setup(), SurfaceMeshGeneratorBase::setup(), Split::setup(), SetupMeshAction::setupMesh(), 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(), XYQuadrilateralMeshFromBoundaryCurve::XYQuadrilateralMeshFromBoundaryCurve(), and XYZDelaunayGenerator::XYZDelaunayGenerator().

◆ isRecovering()

bool MooseApp::isRecovering ( ) const

◆ isRelocated()

bool MooseApp::isRelocated ( )
static
Returns
Whether or not the application is relocated

Definition at line 3578 of file MooseApp.C.

3579{
3581}
static bool isRelocated()
Definition MooseApp.C:3578

Referenced by isRelocated().

◆ isRestarting()

bool MooseApp::isRestarting ( ) const

Whether or not this is a "restart" calculation.

More specifically whether this has been restarted using the Problem/restart_file_base parameter. Note that this will only return true when doing \emph checkpoint restart. This will be false if doing \emph exodus restart. Finally this will never return true when isRecovering is true

Definition at line 1641 of file MooseApp.C.

1642{
1643 return _restart;
1644}

Referenced by SetupMeshAction::act(), FEProblemBase::checkICRestartError(), MultiApp::createApp(), EigenProblem::execute(), FileOutput::FileOutput(), FullSolveMultiApp::FullSolveMultiApp(), Eigenvalue::init(), FEProblemBase::initialSetup(), TransientBase::preExecute(), TimeSequenceStepperBase::setupSequence(), PhysicsBase::shouldCreateIC(), and TransientMultiApp::solveStep().

◆ isSplitMesh()

bool MooseApp::isSplitMesh ( ) const

Whether or not this is a split mesh operation.

Definition at line 1647 of file MooseApp.C.

1648{
1649 return _split_mesh;
1650}

Referenced by MooseMesh::init().

◆ isUltimateMaster()

bool MooseApp::isUltimateMaster ( ) const
inline

◆ libNameToAppName()

std::string MooseApp::libNameToAppName ( const std::string &  library_name) const

Converts a library name to an application name:

Definition at line 2403 of file MooseApp.C.

2404{
2405 std::string app_name(library_name);
2406
2407 // Strip off the leading "lib" and trailing ".la"
2408 if (pcrecpp::RE("lib(.+?)(?:-\\w+)?\\.la").Replace("\\1", &app_name) == 0)
2409 mooseError("Invalid library name: ", app_name);
2410
2411 return MooseUtils::underscoreToCamelCase(app_name, true);
2412}
std::string underscoreToCamelCase(const std::string &underscore_name, bool leading_upper_case)
Definition MooseUtils.C:643

◆ loadLibraryAndDependencies()

void MooseApp::loadLibraryAndDependencies ( const std::string &  library_filename,
const libMesh::Parameters &  params,
bool  load_dependencies = true 
)
protected

Recursively loads libraries and dependencies in the proper order to fully register a MOOSE application that may have several dependencies.

REQUIRES: dynamic linking loader support.

Definition at line 2646 of file MooseApp.C.

2649{
2650 std::string line;
2651 std::string dl_lib_filename;
2652
2653 // This RE looks for absolute path libtool filenames (i.e. begins with a slash and ends with a
2654 // .la)
2655 pcrecpp::RE re_deps("(/\\S*\\.la)");
2656
2657 std::ifstream la_handle(library_filename.c_str());
2658 if (la_handle.is_open())
2659 {
2660 while (std::getline(la_handle, line))
2661 {
2662 // Look for the system dependent dynamic library filename to open
2663 if (line.find("dlname=") != std::string::npos)
2664 // Magic numbers are computed from length of this string "dlname=' and line minus that
2665 // string plus quotes"
2666 dl_lib_filename = line.substr(8, line.size() - 9);
2667
2668 if (line.find("dependency_libs=") != std::string::npos)
2669 {
2670 if (load_dependencies)
2671 {
2672 pcrecpp::StringPiece input(line);
2673 pcrecpp::StringPiece depend_library;
2674 while (re_deps.FindAndConsume(&input, &depend_library))
2675 // Recurse here to load dependent libraries in depth-first order
2676 loadLibraryAndDependencies(depend_library.as_string(), params, load_dependencies);
2677 }
2678
2679 // There's only one line in the .la file containing the dependency libs so break after
2680 // finding it
2681 break;
2682 }
2683 }
2684 la_handle.close();
2685 }
2686
2687 // This should only occur if we have static linkage.
2688 if (dl_lib_filename.empty())
2689 return;
2690
2691 const auto & [dir, file_name] = MooseUtils::splitFileName(library_filename);
2692
2693 // Time to load the library, First see if we've already loaded this particular dynamic library
2694 // 1) make sure we haven't already loaded this library
2695 // AND 2) make sure we have a library name (we won't for static linkage)
2696 // Note: Here was are going to assume uniqueness based on the filename alone. This has significant
2697 // implications for applications that have "diamond" inheritance of libraries (usually
2698 // modules). We will only load one of those libraries, versions be damned.
2699 auto dyn_lib_it = _lib_handles.find(file_name);
2700 if (dyn_lib_it == _lib_handles.end())
2701 {
2702 // Assemble the actual filename using the base path of the *.la file and the dl_lib_filename
2703 const auto dl_lib_full_path = MooseUtils::pathjoin(dir, dl_lib_filename);
2704
2705 MooseUtils::checkFileReadable(dl_lib_full_path, false, /*throw_on_unreadable=*/true);
2706
2707#ifdef LIBMESH_HAVE_DLOPEN
2708 void * const lib_handle = dlopen(dl_lib_full_path.c_str(), RTLD_LAZY);
2709#else
2710 void * const lib_handle = nullptr;
2711#endif
2712
2713 if (!lib_handle)
2714 mooseError("The library file \"",
2715 dl_lib_full_path,
2716 "\" exists and has proper permissions, but cannot by dynamically loaded.\nThis "
2717 "generally means that the loader was unable to load one or more of the "
2718 "dependencies listed in the supplied library (see otool or ldd).\n",
2719 dlerror());
2720
2721 DynamicLibraryInfo lib_info;
2722 lib_info.library_handle = lib_handle;
2723 lib_info.full_path = library_filename;
2724
2725 auto insert_ret = _lib_handles.insert(std::make_pair(file_name, lib_info));
2726 mooseAssert(insert_ret.second == true, "Error inserting into lib_handles map");
2727
2728 dyn_lib_it = insert_ret.first;
2729 }
2730
2731 // Library has been loaded, check to see if we've called the requested registration method
2732 const auto registration_method = params.get<std::string>("registration_method");
2733 auto & entry_sym_from_curr_lib = dyn_lib_it->second.entry_symbols;
2734
2735 if (entry_sym_from_curr_lib.find(registration_method) == entry_sym_from_curr_lib.end())
2736 {
2737 // get the pointer to the method in the library. The dlsym()
2738 // function returns a null pointer if the symbol cannot be found,
2739 // we also explicitly set the pointer to NULL if dlsym is not
2740 // available.
2741#ifdef LIBMESH_HAVE_DLOPEN
2742 void * registration_handle =
2743 dlsym(dyn_lib_it->second.library_handle, registration_method.c_str());
2744#else
2745 void * registration_handle = nullptr;
2746#endif
2747
2748 if (registration_handle)
2749 {
2750 switch (params.get<RegistrationType>("reg_type"))
2751 {
2752 case APPLICATION:
2753 {
2754 using register_app_t = void (*)();
2755 register_app_t * const reg_ptr = reinterpret_cast<register_app_t *>(&registration_handle);
2756 (*reg_ptr)();
2757 break;
2758 }
2759 case REGALL:
2760 {
2761 using register_app_t = void (*)(Factory *, ActionFactory *, Syntax *);
2762 register_app_t * const reg_ptr = reinterpret_cast<register_app_t *>(&registration_handle);
2763 (*reg_ptr)(params.get<Factory *>("factory"),
2764 params.get<ActionFactory *>("action_factory"),
2765 params.get<Syntax *>("syntax"));
2766 break;
2767 }
2768 default:
2769 mooseError("Unhandled RegistrationType");
2770 }
2771
2772 entry_sym_from_curr_lib.insert(registration_method);
2773 }
2774 else
2775 {
2776
2777#if defined(DEBUG) && defined(LIBMESH_HAVE_DLOPEN)
2778 // We found a dynamic library that doesn't have a dynamic
2779 // registration method in it. This shouldn't be an error, so
2780 // we'll just move on.
2781 if (!registration_handle)
2782 mooseWarning("Unable to find extern \"C\" method \"",
2783 registration_method,
2784 "\" in library: ",
2785 dyn_lib_it->first,
2786 ".\n",
2787 "This doesn't necessarily indicate an error condition unless you believe that "
2788 "the method should exist in that library.\n",
2789 dlerror());
2790#endif
2791 }
2792 }
2793}
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
Definition MooseBase.h:299
std::filesystem::path pathjoin(const std::filesystem::path &p)
Definition MooseUtils.C:122

Referenced by dynamicRegistration(), and loadLibraryAndDependencies().

◆ loadRestartableMetaData()

void MooseApp::loadRestartableMetaData ( const std::filesystem::path &  folder_base)

Loads all available restartable meta data if it is available with the folder base folder_base.

Definition at line 2511 of file MooseApp.C.

2512{
2513 for (const auto & name_map_pair : _restartable_meta_data)
2514 possiblyLoadRestartableMetaData(name_map_pair.first, folder_base);
2515}
void possiblyLoadRestartableMetaData(const RestartableDataMapName &name, const std::filesystem::path &folder_base)
Loads the restartable meta data for name if it is available with the folder base folder_base.
Definition MooseApp.C:2496

Referenced by SetupRecoverFileBaseAction::act().

◆ markMeshChangedForBackup()

void MooseApp::markMeshChangedForBackup ( )
inline

Mark this app as requiring mesh topology data in its next Backup object.

Definition at line 752 of file MooseApp.h.

752{ _mesh_changed_for_backup = true; }
bool _mesh_changed_for_backup
Whether mesh topology has changed and should be included in Backup objects.
Definition MooseApp.h:1726

Referenced by FEProblemBase::meshChanged().

◆ masterDisplacedMesh()

const MooseMesh * MooseApp::masterDisplacedMesh ( ) const
inline

Returns a pointer to the master displaced mesh.

Definition at line 878 of file MooseApp.h.

878{ return _master_displaced_mesh; }

Referenced by SetupMeshCompleteAction::act().

◆ masterMesh()

const MooseMesh * MooseApp::masterMesh ( ) const
inline

Returns a pointer to the master mesh.

Definition at line 873 of file MooseApp.h.

873{ return _master_mesh; }

Referenced by SetupMeshAction::act(), and CopyMeshPartitioner::CopyMeshPartitioner().

◆ meshChangedForBackup()

bool MooseApp::meshChangedForBackup ( ) const
inline

Whether this app requires mesh topology data in its next Backup object.

Definition at line 757 of file MooseApp.h.

757{ return _mesh_changed_for_backup; }

◆ 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:898

◆ metaDataFolderBase()

std::filesystem::path MooseApp::metaDataFolderBase ( const std::filesystem::path &  folder_base,
const std::string &  map_suffix 
)
static

The file suffix for meta data (header and data)

Definition at line 3012 of file MooseApp.C.

3014{
3015 return RestartableDataIO::restartableDataFolder(folder_base /
3016 std::filesystem::path("meta_data" + map_suffix));
3017}
static std::filesystem::path restartableDataFolder(const std::filesystem::path &folder_base)

Referenced by possiblyLoadRestartableMetaData(), and writeRestartableMetaData().

◆ mooseDeprecated()

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 addCapability(), DataFileInterface::getDataFileName(), DataFileInterface::getDataFileNameByName(), getRecoverFileBase(), hasRecoverFileBase(), MooseApp(), and setupOptions().

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

Referenced by MooseApp().

◆ mooseDocumentedError()

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

Definition at line 277 of file MooseBase.h.

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

Referenced by ManifoldSubdomainGenerator::ManifoldSubdomainGenerator().

◆ mooseError()

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

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

Definition at line 271 of file MooseBase.h.

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

Referenced by CopyMeshPartitioner::_do_partition(), GridPartitioner::_do_partition(), HierarchicalGridPartitioner::_do_partition(), PetscExternalPartitioner::_do_partition(), AdaptivityAction::act(), AddBoundsVectorsAction::act(), AddFVICAction::act(), AddICAction::act(), AddMeshGeneratorAction::act(), AddPeriodicBCAction::act(), AddTimeStepperAction::act(), AddVectorPostprocessorAction::act(), ChainControlSetupAction::act(), CheckFVBCAction::act(), CheckIntegrityAction::act(), CombineComponentsMeshes::act(), CommonOutputAction::act(), CreateDisplacedProblemAction::act(), CreateExecutionerAction::act(), CreateProblemAction::act(), CreateProblemDefaultAction::act(), CSGOnlyAction::act(), DeprecatedBlockAction::act(), InitProblemAction::act(), MaterialDerivativeTestAction::act(), MaterialOutputAction::act(), SetAdaptivityOptionsAction::act(), SetupDebugAction::act(), SetupMeshAction::act(), SetupMeshCompleteAction::act(), SetupPredictorAction::act(), SetupTimeStepperAction::act(), SplitMeshAction::act(), Action::Action(), AddActionComponentAction::AddActionComponentAction(), PhysicsComponentInterface::addBoundaryConditionsFromComponents(), addCapabilityInternal(), DistributedRectilinearMeshGenerator::addElement(), 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(), appNameToLibName(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), attachRelationshipManagers(), attachRelationshipManagers(), Function::average(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), MooseMesh::buildCoarseningMap(), MultiApp::buildComm(), DistributedRectilinearMeshGenerator::buildCube(), PiecewiseTabularInterface::buildFromFile(), PiecewiseTabularInterface::buildFromJSON(), PiecewiseTabularInterface::buildFromXY(), MooseMesh::buildLowerDMesh(), GeneratedMesh::buildMesh(), MeshGeneratorMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), TiledMesh::buildMesh(), MooseMesh::buildRefinementMap(), MaterialBase::buildRequiredMaterials(), MooseMesh::buildTypedMesh(), MooseMesh::cacheFaceInfoVariableOwnership(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), EigenExecutionerBase::chebyshev(), SubProblem::checkBlockMatProps(), PhysicsBase::checkBlockRestrictionIdentical(), ComponentBoundaryConditionInterface::checkBoundaryConditionsAllRequested(), SubProblem::checkBoundaryMatProps(), PhysicsBase::checkComponentType(), IterationCountConvergence::checkConvergence(), MooseMesh::checkCoordinateSystems(), DiffusionLHDGAssemblyHelper::checkCoupling(), DefaultConvergenceBase::checkDuplicateSetSharedExecutionerParams(), MooseMesh::checkDuplicateSubdomainNames(), MaterialBase::checkExecutionStage(), FVFluxBC::checkFaceIntegrity(), FVInterfaceKernel::checkFaceIntegrity(), MeshGenerator::checkGetMesh(), ReporterTransferInterface::checkHasReporterValue(), EigenExecutionerBase::checkIntegrity(), Eigenvalue::checkIntegrity(), ExplicitTimeIntegrator::checkLinearConvergence(), 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(), 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(), copyInputs(), CopyMeshPartitioner::CopyMeshPartitioner(), MultiApp::createApp(), createExecutors(), AddVariableAction::createInitialConditionAction(), createRMFromTemplateAndInit(), Function::curl(), ReporterTransferInterface::declareClone(), Moose::Kokkos::MaterialBase::declareKokkosPropertyInternal(), MeshGenerator::declareMeshProperty(), ReporterTransferInterface::declareVectorClone(), FunctorRelationshipManager::delete_remote_elements(), MooseMesh::deleteRemoteElements(), determineLibtorchDeviceType(), MeshDiagnosticsGenerator::diagnosticsLog(), Function::div(), FunctorBinnedValuesDivision::divisionIndex(), FunctorRelationshipManager::dofmap_reinit(), dynamicAllRegistration(), dynamicAppRegistration(), DistributedRectilinearMeshGenerator::elemId(), errorCheck(), MooseMesh::errorIfDistributedMesh(), MultiAppTransfer::errorIfObjectExecutesOnTransferInSourceApp(), FixedPointSolve::examineFixedPointConvergence(), Eigenvalue::execute(), TransientBase::execute(), WebServerControl::execute(), executeExecutioner(), FVInterfaceKernel::faceArg1(), FVInterfaceKernel::faceArg2(), MultiApp::fillPositions(), 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(), EigenExecutionerBase::getEigenSystemConvergence(), MooseMesh::getElementIDIndex(), Material::getElementIDNeighbor(), Material::getElementIDNeighborByName(), MooseMesh::getElemIDMapping(), MooseMesh::getElemIDsOnBlocks(), WebServerControl::Response::getError(), MultiApp::getExecutioner(), 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(), getRestartableDataMap(), getRestartableDataMapName(), getRestartableMetaData(), getRMClone(), MooseObject::getSharedPtr(), MooseObject::getSharedPtr(), PhysicsBase::getSolverSystem(), MooseMesh::getSubdomainBoundaryIds(), TransientBase::getTimeIntegratorNames(), MultiAppTransfer::getToMultiApp(), MultiAppTransfer::getToMultiAppInfo(), MooseMesh::getUniqueCoordSystem(), UserObjectInterface::getUserObjectBaseByName(), UserObjectInterface::getUserObjectName(), SubProblem::getVariableHelper(), AddPeriodicBCAction::getVariables(), VectorPostprocessorInterface::getVectorPostprocessorName(), SubProblem::getVectorTag(), SubProblem::getVectorTagID(), MultiApp::globalAppToLocal(), Function::gradient(), MooseVariableBase::hasDoFsOnNodes(), PostprocessorInterface::hasPostprocessor(), PostprocessorInterface::hasPostprocessorByName(), ReporterInterface::hasReporterValue(), ReporterInterface::hasReporterValueByName(), VectorPostprocessorInterface::hasVectorPostprocessor(), VectorPostprocessorInterface::hasVectorPostprocessor(), VectorPostprocessorInterface::hasVectorPostprocessorByName(), VectorPostprocessorInterface::hasVectorPostprocessorByName(), TransientBase::incrementStepOrReject(), NEML2Action::inferMOOSEIOType(), AddVariableAction::init(), MooseMesh::init(), Sampler::init(), EigenExecutionerBase::init(), TransientBase::init(), MFEMMesh::init(), CrankNicolson::init(), ExplicitTimeIntegrator::init(), FixedPointIterationAdaptiveDT::init(), IterationAdaptiveDT::init(), MultiApp::init(), NestedDivision::initialize(), ParsedConvergence::initializeConstantSymbol(), PhysicsBase::initializePhysics(), SubProblem::initialSetup(), AuxKernelBase::initialSetup(), SolutionScalarAux::initialSetup(), FullSolveMultiApp::initialSetup(), ExplicitTimeIntegrator::initialSetup(), Function::integral(), InternalSideIndicatorBase::InternalSideIndicatorBase(), EigenExecutionerBase::inversePowerIteration(), Sampler::isAdaptiveSamplingCompleted(), MooseMesh::isBoundaryFullyExternalToSubdomains(), MooseVariableBase::isNodal(), IterationAdaptiveDT::IterationAdaptiveDT(), IterationCountConvergence::IterationCountConvergence(), LibmeshPartitioner::LibmeshPartitioner(), libNameToAppName(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LineSearch::lineSearch(), loadLibraryAndDependencies(), ReporterPointMarker::markerSetup(), Material::Material(), Distribution::median(), FunctorRelationshipManager::mesh_reinit(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshRepairGenerator::MeshRepairGenerator(), SetupMeshAction::modifyParamsForUseSplit(), MooseApp(), 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(), 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(), MFEMFunctorMaterial::processLiterals(), MultiApp::readCommandLineArguments(), CoarsenBlockGenerator::recursiveCoarsen(), recursivelyCreateExecutors(), FunctorRelationshipManager::redistribute(), registerRestartableData(), registerRestartableNameWithFilter(), Sampler::reinit(), removeRelationshipManager(), PhysicsBase::reportPotentiallyMissedParameters(), restore(), RinglebMesh::RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), run(), runInputs(), ScalarComponentIC::ScalarComponentIC(), DistributedRectilinearMeshGenerator::scaleNodalPositions(), FunctorRelationshipManager::set_mesh(), MooseVariableBase::setActiveTags(), DistributedRectilinearMeshGenerator::setBoundaryNames(), MooseMesh::setCoordSystem(), MooseMesh::setGeneralAxisymmetricCoordAxes(), MeshGenerator::setMeshProperty(), setMFEMDevice(), Sampler::setNumberOfCols(), Sampler::setNumberOfRandomSeeds(), Sampler::setNumberOfRows(), Moose::MFEM::LinearSolverBase::SetPreconditioner(), Split::setup(), TransientMultiApp::setupApp(), Moose::PeriodicBCHelper::setupAutoPeriodicBoundaries(), Moose::PeriodicBCHelper::setupManualPeriodicBoundaries(), SetupMeshAction::setupMesh(), 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(), WebServerControl::writePortFile(), MFEMMesh::writeRecoveryFiles(), and writeRestartableMetaData().

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

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(), loadLibraryAndDependencies(), and MooseBase::paramWarning().

◆ mooseWarningNonPrefixed()

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 }

◆ multiAppLevel()

unsigned int MooseApp::multiAppLevel ( ) const
inline

The MultiApp Level.

Returns
The current number of levels from the master app

Definition at line 852 of file MooseApp.h.

852{ return _multiapp_level; }

Referenced by DefaultNonlinearConvergence::checkConvergence(), MultiApp::createApp(), OutputWarehouse::mooseConsole(), ConsoleUtils::outputFrameworkInformation(), and Console::write().

◆ multiAppNumber()

unsigned int MooseApp::multiAppNumber ( ) const
inline

The MultiApp number.

Returns
The numbering in all the sub-apps on the same level

Definition at line 858 of file MooseApp.h.

858{ return _multiapp_number; }

Referenced by FileOutput::FileOutput(), and Console::outputSystemInformation().

◆ 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(), addExecutor(), addExecutorParams(), MFEMProblem::addFESpace(), MFEMProblem::addFESpaceHierarchy(), FEProblemBase::addFunction(), MFEMProblem::addFunction(), SubProblem::addFunctor(), FEProblemBase::addFunctorMaterial(), MFEMProblem::addFunctorMaterial(), FunctorMaterial::addFunctorProperty(), FunctorMaterial::addFunctorPropertyByBlocks(), FEProblemBase::addFVBC(), FEProblemBase::addFVGradientMethod(), FEProblemBase::addFVInitialCondition(), FEProblemBase::addFVInterfaceKernel(), FEProblemBase::addFVInterpolationMethod(), FEProblemBase::addFVKernel(), ADDGKernel::ADDGKernel(), FEProblemBase::addHDGKernel(), MFEMProblem::addImagComponentToBC(), MFEMProblem::addImagComponentToKernel(), FEProblemBase::addIndicator(), MFEMProblem::addIndicator(), FEProblemBase::addInitialCondition(), MFEMProblem::addInitialCondition(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), ElementAndTraceScalarHDGAssemblyHelper::additionalROVariables(), BoundaryIntegralValueConstraint::additionalROVariables(), DiffusionLHDGKernel::additionalROVariables(), ADKernelScalarBase::additionalROVariables(), FEProblemBase::addKernel(), MFEMProblem::addKernel(), FEProblemBase::addLinearFVBC(), FEProblemBase::addLinearFVKernel(), FEProblemBase::addMarker(), MFEMProblem::addMarker(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), ComponentMaterialPropertyInterface::addMaterials(), FEProblemBase::addMeshDivision(), addMeshGenerator(), ComponentJunction::addMeshGenerators(), ComponentMeshTransformHelper::addMeshGenerators(), CylinderComponent::addMeshGenerators(), MeshGenerator::addMeshSubgenerator(), MeshGenerator::addMeshSubgenerator(), MFEMProblem::addMFEMProblemComposer(), MFEMProblem::addMFEMSolver(), FEProblemBase::addMultiApp(), FEProblemBase::addNodalKernel(), FEProblemBase::addObject(), InitialConditionWarehouse::addObject(), ComponentPhysicsInterface::addPhysics(), SubProblem::addPiecewiseByBlockLambdaFunctor(), FEProblemBase::addPostprocessor(), MFEMProblem::addPostprocessor(), UserObjectBase::addPostprocessorDependencyHelper(), AuxKernelBase::addPostprocessorDependencyHelper(), InitialConditionBase::addPostprocessorDependencyHelper(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), MFEMProblem::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(), appBinaryName(), 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(), checkCoupledScalarVariableBlocks(), FEProblemBase::checkDependMaterialsHelper(), FVFluxBC::checkFaceIntegrity(), FVInterfaceKernel::checkFaceIntegrity(), TaggingInterface::checkForNans(), SamplerBase::checkForStandardFieldVariableType(), MeshGenerator::checkGetMesh(), ReporterTransferInterface::checkHasReporterValue(), FEProblemBase::checkICRestartError(), NonlinearSystemBase::checkKernelCoverage(), Moose::Kokkos::Material::checkMaterialProperty(), Material::checkMaterialProperty(), checkMetaDataIntegrity(), Damper::checkMinDamping(), SideUserObject::checkNoInterfaceMaterialPropertyDependencies(), MultiAppTransfer::checkParentAppUserObjectExecuteOn(), Checkpoint::checkpointInfo(), LinearFVGradientManager::checkRestartedGradientHistory(), FEProblemBase::checkUserObjectNameCollision(), BlockRestrictable::checkVariable(), DomainUserObject::checkVariable(), Coupleable::checkWritableVar(), CoarsenSurfaceMeshAlongSidesetGenerator::coarsenAlongSidesets(), MooseVariableFieldBase::componentName(), CompositeFunction::CompositeFunction(), MaterialBase::computeProperties(), FEProblemBase::computeUserObjectByName(), VectorPostprocessorVisualizationAux::computeValue(), MooseBase::connectControllableParams(), ConstantPostprocessor::ConstantPostprocessor(), Coupleable::coupledName(), CommonOutputAction::create(), MultiApp::createApp(), createExecutors(), MeshGeneratorSystem::createMeshGeneratorOrder(), createRecoverablePerfGraph(), MoveBoundaryNodesToCurveGenerator::curveGenerator(), CutMeshByPlaneGenerator::CutMeshByPlaneGenerator(), DebugResidualAux::DebugResidualAux(), MaterialBase::declareADProperty(), MFEMComplexVariable::declareCoefficients(), MFEMVariable::declareCoefficients(), MeshInfo::declareHelper(), Moose::Kokkos::MaterialBase::declareKokkosOnDemandProperty(), Moose::Kokkos::MaterialBase::declareKokkosProperty(), MeshGenerator::declareMeshesForSubByName(), MeshGenerator::declareNullMeshName(), MaterialBase::declareProperty(), MFEMCoordinateTransformations::declareRZCoefficients(), DOFMapOutput::demangle(), DerivativeSumMaterialTempl< is_ad >::DerivativeSumMaterialTempl(), MooseMesh::detectPairedSidesets(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DomainUserObject::DomainUserObject(), DumpObjectsProblem::dumpObjectHelper(), ElementDamper::ElementDamper(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementMaterialSampler::ElementMaterialSampler(), ElementValueSampler::ElementValueSampler(), EigenKernel::enabled(), MooseMesh::errorIfDistributedMesh(), SolutionUserObjectBase::evalMeshFunction(), SolutionUserObjectBase::evalMeshFunctionGradient(), SolutionUserObjectBase::evalMultiValuedMeshFunction(), SolutionUserObjectBase::evalMultiValuedMeshFunctionGradient(), GreaterThanLessThanPostprocessor::execute(), PointValue::execute(), RestartableDataReporter::execute(), MultiAppGeneralFieldTransfer::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppProjectionTransfer::execute(), MultiAppUserObjectTransfer::execute(), SideValueSampler::execute(), WebServerControl::execute(), ActionWarehouse::executeActionsWithAction(), Exodus::Exodus(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FVInterfaceKernel::faceArg1(), FVInterfaceKernel::faceArg2(), FEProblemBase::FEProblemBase(), NEML2ModelExecutor::fillInputs(), MultiApp::fillPositions(), MultiAppGeometricInterpolationTransfer::fillSourceInterpolationPoints(), PointSamplerBase::finalize(), ChainControl::fullControlDataName(), FunctionArrayAux::FunctionArrayAux(), FunctionDT::FunctionDT(), FVFunctionIC::functionName(), FunctionIC::functionName(), FunctorPositions::FunctorPositions(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), FVInitialConditionTempl< T >::FVInitialConditionTempl(), FVOneVarDiffusionInterface::FVOneVarDiffusionInterface(), GapValueAux::GapValueAux(), BoundaryDeletionGenerator::generate(), BreakMeshByBlockGenerator::generate(), CoarsenSurfaceMeshAlongSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), ManifoldSubdomainGenerator::generate(), ParsedExtraElementIDGenerator::generate(), ParsedSubdomainGeneratorBase::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), RenumberBySubdomainGenerator::generate(), SideSetsFromNodeSetsGenerator::generate(), StitchBoundaryMeshGenerator::generate(), StitchMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), SubdomainsFromPartitionerGenerator::generate(), UniqueExtraIDMeshGenerator::generate(), MeshGenerator::generateInternal(), MeshGenerator::generateInternalCSG(), InterfaceMaterial::getADMaterialProperty(), Material::getADMaterialProperty(), MultiAppTransfer::getAppInfo(), MooseMesh::getBoundaryString(), MultiApp::getBoundingBox(), MooseBase::getCheckedPointerParam(), 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(), getExecutor(), OutputWarehouse::getFileNumbers(), FEProblemBase::getFunction(), SubProblem::getFunctor(), FEProblemBase::getFVAdvectedInterpolationMethod(), FEProblemBase::getFVFaceInterpolationMethod(), FEProblemBase::getFVGradientMethod(), FEProblemBase::getFVGradientMethod(), FEProblemBase::getFVInterpolationMethod(), AuxKernelTempl< ComputeValueType >::getGenericMaterialProperty(), NodalPatchRecovery::getGenericMaterialProperty(), InterfaceMaterial::getGenericMaterialProperty(), Material::getGenericMaterialProperty(), InterfaceMaterial::getGenericNeighborMaterialProperty(), InterfaceMaterial::getGenericNeighborMaterialPropertyByName(), Material::getGenericOptionalMaterialProperty(), MaterialBase::getGenericZeroMaterialProperty(), MFEMProblem::getGridFunction(), FEProblemBase::getKokkosFunction(), FEProblemBase::getKokkosUserObject(), SolutionUserObjectBase::getLocalVarIndex(), Marker::getMarkerValue(), Material::getMaterial(), FEProblemBase::getMaterial(), Material::getMaterialByName(), AuxKernelTempl< ComputeValueType >::getMaterialProperty(), NodalPatchRecovery::getMaterialProperty(), InterfaceMaterial::getMaterialProperty(), Material::getMaterialProperty(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), AuxKernelTempl< ComputeValueType >::getMaterialPropertyOld(), NodalPatchRecovery::getMaterialPropertyOld(), InterfaceMaterial::getMaterialPropertyOld(), Material::getMaterialPropertyOld(), AuxKernelTempl< ComputeValueType >::getMaterialPropertyOlder(), NodalPatchRecovery::getMaterialPropertyOlder(), InterfaceMaterial::getMaterialPropertyOlder(), Material::getMaterialPropertyOlder(), MFEMObject::getMatrixCoefficient(), MFEMObject::getMatrixCoefficientByName(), MeshGenerator::getMesh(), FEProblemBase::getMeshDivision(), MeshGenerator::getMeshesByName(), 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(), getRestartableDataMap(), getRestartableDataMapName(), getRestartableMetaData(), FEProblemBase::getSampler(), MFEMObject::getScalarCoefficient(), MFEMObject::getScalarCoefficientByName(), TimedSubdomainModifier::getSubdomainIDAndCheck(), MFEMExecutedObject::getSuppliedItems(), TransientBase::getTimeStepperName(), ProjectedStatefulMaterialStorageAction::getTypeEnum(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), MFEMObject::getVectorCoefficient(), MFEMObject::getVectorCoefficientByName(), LinearFVGradientManager::gradientStateVectorName(), Terminator::handleMessage(), Control::hasControllableParameterByName(), FEProblemBase::hasConvergence(), FEProblemBase::hasDistribution(), FEProblemBase::hasFunction(), SubProblem::hasFunctor(), SubProblem::hasFunctorWithType(), FEProblemBase::hasFVGradientMethod(), FEProblemBase::hasFVInterpolationMethod(), MeshInfo::hasItem(), hasMeshGenerator(), MFEMProblem::hasMFEMObject(), AdvancedOutput::hasOutputHelper(), FEProblemBase::hasPostprocessor(), FEProblemBase::hasPostprocessorValueByName(), hasRelationshipManager(), hasRestartableDataMap(), 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(), MFEMScalarQuadratureFunction::initialSetup(), MFEMVectorQuadratureFunction::initialSetup(), Console::initialSetup(), JSONOutput::initialSetup(), BoundaryLinearFVFluxIntegral::initialSetup(), NodalVariableValue::initialSetup(), SideFVFluxBCIntegral::initialSetup(), MultiAppGeneralFieldFunctorTransfer::initialSetup(), MultiAppProjectionTransfer::initialSetup(), BoundaryMeshBuilder::initialSetup(), SolutionUserObjectBase::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), MaterialBase::initStatefulProperties(), Function::integral(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), MultiAppGeometricInterpolationTransfer::interpolateTargetPoints(), MeshGenerator::isChildMeshGenerator(), DerivativeMaterialInterface< T >::isNotObjectVariable(), MeshGenerator::isNullMeshName(), MooseBase::isParamSetByUser(), MooseBase::isParamValid(), MeshGenerator::isParentMeshGenerator(), LinearCombinationFunction::LinearCombinationFunction(), FEProblemBase::logAdd(), MooseLinearVariableFV< OutputType >::lowerDError(), Marker::Marker(), MaterialBase::markMatPropRequested(), Material::Material(), Distribution::median(), MemoryUsageReporter::MemoryUsageReporter(), NEML2ModelExecutor::meshChanged(), MeshGenerator::meshPropertyPrefix(), MooseBase::messagePrefix(), MFEMGeometricMultigridSolver::MFEMGeometricMultigridSolver(), MFEMScalarQuadratureFunction::MFEMScalarQuadratureFunction(), MFEMTransient::MFEMTransient(), MFEMVectorQuadratureFunction::MFEMVectorQuadratureFunction(), MooseApp(), OutputWarehouse::mooseConsole(), SolutionInvalidInterface::mooseDeprecated(), MooseVariableBase::MooseVariableBase(), MooseVariableInterface< T >::MooseVariableInterface(), SolutionInvalidInterface::mooseWarning(), SolutionInvalidInterface::mooseWarningNonPrefixed(), MoveNodesByParsedExpressionModifier::MoveNodesByParsedExpressionModifier(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), NEML2PreKernel::NEML2PreKernel(), NodalDamper::NodalDamper(), MooseLinearVariableFV< OutputType >::nodalError(), NodalPatchRecoveryAuxBase::NodalPatchRecoveryAuxBase(), NodalValueSampler::NodalValueSampler(), MeshGenerator::Comparator::operator()(), DOFMapOutput::output(), ProgressOutput::output(), Output::Output(), AdvancedOutput::outputElementalVariables(), ConsoleUtils::outputExecutionInformation(), MaterialOutputAction::outputHelper(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), AdvancedOutput::outputPostprocessors(), Exodus::outputPostprocessors(), Nemesis::outputPostprocessors(), TableOutput::outputReporter(), AdvancedOutput::outputReporters(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), AdvancedOutput::outputVectorPostprocessors(), SolutionInvalidInterface::paramWarning(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedODEKernel::ParsedODEKernel(), ComponentPhysicsInterface::physicsExists(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), PiecewiseFunction::PiecewiseFunction(), PointInUnionCheckUO::PointInUnionCheckUO(), possiblyLoadRestartableMetaData(), MFEMExecutedObject::postprocessorDependencyKey(), PhysicsBase::prefix(), MooseMesh::prepare(), BlockRestrictionDebugOutput::printBlockRestrictionMap(), PerfGraphLivePrint::printStats(), FEProblemBase::projectInitialConditionOnCustomRange(), MooseBase::queryParam(), MultiApp::readCommandLineArguments(), Receiver::Receiver(), Executor::Result::record(), FEProblemBase::registerRandomInterface(), registerRestartableDataMapName(), registerRestartableNameWithFilter(), MaterialBase::resetQpProperties(), MultiApp::restore(), ScalarComponentIC::ScalarComponentIC(), MultiApp::setAppOutputFileBase(), FEProblemBase::setAuxKernelParamsAndLog(), MooseMesh::setBoundaryName(), Control::setControllableValue(), Control::setControllableValueByName(), OutputWarehouse::setFileNumbers(), FEProblemBase::setPostprocessorValueByName(), FEProblemBase::setResidualObjectParamsAndLog(), MooseMesh::setSubdomainName(), MooseMesh::setSubdomainName(), NodeSetsGeneratorBase::setup(), SideSetsGeneratorBase::setup(), SurfaceMeshGeneratorBase::setup(), Split::setup(), TransientMultiApp::setupApp(), MoveNodesByParsedExpressionModifier::setupNodalOutputVariables(), NEML2Action::setupOutputMappings(), SideSetExtruderGenerator::SideSetExtruderGenerator(), TransientMultiApp::solveStep(), UserObject::spatialValue(), LinearFVGradientReader::stateComponents(), StitchedMesh::StitchedMesh(), SubProblem::storeBoundaryDelayedCheckMatProp(), SubProblem::storeBoundaryMatPropName(), MaterialBase::storeBoundaryZeroMatProp(), SubProblem::storeBoundaryZeroMatProp(), SubProblem::storeSubdomainDelayedCheckMatProp(), SubProblem::storeSubdomainMatPropName(), MaterialBase::storeSubdomainZeroMatProp(), SubProblem::storeSubdomainZeroMatProp(), ConstraintWarehouse::subdomainsCovered(), MaterialBase::subdomainSetup(), SumPostprocessor::SumPostprocessor(), MFEMPostprocessor::suppliedPostprocessorName(), MFEMVectorPostprocessor::suppliedVectorPostprocessorName(), BoundaryMeshBuilder::surfaceElementSet(), NEML2FEInterpolation::syncWithMainThread(), TaggingInterface::TaggingInterface(), MooseLinearVariableFV< OutputType >::timeIntegratorError(), VectorPostprocessorVisualizationAux::timestepSetup(), ElementSubdomainModifierBase::timestepSetup(), to_json(), MultiAppDofCopyTransfer::transfer(), MultiAppShapeEvaluationTransfer::transferVariable(), MultiAppMFEMCopyTransfer::transferVariables(), MultiAppMFEMShapeEvaluationTransfer::transferVariables(), TransientMultiApp::TransientMultiApp(), MooseBase::typeAndName(), MooseBase::uniqueParameterName(), FVQpFluxBC::uOnGhost(), FVQpFluxBC::uOnUSub(), UserObjectBase::UserObjectBase(), UserObjectInterface::userObjectName(), ParsedAux::validateGenericVectorNames(), MeshInfo::validParams(), MFEMExecutedObject::variableDependencyKey(), PhysicsBase::variableExists(), MultiAppTransfer::variableIntegrityCheck(), VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl(), MFEMExecutedObject::vectorPostprocessorDependencyKey(), Convergence::verboseOutput(), AdvancedOutput::wantOutput(), Coupleable::writableCoupledValue(), Coupleable::writableVariable(), Console::write(), writeRestartableMetaData(), and XYQuadrilateralMeshFromBoundaryCurve::XYQuadrilateralMeshFromBoundaryCurve().

◆ outputMachineReadableData()

void MooseApp::outputMachineReadableData ( const std::string &  param,
const std::string &  start_marker,
const std::string &  end_marker,
const std::string &  data 
) const
protected

Outputs machine readable data (JSON, YAML, etc.) either to the screen (if no filename was provided as an argument to the parameter param) or to a file (if a filename was provided).

Definition at line 3510 of file MooseApp.C.

3514{
3515 // Bool parameter, just to screen
3516 if (_pars.have_parameter<bool>(param))
3517 {
3518 Moose::out << start_marker << data << end_marker << std::endl;
3519 return;
3520 }
3521
3522 // String parameter, to file
3523 const auto & filename = getParam<std::string>(param);
3524 // write to file
3525 std::ofstream out(filename.c_str());
3526 if (out.is_open())
3527 {
3528 std::ofstream out(filename.c_str());
3529 out << data << std::flush;
3530 out.close();
3531 }
3532 else
3533 mooseError("Unable to open file `", filename, "` for writing ", param, " data to it.");
3534}
OStreamProxy out(std::cout)

Referenced by runInputFile(), and setupOptions().

◆ paramError()

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

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

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

Definition at line 457 of file MooseBase.h.

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

Referenced by HierarchicalGridPartitioner::_do_partition(), AutoCheckpointAction::act(), CommonOutputAction::act(), SetupDebugAction::act(), DiffusionCG::addFEKernels(), DiffusionFV::addFVKernels(), NEML2ModelExecutor::addGatheredParameter(), NEML2ModelExecutor::addGatheredVariable(), ADDGKernel::ADDGKernel(), ComponentJunction::addMeshGenerators(), CylinderComponent::addMeshGenerators(), ReporterPointSource::addPoints(), DiffusionPhysicsBase::addPostprocessors(), 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(), SurfaceDelaunayGeneratorBase::checkBoundaryAndHolesParams(), checkComponent(), Moose::Kokkos::ParsedObjectBase::checkDuplicateSymbols(), SamplerBase::checkForStandardFieldVariableType(), MeshGenerator::checkGetMesh(), ComponentInitialConditionInterface::checkInitialConditionsAllRequested(), BatchMeshGeneratorAction::checkInputParameterType(), PhysicsBase::checkIntegrityEarly(), SurfaceDelaunayGeneratorBase::checkInteriorPoints(), 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(), MFEMNewtonNonlinearSolver::ConstructSolver(), ContainsPointAux::ContainsPointAux(), CopyValueAux::CopyValueAux(), MultiAppGeneralFieldTransfer::correctSolutionVectorValues(), Coupleable::Coupleable(), CoupledForceTempl< is_ad >::CoupledForceTempl(), CoupledValueFunctionMaterialTempl< is_ad >::CoupledValueFunctionMaterialTempl(), MultiApp::createApp(), MeshGeneratorSystem::createMeshGenerator(), MoveBoundaryNodesToCurveGenerator::curveGenerator(), CylindricalGridDivision::CylindricalGridDivision(), DebugResidualAux::DebugResidualAux(), ConstantReporter::declareConstantReporterValue(), ConstantReporter::declareConstantReporterValues(), AccumulateReporter::declareLateValues(), DefaultMultiAppFixedPointConvergence::DefaultMultiAppFixedPointConvergence(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DGLowerDKernel::DGLowerDKernel(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), EigenProblem::EigenProblem(), EigenProblemSolve::EigenProblemSolve(), ElementAdaptivityLevelAux::ElementAdaptivityLevelAux(), ElementGenerator::ElementGenerator(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementLengthAux::ElementLengthAux(), ElementLpNormAux::ElementLpNormAux(), ElementNormalAux::ElementNormalAux(), ExtraIDIntegralVectorPostprocessor::elementValue(), ElementValueSampler::ElementValueSampler(), ElementVectorL2Error::ElementVectorL2Error(), EqualValueEmbeddedConstraintTempl< is_ad >::EqualValueEmbeddedConstraintTempl(), ReporterPointSource::errorCheck(), StitchMeshGeneratorBase::errorMissingBoundary(), ExamplePatchMeshGenerator::ExamplePatchMeshGenerator(), FunctorNodalCorrector::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppUserObjectTransfer::execute(), ExtraElementIDAux::ExtraElementIDAux(), ExtraElementIntegerDivision::ExtraElementIntegerDivision(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), FEProblemBase::FEProblemBase(), FEProblemSolve::FEProblemSolve(), FileMeshGenerator::FileMeshGenerator(), FillBetweenCurvesGenerator::FillBetweenCurvesGenerator(), FillBetweenSidesetsGenerator::FillBetweenSidesetsGenerator(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), InternalSideIndicatorBase::finalize(), MeshTriangulationUtils::finalizeTriangulation(), FixedPointSolve::findTransformedSystem(), FixedPointSolve::FixedPointSolve(), ForcingFunctionAux::ForcingFunctionAux(), FullSolveMultiApp::FullSolveMultiApp(), FunctionArrayAux::FunctionArrayAux(), FunctionValuePostprocessor::FunctionValuePostprocessor(), FunctorADConverterTempl< T >::FunctorADConverterTempl(), FunctorAux::FunctorAux(), FunctorBinnedValuesDivision::FunctorBinnedValuesDivision(), FunctorCoordinatesFunctionAux::FunctorCoordinatesFunctionAux(), FunctorElementalGradientAuxTempl< is_ad >::FunctorElementalGradientAuxTempl(), FunctorExtremaPositions::FunctorExtremaPositions(), FunctorIC::FunctorIC(), FunctorNodalCorrector::FunctorNodalCorrector(), FunctorPositions::FunctorPositions(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), FunctorVectorElementalAuxTempl< is_ad >::FunctorVectorElementalAuxTempl(), FVAdvection::FVAdvection(), FVFluxBC::FVFluxBC(), FVInterfaceKernel::FVInterfaceKernel(), FVOneVarDiffusionInterface::FVOneVarDiffusionInterface(), FVTwoVarContinuityConstraint::FVTwoVarContinuityConstraint(), Boundary2DDelaunayGenerator::General2DDelaunay(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), AddMetaDataGenerator::generate(), AdvancedExtruderGenerator::generate(), BlockDeletionGenerator::generate(), BlockToMeshConverterGenerator::generate(), Boundary2DDelaunayGenerator::generate(), BoundaryDeletionGenerator::generate(), BoundaryElementConversionGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), BreakMeshByBlockGenerator::generate(), BreakMeshByElementGenerator::generate(), CircularBoundaryCorrectionGenerator::generate(), CoarsenBlockGenerator::generate(), CoarsenSurfaceMeshAlongSidesetGenerator::generate(), CombinerGenerator::generate(), CutMeshByLevelSetGeneratorBase::generate(), ElementsToTetrahedronsConverter::generate(), ExtraNodesetGenerator::generate(), FillBetweenCurvesGenerator::generate(), FillBetweenSidesetsGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), ManifoldSubdomainGenerator::generate(), MeshCollectionGenerator::generate(), MeshExtruderGenerator::generate(), MoveBoundaryNodesToCurveGenerator::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(), TriToQuadConverter::generate(), UniqueExtraIDMeshGenerator::generate(), XYFrontalDelaunayGenerator::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(), FEProblemSolve::getParamFromNonlinearSystemVectorParam(), PostprocessorInterface::getPostprocessorNameInternal(), PostprocessorInterface::getPostprocessorValueInternal(), Sampler::getSampleRow(), 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(), Axisymmetric2D3DSolutionFunction::initialSetup(), PiecewiseConstantFromCSV::initialSetup(), SolutionIC::initialSetup(), LibtorchControlValuePostprocessor::initialSetup(), ElementSubdomainModifierBase::initialSetup(), MFEMScalarCoefficientPointValueSampler::initialSetup(), FullSolveMultiApp::initialSetup(), JSONOutput::initialSetup(), BoundaryLinearFVFluxIntegral::initialSetup(), SideFVFluxBCIntegral::initialSetup(), MultiAppCloneReporterTransfer::initialSetup(), MultiAppDofCopyTransfer::initialSetup(), MultiAppGeneralFieldKDTreeTransferBase::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), MultiAppVariableValueSamplePostprocessorTransfer::initialSetup(), PointInPolyhedronCheckUO::initialSetup(), HistogramVectorPostprocessor::initialSetup(), SampledOutput::initSample(), AddMetaDataGenerator::inputChecker(), IntegratedBC::IntegratedBC(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceValueUserObjectAux::InterfaceValueUserObjectAux(), InternalSideIndicatorBase::InternalSideIndicatorBase(), InterpolatedStatefulMaterialTempl< T >::InterpolatedStatefulMaterialTempl(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), MultiApp::keepSolutionDuringRestore(), Kernel::Kernel(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LinearCombinationFunction::LinearCombinationFunction(), LinearFVAdvectionDiffusionFunctorRobinBC::LinearFVAdvectionDiffusionFunctorRobinBC(), LowerDIntegratedBC::LowerDIntegratedBC(), PNGOutput::makeMeshFunc(), MatCoupledForce::MatCoupledForce(), MaterialADConverterTempl< T >::MaterialADConverterTempl(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), MatReactionTempl< is_ad >::MatReactionTempl(), MatrixSymmetryCheck::MatrixSymmetryCheck(), PatternedMeshGenerator::mergeSubdomainNameMaps(), MeshCollectionGenerator::MeshCollectionGenerator(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MeshDivisionAux::MeshDivisionAux(), MeshGenerator::MeshGenerator(), MeshGeneratorComponent::MeshGeneratorComponent(), MeshInfo::MeshInfo(), MFEMComplexSumAux::MFEMComplexSumAux(), MFEMEigenproblem::MFEMEigenproblem(), MFEMFunctorMaterial::MFEMFunctorMaterial(), MFEMGeneratedMeshGenerator::MFEMGeneratedMeshGenerator(), MFEMGenericFunctorMaterial::MFEMGenericFunctorMaterial(), MFEMGenericFunctorMatrixMaterial::MFEMGenericFunctorMatrixMaterial(), MFEMGenericFunctorVectorMaterial::MFEMGenericFunctorVectorMaterial(), MFEMGeometricMultigridSolver::MFEMGeometricMultigridSolver(), MFEMHypreBoomerAMG::MFEMHypreBoomerAMG(), MFEMMultiAppTransfer::MFEMMultiAppTransfer(), MFEMNDtoRTAux::MFEMNDtoRTAux(), MFEMSumAux::MFEMSumAux(), MFEMVariable::MFEMVariable(), MooseLinearVariableFV< OutputType >::MooseLinearVariableFV(), UserObjectInterface::mooseObjectError(), MoosePreconditioner::MoosePreconditioner(), MooseStaticCondensationPreconditioner::MooseStaticCondensationPreconditioner(), MooseVariableBase::MooseVariableBase(), MortarConstraintBase::MortarConstraintBase(), MortarNodalAuxKernelTempl< ComputeValueType >::MortarNodalAuxKernelTempl(), MultiApp::moveApp(), MoveBoundaryNodesToCurveGenerator::MoveBoundaryNodesToCurveGenerator(), MoveNodeGenerator::MoveNodeGenerator(), MoveNodesByParsedExpressionModifier::MoveNodesByParsedExpressionModifier(), TriToQuadConverter::moveSurvivingTriangles(), 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(), MeshTriangulationUtils::outerBoundaryIds(), Output::Output(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedFunctorMaterialTempl< is_ad >::ParsedFunctorMaterialTempl(), ParsedPostprocessor::ParsedPostprocessor(), ParsedReporterBase::ParsedReporterBase(), ParsedScalarReporter::ParsedScalarReporter(), ParsedSubdomainGeneratorBase::ParsedSubdomainGeneratorBase(), ParsedVectorRealReductionReporter::ParsedVectorRealReductionReporter(), ParsedVectorReporter::ParsedVectorReporter(), ParsedVectorVectorRealReductionReporter::ParsedVectorVectorRealReductionReporter(), PatternedMeshGenerator::PatternedMeshGenerator(), PenaltyPeriodicSegmentalConstraint::PenaltyPeriodicSegmentalConstraint(), PeriodicSegmentalConstraint::PeriodicSegmentalConstraint(), PIDTransientControl::PIDTransientControl(), PlaneDeletionGenerator::PlaneDeletionGenerator(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), PointInPolyhedronBaseUO::PointInPolyhedronBaseUO(), PointInSignedFunctionCheckUO::PointInSignedFunctionCheckUO(), PointInUnionCheckUO::PointInUnionCheckUO(), PointwiseRenormalizeVector::PointwiseRenormalizeVector(), PolyLineMeshFollowingNodeSetGenerator::PolyLineMeshFollowingNodeSetGenerator(), EqualValueBoundaryConstraint::populateSecondaryNodes(), ReporterInterface::possiblyCheckHasReporter(), VectorPostprocessorInterface::possiblyCheckHasVectorPostprocessor(), LibmeshPartitioner::prepareBlocksForSubdomainPartitioner(), ProjectedMaterialPropertyNodalPatchRecoveryAux::ProjectedMaterialPropertyNodalPatchRecoveryAux(), ProjectSideSetOntoLevelSetGenerator::ProjectSideSetOntoLevelSetGenerator(), PropertyReadFile::PropertyReadFile(), RandomIC::RandomIC(), RankTwoTensorFromComponentProperties::RankTwoTensorFromComponentProperties(), MultiApp::readCommandLineArguments(), PropertyReadFile::readData(), SolutionUserObjectBase::readExodusIIOrNemesis(), SolutionUserObjectBase::readXda(), ReferenceResidualConvergence::ReferenceResidualConvergence(), RefineBlockGenerator::RefineBlockGenerator(), RefineSidesetGenerator::RefineSidesetGenerator(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), ReporterPointSource::ReporterPointSource(), FEProblemBase::restoreSolutions(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), FEProblemBase::setLinearConvergenceNames(), FEProblemBase::setNonlinearConvergenceNames(), MooseMesh::setPartitioner(), NodeSetsGeneratorBase::setup(), SideSetsGeneratorBase::setup(), SurfaceMeshGeneratorBase::setup(), CylinderComponent::setupComponent(), NEML2Action::setupDerivativeMappings(), NEML2Action::setupInputMappings(), MultiSystemSolveObject::setupMultiSystemFixedPointRelaxationFactors(), MoveNodesByParsedExpressionModifier::setupNodalOutputVariables(), NEML2Action::setupParameterDerivativeMappings(), NEML2Action::setupParameterMappings(), SetupQuadratureAction::SetupQuadratureAction(), SidesetAroundSubdomainUpdater::SidesetAroundSubdomainUpdater(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SideValueSampler::SideValueSampler(), SingleRankPartitioner::SingleRankPartitioner(), SphericalGridDivision::SphericalGridDivision(), StitchBoundaryMeshGenerator::StitchBoundaryMeshGenerator(), StitchMeshGenerator::StitchMeshGenerator(), SurfaceSubdomainsDelaunayRemesher::SurfaceSubdomainsDelaunayRemesher(), SymmetryTransformGenerator::SymmetryTransformGenerator(), TagVectorAux::TagVectorAux(), XYFrontalDelaunayGenerator::targetArea(), Terminator::Terminator(), TimeDerivativeAux::TimeDerivativeAux(), Transfer::Transfer(), TransformGenerator::TransformGenerator(), TransientMultiApp::TransientMultiApp(), CylinderComponent::translation(), MeshTriangulationUtils::triangulateWithDelaunay(), TriToQuadConverter::TriToQuadConverter(), ParsedCurveGenerator::tSectionSpaceDefiner(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), UserObjectBase::UserObjectBase(), Checkpoint::validateExecuteOn(), ParsedAux::validateGenericVectorNames(), SolutionAux::validateVariable(), MFEMProblem::validateVariableNumericType(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), VolumeAux::VolumeAux(), WebServerControl::WebServerControl(), XYDelaunayGenerator::XYDelaunayGenerator(), XYFrontalDelaunayGenerator::XYFrontalDelaunayGenerator(), XYMeshLineCutter::XYMeshLineCutter(), XYQuadrilateralMeshFromBoundaryCurve::XYQuadrilateralMeshFromBoundaryCurve(), and XYZDelaunayGenerator::XYZDelaunayGenerator().

◆ parameters()

const InputParameters & MooseBase::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 131 of file MooseBase.h.

131{ return _pars; }

Referenced by AddActionComponentAction::act(), CommonOutputAction::act(), CSGOnlyAction::act(), MeshOnlyAction::act(), SetupDebugAction::act(), SplitMeshAction::act(), Action::Action(), FEProblemBase::addAnyRedistributers(), FEProblemBase::addAuxKernel(), MFEMProblem::addAuxKernel(), FEProblemBase::addAuxScalarKernel(), DisplacedProblem::addAuxVariable(), MFEMProblem::addAuxVariable(), FEProblemBase::addBoundaryCondition(), MFEMProblem::addBoundaryCondition(), FEProblemBase::addConstraint(), FEProblemBase::addConvergence(), FEProblemBase::addDamper(), AddDefaultConvergenceAction::addDefaultMultiAppFixedPointConvergence(), FEProblemBase::addDefaultMultiAppFixedPointConvergence(), AddDefaultConvergenceAction::addDefaultNonlinearConvergence(), FEProblemBase::addDefaultNonlinearConvergence(), ReferenceResidualProblem::addDefaultNonlinearConvergence(), AddDefaultConvergenceAction::addDefaultSteadyStateConvergence(), FEProblemBase::addDefaultSteadyStateConvergence(), FEProblemBase::addDGKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), MFEMProblem::addFESpace(), MFEMProblem::addFESpaceHierarchy(), FEProblemBase::addFunction(), MFEMProblem::addFunction(), FEProblemBase::addFunctorMaterial(), MFEMProblem::addFunctorMaterial(), FEProblemBase::addFVBC(), FEProblemBase::addFVGradientMethod(), FEProblemBase::addFVInitialCondition(), FEProblemBase::addFVInterfaceKernel(), FEProblemBase::addFVInterpolationMethod(), FEProblemBase::addFVKernel(), MFEMProblem::addGridFunction(), FEProblemBase::addHDGKernel(), MFEMProblem::addImagComponentToBC(), MFEMProblem::addImagComponentToKernel(), FEProblemBase::addIndicator(), MFEMProblem::addIndicator(), FEProblemBase::addInitialCondition(), MFEMProblem::addInitialCondition(), DiffusionPhysicsBase::addInitialConditions(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), FEProblemBase::addKernel(), MFEMProblem::addKernel(), FEProblemBase::addLinearFVBC(), FEProblemBase::addLinearFVKernel(), FEProblem::addLineSearch(), FEProblemBase::addMarker(), MFEMProblem::addMarker(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMeshDivision(), MFEMProblem::addMFEMFESpaceFromMOOSEVariable(), MFEMProblem::addMFEMProblemComposer(), MFEMProblem::addMFEMSolver(), FEProblemBase::addMultiApp(), FEProblemBase::addNodalKernel(), FEProblemBase::addObject(), FEProblemBase::addObjectParamsHelper(), FEProblemBase::addOutput(), FEProblemBase::addPostprocessor(), MFEMProblem::addPostprocessor(), FEProblemBase::addPredictor(), MFEMProblem::addRealComponentToBC(), MFEMProblem::addRealComponentToKernel(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addScalarKernel(), MFEMProblem::addSubMesh(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), MFEMProblem::addTransfer(), FEProblemBase::addUserObject(), DisplacedProblem::addVariable(), MFEMEigenproblem::addVariable(), MFEMProblem::addVariable(), FEProblemBase::addVectorPostprocessor(), MFEMProblem::addVectorPostprocessor(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), AdvancedOutput::AdvancedOutput(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), assemble_l2(), Moose::assemble_matrix(), Action::associateWithParameter(), AuxKernelBase::AuxKernelBase(), AuxScalarKernel::AuxScalarKernel(), BoundsBase::BoundsBase(), MooseMesh::buildTypedMesh(), MeshGenerator::checkGetMesh(), PostprocessorInterface::checkParam(), AddDefaultConvergenceAction::checkUnusedMultiAppFixedPointConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedNonlinearConvergenceParameters(), AddDefaultConvergenceAction::checkUnusedSteadyStateConvergenceParameters(), SampledOutput::cloneMesh(), Moose::compute_bounds(), Moose::compute_jacobian(), Moose::compute_nearnullspace(), Moose::compute_nullspace(), Moose::compute_postcheck(), Moose::compute_transpose_nullspace(), LibtorchNeuralNetControl::conditionalParameterError(), Console::Console(), MooseMeshUtils::copyIntoMesh(), CommonOutputAction::create(), MultiApp::createApp(), Postprocessor::declareValue(), DumpObjectsProblem::deduceNecessaryParameters(), DefaultMultiAppFixedPointConvergence::DefaultMultiAppFixedPointConvergence(), DumpObjectsProblem::dumpObjectHelper(), DumpObjectsProblem::DumpObjectsProblem(), EigenProblem::EigenProblem(), EigenProblemSolve::EigenProblemSolve(), ElementMaterialSampler::ElementMaterialSampler(), ExamplePatchMeshGenerator::ExamplePatchMeshGenerator(), Executor::Executor(), Exodus::Exodus(), ElementSubdomainModifierBase::extrapolatePolynomial(), FEProblem::FEProblem(), FixedPointSolve::FixedPointSolve(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), GapValueAux::GapValueAux(), ParsedSubdomainGeneratorBase::generate(), ActionWarehouse::getCurrentActionName(), ExecutorInterface::getExecutor(), Material::getMaterial(), Moose::PeriodicBCHelper::getParams(), ReporterInterface::getReporterName(), Reporter::getReporterValueName(), UserObjectInterface::getUserObjectName(), AuxKernelBase::getVariableHelper(), VectorPostprocessorInterface::getVectorPostprocessorName(), GhostingUserObject::GhostingUserObject(), MeshGeneratorSystem::hasDataDrivenAllowed(), AttribSystem::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), FullSolveMultiApp::initialSetup(), FEProblemBase::initNullSpaceVectors(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceIntegralVariableValuePostprocessor::InterfaceIntegralVariableValuePostprocessor(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), MooseObject::isKokkosObject(), isValid(), IterationAdaptiveDT::IterationAdaptiveDT(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), MooseApp(), 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
void mooseInfo(Args &&... args) const
Definition MooseBase.h:334

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

◆ paramWarning()

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}

◆ parser() [1/2]

Parser & MooseApp::parser ( )

Definition at line 1852 of file MooseApp.C.

1853{
1854 return const_cast<Parser &>(std::as_const(*this).parser());
1855}
Class for parsing input files.
Definition Parser.h:109

◆ parser() [2/2]

const Parser & MooseApp::parser ( ) const
Returns
The Parser

Definition at line 1845 of file MooseApp.C.

1846{
1847 mooseAssert(_parser, "Not set");
1848 return *_parser;
1849}

Referenced by ActionFactory::create().

◆ perfGraph()

PerfGraph & MooseApp::perfGraph ( )
inline

Get the PerfGraph for this app.

Definition at line 176 of file MooseApp.h.

176{ return _perf_graph; }

Referenced by PerfGraphInterface::perfGraph().

◆ possiblyLoadRestartableMetaData()

void MooseApp::possiblyLoadRestartableMetaData ( const RestartableDataMapName &  name,
const std::filesystem::path &  folder_base 
)

Loads the restartable meta data for name if it is available with the folder base folder_base.

Definition at line 2496 of file MooseApp.C.

2498{
2499 const auto & map_name = getRestartableDataMapName(name);
2500 const auto meta_data_folder_base = metaDataFolderBase(folder_base, map_name);
2501 if (RestartableDataReader::isAvailable(meta_data_folder_base))
2502 {
2504 reader.setErrorOnLoadWithDifferentNumberOfProcessors(false);
2505 reader.setInput(meta_data_folder_base);
2506 reader.restore();
2507 }
2508}
static std::filesystem::path metaDataFolderBase(const std::filesystem::path &folder_base, const std::string &map_suffix)
The file suffix for meta data (header and data)
Definition MooseApp.C:3012
const std::string & getRestartableDataMapName(const RestartableDataMapName &name) const
Definition MooseApp.C:3420
Reader for restartable data written by the RestartableDataWriter.
static bool isAvailable(const std::filesystem::path &folder_base)

Referenced by FileMesh::buildMesh(), FileMeshGenerator::generate(), and loadRestartableMetaData().

◆ postRestore()

virtual void MooseApp::postRestore ( const bool  )
inlinevirtual

Insertion point for other apps that is called after restore()

Parameters
for_restartWhether this restoration is explicitly for the first restoration of restart data

Definition at line 801 of file MooseApp.h.

801{}

Referenced by restore(), and restore().

◆ preBackup()

virtual void MooseApp::preBackup ( )
inlinevirtual

Insertion point for other apps that is called before backup()

Definition at line 767 of file MooseApp.h.

767{}

Referenced by backup(), and backup().

◆ processor_id()

processor_id_type MooseApp::processor_id ( ) const
inline

Returns the MPI processor ID of the current processor.

Definition at line 414 of file MooseApp.h.

414{ return _comm->rank(); }

Referenced by MooseApp(), restartFolderBase(), FileOutput::setFileBaseInternal(), writeRestartableMetaData(), and writeRestartableMetaData().

◆ queryKokkosGPUs()

void MooseApp::queryKokkosGPUs ( )
private

Query the Kokkos GPUs in the system and check whether every process has an associated GPU.

Referenced by MooseApp().

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

◆ rankMap()

const RankMap & MooseApp::rankMap ( )
inline

The RankMap is a useful object for determining how the processes are laid out on the physical nodes of the cluster.

Definition at line 171 of file MooseApp.h.

171{ return _rank_map; }

◆ recursivelyCreateExecutors()

void MooseApp::recursivelyCreateExecutors ( const std::string &  current_executor_name,
std::list< std::string > &  possible_roots,
std::list< std::string > &  current_branch 
)
private

Internal function used to recursively create the executor objects.

Called by createExecutors

Parameters
current_executor_nameThe name of the executor currently needing to be built
possible_rootsThe names of executors that are currently candidates for being the root

Definition at line 1858 of file MooseApp.C.

1861{
1862 // Did we already make this one?
1863 if (_executors.find(current_executor_name) != _executors.end())
1864 return;
1865
1866 // Is this one already on the current branch (i.e. there is a cycle)
1867 if (std::find(current_branch.begin(), current_branch.end(), current_executor_name) !=
1868 current_branch.end())
1869 {
1870 std::stringstream exec_names_string;
1871
1872 auto branch_it = current_branch.begin();
1873
1874 exec_names_string << *branch_it++;
1875
1876 for (; branch_it != current_branch.end(); ++branch_it)
1877 exec_names_string << ", " << *branch_it;
1878
1879 exec_names_string << ", " << current_executor_name;
1880
1881 mooseError("Executor cycle detected: ", exec_names_string.str());
1882 }
1883
1884 current_branch.push_back(current_executor_name);
1885
1886 // Build the dependencies first
1887 const auto & params = *_executor_params[current_executor_name].second;
1888
1889 for (const auto & param : params)
1890 {
1891 if (params.have_parameter<ExecutorName>(param.first))
1892 {
1893 const auto & dependency_name = params.get<ExecutorName>(param.first);
1894
1895 possible_roots.remove(dependency_name);
1896
1897 if (!dependency_name.empty())
1898 recursivelyCreateExecutors(dependency_name, possible_roots, current_branch);
1899 }
1900 }
1901
1902 // Add this Executor
1903 const auto & type = _executor_params[current_executor_name].first;
1904 addExecutor(type, current_executor_name, params);
1905
1906 current_branch.pop_back();
1907}
void addExecutor(const std::string &type, const std::string &name, const InputParameters &params)
Definition MooseApp.C:1825

Referenced by createExecutors(), and recursivelyCreateExecutors().

◆ registerInterfaceObject()

template<class T >
void MooseApp::registerInterfaceObject ( T &  interface)

Registers an interface object for accessing with getInterfaceObjects.

This should be called within the constructor of the interface in interest.

Definition at line 1758 of file MooseApp.h.

1759{
1760 static_assert(!std::is_base_of<MooseObject, T>::value, "T is not an interface");
1761
1762 InterfaceRegistryObjects<T> * registry = nullptr;
1763 auto it = _interface_registry.find(typeid(T));
1764 if (it == _interface_registry.end())
1765 {
1766 auto new_registry = std::make_unique<InterfaceRegistryObjects<T>>();
1767 registry = new_registry.get();
1768 _interface_registry.emplace(typeid(T), std::move(new_registry));
1769 }
1770 else
1771 registry = cast_ptr<InterfaceRegistryObjects<T> *>(it->second.get());
1772
1773 mooseAssert(std::count(registry->_objects.begin(), registry->_objects.end(), &interface) == 0,
1774 "Interface already registered");
1775 registry->_objects.push_back(&interface);
1776}

Referenced by Coupleable::Coupleable(), MaterialPropertyInterface::MaterialPropertyInterface(), PetscOutputInterface::PetscOutputInterface(), and Reporter::Reporter().

◆ registerRestartableData() [1/2]

RestartableDataValue & MooseApp::registerRestartableData ( const std::string &  name,
std::unique_ptr< RestartableDataValue >  data,
THREAD_ID  tid,
bool  read_only,
const RestartableDataMapName &  metaname = "" 
)

◆ registerRestartableData() [2/2]

RestartableDataValue & MooseApp::registerRestartableData ( std::unique_ptr< RestartableDataValue >  data,
THREAD_ID  tid,
bool  read_only,
const RestartableDataMapName &  metaname = "" 
)

Definition at line 2415 of file MooseApp.C.

2419{
2420 if (!metaname.empty() && tid != 0)
2421 mooseError(
2422 "The meta data storage for '", metaname, "' is not threaded, so the tid must be zero.");
2423
2424 mooseAssert(metaname.empty() ||
2425 _restartable_meta_data.find(metaname) != _restartable_meta_data.end(),
2426 "The desired meta data name does not exist: " + metaname);
2427
2428 // Select the data store for saving this piece of restartable data (mesh or everything else)
2429 auto & data_map =
2430 metaname.empty() ? _restartable_data[tid] : _restartable_meta_data[metaname].first;
2431
2432 RestartableDataValue * stored_data = data_map.findData(data->name());
2433 if (stored_data)
2434 {
2435 if (data->typeId() != stored_data->typeId())
2436 mooseError("Type mismatch found in RestartableData registration of '",
2437 data->name(),
2438 "'\n\n Stored type: ",
2439 stored_data->type(),
2440 "\n New type: ",
2441 data->type());
2442 }
2443 else
2444 stored_data = &data_map.addData(std::move(data));
2445
2446 if (!read_only)
2447 stored_data->setDeclared({});
2448
2449 return *stored_data;
2450}
virtual const std::type_info & typeId() const =0
The type ID of the underlying data.
void setDeclared(const SetDeclaredKey)
Sets that this restartable value has been declared.
virtual std::string type() const =0
String identifying the type of parameter stored.

Referenced by createRecoverablePerfGraph(), createRecoverableSolutionInvalidity(), MeshGenerator::declareMeshProperty(), ReporterData::getRestartableDataHelper(), and Restartable::registerRestartableDataOnApp().

◆ registerRestartableDataMapName()

void MooseApp::registerRestartableDataMapName ( const RestartableDataMapName &  name,
std::string  suffix = "" 
)

Reserve a location for storing custom RestartableDataMap objects.

This should be called in the constructor of an application.

Parameters
nameA key to use for accessing the data object
suffixThe suffix to use when appending to checkpoint output, if not supplied the given name is used to generate the suffix (MyMetaData -> _mymetadata)

Definition at line 3410 of file MooseApp.C.

3411{
3412 if (!suffix.empty())
3413 std::transform(suffix.begin(), suffix.end(), suffix.begin(), ::tolower);
3414 suffix.insert(0, "_");
3415 _restartable_meta_data.emplace(
3416 std::make_pair(name, std::make_pair(RestartableDataMap(), suffix)));
3417}

Referenced by MooseApp().

◆ registerRestartableNameWithFilter()

void MooseApp::registerRestartableNameWithFilter ( const std::string &  name,
Moose::RESTARTABLE_FILTER  filter 
)
protected

NOTE: This is an internal function meant for MOOSE use only!

Register a piece of restartable data that will be used in a filter in/out during deserialization. Note however that this data will always be written to the restart file.

Parameters
nameThe full (unique) name.
filterThe filter name where to direct the name

Definition at line 1667 of file MooseApp.C.

1669{
1671 switch (filter)
1672 {
1673 case RESTARTABLE_FILTER::RECOVERABLE:
1675 break;
1676 default:
1677 mooseError("Unknown filter");
1678 }
1679}
RESTARTABLE_FILTER
The filter type applied to a particular piece of "restartable" data.
Definition MooseTypes.h:846

Referenced by createRecoverablePerfGraph(), createRecoverableSolutionInvalidity(), and Restartable::registerRestartableNameWithFilterOnApp().

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

◆ relationshipManagers()

const std::set< std::shared_ptr< RelationshipManager > > & MooseApp::relationshipManagers ( ) const
inline

Return the container of relationship managers.

Definition at line 1060 of file MooseApp.h.

1061 {
1063 }

Referenced by NumRelationshipManagers::getValue().

◆ removeRelationshipManager()

void MooseApp::removeRelationshipManager ( std::shared_ptr< RelationshipManager >  relationship_manager)
private

Purge this relationship manager from meshes and DofMaps and finally from us.

This method is private because only this object knows when we should remove relationship managers: when we are adding relationship managers to this object's storage, we perform an operator>= comparison between our existing RMs and the RM we are trying to add. If any comparison returns true, we do not add the new RM because the comparison indicates that we would gain no new coverage. However, if no comparison return true, then we add the new RM and we turn the comparison around! Consequently if our new RM is >= than any of our preexisting RMs, we remove those preexisting RMs using this method

Definition at line 3059 of file MooseApp.C.

3060{
3061 auto * const mesh = _action_warehouse.mesh().get();
3062 if (!mesh)
3063 mooseError("The MooseMesh should exist");
3064
3065 const MeshBase * const undisp_lm_mesh = mesh->getMeshPtr();
3066 RelationshipManager * undisp_clone = nullptr;
3067 if (undisp_lm_mesh && hasRMClone(*rm, *undisp_lm_mesh))
3068 {
3069 undisp_clone = &getRMClone(*rm, *undisp_lm_mesh);
3070 const_cast<MeshBase *>(undisp_lm_mesh)->remove_ghosting_functor(*undisp_clone);
3071 }
3072
3073 auto & displaced_mesh = _action_warehouse.displacedMesh();
3074 MeshBase * const disp_lm_mesh = displaced_mesh ? &displaced_mesh->getMesh() : nullptr;
3075 RelationshipManager * disp_clone = nullptr;
3076 if (disp_lm_mesh && hasRMClone(*rm, *disp_lm_mesh))
3077 {
3078 disp_clone = &getRMClone(*rm, *disp_lm_mesh);
3079 disp_lm_mesh->remove_ghosting_functor(*disp_clone);
3080 }
3081
3082 if (_executioner)
3083 {
3084 auto & problem = feProblem();
3085 if (undisp_clone)
3086 {
3087 problem.removeAlgebraicGhostingFunctor(*undisp_clone);
3088 problem.removeCouplingGhostingFunctor(*undisp_clone);
3089 }
3090
3091 auto * dp = problem.getDisplacedProblem().get();
3092 if (dp && disp_clone)
3093 dp->removeAlgebraicGhostingFunctor(*disp_clone);
3094 }
3095
3097 _relationship_managers.erase(rm);
3098}
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
RelationshipManager & getRMClone(const RelationshipManager &template_rm, const MeshBase &mesh) const
Return the relationship manager clone originally created from the provided template relationship mana...
Definition MooseApp.C:3044
bool hasRMClone(const RelationshipManager &template_rm, const MeshBase &mesh) const
Definition MooseApp.C:3036

Referenced by addRelationshipManager().

◆ requestCitations()

void MooseApp::requestCitations ( )
private

Handles the –citations command-line option: registers with PETSc the BibTeX entries that should be cited for the framework and the modules/objects used in this simulation, and enables PETSc's -citations option.

PETSc prints them (together with its own and its sub-packages' citations) at PetscFinalize, to the console or to a file if one was given. The collected set spans this app and, recursively, every MultiApp subapp, and is gathered across all MPI ranks (PETSc prints from rank 0 alone), so attribution is complete for multi-app runs.

Definition at line 2102 of file MooseApp.C.

2103{
2104 // Collect the de-duplicated citations across this app and, recursively, every MultiApp subapp.
2105 std::map<std::string, std::string> citations;
2106 collectCitations(citations);
2107
2108 // MultiApp subapps are distributed across the MPI ranks, so each rank has collected citations
2109 // only for the subapps it owns. PETSc prints the citation list from rank 0 alone, so gather every
2110 // rank's citations onto all ranks; otherwise a module used only by a subapp that lives off rank 0
2111 // would be omitted.
2112 std::vector<std::string> flattened;
2113 flattened.reserve(citations.size() * 2);
2114 for (const auto & [key, bibtex] : citations)
2115 {
2116 flattened.push_back(key);
2117 flattened.push_back(bibtex);
2118 }
2119 _comm->allgather(flattened);
2120 for (std::size_t i = 0; i + 1 < flattened.size(); i += 2)
2121 {
2122 [[maybe_unused]] const auto [it, inserted] = citations.emplace(flattened[i], flattened[i + 1]);
2123 mooseAssert(inserted || it->second == flattened[i + 1],
2124 "The same citation key was registered with different BibTeX entries");
2125 }
2126
2127 // Register the resolved BibTeX entries with PETSc and enable its -citations option. PETSc prints
2128 // them, together with the run-specific citations from any PETSc solvers/preconditioners actually
2129 // used, at PetscFinalize (to the console or, if a file name was given, to that file).
2130 for (const auto & citation : citations)
2131 Moose::PetscSupport::registerPetscCitation(citation.second);
2132
2133 Moose::PetscSupport::setSinglePetscOption("-citations", getParam<std::string>("citations"));
2134}
void registerPetscCitation(const std::string &bibtex)
Register a BibTeX entry with PETSc's citation list so that it is printed (alongside the run-specific ...
void setSinglePetscOption(const std::string &name, const std::string &value="", FEProblemBase *const problem=nullptr)
A wrapper function for dealing with different versions of PetscOptionsSetValue.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...

Referenced by run().

◆ restartFolderBase()

std::filesystem::path MooseApp::restartFolderBase ( const std::filesystem::path &  folder_base) const

The file suffix for restartable data.

Definition at line 3020 of file MooseApp.C.

3021{
3022 auto folder = folder_base;
3023 folder += "-restart-" + std::to_string(processor_id());
3025}

Referenced by Checkpoint::output().

◆ restore() [1/2]

void MooseApp::restore ( const std::filesystem::path &  folder_base,
const bool  for_restart 
)

Restore an application from file.

Parameters
folder_baseThe backup folder base
for_restartWhether this restoration is explicitly for the first restoration of restart data

You must call finalizeRestore() after this in order to finalize the restoration. The restore process is kept open in order to restore additional data after the initial restore (that is, the restoration of data that has already been declared).

Definition at line 1722 of file MooseApp.C.

1723{
1724 TIME_SECTION("restore", 2, "Restoring Application from File");
1725
1726 const DataNames filter_names = for_restart ? getRecoverableData() : DataNames{};
1727
1728 _rd_reader.setInput(folder_base);
1729 _rd_reader.restore(filter_names);
1730
1731 postRestore(for_restart);
1732}
std::unordered_set< std::string > DataNames
const DataNames & getRecoverableData() const
Return a reference to the recoverable data object.
Definition MooseApp.h:724
virtual void postRestore(const bool)
Insertion point for other apps that is called after restore()
Definition MooseApp.h:801
void restore(const DataNames &filter_names={})
Restores the restartable data.
void setInput(std::unique_ptr< std::stringstream > header_stream, std::unique_ptr< std::stringstream > data_stream)
Sets the input stream for reading from the stringstreams header_stream and data_stream for the header...

Referenced by restoreFromInitialBackup().

◆ restore() [2/2]

void MooseApp::restore ( std::unique_ptr< Backup >  backup,
const bool  for_restart 
)

Restore an application from the backup backup.

Parameters
backupThe backup
for_restartWhether this restoration is explicitly for the first restoration of restart data

You must call finalizeRestore() after this in order to finalize the restoration. The restore process is kept open in order to restore additional data after the initial restore (that is, the restoration of data that has already been declared).

Definition at line 1735 of file MooseApp.C.

1736{
1737 TIME_SECTION("restore", 2, "Restoring Application");
1738
1739 const DataNames filter_names = for_restart ? getRecoverableData() : DataNames{};
1740
1741 if (!backup)
1742 mooseError("MooseApp::restore(): Provided backup is not initialized");
1743
1744 auto header = std::move(backup->header);
1745 mooseAssert(header, "Header not available");
1746
1747 auto data = std::move(backup->data);
1748 mooseAssert(data, "Data not available");
1749
1750 if (restoreMeshBackup(*this, *backup, feProblem().mesh()))
1751 {
1753 feProblem().mesh().prepare();
1754 feProblem().meshChanged(/*intermediate_change=*/false,
1755 /*contract_mesh=*/false,
1756 /*clean_refinement_flags=*/false);
1757 }
1758
1759 _rd_reader.setInput(std::move(header), std::move(data));
1760 _rd_reader.restore(filter_names);
1761
1762 postRestore(for_restart);
1763}
virtual MooseMesh & mesh() override
virtual void meshChanged(bool intermediate_change, bool contract_mesh, bool clean_refinement_flags)
Update data after a mesh change.
virtual std::string header() const
Returns a string to be printed at the beginning of a simulation.
Definition MooseApp.C:2839
bool _restored_initial_backup_mesh
Whether mesh topology has been restored from the initial Backup object.
Definition MooseApp.h:1723
void prepare()
Calls prepare_for_use() if the underlying MeshBase object isn't prepared, then communicates various b...
Definition MooseMesh.C:399

◆ restoreDataIfAvailable()

bool MooseApp::restoreDataIfAvailable ( RestartableDataValue &  value,
const THREAD_ID  tid,
Moose::PassKey< ReporterData >   
)
inline

Restores value in place from the checkpoint reader if it is present in the checkpoint and has not yet been loaded.

Used to recover data (e.g. reporter values) that is declared after the bulk restore pass while the reader window is still open. No-op on non-recover runs and for data declared before the restore window opens.

Returns
Whether or not the value was restored

Definition at line 836 of file MooseApp.h.

839 {
840 return _rd_reader.restoreDataIfAvailable(value, tid, {});
841 }
bool restoreDataIfAvailable(RestartableDataValue &value, const THREAD_ID tid, Moose::PassKey< MooseApp >)
Restores value in place from the open reader if it is present in the checkpoint and has not yet been ...

Referenced by ReporterData::restoreReporterStateIfAvailable().

◆ restoredInitialBackupMesh()

bool MooseApp::restoredInitialBackupMesh ( ) const
inline

Whether this app has restored mesh topology from its initial Backup object.

Definition at line 747 of file MooseApp.h.

◆ restoreFromInitialBackup()

void MooseApp::restoreFromInitialBackup ( const bool  for_restart)

Restores from a "initial" backup, that is, one set in _initial_backup.

Parameters
for_restartWhether this restoration is explicitly for the first restoration of restart data

This is only used for restoration of multiapp subapps, which have been given a Backup from their parent on initialization. Said Backup is passed to this app via the "_initial_backup" private input parameter.

See restore() for more information

Definition at line 1766 of file MooseApp.C.

1767{
1768 mooseAssert(hasInitialBackup(), "Missing initial backup");
1769 restore(std::move(*_initial_backup), for_restart);
1770}
void restore(const std::filesystem::path &folder_base, const bool for_restart)
Restore an application from file.
Definition MooseApp.C:1722

◆ restoreMeshFromInitialBackup()

void MooseApp::restoreMeshFromInitialBackup ( MooseMesh &  mesh)

Restore mesh from this app's initial Backup object and consume the mesh checkpoint entries.

Definition at line 1715 of file MooseApp.C.

1716{
1717 mooseAssert(hasInitialBackup(), "Missing initial backup");
1718 _restored_initial_backup_mesh = restoreMeshBackup(*this, **_initial_backup, mesh);
1719}

◆ run()

void MooseApp::run ( )
virtual

Run the application.

Definition at line 1993 of file MooseApp.C.

1994{
1995 TIME_SECTION("run", 3);
1996 if (getParam<bool>("show_docs"))
1997 {
1998 auto binname = appBinaryName();
1999 if (binname == "")
2000 mooseError("could not locate installed tests to run (unresolved binary/app name)");
2001 auto docspath = MooseUtils::docsDir(binname);
2002 if (docspath == "")
2003 mooseError("no installed documentation found");
2004
2005 auto docmsgfile = MooseUtils::pathjoin(docspath, "docmsg.txt");
2006 std::string docmsg = "file://" + MooseUtils::realpath(docspath) + "/index.html";
2007 if (MooseUtils::pathExists(docmsgfile) && MooseUtils::checkFileReadable(docmsgfile))
2008 {
2009 std::ifstream ifs(docmsgfile);
2010 std::string content((std::istreambuf_iterator<char>(ifs)),
2011 (std::istreambuf_iterator<char>()));
2012 content.replace(content.find("$LOCAL_SITE_HOME"), content.length(), docmsg);
2013 docmsg = content;
2014 }
2015
2016 Moose::out << docmsg << "\n";
2017 _early_exit_param = "--docs";
2018 _ready_to_exit = true;
2019 return;
2020 }
2021
2022 if (showInputs() || copyInputs() || runInputs())
2023 {
2024 _early_exit_param = "--show-input, --copy-inputs, or --run";
2025 _ready_to_exit = true;
2026 return;
2027 }
2028
2029 try
2030 {
2031 TIME_SECTION("setup", 2, "Setting Up");
2032 setupOptions();
2033 runInputFile();
2034 }
2035 catch (Parser::Error & err)
2036 {
2037 mooseAssert(_parser->getThrowOnError(), "Should be true");
2038 throw;
2039 }
2040 catch (MooseRuntimeError & err)
2041 {
2042 mooseAssert(Moose::_throw_on_error, "Should be true");
2043 throw;
2044 }
2045 catch (std::exception & err)
2046 {
2047 mooseError(err.what());
2048 }
2049
2050 if (!_check_input)
2051 {
2052 TIME_SECTION("execute", 2, "Executing");
2054 }
2055 else
2056 {
2057 errorCheck();
2058 // Output to stderr, so it is easier for peacock to get the result
2059 Moose::err << "Syntax OK" << std::endl;
2060 }
2061
2062 if (isParamSetByUser("citations"))
2064}
void requestCitations()
Handles the –citations command-line option: registers with PETSc the BibTeX entries that should be ci...
Definition MooseApp.C:2102
virtual void executeExecutioner()
Execute the Executioner that was built.
Definition MooseApp.C:1603
bool runInputs()
Handles the run input parameter logic: Checks to see whether a directory exists in user space and lau...
Definition MooseApp.C:2240
bool showInputs() const
Prints a message showing the installable inputs for a given application (if getInstallableInputs has ...
Definition MooseApp.C:2137
virtual void setupOptions()
Setup options based on InputParameters.
Definition MooseApp.C:994
bool copyInputs()
Handles the copy_inputs input parameter logic: Checks to see whether the passed argument is valid (a ...
Definition MooseApp.C:2175
virtual void runInputFile()
Actually build everything in the input file.
Definition MooseApp.C:1523
Exception to be thrown whenever we have _throw_on_error set and a mooseError() is emitted.
Definition MooseError.h:118
std::string realpath(const std::string &path)
std::string docsDir(const std::string &app_name)
Definition MooseUtils.C:188
bool _throw_on_error
Variable to turn on exceptions during mooseError(), should only be used within MOOSE unit tests or wh...
Definition Moose.C:911

Referenced by MooseServer::parseDocumentForDiagnostics().

◆ runInputFile()

void MooseApp::runInputFile ( )
virtual

Actually build everything in the input file.

Definition at line 1523 of file MooseApp.C.

1524{
1525 TIME_SECTION("runInputFile", 3);
1526
1527 // If early exit param has been set, then just return
1528 if (_ready_to_exit)
1529 return;
1530
1532
1533 if (isParamSetByUser("csg_only"))
1534 {
1535 _early_exit_param = "--csg-only";
1536 _ready_to_exit = true;
1537 }
1538 else if (isParamSetByUser("mesh_only"))
1539 {
1540 _early_exit_param = "--mesh-only";
1541 _ready_to_exit = true;
1542 }
1543 else if (isParamSetByUser("split_mesh"))
1544 {
1545 _early_exit_param = "--split-mesh";
1546 _ready_to_exit = true;
1547 }
1548 else if (isParamSetByUser("parse_neml2_only"))
1549 {
1550 _early_exit_param = "--parse-neml2-only";
1551 _ready_to_exit = true;
1552 }
1553 else if (getParam<bool>("list_constructed_objects"))
1554 {
1555 // TODO: ask multiapps for their constructed objects
1556 _early_exit_param = "--list-constructed-objects";
1557 _ready_to_exit = true;
1558 std::stringstream ss;
1559 for (const auto & obj : _factory.getConstructedObjects())
1560 ss << obj << '\n';
1562 "list_constructed_objects", "**START OBJECT DATA**\n", "\n**END OBJECT DATA**", ss.str());
1563 }
1564}
void executeAllActions()
This method loops over all actions in the warehouse and executes them.
void outputMachineReadableData(const std::string &param, const std::string &start_marker, const std::string &end_marker, const std::string &data) const
Outputs machine readable data (JSON, YAML, etc.) either to the screen (if no filename was provided as...
Definition MooseApp.C:3510

Referenced by run().

◆ runInputs()

bool MooseApp::runInputs ( )
private

Handles the run input parameter logic: Checks to see whether a directory exists in user space and launches the TestHarness to process the given directory.

Returns
a Boolean value used to indicate whether the application should exit early

Definition at line 2240 of file MooseApp.C.

2241{
2242 if (isParamSetByUser("run"))
2243 {
2244 if (comm().size() > 1)
2245 mooseError("The --run option should not be ran in parallel");
2246
2247 // Pass everything after --run on the cli to the TestHarness
2248 const auto find_run_it = std::as_const(*_command_line).findCommandLineParam("run");
2249 const auto & cl_entries = std::as_const(*_command_line).getEntries();
2250 mooseAssert(find_run_it != cl_entries.end(), "Didn't find the option");
2251 std::string test_args;
2252 for (auto it = std::next(find_run_it); it != cl_entries.end(); ++it)
2253 for (const auto & arg : it->raw_args)
2254 {
2255 test_args += " " + arg;
2257 }
2258
2259 auto working_dir = MooseUtils::getCurrentWorkingDir();
2260 if (MooseUtils::findTestRoot() == "")
2261 {
2262 auto bin_name = appBinaryName();
2263 if (bin_name == "")
2264 mooseError("Could not locate binary name relative to installed location");
2265
2266 auto cmd_name = Moose::getExecutableName();
2267 mooseError(
2268 "Could not locate installed tests from the current working directory:",
2269 working_dir,
2270 ".\nMake sure you are executing this command from within a writable installed inputs ",
2271 "directory.\nRun \"",
2272 cmd_name,
2273 " --copy-inputs <dir>\" to copy the contents of <dir> to a \"./",
2274 bin_name,
2275 "_<dir>\" directory.\nChange into that directory and try \"",
2276 cmd_name,
2277 " --run <dir>\" again.");
2278 }
2279
2280 // Set this application as the app name for the moose_test_runner script that we're running
2281 setenv("MOOSE_TEST_RUNNER_APP_NAME", appBinaryName().c_str(), true);
2282
2283 const std::string cmd = MooseUtils::runTestsExecutable() + test_args;
2284 Moose::out << "Working Directory: " << working_dir << "\nRunning Command: " << cmd << std::endl;
2285 mooseAssert(comm().size() == 1, "Should be run in serial");
2286 const auto return_value = system(cmd.c_str());
2287 if (!WIFEXITED(return_value))
2288 mooseError("Process exited unexpectedly");
2289 setExitCode(WEXITSTATUS(return_value));
2290 return true;
2291 }
2292
2293 return false;
2294}
std::string getCurrentWorkingDir()
Definition MooseUtils.C:499
std::string findTestRoot()
Definition MooseUtils.C:138
std::string runTestsExecutable()
Definition MooseUtils.C:128
void add_command_line_name(const std::string &name)

Referenced by run().

◆ setCheckUnusedFlag()

void MooseApp::setCheckUnusedFlag ( bool  warn_is_error = false)
private

Set a flag so that the parser will either warn or error when unused variables are seen after parsing is complete.

Definition at line 1806 of file MooseApp.C.

1807{
1808 _enable_unused_check = warn_is_error ? ERROR_UNUSED : WARN_UNUSED;
1809}

Referenced by setupOptions().

◆ setErrorOverridden()

void MooseApp::setErrorOverridden ( )

Set a flag so that the parser will throw an error if overridden parameters are detected.

Definition at line 1987 of file MooseApp.C.

1988{
1989 _error_overridden = true;
1990}

◆ setExecutioner()

void MooseApp::setExecutioner ( std::shared_ptr< Executioner > &&  executioner)
inline

Set the Executioner for this App.

Definition at line 346 of file MooseApp.h.

346{ _executioner = executioner; }

Referenced by CreateExecutionerAction::act().

◆ setExecutor()

void MooseApp::setExecutor ( std::shared_ptr< Executor > &&  executor)
inline

Definition at line 347 of file MooseApp.h.

347{ _executor = executor; }

◆ setExitCode()

void MooseApp::setExitCode ( const int  exit_code)
inline

Sets the exit code that the application will exit with.

Definition at line 165 of file MooseApp.h.

165{ _exit_code = exit_code; }

Referenced by copyInputs(), executeExecutioner(), and runInputs().

◆ setExodusFileRestart()

void MooseApp::setExodusFileRestart ( bool  flag)
inline

Set the flag to indicate whether or not we need to use a separate Exodus reader to read the mesh BEFORE we create the mesh.

Definition at line 427 of file MooseApp.h.

427{ _initial_from_file = flag; }

Referenced by CopyNodalVarsAction::act(), and PhysicsBase::prepareCopyVariablesFromMesh().

◆ setExReaderForRestart()

void MooseApp::setExReaderForRestart ( std::shared_ptr< libMesh::ExodusII_IO > &&  exreader)
inline

Set the Exodus reader to restart variables from an Exodus mesh file.

Definition at line 438 of file MooseApp.h.

439 {
440 _ex_reader = exreader;
441 }

Referenced by FileMesh::buildMesh(), and FileMeshGenerator::generate().

◆ setGlobalTimeOffset()

void MooseApp::setGlobalTimeOffset ( Real  offset)
inline

Each App has it's own local time.

The "global" time of the whole problem might be different. This offset is how far off the local App time is from the global time.

Definition at line 309 of file MooseApp.h.

309{ _global_time_offset = offset; }

◆ setMFEMDevice()

void MooseApp::setMFEMDevice ( const std::string &  executioner_device,
const bool &  gpu_aware_mpi 
)

Create/configure the MFEM device.

If the application-level compute_device parameter was explicitly set, it takes precedence over executioner_device; otherwise, executioner_device is used. More than one device can be configured. If supplying multiple devices, they should be comma separated.

Definition at line 3591 of file MooseApp.C.

3592{
3593 // Static for lifetime purposes only, otherwise unneeded
3594 static mfem::Device device;
3595 // Static so multiapps can error when configured with a different device, otherwise unneeded
3596 static std::string configured_device;
3597
3598 std::string selected_device;
3599 if (isParamSetByUser("compute_device"))
3600 selected_device = static_cast<std::string>(getParam<MooseEnum>("compute_device"));
3601 else if (!executioner_device.empty())
3602 selected_device = executioner_device;
3603 else if (!mfem::Device::IsConfigured())
3604 selected_device = "cpu";
3605
3606 if (!mfem::Device::IsConfigured())
3607 {
3608 device.Configure(selected_device);
3609 device.SetGPUAwareMPI(mfem::GetEnv("MFEM_GPU_AWARE_MPI") ? true : gpu_aware_mpi);
3610 device.Print(Moose::out);
3611 configured_device = selected_device;
3612 }
3613 else if (!selected_device.empty() && selected_device != configured_device)
3614 mooseError("Attempted to configure with MFEM devices '",
3615 selected_device,
3616 "', but we have already configured the MFEM device object with the devices '",
3617 configured_device,
3618 "'");
3619}

Referenced by MFEMProblemSolve::MFEMProblemSolve().

◆ setOutputFileBase()

void MooseApp::setOutputFileBase ( const std::string &  output_file_base)

Override the selection of the output file base name.

Note: This method is supposed to be called by MultiApp only.

Definition at line 1507 of file MooseApp.C.

1508{
1509 _output_file_base = output_file_base;
1510
1511 // Reset the file base in the outputs
1513
1514 // Reset the file base in multiapps (if they have been constructed yet)
1515 if (getExecutioner())
1516 for (auto & multi_app : feProblem().getMultiAppWarehouse().getObjects())
1517 multi_app->setAppOutputFileBase();
1518
1520}
Executioner * getExecutioner() const
Retrieve the Executioner for this App.
Definition MooseApp.C:1981
void resetFileBase()
Resets the file base for all FileOutput objects.

◆ setOutputFileNumbers()

void MooseApp::setOutputFileNumbers ( const std::map< std::string, unsigned int > &  numbers)
inline

Store a map of outputter names and file numbers The MultiApp system requires this to get the file numbering to propagate down through the Multiapps.

Parameters
numbersMap of outputter names and file numbers
See also
MultiApp TransientMultiApp OutputWarehouse

Definition at line 537 of file MooseApp.h.

538 {
539 _output_file_numbers = numbers;
540 }

◆ setOutputPosition()

void MooseApp::setOutputPosition ( const Point &  p)

Tell the app to output in a specific position.

Definition at line 2312 of file MooseApp.C.

2313{
2314 _output_position_set = true;
2315 _output_position = p;
2317
2318 if (_executioner.get())
2319 _executioner->parentOutputPositionChanged();
2320}
void meshChanged()
Calls the meshChanged method for every output object.

◆ setRecover()

void MooseApp::setRecover ( bool  value)

Definition at line 2851 of file MooseApp.C.

2852{
2853 _recover = value;
2854}
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

◆ setRestart()

void MooseApp::setRestart ( bool  value)

Sets the restart/recover flags.

Parameters
stateThe state to set the flag to

Definition at line 2845 of file MooseApp.C.

2846{
2847 _restart = value;
2848}

Referenced by FEProblemBase::setRestartFile().

◆ setRestartRecoverFileBase()

void MooseApp::setRestartRecoverFileBase ( const std::string &  file_base)
inline

mutator for recover_base (set by RecoverBaseAction)

Definition at line 509 of file MooseApp.h.

510 {
511 if (file_base.empty())
513 else
514 _restart_recover_base = file_base;
515 }
std::list< std::string > getCheckpointFiles() const
Extract all possible checkpoint file names.
Definition MooseApp.C:2355
std::string getLatestCheckpointFilePrefix(const std::list< std::string > &checkpoint_files)
Definition MooseUtils.C:882

Referenced by SetupRecoverFileBaseAction::act(), and FEProblemBase::setRestartFile().

◆ setStartTime()

void MooseApp::setStartTime ( Real  time)

Set the starting time for the simulation.

This will override any choice made in the input file.

Parameters
timeThe start time for the simulation.

Definition at line 2362 of file MooseApp.C.

2363{
2364 _start_time_set = true;
2365 _start_time = time;
2366}

Referenced by EigenExecutionerBase::EigenExecutionerBase(), and TransientBase::TransientBase().

◆ setupOptions()

void MooseApp::setupOptions ( )
virtual

Setup options based on InputParameters.

Definition at line 994 of file MooseApp.C.

995{
996 TIME_SECTION("setupOptions", 5, "Setting Up Options");
997
998 // Print the header, this is as early as possible
999 if (header().length() && !getParam<bool>("suppress_header"))
1000 _console << header() << std::endl;
1001
1002 if (getParam<bool>("error_unused"))
1003 setCheckUnusedFlag(true);
1004 else if (getParam<bool>("allow_unused"))
1005 setCheckUnusedFlag(false);
1006
1007 if (getParam<bool>("trap_fpe"))
1008 {
1009 _trap_fpe = true;
1010 _perf_graph.setActive(false);
1011 if (getParam<bool>("no_trap_fpe"))
1012 mooseError("Cannot use both \"--trap-fpe\" and \"--no-trap-fpe\" flags.");
1013 }
1014 else if (getParam<bool>("no_trap_fpe"))
1015 _trap_fpe = false;
1016
1017 // Turn all warnings in MOOSE to errors (almost see next logic block)
1018 Moose::_warnings_are_errors = getParam<bool>("error");
1019
1020 // Deprecated messages can be toggled to errors independently from everything else.
1021 Moose::_deprecated_is_error = getParam<bool>("error_deprecated");
1022
1023 if (isUltimateMaster()) // makes sure coloring isn't reset incorrectly in multi-app settings
1024 {
1025 // Set from command line
1026 auto color = getParam<MooseEnum>("color");
1027 if (!isParamSetByUser("color"))
1028 {
1029 // Set from deprecated --no-color
1030 if (getParam<bool>("no_color"))
1031 color = "off";
1032 // Set from environment
1033 else
1034 {
1035 char * c_color = std::getenv("MOOSE_COLOR");
1036 if (c_color)
1037 color.assign(std::string(c_color), "While assigning environment variable MOOSE_COLOR");
1038 }
1039 }
1040
1041 if (color == "auto")
1043 else if (color == "on")
1044 Moose::setColorConsole(true, true);
1045 else if (color == "off")
1047 else
1048 mooseAssert(false, "Should not hit");
1049
1050 // After setting color so that non-yellow deprecated is honored
1051 if (getParam<bool>("no_color"))
1052 mooseDeprecated("The --no-color flag is deprecated. Use '--color off' instead.");
1053 }
1054
1055// If there's no threading model active, but the user asked for
1056// --n-threads > 1 on the command line, throw a mooseError. This is
1057// intended to prevent situations where the user has potentially
1058// built MOOSE incorrectly (neither TBB nor pthreads found) and is
1059// asking for multiple threads, not knowing that there will never be
1060// any threads launched.
1061#if !LIBMESH_USING_THREADS
1062 if (libMesh::command_line_value("--n-threads", 1) > 1)
1063 mooseError("You specified --n-threads > 1, but there is no threading model active!");
1064#endif
1065
1066 // Capability checking
1067 {
1068 // Augment capabilities from the TestHarness
1069 std::optional<std::set<std::string>> ignore_capabilities;
1070 if (isParamValid("testharness_capabilities"))
1071 {
1072 if (!isParamValid("required_capabilities"))
1073 mooseError(
1074 "--testharness-capabilities: Should not be specified without --required-capabilities");
1075
1076 const auto file_path = std::filesystem::absolute(
1077 std::filesystem::path(getParam<std::string>("testharness_capabilities")));
1078
1079 std::ifstream file(file_path);
1080 if (!file)
1081 mooseError("--testharness-capabilities: Could not open ", file_path);
1082
1083 nlohmann::json root;
1084 try
1085 {
1086 file >> root;
1087 if (const auto it = root.find("capabilities"); it != root.end())
1089 if (const auto it = root.find("ignore_capabilities"); it != root.end())
1090 ignore_capabilities = it->get<std::set<std::string>>();
1091 }
1092 catch (const std::exception & e)
1093 {
1094 mooseError(
1095 "--testharness-capabilities: Failed to load capabilities ", file_path, ":\n", e.what());
1096 }
1097 }
1098
1099 if (isParamValid("required_capabilities"))
1100 {
1102
1103 const auto & required_capabilities = getParam<std::string>("required_capabilities");
1104
1105 CapabilityRegistry::CheckOptions options;
1106 // Allowed to be unknown
1107 options.certain = false;
1108 // Add ignored capabilities, if any
1109 if (ignore_capabilities)
1110 options.ignore_capabilities = *ignore_capabilities;
1111
1112 CapabilityRegistry::CheckResult result;
1113 try
1114 {
1115 result = Moose::internal::Capabilities::getCapabilities({}).check(required_capabilities,
1116 options);
1117 }
1118 catch (const std::exception & e)
1119 {
1120 mooseError("--required-capablities: ", e.what());
1121 }
1122
1123 if (result.state < CapabilityRegistry::CheckState::UNKNOWN)
1124 {
1125 mooseInfo("Required capabilities '", required_capabilities, "' not fulfilled.");
1126 _ready_to_exit = true;
1127 // we use code 77 as "skip" in the Testharness
1128 _exit_code = 77;
1129 return;
1130 }
1131 if (result.state == CapabilityRegistry::CheckState::UNKNOWN)
1132 mooseError("Required capabilities '",
1133 required_capabilities,
1134 "' are not specific enough. A comparison test is performed on an undefined "
1135 "capability. Disambiguate this requirement by adding an existence/non-existence "
1136 "requirement. Example: 'unknown<1.2.3' should become 'unknown & unknown<1.2.3' "
1137 "or '!unknown | unknown<1.2.3'");
1138 }
1139 }
1140
1141 // Build a minimal running application, ignoring the input file.
1142 if (getParam<bool>("minimal"))
1144
1145 else if (getParam<bool>("display_version"))
1146 {
1147 Moose::out << getPrintableVersion() << std::endl;
1148 _early_exit_param = "--version";
1149 _ready_to_exit = true;
1150 return;
1151 }
1152 else if (getParam<bool>("help"))
1153 {
1154 _command_line->printUsage();
1155 _early_exit_param = "--help";
1156 _ready_to_exit = true;
1157 }
1158 else if (getParam<bool>("dump") || isParamSetByUser("dump_search"))
1159 {
1160 const std::string search =
1161 isParamSetByUser("dump_search") ? getParam<std::string>("dump_search") : "";
1162
1163 JsonSyntaxTree tree(search);
1164
1165 {
1166 TIME_SECTION("dump", 1, "Building Syntax Tree");
1168 }
1169
1170 // Check if second arg is valid or not
1171 if ((tree.getRoot()).is_object())
1172 {
1173 // Turn off live printing so that it doesn't mess with the dump
1175
1176 JsonInputFileFormatter formatter;
1177 Moose::out << "\n### START DUMP DATA ###\n"
1178 << formatter.toString(tree.getRoot()) << "\n### END DUMP DATA ###" << std::endl;
1179 _early_exit_param = "--dump";
1180 _ready_to_exit = true;
1181 }
1182 else
1183 mooseError("Search parameter '", search, "' was not found in the registered syntax.");
1184 }
1185 else if (getParam<bool>("registry"))
1186 {
1188
1189 Moose::out << "Label\tType\tName\tClass\tFile\n";
1190
1191 auto & objmap = Registry::allObjects();
1192 for (auto & entry : objmap)
1193 for (auto & obj : entry.second)
1194 Moose::out << entry.first << "\tobject\t" << obj->name() << "\t" << obj->_classname << "\t"
1195 << obj->_file << "\n";
1196
1197 auto & actmap = Registry::allActions();
1198 for (auto & entry : actmap)
1199 {
1200 for (auto & act : entry.second)
1201 Moose::out << entry.first << "\taction\t" << act->_name << "\t" << act->_classname << "\t"
1202 << act->_file << "\n";
1203 }
1204 _early_exit_param = "--registry";
1205 _ready_to_exit = true;
1206 }
1207 else if (getParam<bool>("registry_hit"))
1208 {
1210
1211 Moose::out << "### START REGISTRY DATA ###\n";
1212
1213 hit::Section root("");
1214 auto sec = new hit::Section("registry");
1215 root.addChild(sec);
1216 auto objsec = new hit::Section("objects");
1217 sec->addChild(objsec);
1218
1219 auto & objmap = Registry::allObjects();
1220 for (auto & entry : objmap)
1221 for (auto & obj : entry.second)
1222 {
1223 auto ent = new hit::Section("entry");
1224 objsec->addChild(ent);
1225 ent->addChild(new hit::Field("label", hit::Field::Kind::String, entry.first));
1226 ent->addChild(new hit::Field("type", hit::Field::Kind::String, "object"));
1227 ent->addChild(new hit::Field("name", hit::Field::Kind::String, obj->name()));
1228 ent->addChild(new hit::Field("class", hit::Field::Kind::String, obj->_classname));
1229 ent->addChild(new hit::Field("file", hit::Field::Kind::String, obj->_file));
1230 }
1231
1232 auto actsec = new hit::Section("actions");
1233 sec->addChild(actsec);
1234 auto & actmap = Registry::allActions();
1235 for (auto & entry : actmap)
1236 for (auto & act : entry.second)
1237 {
1238 auto ent = new hit::Section("entry");
1239 actsec->addChild(ent);
1240 ent->addChild(new hit::Field("label", hit::Field::Kind::String, entry.first));
1241 ent->addChild(new hit::Field("type", hit::Field::Kind::String, "action"));
1242 ent->addChild(new hit::Field("task", hit::Field::Kind::String, act->_name));
1243 ent->addChild(new hit::Field("class", hit::Field::Kind::String, act->_classname));
1244 ent->addChild(new hit::Field("file", hit::Field::Kind::String, act->_file));
1245 }
1246
1247 Moose::out << root.render();
1248
1249 Moose::out << "\n### END REGISTRY DATA ###\n";
1250 _early_exit_param = "--registry_hit";
1251 _ready_to_exit = true;
1252 }
1253 else if (getParam<bool>("yaml") || isParamSetByUser("yaml_search"))
1254 {
1255 const std::string search =
1256 isParamSetByUser("yaml_search") ? getParam<std::string>("yaml_search") : "";
1258
1260 _builder.buildFullTree(search);
1261
1262 _early_exit_param = "--yaml";
1263 _ready_to_exit = true;
1264 }
1265 else if (getParam<bool>("json") || isParamSetByUser("json_search"))
1266 {
1267 const std::string search =
1268 isParamSetByUser("json_search") ? getParam<std::string>("json_search") : "";
1270
1271 JsonSyntaxTree tree(search);
1273
1275 "json", "**START JSON DATA**\n", "\n**END JSON DATA**", tree.getRoot().dump(2));
1276 _early_exit_param = "--json";
1277 _ready_to_exit = true;
1278 }
1279 else if (getParam<bool>("syntax"))
1280 {
1282
1283 std::multimap<std::string, Syntax::ActionInfo> syntax = _syntax.getAssociatedActions();
1284 std::stringstream ss;
1285 for (const auto & it : syntax)
1286 ss << it.first << "\n";
1287 outputMachineReadableData("syntax", "**START SYNTAX DATA**\n", "**END SYNTAX DATA**", ss.str());
1288 _early_exit_param = "--syntax";
1289 _ready_to_exit = true;
1290 }
1291 else if (getParam<bool>("show_type"))
1292 {
1294
1295 Moose::out << "MooseApp Type: " << type() << std::endl;
1296 _early_exit_param = "--show-type";
1297 _ready_to_exit = true;
1298 }
1299 else if (getParam<bool>("show_capabilities"))
1300 {
1302 outputMachineReadableData("show_capabilities",
1303 "**START JSON DATA**\n",
1304 "\n**END JSON DATA**",
1306 _ready_to_exit = true;
1307 }
1308 else if (isParamValid("check_capabilities"))
1309 {
1311
1313 const auto & capabilities = getParam<std::string>("check_capabilities");
1314
1315 CapabilityRegistry::CheckResult result;
1316 try
1317 {
1318 result = Moose::internal::Capabilities::getCapabilities({}).check(capabilities);
1319 }
1320 catch (const std::exception & e)
1321 {
1322 mooseError("--check-capablities: ", e.what());
1323 }
1324
1325 const bool pass = result.state == CapabilityRegistry::CheckState::CERTAIN_PASS;
1326 _console << "Capabilities '" << capabilities << "' are " << (pass ? "" : "not ") << "fulfilled."
1327 << std::endl;
1328 _ready_to_exit = true;
1329 if (!pass)
1330 _exit_code = 77;
1331 return;
1332 }
1333 else if (!getInputFileNames().empty())
1334 {
1335 if (isParamSetByUser("recover"))
1336 {
1337 // We need to set the flag manually here since the recover parameter is a string type (takes
1338 // an optional filename)
1339 _recover = true;
1340 const auto & recover = getParam<std::string>("recover");
1341 if (recover.size())
1342 _restart_recover_base = recover;
1343 }
1344
1345 _builder.build();
1346
1347 // Lambda to check for mutually exclusive parameters
1348 auto isExclusiveParamSetByUser =
1349 [this](const std::vector<std::string> & group, const std::string & param)
1350 {
1351 auto is_set = isParamSetByUser(param);
1352 if (is_set)
1353 for (const auto & p : group)
1354 if (p != param && isParamSetByUser(p))
1355 mooseError("Parameters '" + p + "' and '" + param +
1356 "' are mutually exclusive. Please choose only one of them.");
1357 return is_set;
1358 };
1359
1360 // The following parameters set the final task and so are mutually exclusive.
1361 const std::vector<std::string> final_task_params = {
1362 "csg_only", "mesh_only", "split_mesh", "parse_neml2_only"};
1363 if (isExclusiveParamSetByUser(final_task_params, "csg_only"))
1364 {
1365 // Error checking on incompatible command line options
1367 mooseError("--csg-only cannot be used in conjunction with --distributed-mesh");
1368 const bool has_mesh_split = isParamSetByUser("split_file") || _use_split;
1369 if (has_mesh_split)
1370 mooseError("--csg-only is not compatible with any mesh splitting options");
1371 if (isParamSetByUser("refinements"))
1372 mooseError("--csg-only cannot be used in conjunction with -r refinements option");
1373 if (!isUltimateMaster())
1374 mooseError("--csg-only option cannot be used as a Subapp");
1375 if (_recover)
1376 mooseError("--csg-only option cannot be used in recovery mode");
1377
1378 _syntax.registerTaskName("execute_csg_generators", true);
1379 _syntax.addDependency("execute_csg_generators", "execute_mesh_generators");
1380 _syntax.addDependency("recover_meta_data", "execute_csg_generators");
1381
1382 _syntax.registerTaskName("csg_only", true);
1383 _syntax.addDependency("csg_only", "recover_meta_data");
1384 _syntax.addDependency("set_mesh_base", "csg_only");
1385 _action_warehouse.setFinalTask("csg_only");
1386 }
1387 else if (isExclusiveParamSetByUser(final_task_params, "mesh_only"))
1388 {
1389 // If we are looking to just check the input, there is no need to
1390 // call MeshOnlyAction and generate a mesh
1391 if (_check_input)
1392 _action_warehouse.setFinalTask("setup_mesh_complete");
1393 else
1394 {
1395 _syntax.registerTaskName("mesh_only", true);
1396 _syntax.addDependency("mesh_only", "setup_mesh_complete");
1397 _syntax.addDependency("determine_system_type", "mesh_only");
1398 _action_warehouse.setFinalTask("mesh_only");
1399 }
1400 }
1401 else if (isExclusiveParamSetByUser(final_task_params, "split_mesh"))
1402 {
1403 _split_mesh = true;
1404 _syntax.registerTaskName("split_mesh", true);
1405 _syntax.addDependency("split_mesh", "setup_mesh_complete");
1406 _syntax.addDependency("determine_system_type", "split_mesh");
1407 _action_warehouse.setFinalTask("split_mesh");
1408 }
1409 else if (isExclusiveParamSetByUser(final_task_params, "parse_neml2_only"))
1410 {
1411 _syntax.registerTaskName("parse_neml2");
1412 _syntax.addDependency("determine_system_type", "parse_neml2");
1413 _action_warehouse.setFinalTask("parse_neml2");
1414 }
1416
1417 // Setup the AppFileBase for use by the Outputs or other systems that need output file info
1418 {
1419 // Extract the CommonOutputAction
1420 const auto common_actions = _action_warehouse.getActions<CommonOutputAction>();
1421 mooseAssert(common_actions.size() <= 1, "Should not be more than one CommonOutputAction");
1422 const Action * common = common_actions.empty() ? nullptr : *common_actions.begin();
1423
1424 // If file_base is set in CommonOutputAction through parsing input, obtain the file_base
1425 if (common && common->isParamValid("file_base"))
1426 {
1427 _output_file_base = common->getParam<std::string>("file_base");
1429 }
1430 else if (isUltimateMaster())
1431 {
1432 // if this app is a master, we use the first input file name as the default file base.
1433 // use proximate here because the input file is an absolute path
1434 const auto & base = getLastInputFileName();
1435 size_t pos = base.find_last_of('.');
1436 _output_file_base = base.substr(0, pos);
1437 // Note: we did not append "_out" in the file base here because we do not want to
1438 // have it in between the input file name and the object name for Output/*
1439 // syntax.
1440 }
1441 // default file base for multiapps is set by MultiApp
1442 }
1443 }
1444 // No input file provided but we have other arguments (so don't just show print usage)
1445 else if (!isParamSetByUser("input_file") && _command_line->getArguments().size() > 2)
1446 {
1447 mooseAssert(getInputFileNames().empty(), "Should be empty");
1448
1449 if (_check_input)
1450 mooseError("You specified --check-input, but did not provide an input file. Add -i "
1451 "<inputfile> to your command line.");
1452
1453 mooseError("No input files specified. Add -i <inputfile> to your command line.");
1454 }
1455 else if (isParamValid("language_server") && getParam<bool>("language_server"))
1456 {
1458
1459 // Reset output to the buffer what was cached before it was turned it off
1460 if (!Moose::out.rdbuf() && _output_buffer_cache)
1461 Moose::out.rdbuf(_output_buffer_cache);
1462
1463 // Start a language server that communicates using an iostream connection
1464 MooseServer moose_server(*this);
1465
1466 moose_server.run();
1467
1468 _early_exit_param = "--language-server";
1469 _ready_to_exit = true;
1470 }
1471
1472 else /* The catch-all case for bad options or missing options, etc. */
1473 {
1474 _command_line->printUsage();
1475 _early_exit_param = "bad or missing";
1476 _ready_to_exit = true;
1477 _exit_code = 1;
1478 }
1479
1480 Moose::out << std::flush;
1481}
void setFinalTask(const std::string &task)
std::vector< const T * > getActions()
Retrieve all actions in a specific type ordered by their names.
Base class for actions.
Definition Action.h:38
Meta-action for creating common output object parameters This action serves two purpose,...
This class produces produces a dump of the InputParameters that appears like the normal input file sy...
std::string toString(const nlohmann::json &root)
Returns a string representation of the tree in input file format.
Holds the syntax in a Json::Value tree.
const std::vector< std::string > & getInputFileNames() const
Definition MooseApp.C:1484
std::string getPrintableVersion() const
Non-virtual method for printing out the version string in a consistent format.
Definition MooseApp.C:988
void createMinimalApp()
Method for creating the minimum required actions for an application (no input file)
Definition MooseApp.C:2857
const std::string & getLastInputFileName() const
Definition MooseApp.C:1491
void setCheckUnusedFlag(bool warn_is_error=false)
Set a flag so that the parser will either warn or error when unused variables are seen after parsing ...
Definition MooseApp.C:1806
void build()
Parse an input file (or text string if provided) consisting of hit syntax and setup objects in the MO...
Definition Builder.C:300
void buildJsonSyntaxTree(JsonSyntaxTree &tree) const
Use MOOSE Factories to construct a parameter tree for documentation or echoing input.
Definition Builder.C:417
void initSyntaxFormatter(SyntaxFormatterType type, bool dump_mode)
Creates a syntax formatter for printing.
Definition Builder.C:400
void buildFullTree(const std::string &search_string)
Use MOOSE Factories to construct a full parse tree for documentation or echoing input.
Definition Builder.C:577
Registry of capabilities that checks capability requirements.
const Capability & get(const std::string &capability) const
Get a capability.
void setActive(bool active)
Turn on or off timing.
Definition PerfGraph.h:129
void disableLivePrint()
Completely disables Live Print (cannot be restarted)
Definition PerfGraph.C:68
static const std::map< std::string, std::vector< std::shared_ptr< RegistryEntryBase > > > & allObjects()
Returns a per-label keyed map of all MooseObjects in the registry.
Definition Registry.h:250
static const std::map< std::string, std::vector< std::shared_ptr< RegistryEntryBase > > > & allActions()
Returns a per-label keyed map of all Actions in the registry.
Definition Registry.h:255
const std::multimap< std::string, ActionInfo > & getAssociatedActions() const
Return all Syntax to Action associations.
Definition Syntax.C:375
void registerTaskName(const std::string &task, bool should_auto_build=false)
Method to register a new task.
Definition Syntax.C:20
void addDependency(const std::string &task, const std::string &pre_req)
Definition Syntax.C:60
bool _deprecated_is_error
Variable to toggle only deprecated warnings as errors.
Definition Moose.C:910
bool setColorConsole(bool use_color, bool force=false)
Turns color escape sequences on/off for info written to stdout.
Definition Moose.C:866
bool _warnings_are_errors
Variable to toggle any warning into an error (includes deprecated code warnings)
Definition Moose.C:909
T command_line_value(const std::string &, T)

Referenced by run().

◆ showInputs()

bool MooseApp::showInputs ( ) const
private

Prints a message showing the installable inputs for a given application (if getInstallableInputs has been overridden for an application).

Definition at line 2137 of file MooseApp.C.

2138{
2139 if (getParam<bool>("show_inputs"))
2140 {
2141 const auto show_inputs_syntax = _pars.getCommandLineMetadata("show_inputs").switches;
2142 std::vector<std::string> dirs;
2143 const auto installable_inputs = getInstallableInputs();
2144
2145 if (installable_inputs == "")
2146 {
2147 Moose::out
2148 << "Show inputs has not been overriden in this application.\nContact the developers of "
2149 "this appication and request that they override \"MooseApp::getInstallableInputs\".\n";
2150 }
2151 else
2152 {
2153 mooseAssert(!show_inputs_syntax.empty(), "show_inputs sytnax should not be empty");
2154
2155 MooseUtils::tokenize(installable_inputs, dirs, 1, " ");
2156 Moose::out << "The following directories are installable into a user-writeable directory:\n\n"
2157 << installable_inputs << '\n'
2158 << "\nTo install one or more directories of inputs, execute the binary with the \""
2159 << show_inputs_syntax[0] << "\" flag. e.g.:\n$ "
2160 << _command_line->getExecutableName() << ' ' << show_inputs_syntax[0] << ' '
2161 << dirs[0] << '\n';
2162 }
2163 return true;
2164 }
2165 return false;
2166}
virtual std::string getInstallableInputs() const
Method to retrieve the installable inputs from a given applications <app>Revision....
Definition MooseApp.C:2169

Referenced by run().

◆ solutionInvalidity() [1/2]

SolutionInvalidity & MooseApp::solutionInvalidity ( )
inline

◆ solutionInvalidity() [2/2]

const SolutionInvalidity & MooseApp::solutionInvalidity ( ) const
inline

Definition at line 183 of file MooseApp.h.

183{ return _solution_invalidity; }

◆ syntax()

Syntax & MooseApp::syntax ( )
inline

◆ testCheckpointHalfTransient()

bool MooseApp::testCheckpointHalfTransient ( ) const
inline

Whether or not this simulation should only run half its transient (useful for testing recovery)

Definition at line 521 of file MooseApp.h.

Referenced by AutoCheckpointAction::act(), TimeStepper::constrainStep(), TransientBase::execute(), CompositionDT::init(), TimeSequenceStepperBase::setupSequence(), and TransientBase::TransientBase().

◆ testReStep()

bool MooseApp::testReStep ( ) const
inline

Whether or not this simulation should fail a timestep and repeat (for testing).

Selection rules for which time step to fail in TransientBase.C constructor.

Definition at line 527 of file MooseApp.h.

527{ return _test_restep; }

Referenced by Control::Control(), Executioner::Executioner(), Executioner::Executioner(), and TransientBase::TransientBase().

◆ theWarehouse()

TheWarehouse & MooseApp::theWarehouse ( )
inline

◆ 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::addConvergence(), FEProblemBase::addDistribution(), DistributedRectilinearMeshGenerator::addElement(), DistributedRectilinearMeshGenerator::addElement(), addExecutor(), addExecutorParams(), MFEMProblem::addFESpace(), MFEMProblem::addFESpaceHierarchy(), FEProblemBase::addFunction(), MFEMProblem::addFunction(), FEProblemBase::addMeshDivision(), addMeshGenerator(), MeshGenerator::addMeshSubgenerator(), MeshGenerator::addMeshSubgenerator(), MFEMProblem::addMFEMProblemComposer(), FEProblemBase::addObject(), DistributedRectilinearMeshGenerator::addPoint(), MFEMProblem::addPostprocessor(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyRelationshipManagers(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), WebServerControl::addServerActionsInternal(), FEProblemBase::addTimeIntegrator(), MFEMProblem::addVectorPostprocessor(), SubProblem::addVectorTag(), DisplacedProblem::addVectorTag(), FEProblemBase::advanceMultiApps(), appendMeshGenerator(), AuxKernelBase::AuxKernelBase(), FEProblemBase::backupMultiApps(), BatchMeshGeneratorAction::BatchMeshGeneratorAction(), BoundaryPreservedMarker::BoundaryPreservedMarker(), DistributedRectilinearMeshGenerator::buildCube(), MooseMesh::buildHRefinementAndCoarseningMaps(), MooseMesh::buildLowerDMesh(), MooseMesh::buildPRefinementAndCoarseningMaps(), PhysicsBase::checkComponentType(), MeshGenerator::checkGetMesh(), 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(), createRecoverablePerfGraph(), MoveBoundaryNodesToCurveGenerator::curveGenerator(), MeshGenerator::declareMeshProperty(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), FEProblemBase::duplicateVariableCheck(), FEProblemBase::execMultiAppTransfers(), SteadyBase::execute(), WebServerControl::execute(), ActionWarehouse::executeActionsWithAction(), FEProblemBase::finishMultiAppStep(), FVScalarLagrangeMultiplierInterface::FVScalarLagrangeMultiplierInterface(), SubdomainPerElementGenerator::generate(), PatternedMeshGenerator::generate(), MeshGenerator::generateInternal(), MeshGenerator::generateInternalCSG(), MultiAppTransfer::getAppInfo(), TransfiniteMeshGenerator::getEdge(), ElementGenerator::getElemType(), FEProblemBase::getMaterial(), FEProblemBase::getMaterialData(), FEProblemBase::getMaterialPropertyStorageConsumers(), MaterialOutputAction::getParams(), ReporterData::getReporterInfo(), MooseServer::getSyntaxMetadata(), FEProblemBase::getTransfers(), FEProblemBase::getUOQuery(), SubProblem::getVectorTags(), DisplacedProblem::getVectorTags(), EqualValueBoundaryConstraint::ghostPrimary(), CommonOutputAction::hasConsole(), FEProblemBase::hasMultiApps(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), NEML2Action::inferMOOSEIOType(), AdvancedOutput::initAvailableLists(), FunctorPositions::initialize(), FunctorTimes::initialize(), LinearFVAdvection::initialSetup(), LinearFVAnisotropicDiffusion::initialSetup(), LinearFVDiffusion::initialSetup(), MultiAppConservativeTransfer::initialSetup(), ArrayDGDiffusion::initQpResidual(), AdvancedOutput::initShowHideLists(), RelationshipManager::isType(), FEProblemBase::logAdd(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), MooseApp(), MooseObject::MooseObject(), SubProblem::numVectorTags(), DisplacedProblem::numVectorTags(), AdvancedOutput::output(), Console::output(), ConsoleUtils::outputExecutionInformation(), Output::outputStep(), SampledOutput::outputStep(), FEProblemBase::outputStep(), MooseServer::parseDocumentForDiagnostics(), PointInUnionCheckUO::PointInUnionCheckUO(), MooseMesh::prepare(), MFEMFunctorMaterial::processLiterals(), ProjectedStatefulMaterialStorageAction::processProperty(), recursivelyCreateExecutors(), SolutionInvalidInterface::registerInvalidSolutionInternal(), FEProblemBase::restoreMultiApps(), MeshRepairGenerator::separateSubdomainsByElementType(), FEProblemBase::setCoupling(), setupOptions(), ExplicitRK2::solve(), ExplicitTVDRK2::solve(), Reporter::store(), MooseBase::typeAndName(), AuxScalarKernel::uOld(), ScalarKernelBase::uOld(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), UserObjectInterface::userObjectType(), and AdvancedOutput::wantOutput().

◆ typeAndName()

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

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

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

Definition at line 57 of file MooseBase.C.

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

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

◆ uniqueName()

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

Definition at line 69 of file MooseBase.C.

70{
71 if (!_pars.have_parameter<std::string>(unique_name_param))
72 mooseError("uniqueName(): Object does not have a unique name");
73 return MooseObjectName(_pars.get<std::string>(unique_name_param));
74}
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

◆ unusedFlagIsError()

bool MooseApp::unusedFlagIsError ( ) const
inline

Returns whether the flag for unused parameters is set to throw an error.

Definition at line 1117 of file MooseApp.h.

Referenced by MeshOnlyAction::act(), and PhysicsBase::reportPotentiallyMissedParameters().

◆ unusedFlagIsWarning()

bool MooseApp::unusedFlagIsWarning ( ) const
inline

Returns whether the flag for unused parameters is set to throw a warning only.

Definition at line 1114 of file MooseApp.h.

1114{ return _enable_unused_check == WARN_UNUSED; }

Referenced by MeshOnlyAction::act(), and PhysicsBase::reportPotentiallyMissedParameters().

◆ useEigenvalue()

bool & MooseApp::useEigenvalue ( )
inline

Returns a writable Boolean indicating whether this app will use an eigenvalue executioner.

Definition at line 399 of file MooseApp.h.

399{ return _use_eigen_value; }

Referenced by CreateProblemDefaultAction::act().

◆ useExecutor()

bool MooseApp::useExecutor ( ) const
inline

Definition at line 340 of file MooseApp.h.

340{ return _use_executor; }

◆ useMasterMesh()

bool MooseApp::useMasterMesh ( ) const
inline

Returns whether to use the parent app mesh as the mesh for this app.

Definition at line 868 of file MooseApp.h.

868{ return _use_master_mesh; }

Referenced by ExecuteMeshGenerators::act(), SetupMeshAction::act(), and SetupMeshCompleteAction::act().

◆ useNonlinear()

bool & MooseApp::useNonlinear ( )
inline

Returns a writable Boolean indicating whether this app will use a Nonlinear or Eigen System.

Definition at line 394 of file MooseApp.h.

394{ return _use_nonlinear; }

Referenced by CreateProblemAction::act(), and CreateProblemDefaultAction::act().

◆ validParams()

InputParameters MooseApp::validParams ( )
static

Definition at line 275 of file MooseApp.C.

276{
278
279 MooseApp::addAppParam(params);
281
282 params.addCommandLineParam<bool>("display_version", "-v --version", "Print application version");
283
284 params.addOptionalValuedCommandLineParam<std::string>(
285 "mesh_only",
286 "--mesh-only <optional path>",
287 "",
288 "Build and output the mesh only (Default: \"<input_file_name>_in.e\")");
289 params.addOptionalValuedCommandLineParam<std::string>(
290 "csg_only",
291 "--csg-only <optional path>",
292 "",
293 "Setup and output the input mesh in CSG format only (Default: "
294 "\"<input_file_name>_out_csg.json\")");
295 params.addCommandLineParam<bool>(
296 "show_actions",
297 "--show-actions",
298 "Shows the list of Actions as they execute, in order of execution");
299 params.setGlobalCommandLineParam("show_actions");
300 params.addCommandLineParam<bool>(
301 "show_input", "--show-input", "Shows the parsed input file before running the simulation");
302 params.setGlobalCommandLineParam("show_input");
303 params.addCommandLineParam<bool>(
304 "show_outputs", "--show-outputs", "Shows the output execution time information");
305 params.setGlobalCommandLineParam("show_outputs");
306 params.addCommandLineParam<bool>(
307 "show_controls", "--show-controls", "Shows the Control logic available and executed");
308 params.setGlobalCommandLineParam("show_controls");
309
310 params.addCommandLineParam<bool>(
311 "no_color", "--no-color", "Disable coloring of all Console outputs");
312 params.setGlobalCommandLineParam("no_color");
313
314 MooseEnum colors("auto on off", "on");
316 "color", "--color <auto,on,off=on>", colors, "Whether to use color in console output");
317 params.setGlobalCommandLineParam("color");
318
319 params.addCommandLineParam<bool>("help", "-h --help", "Displays CLI usage statement");
320 params.addCommandLineParam<bool>(
321 "minimal",
322 "--minimal",
323 "Ignore input file and build a minimal application with Transient executioner");
324
325 params.addCommandLineParam<bool>(
326 "language_server",
327 "--language-server",
328 "Starts a process to communicate with development tools using the language server protocol");
329
330 params.addCommandLineParam<bool>("dump", "--dump", "Shows a dump of available input file syntax");
331 params.addCommandLineParam<std::string>(
332 "dump_search",
333 "--dump-search <search>",
334 "Shows a dump of available input syntax matching a search");
335 params.addCommandLineParam<bool>("registry", "--registry", "Lists all known objects and actions");
336 params.addCommandLineParam<bool>(
337 "registry_hit", "--registry-hit", "Lists all known objects and actions in hit format");
338 params.addCommandLineParam<bool>(
339 "use_executor", "--executor", "Use the new Executor system instead of Executioners");
340
341 params.addCommandLineParam<bool>(
342 "show_type", "--show-type", "Return the name of the application object");
343 params.addCommandLineParam<bool>("yaml", "--yaml", "Dumps all input file syntax in YAML format");
344 params.addCommandLineParam<std::string>(
345 "yaml_search", "--yaml-search", "Dumps input file syntax matching a search in YAML format");
346 params.addCommandLineParam<bool>("json", "--json", "Dumps all input file syntax in JSON format");
347 params.addCommandLineParam<std::string>(
348 "json_search", "--json-search", "Dumps input file syntax matching a search in JSON format");
349 params.addCommandLineParam<bool>(
350 "syntax", "--syntax", "Dumps the associated Action syntax paths ONLY");
351 params.addCommandLineParam<bool>(
352 "show_docs", "--docs", "Print url/path to the documentation website");
353 params.addCommandLineParam<bool>(
354 "show_capabilities", "--show-capabilities", "Dumps the capability registry in JSON format.");
355 params.addCommandLineParam<std::string>(
356 "required_capabilities",
357 "--required-capabilities",
358 "A list of conditions that is checked against the registered capabilities (see "
359 "--show-capabilities). The executable will terminate early if the conditions are not met.");
360 params.addCommandLineParam<std::string>(
361 "testharness_capabilities",
362 "--testharness-capabilities",
363 "Path to JSON from the TestHarness that contains capabilities to be appended.");
364
365 params.addCommandLineParam<std::string>(
366 "check_capabilities",
367 "--check-capabilities",
368 "A list of conditions that is checked against the registered capabilities. Will exit based "
369 "on whether or not the capaiblities are fulfilled. Does not check dynamically loaded apps.");
370 params.addCommandLineParam<bool>("check_input",
371 "--check-input",
372 "Check the input file (i.e. requires -i <filename>) and quit");
373 params.setGlobalCommandLineParam("check_input");
374 params.addCommandLineParam<bool>(
375 "show_inputs",
376 "--show-copyable-inputs",
377 "Shows the directories able to be copied into a user-writable location");
378
379 params.addCommandLineParam<std::string>(
380 "copy_inputs",
381 "--copy-inputs <dir>",
382 "Copies installed inputs (e.g. tests, examples, etc.) to a directory <appname>_<dir>");
383 // TODO: Should this remain a bool? It can't be a regular argument because it contains
384 // values that have dashes in it, so it'll get treated as another arg
385 params.addOptionalValuedCommandLineParam<std::string>(
386 "run",
387 "--run <test harness args>",
388 "",
389 "Runs the inputs in the current directory copied to a "
390 "user-writable location by \"--copy-inputs\"");
391
392 params.addCommandLineParam<bool>(
393 "list_constructed_objects",
394 "--list-constructed-objects",
395 "List all moose object type names constructed by the master app factory");
396
397 params.addOptionalValuedCommandLineParam<std::string>(
398 "citations",
399 "--citations [file]",
400 "",
401 "List the papers (in BibTeX format) that should be cited for the framework, PETSc, and the "
402 "modules and objects used in this simulation; optionally write them to [file] instead of the "
403 "console");
404
405 params.addCommandLineParam<unsigned int>(
406 "n_threads", "--n-threads=<n>", "Runs the specified number of threads per process");
407 // This probably shouldn't be global, but the implications of removing this are currently
408 // unknown and we need to manage it with libmesh better
409 params.setGlobalCommandLineParam("n_threads");
410
411 params.addCommandLineParam<bool>("allow_unused",
412 "-w --allow-unused",
413 "Warn about unused input file options instead of erroring");
414 params.setGlobalCommandLineParam("allow_unused");
415 params.addCommandLineParam<bool>(
416 "error_unused", "-e --error-unused", "Error when encountering unused input file options");
417 params.setGlobalCommandLineParam("error_unused");
418 params.addCommandLineParam<bool>(
419 "error_deprecated", "--error-deprecated", "Turn deprecated code messages into Errors");
420 params.setGlobalCommandLineParam("error_deprecated");
421
422 params.addCommandLineParam<bool>("distributed_mesh",
423 "--distributed-mesh",
424 "Forces the use of a distributed finite element mesh");
425 // Would prefer that this parameter isn't global, but we rely on it too much
426 // in tests to be able to go back on that decision now
427 params.setGlobalCommandLineParam("distributed_mesh");
428
429 params.addCommandLineParam<std::string>(
430 "split_mesh",
431 "--split-mesh <splits>",
432 "Comma-separated list of numbers of chunks to split the mesh into");
433
434 // TODO: remove the logic now that this is global
435 params.addCommandLineParam<std::string>(
436 "split_file", "--split-file <filename>", "Name of split mesh file(s) to write/read");
437
438 params.addCommandLineParam<bool>("use_split", "--use-split", "Use split distributed mesh files");
439
440 params.addCommandLineParam<unsigned int>(
441 "refinements", "-r <num refinements>", "Specify additional initial uniform mesh refinements");
442
443 params.addOptionalValuedCommandLineParam<std::string>(
444 "recover",
445 "--recover <optional file base>",
446 "",
447 "Continue the calculation. Without <file base>, the most recent recovery file will be used");
448 params.setGlobalCommandLineParam("recover");
449 params.addCommandLineParam<bool>(
450 "force_restart",
451 "--force-restart",
452 "Forcefully load checkpoints despite possible incompatibilities");
453 params.setGlobalCommandLineParam("force_restart");
454
455 params.addCommandLineParam<bool>("suppress_header",
456 "--suppress-header",
457 false,
458 "Disables the output of the application header.");
459 params.setGlobalCommandLineParam("suppress_header");
460
461 params.addCommandLineParam<bool>(
462 "test_checkpoint_half_transient",
463 "--test-checkpoint-half-transient",
464 "Run half of a transient with checkpoints enabled; used by the TestHarness");
465 params.setGlobalCommandLineParam("test_checkpoint_half_transient");
466
467 params.addCommandLineParam<bool>("test_restep",
468 "--test-restep",
469 "Test re-running the middle timestep; used by the TestHarness");
470
471 params.addCommandLineParam<bool>(
472 "trap_fpe",
473 "--trap-fpe",
474 "Enable floating point exception handling in critical sections of code"
475#ifdef DEBUG
476 " (automatic due to debug build)"
477#endif
478 );
479 params.setGlobalCommandLineParam("trap_fpe");
480
481 params.addCommandLineParam<bool>(
482 "no_trap_fpe",
483 "--no-trap-fpe",
484 "Disable floating point exception handling in critical sections of code"
485#ifndef DEBUG
486 " (unused due to non-debug build)"
487#endif
488 );
489
490 params.setGlobalCommandLineParam("no_trap_fpe");
491
492 params.addCommandLineParam<bool>(
493 "no_gdb_backtrace", "--no-gdb-backtrace", "Disables gdb backtraces.");
494 params.setGlobalCommandLineParam("no_gdb_backtrace");
495
496 params.addCommandLineParam<bool>("error", "--error", "Turn all warnings into errors");
497 params.setGlobalCommandLineParam("error");
498
499 params.addCommandLineParam<bool>("timing",
500 "-t --timing",
501 "Enable all performance logging for timing; disables screen "
502 "output of performance logs for all Console objects");
503 params.setGlobalCommandLineParam("timing");
504 params.addCommandLineParam<bool>(
505 "no_timing", "--no-timing", "Disabled performance logging; overrides -t or --timing");
506 params.setGlobalCommandLineParam("no_timing");
507
508 params.addCommandLineParam<bool>(
509 "allow_test_objects", "--allow-test-objects", "Register test objects and syntax");
510 params.setGlobalCommandLineParam("allow_test_objects");
511
512 // Options ignored by MOOSE but picked up by libMesh, these are here so that they are displayed in
513 // the application help
514 params.addCommandLineParam<bool>(
515 "keep_cout",
516 "--keep-cout",
517 "Keep standard output from all processors when running in parallel");
518 params.setGlobalCommandLineParam("keep_cout");
519 params.addCommandLineParam<bool>(
520 "redirect_stdout",
521 "--redirect-stdout",
522 "Keep standard output from all processors when running in parallel");
523 params.setGlobalCommandLineParam("redirect_stdout");
524
525 params.addCommandLineParam<std::string>(
526 "timpi_sync",
527 "--timpi-sync <type=nbx>",
528 "nbx",
529 "Changes the sync type used in spare parallel communitations within TIMPI");
530 params.setGlobalCommandLineParam("timpi_sync");
531
532 // Options for debugging
533 params.addCommandLineParam<std::string>("start_in_debugger",
534 "--start-in-debugger <debugger>",
535 "Start the application and attach a debugger; this will "
536 "launch xterm windows using <debugger>");
537
538 params.addCommandLineParam<unsigned int>(
539 "stop_for_debugger",
540 "--stop-for-debugger <seconds>",
541 "Pauses the application during startup for <seconds> to allow for connection of debuggers");
542
543 params.addCommandLineParam<bool>(
544 "perf_graph_live_all", "--perf-graph-live-all", "Forces printing of ALL progress messages");
545 params.setGlobalCommandLineParam("perf_graph_live_all");
546
547 params.addCommandLineParam<bool>(
548 "disable_perf_graph_live", "--disable-perf-graph-live", "Disables PerfGraph live printing");
549 params.setGlobalCommandLineParam("disable_perf_graph_live");
550
551 params.addParam<bool>(
552 "automatic_automatic_scaling", false, "Whether to turn on automatic scaling by default");
553
554 const MooseEnum compute_device_type("cpu cuda mps hip ceed-cpu ceed-cuda ceed-hip xpu", "cpu");
556 "compute_device",
557 "--compute-device",
558 compute_device_type,
559 "The device type we want to run accelerated (libtorch, MFEM) computations on.");
560
561#ifdef HAVE_GPERFTOOLS
562 params.addCommandLineParam<std::string>(
563 "gperf_profiler_on",
564 "--gperf-profiler-on <ranks>",
565 "To generate profiling report only on comma-separated list of MPI ranks");
566#endif
567
568 params.addCommandLineParam<bool>(
569 "show_data_params",
570 "--show-data-params",
571 false,
572 "Show found paths for all DataFileName parameters in the header");
573 params.addCommandLineParam<bool>("show_data_paths",
574 "--show-data-paths",
575 false,
576 "Show registered data paths for searching in the header");
577
578 params.addPrivateParam<std::shared_ptr<CommandLine>>("_command_line");
579 params.addPrivateParam<std::shared_ptr<Parallel::Communicator>>("_comm");
580 params.addPrivateParam<unsigned int>("_multiapp_level");
581 params.addPrivateParam<unsigned int>("_multiapp_number");
582 params.addPrivateParam<bool>("_use_master_mesh", false);
583 params.addPrivateParam<const MooseMesh *>("_master_mesh");
584 params.addPrivateParam<const MooseMesh *>("_master_displaced_mesh");
585 params.addPrivateParam<std::unique_ptr<Backup> *>("_initial_backup", nullptr);
586 params.addPrivateParam<std::shared_ptr<Parser>>("_parser");
587
588 params.addParam<bool>(
589 "use_legacy_material_output",
590 true,
591 "Set false to allow material properties to be output on INITIAL, not just TIMESTEP_END.");
592 params.addParam<bool>(
593 "use_legacy_initial_residual_evaluation_behavior",
594 true,
595 "The legacy behavior performs an often times redundant residual evaluation before the "
596 "solution modifying objects are executed prior to the initial (0th nonlinear iteration) "
597 "residual evaluation. The new behavior skips that redundant residual evaluation unless the "
598 "parameter Executioner/use_pre_SMO_residual is set to true.");
599
600 params.addParam<bool>(
602 false,
603 "Set true to enable data-driven mesh generation, which is an experimental feature");
604
605 params.addCommandLineParam<bool>(
606 "parse_neml2_only",
607 "--parse-neml2-only",
608 "Executes the [NEML2] block to parse the input file and terminate.");
609
610 MooseApp::addAppParam(params);
611
612 params.registerBase("Application");
613
614 return params;
615}
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 addOptionalValuedCommandLineParam(const std::string &name, const std::string &syntax, const T &value, const std::string &doc_string)
Add a command line parameter with an optional value.
void addPrivateParam(const std::string &name, const T &value)
These method add a parameter to the InputParameters object which can be retrieved like any other para...
void registerBase(const std::string &value)
This method must be called from every base "Moose System" to create linkage with the Action System.
void setGlobalCommandLineParam(const std::string &name)
Sets the command line parameter with name as global.
static const std::string allow_data_driven_param
The name of the boolean parameter on the MooseApp that will enable data driven generation.
static void addAppParam(InputParameters &params)
Definition MooseApp.C:261
static void addInputParam(InputParameters &params)
Definition MooseApp.C:268
static InputParameters validParams()
Definition MooseBase.C:28

◆ writeRestartableMetaData() [1/2]

std::vector< std::filesystem::path > MooseApp::writeRestartableMetaData ( const RestartableDataMapName &  name,
const std::filesystem::path &  folder_base 
)

Writes the restartable meta data for name with a folder base of folder_base.

Returns
The files that were written

Definition at line 2518 of file MooseApp.C.

2520{
2521 if (processor_id() != 0)
2522 mooseError("MooseApp::writeRestartableMetaData(): Should only run on processor 0");
2523
2524 const auto & map_name = getRestartableDataMapName(name);
2525 const auto meta_data_folder_base = metaDataFolderBase(folder_base, map_name);
2526
2528 return writer.write(meta_data_folder_base);
2529}

Referenced by MeshOnlyAction::act(), SplitMeshAction::act(), Checkpoint::output(), and writeRestartableMetaData().

◆ writeRestartableMetaData() [2/2]

std::vector< std::filesystem::path > MooseApp::writeRestartableMetaData ( const std::filesystem::path &  folder_base)

Writes all available restartable meta data with a file base of file_base.

Returns
The files that were written

Definition at line 2532 of file MooseApp.C.

2533{
2534 std::vector<std::filesystem::path> paths;
2535
2536 if (processor_id() == 0)
2537 for (const auto & name_map_pair : _restartable_meta_data)
2538 {
2539 const auto map_paths = writeRestartableMetaData(name_map_pair.first, folder_base);
2540 paths.insert(paths.end(), map_paths.begin(), map_paths.end());
2541 }
2542
2543 return paths;
2544}
std::vector< std::filesystem::path > writeRestartableMetaData(const RestartableDataMapName &name, const std::filesystem::path &folder_base)
Writes the restartable meta data for name with a folder base of folder_base.
Definition MooseApp.C:2518

Friends And Related Symbol Documentation

◆ FEProblemBase

friend class FEProblemBase
friend

Definition at line 1734 of file MooseApp.h.

◆ Restartable

friend class Restartable
friend

Definition at line 1735 of file MooseApp.h.

◆ SubProblem

friend class SubProblem
friend

Definition at line 1736 of file MooseApp.h.

Member Data Documentation

◆ _action_factory

ActionFactory MooseApp::_action_factory
protected

The Factory responsible for building Actions.

Definition at line 1312 of file MooseApp.h.

Referenced by createMinimalApp(), getActionFactory(), and MooseApp().

◆ _action_warehouse

ActionWarehouse MooseApp::_action_warehouse
protected

◆ _app

MooseApp& MooseBase::_app
protectedinherited

The MOOSE application this is associated with.

Definition at line 375 of file MooseBase.h.

Referenced by MooseBase::callMooseError(), MooseBase::connectControllableParams(), and MooseBase::getMooseApp().

◆ _attached_relationship_managers

std::map<Moose::RelationshipManagerType, std::set<const RelationshipManager *> > MooseApp::_attached_relationship_managers
protected

The relationship managers that have been attached (type -> RMs)

Definition at line 1445 of file MooseApp.h.

Referenced by attachRelationshipManagers(), and attachRelationshipManagers().

◆ _automatic_automatic_scaling

const bool MooseApp::_automatic_automatic_scaling
private

Whether to turn on automatic scaling by default.

Definition at line 1699 of file MooseApp.h.

Referenced by defaultAutomaticScaling().

◆ _builder

Moose::Builder MooseApp::_builder
protected

Builder for building app related parser tree.

Definition at line 1330 of file MooseApp.h.

Referenced by builder(), errorCheck(), getFileName(), and setupOptions().

◆ _chain_control_system

ChainControlDataSystem MooseApp::_chain_control_system
private

The system that manages the ChainControls.

Definition at line 1682 of file MooseApp.h.

Referenced by getChainControlDataSystem().

◆ _check_input

const bool MooseApp::_check_input
protected

true if we want to just check the input file

Definition at line 1438 of file MooseApp.h.

Referenced by checkInput(), errorCheck(), MooseApp(), run(), and setupOptions().

◆ _comm

const std::shared_ptr<libMesh::Parallel::Communicator> MooseApp::_comm
protected

The MPI communicator this App is going to use.

Definition at line 1281 of file MooseApp.h.

Referenced by errorCheck(), getCommunicator(), MooseApp(), processor_id(), and requestCitations().

◆ _command_line

const std::shared_ptr<CommandLine> MooseApp::_command_line
protected

The CommandLine object.

Definition at line 1324 of file MooseApp.h.

Referenced by commandLine(), copyInputs(), executeExecutioner(), MooseApp(), setupOptions(), and showInputs().

◆ _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::checkNonConformingFaces(), MeshDiagnosticsGenerator::checkNonMatchingEdges(), MeshDiagnosticsGenerator::checkNonPlanarSides(), MeshDiagnosticsGenerator::checkPolygons(), FEProblemBase::checkProblemIntegrity(), ReferenceResidualConvergence::checkResidualConvergence(), MeshDiagnosticsGenerator::checkSidesetsOrientation(), MeshDiagnosticsGenerator::checkWatertightNodesets(), MeshDiagnosticsGenerator::checkWatertightSidesets(), CoarsenSurfaceMeshAlongSidesetGenerator::coarsenAlongSidesets(), IterationAdaptiveDT::computeAdaptiveDT(), TransientBase::computeConstrainedDT(), DefaultMultiAppFixedPointConvergence::computeCustomConvergencePostprocessor(), NonlinearSystemBase::computeDamping(), FixedPointIterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInitialDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeLinearSystemTags(), LinearSystem::computeLinearSystemTags(), NonlinearSystemBase::computeScaling(), Problem::console(), TimeStepper::constrainStep(), IterationAdaptiveDT::constrainStep(), MultiApp::createApp(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), Eigenvalue::execute(), SteadyBase::execute(), MFEMSteady::execute(), MessageFromInput::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), MeshGeneratorSystem::executeMeshGenerators(), SidesetAroundSubdomainUpdater::finalize(), ElementQualityChecker::finalize(), FEProblemBase::finishMultiAppStep(), MeshRepairGenerator::fixOverlappingNodes(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), CoarsenBlockGenerator::generate(), CoarsenSurfaceMeshAlongSidesetGenerator::generate(), OrientSurfaceMeshGenerator::generate(), PolyLineMeshFollowingNodeSetGenerator::generate(), MeshGenerator::generateInternal(), VariableCondensationPreconditioner::getDofToCondense(), InversePowerMethod::init(), NonlinearEigen::init(), FEProblemBase::initialAdaptMesh(), 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(), DefaultMultiAppFixedPointConvergence::preLoop(), 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(), 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().

◆ _cpu_profiling

bool MooseApp::_cpu_profiling = false
private

CPU profiling.

Definition at line 1702 of file MooseApp.h.

Referenced by MooseApp().

◆ _distributed_mesh_on_command_line

const bool MooseApp::_distributed_mesh_on_command_line
protected

This variable indicates that DistributedMesh should be used for the libMesh mesh underlying MooseMesh.

Definition at line 1406 of file MooseApp.h.

Referenced by getDistributedMeshOnCommandLine(), and setupOptions().

◆ _early_exit_param

std::string MooseApp::_early_exit_param
protected

Indicates if simulation is ready to exit, and keeps track of which param caused it to exit.

Definition at line 1394 of file MooseApp.h.

Referenced by errorCheck(), run(), runInputFile(), and setupOptions().

◆ _enable_unused_check

enum MooseApp::UNUSED_CHECK MooseApp::_enable_unused_check
protected

◆ _error_overridden

bool MooseApp::_error_overridden
protected

Indicates whether warnings or errors are displayed when overridden parameters are detected.

Definition at line 1392 of file MooseApp.h.

Referenced by setErrorOverridden().

◆ _ex_reader

std::shared_ptr<libMesh::ExodusII_IO> MooseApp::_ex_reader
protected

The Exodus reader when _initial_from_file is set to true.

Definition at line 1403 of file MooseApp.h.

Referenced by getExReaderForRestart(), and setExReaderForRestart().

◆ _execute_flags

const ExecFlagEnum MooseApp::_execute_flags
private

Execution flags for this App.

Note: These are copied on purpose instead of maintaining a reference to the ExecFlagRegistry registry. In the Multiapp case, the registry may be augmented, changing the flags "known" to the application in the middle of executing the setup. This causes issues with the application having to process flags that aren't specifically registered.

Definition at line 1693 of file MooseApp.h.

Referenced by getExecuteOnEnum().

◆ _executioner

std::shared_ptr<Executioner> MooseApp::_executioner
protected

Pointer to the executioner of this run (typically build by actions)

Definition at line 1351 of file MooseApp.h.

Referenced by attachRelationshipManagers(), collectCitations(), errorCheck(), executeExecutioner(), feProblem(), getExecutioner(), removeRelationshipManager(), setExecutioner(), and setOutputPosition().

◆ _executor

std::shared_ptr<Executor> MooseApp::_executor
protected

◆ _executor_params

std::unordered_map<std::string, std::pair<std::string, std::unique_ptr<InputParameters> > > MooseApp::_executor_params
protected

Used in building the Executors Maps the name of the Executor block to the <type, params>

Definition at line 1362 of file MooseApp.h.

Referenced by addExecutorParams(), createExecutors(), and recursivelyCreateExecutors().

◆ _executors

std::map<std::string, std::shared_ptr<Executor> > MooseApp::_executors
protected

Pointers to all of the Executors for this run.

Definition at line 1357 of file MooseApp.h.

Referenced by addExecutor(), createExecutors(), getExecutor(), and recursivelyCreateExecutors().

◆ _exit_code

int MooseApp::_exit_code
protected

The exit code.

Definition at line 1397 of file MooseApp.h.

Referenced by exitCode(), setExitCode(), and setupOptions().

◆ _factory

Factory MooseApp::_factory
protected

◆ _file_base_set_by_user

bool MooseApp::_file_base_set_by_user
protected

Whether or not file base is set through input or setOutputFileBase by MultiApp.

Definition at line 1287 of file MooseApp.h.

Referenced by getCheckpointDirectories(), getOutputFileBase(), setOutputFileBase(), and setupOptions().

◆ _fixed_point_config

FixedPointConfig MooseApp::_fixed_point_config
protected

Multiapp-related fixed point algorithm configuration details primarily intended to be passed to and used by the executioner/executor system.

Definition at line 1366 of file MooseApp.h.

Referenced by fixedPointConfig().

◆ _force_restart

const bool MooseApp::_force_restart
protected

Whether or not we are forcefully attempting to load checkpoints (–force-restart)

Definition at line 1421 of file MooseApp.h.

Referenced by forceRestart().

◆ _global_time_offset

Real MooseApp::_global_time_offset
protected

Offset of the local App time to the "global" problem time.

Definition at line 1302 of file MooseApp.h.

Referenced by getGlobalTimeOffset(), and setGlobalTimeOffset().

◆ _has_kokkos_gpus

bool MooseApp::_has_kokkos_gpus = false
private

Flag whether every process has an associated Kokkos GPU.

Definition at line 1752 of file MooseApp.h.

Referenced by isKokkosAvailable().

◆ _heap_profiling

bool MooseApp::_heap_profiling = false
private

Memory profiling.

Definition at line 1705 of file MooseApp.h.

Referenced by MooseApp().

◆ _initial_backup

std::unique_ptr<Backup>* const MooseApp::_initial_backup
private

The backup for use in initial setup; this will get set from the _initial_backup input parameter that typically gets set from a MultiApp that has a backup This is a pointer to a pointer because at the time of construction of the app, the backup will not be filled yet.

Definition at line 1720 of file MooseApp.h.

Referenced by hasInitialBackup(), restoreFromInitialBackup(), and restoreMeshFromInitialBackup().

◆ _initial_from_file

bool MooseApp::_initial_from_file
protected

This variable indicates when a request has been made to restart from an Exodus file.

Definition at line 1400 of file MooseApp.h.

Referenced by getExodusFileRestart(), and setExodusFileRestart().

◆ _input_parameter_warehouse

std::unique_ptr<InputParameterWarehouse> MooseApp::_input_parameter_warehouse
protected

Input parameter storage structure; unique_ptr so we can control its destruction order.

Definition at line 1309 of file MooseApp.h.

Referenced by getInputParameterWarehouse().

◆ _interface_registry

std::map<std::type_index, std::unique_ptr<InterfaceRegistryObjectsBase> > MooseApp::_interface_registry
private

Registration for interface objects.

Definition at line 1714 of file MooseApp.h.

Referenced by getInterfaceObjects(), and registerInterfaceObject().

◆ _lib_handles

std::unordered_map<std::string, DynamicLibraryInfo> MooseApp::_lib_handles
protected

The library archive (name only), registration method and the handle to the method.

Definition at line 1462 of file MooseApp.h.

Referenced by getLoadedLibraryPaths(), and loadLibraryAndDependencies().

◆ _libtorch_device

const torch::DeviceType MooseApp::_libtorch_device
private

The libtorch device this app is using (converted from compute_device)

Definition at line 1730 of file MooseApp.h.

Referenced by getLibtorchDevice().

◆ _master_displaced_mesh

const MooseMesh* const MooseApp::_master_displaced_mesh
private

The displaced mesh from master app.

Definition at line 1676 of file MooseApp.h.

Referenced by masterDisplacedMesh(), and MooseApp().

◆ _master_mesh

const MooseMesh* const MooseApp::_master_mesh
private

The mesh from master app.

Definition at line 1673 of file MooseApp.h.

Referenced by masterMesh(), and MooseApp().

◆ _mesh_changed_for_backup

bool MooseApp::_mesh_changed_for_backup = false
private

Whether mesh topology has changed and should be included in Backup objects.

Definition at line 1726 of file MooseApp.h.

Referenced by markMeshChangedForBackup(), and meshChangedForBackup().

◆ _mesh_generator_system

MeshGeneratorSystem MooseApp::_mesh_generator_system
private

◆ _multiapp_level

const unsigned int MooseApp::_multiapp_level
private

Level of multiapp, the master is level 0. This used by the Console to indent output.

Definition at line 1664 of file MooseApp.h.

Referenced by getOutputFileBase(), isUltimateMaster(), and multiAppLevel().

◆ _multiapp_number

const unsigned int MooseApp::_multiapp_number
private

Numbering in all the sub-apps on the same level.

Definition at line 1667 of file MooseApp.h.

Referenced by multiAppNumber().

◆ _name

const std::string& MooseBase::_name
protectedinherited

The name of this class.

Definition at line 381 of file MooseBase.h.

Referenced by AddFieldSplitAction::act(), AddBCAction::act(), AddConstraintAction::act(), AddControlAction::act(), AddConvergenceAction::act(), AddCorrectorAction::act(), AddDamperAction::act(), AddDGKernelAction::act(), AddDiracKernelAction::act(), AddDistributionAction::act(), AddFunctionAction::act(), AddFunctorMaterialAction::act(), AddFVBCAction::act(), AddFVGradientMethodAction::act(), AddFVInitialConditionAction::act(), AddFVInterfaceKernelAction::act(), AddFVInterpolationMethodAction::act(), AddFVKernelAction::act(), AddHDGKernelAction::act(), AddIndicatorAction::act(), AddInitialConditionAction::act(), AddInterfaceKernelAction::act(), AddKernelAction::act(), AddLinearFVBCAction::act(), AddLinearFVKernelAction::act(), AddMarkerAction::act(), AddMaterialAction::act(), AddMeshDivisionAction::act(), AddMeshGeneratorAction::act(), AddMeshModifiersAction::act(), AddMultiAppAction::act(), AddNodalKernelAction::act(), AddOutputAction::act(), AddPositionsAction::act(), AddPostprocessorAction::act(), AddReporterAction::act(), AddSamplerAction::act(), AddScalarKernelAction::act(), AddTimesAction::act(), AddTimeStepperAction::act(), AddTransferAction::act(), AddUserObjectAction::act(), AddVectorPostprocessorAction::act(), PartitionerAction::act(), ReadExecutorParamsAction::act(), SetupPreconditionerAction::act(), SetupTimeIntegratorAction::act(), AddMFEMComplexBCComponentAction::act(), AddMFEMComplexKernelComponentAction::act(), AddMFEMFESpaceAction::act(), AddMFEMFESpaceHierarchyAction::act(), AddMFEMProblemComposerAction::act(), 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().

◆ _null_executor

std::shared_ptr<NullExecutor> MooseApp::_null_executor
protected

Used to return an executor that does nothing.

Definition at line 1373 of file MooseApp.h.

Referenced by createExecutors(), getExecutor(), and getNullExecutor().

◆ _output_buffer_cache

std::streambuf* MooseApp::_output_buffer_cache
private

Cache output buffer so the language server can turn it off then back on.

Definition at line 1696 of file MooseApp.h.

Referenced by MooseApp(), and setupOptions().

◆ _output_file_base

std::string MooseApp::_output_file_base
protected

The output file basename.

Definition at line 1284 of file MooseApp.h.

Referenced by getOutputFileBase(), setOutputFileBase(), and setupOptions().

◆ _output_file_numbers

std::map<std::string, unsigned int> MooseApp::_output_file_numbers
protected

Map of outputer name and file number (used by MultiApps to propagate file numbers down through the multiapps)

Definition at line 1435 of file MooseApp.h.

Referenced by getOutputFileNumbers(), and setOutputFileNumbers().

◆ _output_position

Point MooseApp::_output_position
protected

The output position.

Definition at line 1293 of file MooseApp.h.

Referenced by getOutputPosition(), and setOutputPosition().

◆ _output_position_set

bool MooseApp::_output_position_set
protected

Whether or not an output position has been set for this app.

Definition at line 1290 of file MooseApp.h.

Referenced by hasOutputPosition(), and setOutputPosition().

◆ _output_warehouse

OutputWarehouse MooseApp::_output_warehouse
protected

OutputWarehouse object for this App.

Definition at line 1318 of file MooseApp.h.

Referenced by getOutputWarehouse(), getOutputWarehouse(), setOutputFileBase(), and setOutputPosition().

◆ _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(), 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(), MooseApp(), MooseBase::MooseBase(), MultiSystemSolveObject::MultiSystemSolveObject(), outputMachineReadableData(), MooseBase::paramError(), MooseBase::parameters(), MooseBase::paramInfo(), MooseBase::paramWarning(), MooseMesh::prepare(), MooseBase::queryParam(), MooseMesh::setCoordSystem(), MooseMesh::setPartitionerHelper(), SetupMeshAction::setupMesh(), TransientBase::setupTimeIntegrator(), showInputs(), and MooseBase::uniqueName().

◆ _parser

const std::shared_ptr<Parser> MooseApp::_parser
protected

Parser for parsing the input file (owns the root hit node)

Definition at line 1321 of file MooseApp.h.

Referenced by getInputFileNames(), getLastInputFileName(), MooseApp(), parser(), and run().

◆ _perf_graph

PerfGraph& MooseApp::_perf_graph
protected

The PerfGraph object for this application (recoverable)

Definition at line 1342 of file MooseApp.h.

Referenced by MooseApp(), perfGraph(), and setupOptions().

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

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

◆ _rank_map

const RankMap MooseApp::_rank_map
protected

The RankMap is a useful object for determining how the processes are laid out on the physical hardware.

Definition at line 1348 of file MooseApp.h.

Referenced by rankMap().

◆ _rd_reader

RestartableDataReader MooseApp::_rd_reader
private

Definition at line 1684 of file MooseApp.h.

Referenced by finalizeRestore(), restore(), restore(), and restoreDataIfAvailable().

◆ _ready_to_exit

bool MooseApp::_ready_to_exit
protected

Definition at line 1395 of file MooseApp.h.

Referenced by executeExecutioner(), run(), runInputFile(), and setupOptions().

◆ _recover

bool MooseApp::_recover
protected

Whether or not this is a recovery run.

Definition at line 1409 of file MooseApp.h.

Referenced by isRecovering(), setRecover(), and setupOptions().

◆ _recoverable_data_names

DataNames MooseApp::_recoverable_data_names
protected

Data names that will only be read from the restart file during RECOVERY.

e.g. these names are excluded during restart.

Definition at line 1339 of file MooseApp.h.

Referenced by getRecoverableData(), and registerRestartableNameWithFilter().

◆ _relationship_managers

std::set<std::shared_ptr<RelationshipManager> > MooseApp::_relationship_managers
protected

◆ _restart

bool MooseApp::_restart
protected

Whether or not this is a restart run.

Definition at line 1412 of file MooseApp.h.

Referenced by isRestarting(), and setRestart().

◆ _restart_recover_base

std::string MooseApp::_restart_recover_base
protected

The base name to restart/recover from. If blank then we will find the newest checkpoint file.

Definition at line 1427 of file MooseApp.h.

Referenced by getRecoverFileBase(), getRestartRecoverFileBase(), hasRecoverFileBase(), hasRestartRecoverFileBase(), setRestartRecoverFileBase(), and setupOptions().

◆ _restartable_data

std::vector<RestartableDataMap> MooseApp::_restartable_data
protected

Where the restartable data is held (indexed on tid)

Definition at line 1333 of file MooseApp.h.

Referenced by backup(), backup(), getRestartableData(), getRestartableData(), and registerRestartableData().

◆ _restartable_meta_data

std::unordered_map<RestartableDataMapName, std::pair<RestartableDataMap, std::string> > MooseApp::_restartable_meta_data
private

◆ _restored_initial_backup_mesh

bool MooseApp::_restored_initial_backup_mesh = false
private

Whether mesh topology has been restored from the initial Backup object.

Definition at line 1723 of file MooseApp.h.

Referenced by restore(), restoredInitialBackupMesh(), and restoreMeshFromInitialBackup().

◆ _solution_invalidity

SolutionInvalidity& MooseApp::_solution_invalidity
protected

The SolutionInvalidity object for this application.

Definition at line 1345 of file MooseApp.h.

Referenced by solutionInvalidity(), and solutionInvalidity().

◆ _split_mesh

bool MooseApp::_split_mesh
protected

Whether or not we are performing a split mesh operation (–split-mesh)

Definition at line 1415 of file MooseApp.h.

Referenced by isSplitMesh(), and setupOptions().

◆ _start_time

Real MooseApp::_start_time
protected

The time at which to start the simulation.

Definition at line 1299 of file MooseApp.h.

Referenced by getStartTime(), and setStartTime().

◆ _start_time_set

bool MooseApp::_start_time_set
protected

Whether or not an start time has been set.

Definition at line 1296 of file MooseApp.h.

Referenced by hasStartTime(), and setStartTime().

◆ _syntax

Syntax MooseApp::_syntax
protected

Syntax of the input file.

Definition at line 1305 of file MooseApp.h.

Referenced by MooseApp(), setupOptions(), and syntax().

◆ _sys_info

SystemInfo MooseApp::_sys_info
protected

System Information.

Definition at line 1327 of file MooseApp.h.

Referenced by getSystemInfo().

◆ _template_to_clones

std::map<const RelationshipManager *, std::map<const MeshBase *, std::unique_ptr<RelationshipManager> > > MooseApp::_template_to_clones
private

Map from a template relationship manager to a map in which the key-value pairs represent the MeshBase object and the clone of the template relationship manager, e.g.

the top-level map key

Definition at line 1711 of file MooseApp.h.

Referenced by createRMFromTemplateAndInit(), getRMClone(), and hasRMClone().

◆ _test_checkpoint_half_transient

const bool MooseApp::_test_checkpoint_half_transient
protected

Whether or not this simulation should only run half its transient (useful for testing recovery)

Definition at line 1430 of file MooseApp.h.

Referenced by MooseApp(), and testCheckpointHalfTransient().

◆ _test_restep

const bool MooseApp::_test_restep
protected

Whether or not this simulation should fail its middle timestep and repeat (for testing)

Definition at line 1432 of file MooseApp.h.

Referenced by MooseApp(), and testReStep().

◆ _the_warehouse

std::unique_ptr<TheWarehouse> MooseApp::_the_warehouse
private

The combined warehouse for storing any MooseObject based object.

Definition at line 1661 of file MooseApp.h.

Referenced by MooseApp(), and theWarehouse().

◆ _trap_fpe

bool MooseApp::_trap_fpe
protected

Whether or not FPE trapping should be turned on.

Definition at line 1424 of file MooseApp.h.

Referenced by getFPTrapFlag(), and setupOptions().

◆ _type

const std::string MooseApp::_type
protected

The string representation of the type of this object as registered (see registerApp(AppName))

Definition at line 1278 of file MooseApp.h.

Referenced by MooseApp().

◆ _undisp_to_disp_rms

std::unordered_map<RelationshipManager *, std::shared_ptr<libMesh::GhostingFunctor> > MooseApp::_undisp_to_disp_rms
protected

A map from undisplaced relationship managers to their displaced clone (stored as the base GhostingFunctor).

Anytime we clone in attachRelationshipManagers we create a map entry from the cloned undisplaced relationship manager to its displaced clone counterpart. We leverage this map when removing relationship managers/ghosting functors

Definition at line 1452 of file MooseApp.h.

◆ _use_eigen_value

bool MooseApp::_use_eigen_value
protected

Boolean to indicate whether to use an eigenvalue executioner.

Definition at line 1379 of file MooseApp.h.

Referenced by useEigenvalue().

◆ _use_executor

const bool MooseApp::_use_executor
protected

Indicates whether we are operating in the new/experimental executor mode instead of using the legacy executioner system.

Definition at line 1370 of file MooseApp.h.

Referenced by executeExecutioner(), and useExecutor().

◆ _use_master_mesh

const bool MooseApp::_use_master_mesh
private

Whether to use the parent app mesh for this app.

Definition at line 1670 of file MooseApp.h.

Referenced by useMasterMesh().

◆ _use_nonlinear

bool MooseApp::_use_nonlinear
protected

Boolean to indicate whether to use a Nonlinear or EigenSystem (inspected by actions)

Definition at line 1376 of file MooseApp.h.

Referenced by useNonlinear().

◆ _use_split

const bool MooseApp::_use_split
protected

Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)

Definition at line 1418 of file MooseApp.h.

Referenced by setupOptions().

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

◆ MESH_META_DATA

const RestartableDataMapName MooseApp::MESH_META_DATA = "MeshMetaData"
static

◆ MESH_META_DATA_SUFFIX

const RestartableDataMapName MooseApp::MESH_META_DATA_SUFFIX = "mesh"
static

Definition at line 134 of file MooseApp.h.

Referenced by MooseApp().

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

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

◆ type_param

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

◆ unique_name_param

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

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

Definition at line 57 of file MooseBase.h.

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


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