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

A MultiApp represents one or more MOOSE applications that are running simultaneously. More...

#include <MultiApp.h>

Inheritance diagram for MultiApp:
[legend]

Public Types

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

Public Member Functions

 MultiApp (const InputParameters &parameters)
 
virtual void preExecute ()
 
virtual void finalize ()
 Method called towards the end of the simulation to execute on final.
 
virtual void postExecute ()
 Method called at the end of the simulation (after finalize).
 
void setupPositions ()
 Called just after construction to allow derived classes to set _positions and create sub-apps accordingly.
 
virtual void createLocalApp (const unsigned int i)
 Create the i-th local app.
 
virtual void initialSetup () override
 Method to be called in main-app initial setup for create sub-apps if using positions is false.
 
virtual void preTransfer (Real dt, Real target_time)
 Gets called just before transfers are done to the MultiApp (Which is just before the MultiApp is solved).
 
virtual bool solveStep (Real dt, Real target_time, bool auto_advance=true)=0
 Re-solve all of the Apps.
 
virtual void incrementTStep (Real)
 Advances the multi-apps time step which is important for dt selection.
 
virtual void finishStep (bool=false)
 Calls multi-apps executioners' endStep and postStep methods which creates output and advances time (not the time step; see incrementTStep()) among other things.
 
virtual void backup ()
 Save off the state of every Sub App.
 
virtual void restore (bool force=true)
 Restore the state of every Sub App.
 
bool needsRestoration ()
 Whether or not this MultiApp should be restored at the beginning of each Picard iteration.
 
virtual ExecutionergetExecutioner (unsigned int app)
 
virtual libMesh::BoundingBox getBoundingBox (unsigned int app, bool displaced_mesh, const MultiAppCoordTransform *coord_transform=nullptr)
 Get the BoundingBox for the mesh associated with app The bounding box will be shifted to be in the correct position within the master domain.
 
FEProblemBaseproblemBase ()
 Get the FEProblemBase this MultiApp is part of.
 
FEProblemBaseappProblemBase (unsigned int app)
 Get the FEProblemBase for the global app desired.
 
FEProblemappProblem (unsigned int app)
 Get the FEProblem for the global app is part of.
 
const UserObjectappUserObjectBase (unsigned int app, const std::string &name)
 Get a UserObject base for a specific global app.
 
Real appPostprocessorValue (unsigned int app, const std::string &name)
 Get a Postprocessor value for a specified global app.
 
virtual libMesh::NumericVector< libMesh::Number > & appTransferVector (unsigned int app, std::string var_name)
 Get the vector to transfer to for this MultiApp.
 
unsigned int numGlobalApps () const
 
unsigned int numLocalApps ()
 
unsigned int firstLocalApp ()
 
bool isFirstLocalRank () const
 
bool hasApp ()
 Whether or not this MultiApp has an app on this processor.
 
bool hasLocalApp (unsigned int global_app) const
 Whether or not the given global app number is on this processor.
 
MooseApplocalApp (unsigned int local_app)
 Get the local MooseApp object.
 
const Point & position (unsigned int app) const
 The physical position of a global App number.
 
virtual void resetApp (unsigned int global_app, Real time=0.0)
 "Reset" the App corresponding to the global App number passed in.
 
virtual void moveApp (unsigned int global_app, Point p)
 Move the global_app to Point p.
 
virtual void parentOutputPositionChanged ()
 For apps outputting in position we need to change their output positions if their parent app moves.
 
MPI_Comm & comm ()
 Get the MPI communicator this MultiApp is operating on.
 
bool isRootProcessor ()
 Whether or not this processor is the "root" processor for the sub communicator.
 
bool usingPositions () const
 Whether or not this MultiApp is using positions or its own way for constructing sub-apps.
 
bool runningInPosition () const
 Whether or not this MultiApp is being run in position, eg with the coordinate transform already applied.
 
void addAssociatedTransfer (MultiAppTransfer &transfer)
 Add a transfer that is associated with this multiapp.
 
void setAppOutputFileBase ()
 Sets all the app's output file bases.
 
virtual bool enabled () const
 Return the enabled status of the object.
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 Get another shared pointer to this object that has the same ownership group.
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 Get whether this object is a Kokkos functor The parameter MooseBase::kokkos_object_param is set by the Kokkos base classes.
 
MooseAppgetMooseApp () const
 Get the MooseApp this class is associated with.
 
const std::string & type () const
 Get the type of this class.
 
const std::string & name () const
 Get the name of the class.
 
std::string typeAndName () const
 Get the class's combined type and name; useful in error handling.
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 Get the parameters of the object.
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object.
 
template<typename T1 , typename T2 >
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 Retrieve two parameters and provide pair of parameters for the object.
 
template<typename T >
const T * queryParam (const std::string &name) const
 Query a parameter for the object.
 
template<typename T >
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 Retrieve a renamed parameter for the object.
 
template<typename T >
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 Verifies that the requested parameter exists and is not NULL and returns it to the caller.
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid.
 
bool isParamSetByUser (const std::string &name) const
 Test if the supplied parameter is set by a user, as opposed to not set or set to default.
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 Connect controllable parameter of this action with the controllable parameters of the objects added by this action.
 
template<typename... Args>
void paramError (const std::string &param, Args... args) const
 Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args) const
 Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args) const
 
template<typename... Args>
void paramInfo (const std::string &param, Args... args) const
 Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 Deprecated message prefix; the error type is no longer used.
 
template<typename... Args>
void mooseError (Args &&... args) const
 Emits an error prefixed with object name and type and optionally a file path to the top-level block parameter if available.
 
template<typename... Args>
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
template<typename... Args>
void mooseErrorNonPrefixed (Args &&... args) const
 Emits an error without the prefixing included in mooseError().
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 Emits a warning prefixed with object name and type.
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 Emits a warning without the prefixing included in mooseWarning().
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 Emits a deprecation warning prefixed with the object name and type, and a stack trace.
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseDeprecatedNoTrace (Args &&... args) const
 Emits a deprecation warning prefixed with the object name and type, and no stack trace.
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 External method for calling moose error with added object context.
 
const Parallel::Communicatorcomm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
std::string getDataFileName (const std::string &param) const
 Deprecated method.
 
std::string getDataFileNameByName (const std::string &relative_path) const
 Deprecated method.
 
std::string getDataFilePath (const std::string &relative_path) const
 Returns the path of a data file for a given relative file path.
 
virtual void timestepSetup ()
 Gets called at the beginning of the timestep before this object is asked to do its job.
 
virtual void jacobianSetup ()
 Gets called just before the Jacobian is computed and before this object is asked to do its job.
 
virtual void residualSetup ()
 Gets called just before the residual is computed and before this object is asked to do its job.
 
virtual void subdomainSetup ()
 Gets called when the subdomain changes (i.e.
 
virtual void customSetup (const ExecFlagType &)
 Gets called in FEProblemBase::execute() for execute flags other than initial, timestep_begin, nonlinear, linear and subdomain.
 
const ExecFlagEnumgetExecuteOnEnum () const
 Return the execute on MultiMooseEnum for this object.
 
PerfGraphperfGraph ()
 Get the PerfGraph.
 

Static Public Member Functions

static InputParameters validParams ()
 
static void transformBoundingBox (libMesh::BoundingBox &box, const MultiAppCoordTransform &transform)
 Transform a bounding box according to the transformations in the provided coordinate transformation object.
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 External method for calling moose error with added object context.
 

Public Attributes

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

Static Public Attributes

static const std::string 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 Member Functions

virtual std::vector< std::string > cliArgs () const
 function that provides cli_args to subapps
 
virtual void fillPositions ()
 must fill in _positions with the positions of the sub-aps
 
void readCommandLineArguments ()
 Fill command line arguments for sub apps.
 
void createApp (unsigned int i, Real start_time)
 Helper function for creating an App instance.
 
virtual bool propagateRecoverToSubApps () const
 Whether or not to propagate the parent's recover state (the –recover and –test-checkpoint-half-transient flags) to sub-applications.
 
void buildComm ()
 Create an MPI communicator suitable for each app.
 
unsigned int globalAppToLocal (unsigned int global_app)
 Map a global App number to the local number.
 
virtual void preRunInputFile ()
 call back executed right before app->runInputFile()
 
virtual std::vector< std::string > getCommandLineArgs (const unsigned int local_app)
 
void init (unsigned int num_apps, bool batch_mode=false)
 Build communicators and reserve backups.
 
void init (unsigned int num_apps, const LocalRankConfig &config)
 Same as other init method, except defining a custom rank configuration.
 
void createApps ()
 Create the provided number of apps.
 
void keepSolutionDuringRestore (bool keep_solution_during_restore)
 Preserve the solution from the previous simulation, and it is used as an initial guess for the next run.
 
void setAppOutputFileBase (unsigned int index)
 Set the output file base of the application which corresponds to the index passed to the function.
 
template<bool warning>
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 Set solution invalid mark for the given solution ID.
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
template<typename T , typename... Args>
T & declareRestartableData (const std::string &data_name, Args &&... args)
 Declare a piece of data as "restartable" and initialize it.
 
template<typename T , typename... Args>
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 Declares a piece of "managed" restartable data and initialize it.
 
template<typename T , typename... Args>
const T & getRestartableData (const std::string &data_name) const
 Declare a piece of data as "restartable" and initialize it Similar to declareRestartableData but returns a const reference to the object.
 
template<typename T , typename... Args>
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 Declare a piece of data as "restartable" and initialize it.
 
template<typename T , typename... Args>
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 Declare a piece of data as "recoverable" and initialize it.
 
template<typename T , typename... Args>
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 Declare a piece of data as "restartable".
 
template<typename T , typename... Args>
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 Declare a piece of data as "restartable".
 
std::string restartableName (const std::string &data_name) const
 Gets the name of a piece of restartable data given a data name, adding the system name and object name prefix.
 
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 std::string getMultiAppName (const std::string &base_name, dof_id_type index, dof_id_type total)
 Helper for constructing the name of the multiapp.
 

Protected Attributes

FEProblemBase_fe_problem
 The FEProblemBase this MultiApp is part of.
 
std::string _app_type
 The type of application to build.
 
std::vector< Point > _positions
 The positions of all of the apps, using input constant vectors (to be deprecated)
 
std::vector< const Positions * > _positions_objs
 The positions of all of the apps, using the Positions system.
 
std::vector< unsigned int_positions_index_offsets
 The offsets, in case multiple Positions objects are specified.
 
const bool _use_positions
 Toggle use of "positions".
 
std::vector< FileName > _input_files
 The input file for each app's simulation.
 
const bool & _wait_for_first_app_init
 Whether to create the first app on rank 0 while all other MPI ranks are idle.
 
std::vector< unsigned int_npositions_inputfile
 Number of positions for each input file.
 
std::string _output_base
 The output file basename for each multiapp.
 
unsigned int _total_num_apps
 The total number of apps to simulate.
 
unsigned int _my_num_apps
 The number of apps this object is involved in simulating.
 
unsigned int _first_local_app
 The number of the first app on this processor.
 
const MPI_Comm & _orig_comm
 The original comm handle.
 
libMesh::Parallel::Communicator _my_communicator
 The communicator object that holds the MPI_Comm that we're going to use.
 
MPI_Comm & _my_comm
 The MPI communicator this object is going to use.
 
int _orig_num_procs
 The number of processors in the original comm.
 
int _orig_rank
 The mpi "rank" of this processor in the original communicator.
 
std::string _node_name
 Node Name.
 
int _my_rank
 The mpi "rank" of this processor in the sub communicator.
 
std::vector< std::shared_ptr< MooseApp > > _apps
 Pointers to each of the Apps.
 
std::vector< bool > _has_bounding_box
 Flag if this multi-app computed its bounding box (valid only for non-displaced meshes)
 
std::vector< libMesh::BoundingBox_bounding_box
 This multi-app's bounding box.
 
Real _inflation
 Relative bounding box inflation.
 
Point _bounding_box_padding
 Additional padding added to the bounding box, useful for 1D meshes.
 
processor_id_type _max_procs_per_app
 Maximum number of processors to give to each app.
 
processor_id_type _min_procs_per_app
 Minimum number of processors to give to each app.
 
bool _output_in_position
 Whether or not to move the output of the MultiApp into position.
 
const Real _global_time_offset
 The offset time so the MultiApp local time relative to the global time.
 
std::vector< Real > _reset_times
 The times at which to reset apps.
 
std::vector< unsigned int_reset_apps
 The apps to be reset.
 
std::vector< bool > _reset_happened
 Whether or not apps have been reset at each time.
 
Real _move_time
 The time at which to move apps.
 
std::vector< unsigned int_move_apps
 The apps to be moved.
 
std::vector< Point > _move_positions
 The new positions for the apps to be moved.
 
bool _move_happened
 Whether or not the move has happened.
 
bool _has_an_app
 Whether or not this processor as an App at all
 
const std::vector< CLIArgString > & _cli_args
 CommandLine arguments (controllable!)
 
std::vector< std::string > _cli_args_from_file
 CommandLine arguments from files.
 
bool _keep_solution_during_restore
 Flag indicates if or not restart from the latest solution.
 
bool _keep_aux_solution_during_restore
 Flag indicates if or not restart the auxiliary system from the latest auxiliary solution.
 
const bool _no_restore
 Whether or not to skip restoring completely.
 
std::vector< std::vector< std::unique_ptr< libMesh::NumericVector< Real > > > > _end_solutions
 The solution from the end of the previous solve, this is cloned from the Nonlinear solution during restore Outer indexing by child application, inner indexing by solver system.
 
std::vector< std::unique_ptr< NumericVector< Real > > > _end_aux_solutions
 The auxiliary solution from the end of the previous solve, this is cloned from the auxiliary solution during restore.
 
LocalRankConfig _rank_config
 The app configuration resulting from calling init.
 
std::vector< MultiAppTransfer * > _associated_transfers
 Transfers associated with this multiapp.
 
const bool _run_in_position
 Whether to run the child apps with their meshes transformed with the coordinate transforms.
 
SubAppBackups_sub_app_backups
 The cached subapp backups (passed from the parent app)
 
const PerfID _solve_step_timer
 Timers.
 
const PerfID _init_timer
 
const PerfID _backup_timer
 
const PerfID _restore_timer
 
const PerfID _reset_timer
 
const bool & _enabled
 Reference to the "enable" InputParameters, used by Controls for toggling on/off MooseObjects.
 
MooseApp_app
 The MOOSE application this is associated with.
 
Factory_factory
 The Factory associated with the MooseApp.
 
ActionFactory_action_factory
 Builds Actions.
 
const std::string & _type
 The type of this class.
 
const std::string & _name
 The name of this class.
 
const InputParameters_pars
 The object's parameters.
 
const Parallel::Communicator_communicator
 
const ExecFlagEnum_execute_enum
 Execute settings for this object.
 
const ExecFlagType_current_execute_flag
 Reference to FEProblemBase.
 
MooseApp_restartable_app
 Reference to the application.
 
const std::string _restartable_system_name
 The system name this object is in.
 
const THREAD_ID _restartable_tid
 The thread ID for this object.
 
const bool _restartable_read_only
 Flag for toggling read only status (see ReporterData)
 
MooseApp_pg_moose_app
 The MooseApp that owns the PerfGraph.
 
const std::string _prefix
 A prefix to use for all sections.
 

Private Member Functions

RestartableDataValueregisterRestartableDataOnApp (std::unique_ptr< RestartableDataValue > data, THREAD_ID tid) const
 Helper function for actually registering the restartable data.
 
void registerRestartableNameWithFilterOnApp (const std::string &name, Moose::RESTARTABLE_FILTER filter)
 Helper function for actually registering the restartable data.
 
template<typename T , typename... Args>
RestartableData< T > & declareRestartableDataHelper (const std::string &data_name, void *context, Args &&... args) const
 Helper function for declaring restartable data.
 

Static Private Member Functions

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

Private Attributes

std::optional< std::string > _cli_args_param
 The parameter that was used to set the command line args, if any.
 
const ParallelParamObject_parent
 
const MooseBase_si_moose_base
 The MooseBase that owns this interface.
 
const FEProblemBase_si_problem
 A pointer to FEProblem base.
 
ExecFlagEnum _empty_execute_enum
 Empty ExecFlagEnum for the case when the "execute_on" parameter is not included.
 
const RestartableDataMapName _metaname
 Restartable metadata name.
 
std::string _restartable_name
 The name of the object.
 

Detailed Description

A MultiApp represents one or more MOOSE applications that are running simultaneously.

These other MOOSE apps generally represent some "sub-solve" or "embedded-solves" of the overall nonlinear solve. If your system support dynamic libraries unregistered Multiapps can be loaded on the fly by setting the exporting the appropriate library path using "MOOSE_LIBRARY_PATH" or by specifying a single input file library path in Multiapps InputParameters object.

Definition at line 112 of file MultiApp.h.

Member Typedef Documentation

◆ DataFileParameterType

using DataFileInterface::DataFileParameterType = DataFileName
inherited

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

Definition at line 27 of file DataFileInterface.h.

Constructor & Destructor Documentation

◆ MultiApp()

MultiApp::MultiApp ( const InputParameters parameters)

Definition at line 272 of file MultiApp.C.

274 SetupInterface(this),
275 Restartable(this, "MultiApps"),
276 PerfGraphInterface(this, std::string("MultiApp::") + _name),
277 _fe_problem(*getCheckedPointerParam<FEProblemBase *>("_fe_problem_base")),
278 _app_type(isParamValid("app_type") ? std::string(getParam<MooseEnum>("app_type"))
280 _use_positions(getParam<bool>("use_positions")),
281 _input_files(getParam<std::vector<FileName>>("input_files")),
282 _wait_for_first_app_init(getParam<bool>("wait_for_first_app_init")),
284 _my_num_apps(0),
289 _my_rank(0),
290 _inflation(getParam<Real>("bounding_box_inflation")),
291 _bounding_box_padding(getParam<Point>("bounding_box_padding")),
292 _max_procs_per_app(getParam<processor_id_type>("max_procs_per_app")),
293 _min_procs_per_app(getParam<processor_id_type>("min_procs_per_app")),
294 _output_in_position(getParam<bool>("output_in_position")),
295 _global_time_offset(getParam<Real>("global_time_offset")),
296 _reset_times(getParam<std::vector<Real>>("reset_time")),
297 _reset_apps(getParam<std::vector<unsigned int>>("reset_apps")),
298 _reset_happened(false),
299 _move_time(getParam<Real>("move_time")),
300 _move_apps(getParam<std::vector<unsigned int>>("move_apps")),
301 _move_positions(getParam<std::vector<Point>>("move_positions")),
302 _move_happened(false),
303 _has_an_app(true),
304 _cli_args(getParam<std::vector<CLIArgString>>("cli_args")),
305 _keep_solution_during_restore(getParam<bool>("keep_solution_during_restore")),
306 _keep_aux_solution_during_restore(getParam<bool>("keep_aux_solution_during_restore")),
307 _no_restore(getParam<bool>("no_restore")),
308 _run_in_position(getParam<bool>("run_in_position")),
310 _solve_step_timer(registerTimedSection("solveStep", 3, "Executing MultiApps", false)),
311 _init_timer(registerTimedSection("init", 3, "Initializing MultiApp")),
312 _backup_timer(registerTimedSection("backup", 3, "Backing Up MultiApp")),
313 _restore_timer(registerTimedSection("restore", 3, "Restoring MultiApp")),
314 _reset_timer(registerTimedSection("resetApp", 3, "Resetting MultiApp"))
315{
316 if (parameters.isParamSetByUser("cli_args") && parameters.isParamValid("cli_args") &&
317 parameters.isParamValid("cli_args_files"))
318 paramError("cli_args",
319 "'cli_args' and 'cli_args_files' cannot be specified simultaneously in MultiApp ");
320
321 if (!_use_positions && (isParamValid("positions") || isParamValid("positions_file") ||
322 isParamValid("positions_objects")))
323 paramError("use_positions",
324 "This MultiApps has been set to not use positions, "
325 "but a 'positions' parameter has been set.");
326
327 if ((_reset_apps.size() > 0 && _reset_times.size() == 0) ||
328 (_reset_apps.size() == 0 && _reset_times.size() > 0))
329 mooseError("reset_time and reset_apps may only be specified together");
330
331 // Check that the reset times are sorted by the user
332 auto sorted_times = _reset_times;
333 std::sort(sorted_times.begin(), sorted_times.end());
334 if (_reset_times.size() && _reset_times != sorted_times)
335 paramError("reset_time", "List of reset times must be sorted in increasing order");
336}
void ErrorVector unsigned int
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was set by the user.
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another,...
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 paramError(const std::string &param, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
Definition MooseBase.h:457
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 std::string & _name
The name of this class.
Definition MooseBase.h:381
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
MooseApp & getMooseApp() const
Get the MooseApp this class is associated with.
Definition MooseBase.h:87
Every object that can be built by the factory should be derived from this class.
Definition MooseObject.h:31
std::vector< Real > _reset_times
The times at which to reset apps.
Definition MultiApp.h:581
libMesh::Parallel::Communicator _my_communicator
The communicator object that holds the MPI_Comm that we're going to use.
Definition MultiApp.h:536
const bool & _wait_for_first_app_init
Whether to create the first app on rank 0 while all other MPI ranks are idle.
Definition MultiApp.h:515
Real _inflation
Relative bounding box inflation.
Definition MultiApp.h:563
bool _output_in_position
Whether or not to move the output of the MultiApp into position.
Definition MultiApp.h:575
processor_id_type _min_procs_per_app
Minimum number of processors to give to each app.
Definition MultiApp.h:572
const PerfID _init_timer
Definition MultiApp.h:640
std::string _app_type
The type of application to build.
Definition MultiApp.h:498
int _my_rank
The mpi "rank" of this processor in the sub communicator.
Definition MultiApp.h:551
const Real _global_time_offset
The offset time so the MultiApp local time relative to the global time.
Definition MultiApp.h:578
Real _move_time
The time at which to move apps.
Definition MultiApp.h:590
const PerfID _backup_timer
Definition MultiApp.h:641
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition MultiApp.h:539
const PerfID _restore_timer
Definition MultiApp.h:642
unsigned int _first_local_app
The number of the first app on this processor.
Definition MultiApp.h:530
Point _bounding_box_padding
Additional padding added to the bounding box, useful for 1D meshes.
Definition MultiApp.h:566
bool _has_an_app
Whether or not this processor as an App at all
Definition MultiApp.h:602
processor_id_type _max_procs_per_app
Maximum number of processors to give to each app.
Definition MultiApp.h:569
bool _move_happened
Whether or not the move has happened.
Definition MultiApp.h:599
bool _keep_aux_solution_during_restore
Flag indicates if or not restart the auxiliary system from the latest auxiliary solution.
Definition MultiApp.h:614
std::vector< unsigned int > _move_apps
The apps to be moved.
Definition MultiApp.h:593
const PerfID _solve_step_timer
Timers.
Definition MultiApp.h:639
const bool _no_restore
Whether or not to skip restoring completely.
Definition MultiApp.h:617
const bool _use_positions
Toggle use of "positions".
Definition MultiApp.h:509
bool _keep_solution_during_restore
Flag indicates if or not restart from the latest solution.
Definition MultiApp.h:611
const MPI_Comm & _orig_comm
The original comm handle.
Definition MultiApp.h:533
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition MultiApp.h:495
unsigned int _total_num_apps
The total number of apps to simulate.
Definition MultiApp.h:524
SubAppBackups & _sub_app_backups
The cached subapp backups (passed from the parent app)
Definition MultiApp.h:636
std::vector< bool > _reset_happened
Whether or not apps have been reset at each time.
Definition MultiApp.h:587
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition MultiApp.h:527
const PerfID _reset_timer
Definition MultiApp.h:643
const std::vector< CLIArgString > & _cli_args
CommandLine arguments (controllable!)
Definition MultiApp.h:605
std::vector< FileName > _input_files
The input file for each app's simulation.
Definition MultiApp.h:512
std::vector< Point > _move_positions
The new positions for the apps to be moved.
Definition MultiApp.h:596
const bool _run_in_position
Whether to run the child apps with their meshes transformed with the coordinate transforms.
Definition MultiApp.h:633
std::vector< unsigned int > _reset_apps
The apps to be reset.
Definition MultiApp.h:584
Interface for objects interacting with the PerfGraph.
PerfID registerTimedSection(const std::string &section_name, const unsigned int level) const
Call to register a named section for timing.
A class for creating restricted objects.
Definition Restartable.h:29
T & declareRestartableDataWithContext(const std::string &data_name, void *context, Args &&... args)
Declare a piece of data as "restartable" and initialize it.
Helper class for holding Sub-app backups.
Definition MultiApp.h:101
const Parallel::Communicator & _communicator
uint8_t processor_id_type
const Elem & get(const ElemType type_in)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ addAssociatedTransfer()

void MultiApp::addAssociatedTransfer ( MultiAppTransfer transfer)

Add a transfer that is associated with this multiapp.

Definition at line 1496 of file MultiApp.C.

1497{
1498 _associated_transfers.push_back(&transfer);
1499}
std::vector< MultiAppTransfer * > _associated_transfers
Transfers associated with this multiapp.
Definition MultiApp.h:630

◆ appPostprocessorValue()

Real MultiApp::appPostprocessorValue ( unsigned int  app,
const std::string &  name 
)

Get a Postprocessor value for a specified global app.

Parameters
appThe global app number you want to get a Postprocessor from.
nameThe name of the Postprocessor.

Definition at line 1049 of file MultiApp.C.

1050{
1051 if (!_has_an_app)
1052 mooseError("No app for ", MultiApp::name(), " on processor ", _orig_rank);
1053
1055}
const PostprocessorValue & getPostprocessorValueByName(const PostprocessorName &name, std::size_t t_index=0) const
Get a read-only reference to the value associated with a Postprocessor that exists.
const std::string & name() const
Get the name of the class.
Definition MooseBase.h:103
FEProblemBase & appProblemBase(unsigned int app)
Get the FEProblemBase for the global app desired.
Definition MultiApp.C:1016
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition MultiApp.h:545

◆ appProblem()

FEProblem & MultiApp::appProblem ( unsigned int  app)

Get the FEProblem for the global app is part of.

Parameters
appThe global app number

Definition at line 1027 of file MultiApp.C.

1028{
1030 "MultiApp::appProblem() is deprecated, call MultiApp::appProblemBase() instead.\n");
1031 if (!_has_an_app)
1032 mooseError("No app for ", name(), " on processor ", _orig_rank);
1033
1034 unsigned int local_app = globalAppToLocal(app);
1035
1036 return dynamic_cast<FEProblem &>(_apps[local_app]->getExecutioner()->feProblem());
1037}
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Definition FEProblem.h:21
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition MultiApp.C:1472
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition MultiApp.h:554
void mooseDeprecated(Args &&... args) const

◆ appProblemBase()

FEProblemBase & MultiApp::appProblemBase ( unsigned int  app)

Get the FEProblemBase for the global app desired.

Parameters
appThe global app number

Definition at line 1016 of file MultiApp.C.

1017{
1018 if (!_has_an_app)
1019 mooseError("No app for ", name(), " on processor ", _orig_rank);
1020
1021 unsigned int local_app = globalAppToLocal(app);
1022
1023 return _apps[local_app]->getExecutioner()->feProblem();
1024}

Referenced by appPostprocessorValue(), appTransferVector(), TransientMultiApp::appTransferVector(), appUserObjectBase(), FullSolveMultiApp::initialSetup(), TransientMultiApp::resetApp(), TransientMultiApp::setupApp(), FullSolveMultiApp::solveStep(), and TransientMultiApp::solveStep().

◆ appTransferVector()

NumericVector< Number > & MultiApp::appTransferVector ( unsigned int  app,
std::string  var_name 
)
virtual

Get the vector to transfer to for this MultiApp.

In general this is the Auxiliary system solution vector.

Parameters
appThe global app number you want the transfer vector for.
var_nameThe name of the variable you are going to be transferring to.
Returns
The vector to fill.

Reimplemented in TransientMultiApp.

Definition at line 1058 of file MultiApp.C.

1059{
1060 return *(appProblemBase(app).getSystem(var_name).solution);
1061}
virtual libMesh::System & getSystem(const std::string &var_name) override
Returns the equation system containing the variable provided.
std::unique_ptr< NumericVector< Number > > solution

◆ appUserObjectBase()

const UserObject & MultiApp::appUserObjectBase ( unsigned int  app,
const std::string &  name 
)

Get a UserObject base for a specific global app.

Parameters
appThe global app number you want to get a UserObject from.
nameThe name of the UserObject.

Definition at line 1040 of file MultiApp.C.

1041{
1042 if (!_has_an_app)
1043 mooseError("No app for ", MultiApp::name(), " on processor ", _orig_rank);
1044
1046}
const UserObject & getUserObjectBase(const std::string &name, const THREAD_ID tid=0) const
Get the user object by its name.

◆ backup()

void MultiApp::backup ( )
virtual

Save off the state of every Sub App.

This allows us to "Restore" this state later

Definition at line 759 of file MultiApp.C.

760{
761 TIME_SECTION(_backup_timer);
762
764 _console << "Backed up MultiApp ... ";
765
766 for (unsigned int i = 0; i < _my_num_apps; i++)
767 _sub_app_backups[i] = _apps[i]->backup();
768
770 _console << name() << std::endl;
771}
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
bool verboseMultiApps() const
Whether or not to use verbose printing for MultiApps.
virtual void backup()
Save off the state of every Sub App.
Definition MultiApp.C:759

Referenced by backup(), dataStore(), and preTransfer().

◆ buildComm()

void MultiApp::buildComm ( )
protected

Create an MPI communicator suitable for each app.

Also find out which communicator we are using and what our first local app is.

Definition at line 1430 of file MultiApp.C.

1431{
1432 int ierr;
1433
1434 ierr = MPI_Comm_size(_communicator.get(), &_orig_num_procs);
1435 mooseCheckMPIErr(ierr);
1436 ierr = MPI_Comm_rank(_communicator.get(), &_orig_rank);
1437 mooseCheckMPIErr(ierr);
1438
1439#ifdef LIBMESH_HAVE_SYS_UTSNAME_H
1440 struct utsname sysInfo;
1441 uname(&sysInfo);
1442 _node_name = sysInfo.nodename;
1443#else
1444 _node_name = "Unknown";
1445#endif
1446
1447 int rank;
1448 ierr = MPI_Comm_rank(_communicator.get(), &rank);
1449 mooseCheckMPIErr(ierr);
1450
1453
1456 mooseError("Internal error, a processor has an undefined app.");
1457
1458 if (_has_an_app)
1459 {
1461 ierr = MPI_Comm_rank(_my_comm, &_my_rank);
1462 mooseCheckMPIErr(ierr);
1463 }
1464 else
1465 {
1466 _communicator.split(MPI_UNDEFINED, rank, _my_communicator);
1467 _my_rank = 0;
1468 }
1469}
int _orig_num_procs
The number of processors in the original comm.
Definition MultiApp.h:542
LocalRankConfig _rank_config
The app configuration resulting from calling init.
Definition MultiApp.h:627
std::string _node_name
Node Name.
Definition MultiApp.h:548
void split(int color, int key, Communicator &target) const
dof_id_type num_local_apps
The number of (sub)apps that should/will be run locally on this rank.
Definition MultiApp.h:58
dof_id_type first_local_app_index
The (global) index of the first local app for this rank.
Definition MultiApp.h:64

Referenced by init().

◆ callMooseError() [1/2]

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

External method for calling moose error with added object context.

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

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

Definition at line 114 of file MooseBase.C.

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

◆ callMooseError() [2/2]

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

External method for calling moose error with added object context.

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

Definition at line 105 of file MooseBase.C.

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

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

◆ cliArgs()

std::vector< std::string > MultiApp::cliArgs ( ) const
protectedvirtual

function that provides cli_args to subapps

Definition at line 1509 of file MultiApp.C.

1510{
1511 // So that we can error out with paramError("cli_args", ...);
1512 _cli_args_param = "cli_args";
1513 return std::vector<std::string>(_cli_args.begin(), _cli_args.end());
1514}
std::optional< std::string > _cli_args_param
The parameter that was used to set the command line args, if any.
Definition MultiApp.h:647

Referenced by createApp(), getCommandLineArgs(), init(), and readCommandLineArguments().

◆ comm()

MPI_Comm & MultiApp::comm ( )
inline

Get the MPI communicator this MultiApp is operating on.

Returns
The MPI comm for this MultiApp

Definition at line 352 of file MultiApp.h.

352{ return _my_comm; }

◆ connectControllableParams()

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

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

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

Definition at line 77 of file MooseBase.C.

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

◆ createApp()

void MultiApp::createApp ( unsigned int  i,
Real  start_time 
)
protected

Helper function for creating an App instance.

Parameters
iThe local app number to create.
start_timeThe initial time for the App

Definition at line 1135 of file MultiApp.C.

1136{
1137 // Delete the old app if we're resetting
1138 if (_apps[i])
1139 _apps[i].reset();
1140
1141 // Define the app name
1142 const std::string multiapp_name = getMultiAppName(name(), _first_local_app + i, _total_num_apps);
1143 std::string full_name;
1144
1145 // Only add parent name if the parent is not the main app
1146 if (_app.multiAppLevel() > 0)
1147 full_name = _app.name() + "_" + multiapp_name;
1148 else
1149 full_name = multiapp_name;
1150
1152 app_params.set<FEProblemBase *>("_parent_fep") = &_fe_problem;
1153 app_params.set<std::unique_ptr<Backup> *>("_initial_backup") = &_sub_app_backups[i];
1154
1155 // Build the CommandLine with the relevant options for this subapp and add the
1156 // cli args from the input file
1157 std::vector<std::string> input_cli_args;
1158 if (cliArgs().size() > 0 || _cli_args_from_file.size() > 0)
1159 input_cli_args = getCommandLineArgs(i);
1160 // FullSolveMultiApp (and its derived classes) always performs a complete fresh
1161 // solve on every execution, so the parent's recovery-related global CLI params
1162 // must not be propagated to those sub-apps.
1163 const std::set<std::string> recover_exclude =
1165 ? std::set<std::string>{}
1166 : std::set<std::string>{"recover", "test_checkpoint_half_transient"};
1167 // This will mark all hit CLI command line parameters that are passed to subapps
1168 // as used within the parent app (_app)
1169 auto app_cli = _app.commandLine()->initSubAppCommandLine(
1170 name(), multiapp_name, input_cli_args, recover_exclude);
1171 app_cli->parse();
1172
1174 _console << COLOR_CYAN << "Creating MultiApp " << name() << " of type " << _app_type
1175 << " of level " << _app.multiAppLevel() + 1 << " and number " << _first_local_app + i
1176 << " on processor " << processor_id() << " with full name " << full_name
1177 << COLOR_DEFAULT << std::endl;
1178 app_params.set<unsigned int>("_multiapp_level") = _app.multiAppLevel() + 1;
1179 app_params.set<unsigned int>("_multiapp_number") = _first_local_app + i;
1180 app_params.set<const MooseMesh *>("_master_mesh") = &_fe_problem.mesh();
1181#ifdef MOOSE_MFEM_ENABLED
1182 // MFEM device must only be set once across all apps
1183 // FIXME: this required that the base app is an MFEM app; itwill
1184 // still fail if multiple MFEM sub-apps are launched from a libMesh base app
1185 if (i == 0)
1186 {
1187 app_params.set<std::shared_ptr<mfem::Device>>("_mfem_device") =
1189 const auto & mfem_device_set = _app.getMFEMDevices(Moose::PassKey<MultiApp>());
1190 app_params.set<std::set<std::string>>("_mfem_devices") = mfem_device_set;
1191 }
1192 else
1193 {
1194 app_params.set<std::shared_ptr<mfem::Device>>("_mfem_device") =
1195 _apps[0]->getMFEMDevice(Moose::PassKey<MultiApp>());
1196 const auto & mfem_device_set = _apps[0]->getMFEMDevices(Moose::PassKey<MultiApp>());
1197 app_params.set<std::set<std::string>>("_mfem_devices") = mfem_device_set;
1198 }
1199#endif
1200 if (getParam<bool>("clone_master_mesh") || getParam<bool>("clone_parent_mesh"))
1201 {
1203 _console << COLOR_CYAN << "Cloned parent app mesh will be used for MultiApp " << name()
1204 << COLOR_DEFAULT << std::endl;
1205 app_params.set<bool>("_use_master_mesh") = true;
1208 app_params.set<const MooseMesh *>("_master_displaced_mesh") = &displaced_problem->mesh();
1209 }
1210
1211 // If only one input file was provided, use it for all the solves
1212 const auto input_index = _input_files.size() == 1 ? 0 : _first_local_app + i;
1213 const auto & input_file = _input_files[input_index];
1214
1215 // create new parser tree for the application and parse
1216 auto parser = std::make_unique<Parser>(input_file);
1217 parser->setCommandLineParams(app_cli->buildHitParams());
1218 parser->parse();
1219
1220 // Checks on app type
1221 const auto & app_type = parser->getAppType();
1222 if (app_type.empty() && _app_type.empty())
1223 mooseWarning("The application type is not specified for ",
1224 full_name,
1225 ". Please use [Application] block to specify the application type.");
1226 if (!app_type.empty() && app_type != _app_type && !AppFactory::instance().isRegistered(app_type))
1227 mooseError("In the ",
1228 full_name,
1229 ", '",
1230 app_type,
1231 "' is not a registered application. The registered application is named: '",
1232 _app_type,
1233 "'. Please double check the [Application] block to make sure the correct "
1234 "application is provided. \n");
1235
1236 if (parser->getAppType().empty())
1237 parser->setAppType(_app_type);
1238
1239 app_params.set<std::shared_ptr<Parser>>("_parser") = std::move(parser);
1240 app_params.set<std::shared_ptr<CommandLine>>("_command_line") = std::move(app_cli);
1241 _apps[i] = AppFactory::instance().create(_app_type, full_name, app_params, _my_comm);
1242 auto & app = _apps[i];
1243
1244 app->setGlobalTimeOffset(start_time);
1245 app->setOutputFileNumbers(_app.getOutputWarehouse().getFileNumbers());
1246 app->setRestart(_app.isRestarting());
1247 app->setRecover(propagateRecoverToSubApps() && _app.isRecovering());
1248
1249 if (_use_positions && getParam<bool>("output_in_position"))
1250 app->setOutputPosition(_app.getOutputPosition() + _positions[_first_local_app + i]);
1252 paramError("run_in_position",
1253 "Sub-apps are already displaced, so they are already output in position");
1254
1255 // Update the MultiApp level for the app that was just created
1256 app->setupOptions();
1257 // if multiapp does not have file base in Outputs input block, output file base will
1258 // be empty here since setupOptions() does not set the default file base with the multiapp
1259 // input file name. Parent app will create the default file base for multiapp by taking the
1260 // output base of the parent app problem and appending the name of the multiapp plus a number to
1261 // it
1262 if (app->getOutputFileBase().empty())
1265 if (_app.multiAppLevel() > getParam<unsigned int>("max_multiapp_level"))
1266 mooseError("Maximum multiapp level has been reached. This is likely caused by an infinite loop "
1267 "in your multiapp system. If additional multiapp levels are needed, "
1268 "max_multiapp_level can be specified in the MuliApps block.");
1269
1270 // Transfer coupling relaxation information to the subapps
1271 _apps[i]->fixedPointConfig().sub_relaxation_factor = getParam<Real>("relaxation_factor");
1272 _apps[i]->fixedPointConfig().sub_transformed_vars =
1273 getParam<std::vector<std::string>>("transformed_variables");
1274 // Handle deprecated parameter
1275 if (!parameters().isParamSetByAddParam("relaxed_variables"))
1276 _apps[i]->fixedPointConfig().sub_transformed_vars =
1277 getParam<std::vector<std::string>>("relaxed_variables");
1278 _apps[i]->fixedPointConfig().sub_transformed_pps =
1279 getParam<std::vector<PostprocessorName>>("transformed_postprocessors");
1280
1281 app->runInputFile();
1282 auto fixed_point_solve = &(_apps[i]->getExecutioner()->fixedPointSolve());
1283 if (fixed_point_solve)
1284 fixed_point_solve->allocateStorage(false);
1285
1286 // Transform the app mesh if requested
1287 if (_run_in_position)
1288 {
1289 if (usingPositions())
1290 app->getExecutioner()->feProblem().coordTransform().transformMesh(
1291 app->getExecutioner()->feProblem().mesh(), _positions[_first_local_app + i]);
1292 else
1293 app->getExecutioner()->feProblem().coordTransform().transformMesh(
1294 app->getExecutioner()->feProblem().mesh(), Point(0, 0, 0));
1295 }
1296}
std::shared_ptr< DisplacedProblem > displaced_problem
bool isRegistered(const std::string &app_name) const
Returns a Boolean indicating whether an application type has been registered.
Definition AppFactory.h:168
InputParameters getValidParams(const std::string &name)
Get valid parameters for the object.
Definition AppFactory.C:35
static std::unique_ptr< MooseApp > create(const std::string &app_type, const std::vector< std::string > &cli_args={})
Create an app with no input and command line arguments.
Definition AppFactory.C:64
static AppFactory & instance()
Get the instance of the AppFactory.
Definition AppFactory.C:20
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual std::shared_ptr< const DisplacedProblem > getDisplacedProblem() const
virtual MooseMesh & mesh() override
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
bool isParamSetByAddParam(const std::string &name) const
Returns whether or not the parameter was set due to addParam.
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
Point getOutputPosition() const
Get the output position.
Definition MooseApp.h:288
bool isRestarting() const
Whether or not this is a "restart" calculation.
Definition MooseApp.C:1675
unsigned int multiAppLevel() const
The MultiApp Level.
Definition MooseApp.h:855
const std::set< std::string > & getMFEMDevices(Moose::PassKey< MultiApp >) const
Get the configured MFEM devices.
Definition MooseApp.h:1814
std::shared_ptr< mfem::Device > getMFEMDevice(Moose::PassKey< MultiApp >)
Get the MFEM device object.
Definition MooseApp.h:1134
std::shared_ptr< CommandLine > commandLine() const
Get the command line.
Definition MooseApp.h:424
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition MooseApp.C:1669
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition MooseMesh.h:95
MooseApp & _app
The MOOSE application this is associated with.
Definition MooseBase.h:375
std::vector< std::string > _cli_args_from_file
CommandLine arguments from files.
Definition MultiApp.h:608
bool usingPositions() const
Whether or not this MultiApp is using positions or its own way for constructing sub-apps.
Definition MultiApp.h:363
virtual std::vector< std::string > cliArgs() const
function that provides cli_args to subapps
Definition MultiApp.C:1509
static std::string getMultiAppName(const std::string &base_name, dof_id_type index, dof_id_type total)
Helper for constructing the name of the multiapp.
Definition MultiApp.C:1525
virtual void preRunInputFile()
call back executed right before app->runInputFile()
Definition MultiApp.C:1491
void setAppOutputFileBase()
Sets all the app's output file bases.
Definition MultiApp.C:1502
virtual std::vector< std::string > getCommandLineArgs(const unsigned int local_app)
Definition MultiApp.C:1299
virtual bool propagateRecoverToSubApps() const
Whether or not to propagate the parent's recover state (the –recover and –test-checkpoint-half-transi...
Definition MultiApp.h:421
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated)
Definition MultiApp.h:501
std::map< std::string, unsigned int > getFileNumbers()
Extracts the file numbers from the output objects.
void mooseWarning(Args &&... args) const
processor_id_type processor_id() const

Referenced by createLocalApp(), and resetApp().

◆ createApps()

void MultiApp::createApps ( )
protected

Create the provided number of apps.

This is called in the setupPositions().

Definition at line 387 of file MultiApp.C.

388{
389 if (!_has_an_app)
390 return;
391
392 TIME_SECTION("createApps", 2, "Instantiating Sub-Apps", false);
393
394 // Read commandLine arguments that will be used when creating apps
396
398
399 _apps.resize(_my_num_apps);
400
401 // If the user provided an unregistered app type, see if we can load it dynamically
402 if (!AppFactory::instance().isRegistered(_app_type))
404 getParam<std::string>("library_path"),
405 getParam<std::string>("library_name"),
406 getParam<bool>("library_load_dependencies"));
407
408 bool rank_did_quiet_init = false;
409 unsigned int local_app = libMesh::invalid_uint;
411 {
412 if (hasLocalApp(0))
413 {
414 rank_did_quiet_init = true;
415 local_app = globalAppToLocal(0);
416 createLocalApp(local_app);
417 }
418
419 MPI_Barrier(_orig_comm);
420 }
421
422 for (unsigned int i = 0; i < _my_num_apps; i++)
423 {
424 if (rank_did_quiet_init && i == local_app)
425 continue;
427 }
428}
void dynamicAppRegistration(const std::string &app_name, std::string library_path, const std::string &library_name, bool lib_load_deps)
Definition MooseApp.C:2581
bool hasLocalApp(unsigned int global_app) const
Whether or not the given global app number is on this processor.
Definition MultiApp.C:1070
void readCommandLineArguments()
Fill command line arguments for sub apps.
Definition MultiApp.C:446
virtual void createLocalApp(const unsigned int i)
Create the i-th local app.
Definition MultiApp.C:431
const unsigned int invalid_uint

Referenced by initialSetup(), and setupPositions().

◆ createLocalApp()

void MultiApp::createLocalApp ( const unsigned int  i)
virtual

Create the i-th local app.

Parameters
[in]ilocal app index

Definition at line 431 of file MultiApp.C.

432{
434}
void createApp(unsigned int i, Real start_time)
Helper function for creating an App instance.
Definition MultiApp.C:1135

Referenced by createApps().

◆ customSetup()

virtual void SetupInterface::customSetup ( const ExecFlagType )
inlinevirtualinherited

Gets called in FEProblemBase::execute() for execute flags other than initial, timestep_begin, nonlinear, linear and subdomain.

Reimplemented in Function.

Definition at line 69 of file SetupInterface.h.

69{}

◆ declareManagedRestartableDataWithContext()

template<typename T , typename... Args>
Restartable::ManagedValue< T > Restartable::declareManagedRestartableDataWithContext ( const std::string &  data_name,
void *  context,
Args &&...  args 
)
protectedinherited

Declares a piece of "managed" restartable data and initialize it.

Here, "managed" restartable data means that the caller can destruct this data upon destruction of the return value of this method. Therefore, this ManagedValue<T> wrapper should survive after the final calls to dataStore() for it. That is... at the very end.

This is needed for objects whose destruction ordering is important, and enables natural c++ destruction in reverse construction order of the object that declares it.

See delcareRestartableData and declareRestartableDataWithContext for more information.

Definition at line 283 of file Restartable.h.

286{
287 auto & data_ptr =
288 declareRestartableDataHelper<T>(data_name, context, std::forward<Args>(args)...);
289 return Restartable::ManagedValue<T>(data_ptr);
290}
Wrapper class for restartable data that is "managed.
Definition Restartable.h:43

◆ declareRecoverableData()

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

Declare a piece of data as "recoverable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

Note - this data will NOT be restored on Restart!

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
argsArguments to forward to the constructor of the data

Definition at line 358 of file Restartable.h.

359{
360 const auto full_name = restartableName(data_name);
361
363
364 return declareRestartableDataWithContext<T>(data_name, nullptr, std::forward<Args>(args)...);
365}
std::string restartableName(const std::string &data_name) const
Gets the name of a piece of restartable data given a data name, adding the system name and object nam...
Definition Restartable.C:78
void registerRestartableNameWithFilterOnApp(const std::string &name, Moose::RESTARTABLE_FILTER filter)
Helper function for actually registering the restartable data.
Definition Restartable.C:71

◆ declareRestartableData()

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

Declare a piece of data as "restartable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
argsArguments to forward to the constructor of the data

Definition at line 276 of file Restartable.h.

277{
278 return declareRestartableDataWithContext<T>(data_name, nullptr, std::forward<Args>(args)...);
279}

◆ declareRestartableDataHelper()

template<typename T , typename... Args>
RestartableData< T > & Restartable::declareRestartableDataHelper ( const std::string &  data_name,
void *  context,
Args &&...  args 
) const
privateinherited

Helper function for declaring restartable data.

We use this function to reduce code duplication when returning const/nonconst references to the data.

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
contextContext pointer that will be passed to the load and store functions
argsArguments to forward to the constructor of the data

Definition at line 310 of file Restartable.h.

313{
314 const auto full_name = restartableName(data_name);
315
316 // Here we will create the RestartableData even though we may not use this instance.
317 // If it's already in use, the App will return a reference to the existing instance and we'll
318 // return that one instead. We might refactor this to have the app create the RestartableData
319 // at a later date.
320 auto data_ptr =
321 std::make_unique<RestartableData<T>>(full_name, context, std::forward<Args>(args)...);
322 auto & restartable_data_ref = static_cast<RestartableData<T> &>(
323 registerRestartableDataOnApp(std::move(data_ptr), _restartable_tid));
324
325 return restartable_data_ref;
326}
Concrete definition of a parameter value for a specified type.
const THREAD_ID _restartable_tid
The thread ID for this object.
RestartableDataValue & registerRestartableDataOnApp(std::unique_ptr< RestartableDataValue > data, THREAD_ID tid) const
Helper function for actually registering the restartable data.
Definition Restartable.C:63

◆ declareRestartableDataWithContext()

template<typename T , typename... Args>
T & Restartable::declareRestartableDataWithContext ( const std::string &  data_name,
void *  context,
Args &&...  args 
)
protectedinherited

Declare a piece of data as "restartable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
contextContext pointer that will be passed to the load and store functions
argsArguments to forward to the constructor of the data

Definition at line 301 of file Restartable.h.

304{
305 return declareRestartableDataHelper<T>(data_name, context, std::forward<Args>(args)...).set();
306}

◆ declareRestartableDataWithObjectName()

template<typename T , typename... Args>
T & Restartable::declareRestartableDataWithObjectName ( const std::string &  data_name,
const std::string &  object_name,
Args &&...  args 
)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
object_nameA supplied name for the object that is declaring this data.
argsArguments to forward to the constructor of the data

Definition at line 330 of file Restartable.h.

333{
334 return declareRestartableDataWithObjectNameWithContext<T>(
335 data_name, object_name, nullptr, std::forward<Args>(args)...);
336}

◆ declareRestartableDataWithObjectNameWithContext()

template<typename T , typename... Args>
T & Restartable::declareRestartableDataWithObjectNameWithContext ( const std::string &  data_name,
const std::string &  object_name,
void *  context,
Args &&...  args 
)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
object_nameA supplied name for the object that is declaring this data.
contextContext pointer that will be passed to the load and store functions
argsArguments to forward to the constructor of the data

Definition at line 340 of file Restartable.h.

344{
345 std::string old_name = _restartable_name;
346
347 _restartable_name = object_name;
348
349 T & value = declareRestartableDataWithContext<T>(data_name, context, std::forward<Args>(args)...);
350
351 _restartable_name = old_name;
352
353 return value;
354}
std::string _restartable_name
The name of the object.
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 49 of file MooseObject.h.

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

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

◆ errorPrefix()

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

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

Definition at line 264 of file MooseBase.h.

264{ return messagePrefix(); }

◆ fillPositions()

void MultiApp::fillPositions ( )
protectedvirtual

must fill in _positions with the positions of the sub-aps

Reimplemented in CentroidMultiApp, and QuadraturePointMultiApp.

Definition at line 544 of file MultiApp.C.

545{
546 if (_move_apps.size() != _move_positions.size())
547 mooseError("The number of apps to move and the positions to move them to must be the same for "
548 "MultiApp ",
549 _name);
550
551 if (isParamValid("positions") + isParamValid("positions_file") +
552 isParamValid("positions_objects") >
553 1)
554 mooseError("Only one 'positions' parameter may be specified");
555
556 if (isParamValid("positions"))
557 {
558 _positions = getParam<std::vector<Point>>("positions");
559
560 if (_positions.size() < _input_files.size())
561 mooseError("Not enough positions for the number of input files provided in MultiApp ",
562 name());
563 }
564 else if (isParamValid("positions_file"))
565 {
566 std::vector<FileName> positions_files = getParam<std::vector<FileName>>("positions_file");
567 std::vector<FileName> input_files = getParam<std::vector<FileName>>("input_files");
568
569 if (input_files.size() != 1 && positions_files.size() != input_files.size())
570 mooseError("Number of input_files for MultiApp ",
571 name(),
572 " must either be only one or match the number of positions_file files");
573
574 // Clear out the _input_files because we're going to rebuild it
575 if (input_files.size() != 1)
576 _input_files.clear();
577
578 for (unsigned int p_file_it = 0; p_file_it < positions_files.size(); p_file_it++)
579 {
580 std::string positions_file = positions_files[p_file_it];
581 MooseUtils::DelimitedFileReader file(positions_file, &_communicator);
583 file.read();
584
585 const std::vector<Point> & data = file.getDataAsPoints();
586 for (const auto & d : data)
587 _positions.push_back(d);
588
589 // Save the number of positions for this input file
590 _npositions_inputfile.push_back(data.size());
591
592 for (unsigned int i = 0; i < data.size(); ++i)
593 if (input_files.size() != 1)
594 _input_files.push_back(input_files[p_file_it]);
595 }
596 }
597 else if (isParamValid("positions_objects"))
598 {
599 const auto & positions_param_objs = getParam<std::vector<PositionsName>>("positions_objects");
600 const auto & input_files = getParam<std::vector<FileName>>("input_files");
601
602 if (input_files.size() != 1 && positions_param_objs.size() != input_files.size())
603 mooseError("Number of input_files for MultiApp ",
604 name(),
605 " must either be only one or match the number of positions_objects specified");
606
607 // Clear out the _input_files because we're going to rebuild it
608 if (input_files.size() != 1)
609 _input_files.clear();
610
611 // Keeps track of where each positions object start in terms of subapp numbers
612 unsigned int offset = 0;
613
614 for (const auto p_obj_it : index_range(positions_param_objs))
615 {
616 const std::string & positions_name = positions_param_objs[p_obj_it];
617 auto positions_obj = &_fe_problem.getPositionsObject(positions_name);
618
619 const auto & data = positions_obj->getPositions(true);
620
621 // Append all positions from this object
622 for (const auto & d : data)
623 _positions.push_back(d);
624
625 // Save the number of positions for this input file
626 _npositions_inputfile.push_back(data.size());
627
628 if (!positions_obj)
629 paramError("positions_objects",
630 "'" + positions_name + "' is not of the expected type. Should be a Positions");
631
632 // Keep track of which positions is tied to what subapp
633 for (unsigned int i = 0; i < data.size(); ++i)
634 {
635 if (input_files.size() != 1)
636 _input_files.push_back(input_files[p_obj_it]);
637 _positions_objs.push_back(positions_obj);
638 _positions_index_offsets.push_back(offset);
639 }
640 offset += data.size();
641 }
642 }
643 else
644 {
645 _positions = {Point()};
646
647 if (_positions.size() < _input_files.size())
648 mooseError("Not enough positions for the number of input files provided in MultiApp ",
649 name());
650 }
651
652 mooseAssert(_input_files.size() == 1 || _positions.size() == _input_files.size(),
653 "Number of positions and input files are not the same!");
654}
const Positions & getPositionsObject(const std::string &name) const
Get the Positions object by its name.
Utility class for reading delimited data (e.g., CSV data).
std::vector< unsigned int > _positions_index_offsets
The offsets, in case multiple Positions objects are specified.
Definition MultiApp.h:505
std::vector< unsigned int > _npositions_inputfile
Number of positions for each input file.
Definition MultiApp.h:518
std::vector< const Positions * > _positions_objs
The positions of all of the apps, using the Positions system.
Definition MultiApp.h:503
const std::vector< Point > & getPositions(bool initial) const
{ Getters for the positions vector for the desired dimension 1D will be the only one guaranteed to su...
Definition Positions.C:116
auto index_range(const T &sizable)

Referenced by setupPositions().

◆ finalize()

void MultiApp::finalize ( )
virtual

Method called towards the end of the simulation to execute on final.

Reimplemented in FullSolveMultiApp.

Definition at line 734 of file MultiApp.C.

735{
736 for (const auto & app_ptr : _apps)
737 {
738 auto * executioner = app_ptr->getExecutioner();
739 mooseAssert(executioner, "Executioner is nullptr");
740
741 executioner->feProblem().execute(EXEC_FINAL);
742 executioner->feProblem().outputStep(EXEC_FINAL);
743 }
744}
const ExecFlagType EXEC_FINAL
Definition Moose.C:48

◆ finishStep()

virtual void MultiApp::finishStep ( bool  = false)
inlinevirtual

Calls multi-apps executioners' endStep and postStep methods which creates output and advances time (not the time step; see incrementTStep()) among other things.

This method is only called for Picard calculations because for loosely coupled calculations the executioners' endStep and postStep methods are called from solveStep(). This may be called with the optional flag recurse_through_multiapp_levels which may be useful if this method is being called for the final time of program execution

Reimplemented in TransientMultiApp.

Definition at line 188 of file MultiApp.h.

188{}

◆ firstLocalApp()

unsigned int MultiApp::firstLocalApp ( )
inline
Returns
The global number of the first app on the local processor.

Definition at line 288 of file MultiApp.h.

288{ return _first_local_app; }

◆ flagInvalidSolutionInternal()

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

Set solution invalid mark for the given solution ID.

Definition at line 41 of file SolutionInvalidInterface.C.

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

◆ 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 Factory::copyConstruct(), and MooseBase::uniqueParameterName().

◆ getBoundingBox()

BoundingBox MultiApp::getBoundingBox ( unsigned int  app,
bool  displaced_mesh,
const MultiAppCoordTransform coord_transform = nullptr 
)
virtual

Get the BoundingBox for the mesh associated with app The bounding box will be shifted to be in the correct position within the master domain.

If the MultiApp is in an RZ coordinate system the box will be the size it would be if the geometry were 3D (ie if you were to revolve the geometry around the axis to create the 3D geometry).

Parameters
appThe global app number you want to get the bounding box for
displaced_meshTrue if the bounding box is retrieved for the displaced mesh, other false
coord_transformAn optional coordinate transformation object

Definition at line 942 of file MultiApp.C.

945{
946 if (!_has_an_app)
947 mooseError("No app for ", name(), " on processor ", _orig_rank);
948
949 unsigned int local_app = globalAppToLocal(app);
950 FEProblemBase & fe_problem_base = _apps[local_app]->getExecutioner()->feProblem();
951 MooseMesh & mesh = (displaced_mesh && fe_problem_base.getDisplacedProblem().get() != NULL)
952 ? fe_problem_base.getDisplacedProblem()->mesh()
953 : fe_problem_base.mesh();
954
955 {
957 if (displaced_mesh)
959 else
960 {
961 if (!_has_bounding_box[local_app])
962 {
964 _has_bounding_box[local_app] = true;
965 }
966 }
967 }
968 BoundingBox bbox = _bounding_box[local_app];
969
970 Point min = bbox.min();
972 Point max = bbox.max();
974
975 Point inflation_amount = (max - min) * _inflation;
976
977 Point inflated_min = min - inflation_amount;
978 Point inflated_max = max + inflation_amount;
979
980 Point shifted_min = inflated_min;
981 Point shifted_max = inflated_max;
982
983 if ((!coord_transform || coord_transform->skipCoordinateCollapsing()) &&
984 fe_problem_base.getCoordSystem(*(mesh.meshSubdomains().begin())) == Moose::COORD_RZ)
985 {
986 // If the problem is RZ then we're going to invent a box that would cover the whole "3D" app
987 // FIXME: Assuming all subdomains are the same coordinate system type!
988 shifted_min(0) = -inflated_max(0);
989 shifted_min(1) = inflated_min(1);
990 shifted_min(2) = -inflated_max(0);
991
992 shifted_max(0) = inflated_max(0);
993 shifted_max(1) = inflated_max(1);
994 shifted_max(2) = inflated_max(0);
995 }
996
997 if (coord_transform)
998 {
999 BoundingBox transformed_bbox(shifted_min, shifted_max);
1000 transformBoundingBox(transformed_bbox, *coord_transform);
1001 return transformed_bbox;
1002 }
1003 else
1004 {
1005 // This is where the app is located. We need to shift by this amount.
1006 Point p = position(app);
1007
1008 // Shift them to the position they're supposed to be
1009 shifted_min += p;
1010 shifted_max += p;
1011 return BoundingBox(shifted_min, shifted_max);
1012 }
1013}
void skipCoordinateCollapsing(bool skip_coordinate_collapsing)
set whether coordinate collapsing operations should be skipped
std::vector< bool > _has_bounding_box
Flag if this multi-app computed its bounding box (valid only for non-displaced meshes)
Definition MultiApp.h:557
std::vector< libMesh::BoundingBox > _bounding_box
This multi-app's bounding box.
Definition MultiApp.h:560
const Point & position(unsigned int app) const
The physical position of a global App number.
Definition MultiApp.C:1534
static void transformBoundingBox(libMesh::BoundingBox &box, const MultiAppCoordTransform &transform)
Transform a bounding box according to the transformations in the provided coordinate transformation o...
Definition MultiApp.C:902
Moose::CoordinateSystemType getCoordSystem(SubdomainID sid) const
MeshBase & mesh
auto max(const L &left, const R &right)
auto min(const L &left, const R &right)
@ COORD_RZ
Definition MooseTypes.h:866
libMesh::BoundingBox create_bounding_box(const MeshBase &mesh)

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

◆ getCommandLineArgs()

std::vector< std::string > MultiApp::getCommandLineArgs ( const unsigned int  local_app)
protectedvirtual
Returns
The command line arguments to be applied to the subapp with index local_app

The method is virtual because it is needed to allow for batch runs within the stochastic tools module; see SamplerFullSolveMultiApp for an example.

Definition at line 1299 of file MultiApp.C.

1300{
1301 const auto cla = cliArgs();
1302 auto cli_args_param = _cli_args_param;
1303 std::string combined_args;
1304
1305 // Single set of args from cliArgs() to be provided to all apps
1306 if (cla.size() == 1)
1307 combined_args = cla[0];
1308 // Single "cli_args_files" file to be provided to all apps
1309 else if (_cli_args_from_file.size() == 1)
1310 {
1311 cli_args_param = "cli_args_files";
1312 combined_args = _cli_args_from_file[0];
1313 }
1314 // Unique set of args from cliArgs() to be provided to each app
1315 else if (cla.size())
1316 combined_args = cla[local_app + _first_local_app];
1317 // Unique set of args from "cli_args_files" to be provided to all apps
1318 else
1319 {
1320 cli_args_param = "cli_args_files";
1321 combined_args = _cli_args_from_file[local_app + _first_local_app];
1322 }
1323
1324 // Remove all of the beginning and end whitespace so we can recognize truly empty
1325 combined_args = MooseUtils::trim(combined_args);
1326
1327 // MooseUtils::split will return a single empty entry if there is nothing,
1328 // so exit early if we have nothing
1329 if (combined_args.empty())
1330 return {};
1331
1332 // Split the argument into a vector of arguments, and make sure
1333 // that we don't have any empty arguments
1334 const auto args = MooseUtils::split(combined_args, ";");
1335 for (const auto & arg : args)
1336 {
1337 if (arg.empty())
1338 {
1339 const auto error = "An empty MultiApp command line argument was provided. Your "
1340 "combined command line string has a ';' with no argument after it.";
1341 if (cli_args_param)
1342 paramError(*cli_args_param, error);
1343 else
1344 mooseError(error);
1345 }
1346 }
1347
1348 return args;
1349}
std::vector< std::string > split(const std::string &str, const std::string &delimiter, std::size_t max_count)
std::string trim(const std::string &str, const std::string &white_space=" \t\n\v\f\r")
Standard scripting language trim function.

Referenced by createApp().

◆ getDataFileName()

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

Deprecated method.

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

Definition at line 21 of file DataFileInterface.C.

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

◆ getDataFileNameByName()

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

Deprecated method.

Use getDataFilePath() instead.

Definition at line 31 of file DataFileInterface.C.

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

◆ getDataFilePath()

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

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

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

Definition at line 40 of file DataFileInterface.C.

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

Referenced by DataFileInterface::getDataFileNameByName().

◆ getExecuteOnEnum()

const ExecFlagEnum & SetupInterface::getExecuteOnEnum ( ) const
inherited

◆ getExecutioner()

Executioner * MultiApp::getExecutioner ( unsigned int  app)
virtual
Parameters
appThe global app number to get the Executioner for
Returns
The Executioner associated with that App.

Definition at line 725 of file MultiApp.C.

726{
727 if (!_has_an_app)
728 mooseError("No app for ", name(), " on processor ", _orig_rank);
729
730 return _apps[globalAppToLocal(app)]->getExecutioner();
731}

Referenced by restore().

◆ 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

◆ getMooseApp()

MooseApp & MooseBase::getMooseApp ( ) const
inlineinherited

Get the MooseApp this class is associated with.

Definition at line 87 of file MooseBase.h.

87{ return _app; }

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

◆ getMultiAppName()

std::string MultiApp::getMultiAppName ( const std::string &  base_name,
dof_id_type  index,
dof_id_type  total 
)
staticprotected

Helper for constructing the name of the multiapp.

Parameters
base_nameThe base name of the multiapp, usually name()
indexThe index of the app
totalThe total number of apps, which is used to pad the name with zeros
Returns
std::string The name of the multiapp

Definition at line 1525 of file MultiApp.C.

1526{
1527 std::ostringstream multiapp_name;
1528 multiapp_name << base_name << std::setw(std::ceil(std::log10(total))) << std::setprecision(0)
1529 << std::setfill('0') << std::right << index;
1530 return multiapp_name.str();
1531}

Referenced by createApp(), and setAppOutputFileBase().

◆ getParam() [1/2]

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

Retrieve a parameter for the object.

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

Definition at line 406 of file MooseBase.h.

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

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

◆ getParam() [2/2]

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

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

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

Definition at line 443 of file MooseBase.h.

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

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

◆ getRestartableData()

template<typename T , typename... Args>
const T & Restartable::getRestartableData ( const std::string &  data_name) const
protectedinherited

Declare a piece of data as "restartable" and initialize it Similar to declareRestartableData but returns a const reference to the object.

Forwarded arguments are not allowed in this case because we assume that the object is restarted and we won't need different constructors to initialize it.

NOTE: This returns a const reference! Make sure you store it in a const reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)

Definition at line 294 of file Restartable.h.

295{
296 return declareRestartableDataHelper<T>(data_name, nullptr).get();
297}

◆ getSharedPtr() [1/2]

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

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

Wrapper around shared_from_this().

Definition at line 70 of file MooseObject.C.

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

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

◆ getSharedPtr() [2/2]

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

Definition at line 83 of file MooseObject.C.

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

◆ globalAppToLocal()

unsigned int MultiApp::globalAppToLocal ( unsigned int  global_app)
protected

Map a global App number to the local number.

Note: This will error if given a global number that doesn't map to a local number.

Parameters
global_appThe global app number.
Returns
The local app number.

Definition at line 1472 of file MultiApp.C.

1473{
1474 if (global_app >= _first_local_app && global_app <= _first_local_app + (_my_num_apps - 1))
1475 return global_app - _first_local_app;
1476
1477 std::stringstream ss;
1478 ss << "Requesting app " << global_app << ", but processor " << processor_id() << " ";
1479 if (_my_num_apps == 0)
1480 ss << "does not own any apps";
1481 else if (_my_num_apps == 1)
1482 ss << "owns app " << _first_local_app;
1483 else
1484 ss << "owns apps " << _first_local_app << "-" << _first_local_app + (_my_num_apps - 1);
1485 ss << ".";
1486 mooseError("Invalid global_app!\n", ss.str());
1487 return 0;
1488}

Referenced by appProblem(), appProblemBase(), createApps(), getBoundingBox(), getExecutioner(), moveApp(), TransientMultiApp::resetApp(), and resetApp().

◆ hasApp()

bool MultiApp::hasApp ( )
inline

Whether or not this MultiApp has an app on this processor.

Definition at line 298 of file MultiApp.h.

298{ return _has_an_app; }

◆ 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

◆ hasLocalApp()

bool MultiApp::hasLocalApp ( unsigned int  global_app) const

Whether or not the given global app number is on this processor.

Parameters
global_appThe global app number in question
Returns
True if the global app is on this processor

Definition at line 1070 of file MultiApp.C.

1071{
1072 if (_has_an_app && global_app >= _first_local_app &&
1073 global_app <= _first_local_app + (_my_num_apps - 1))
1074 return true;
1075
1076 return false;
1077}

Referenced by createApps(), moveApp(), TransientMultiApp::resetApp(), and resetApp().

◆ incrementTStep()

virtual void MultiApp::incrementTStep ( Real  )
inlinevirtual

Advances the multi-apps time step which is important for dt selection.

(Note this does not advance the time. That is done in Transient::endStep, which is called either directly from solveStep() for loose coupling cases or through finishStep() for Picard coupling cases)

Reimplemented in TransientMultiApp.

Definition at line 178 of file MultiApp.h.

178{}

◆ init() [1/2]

void MultiApp::init ( unsigned int  num_apps,
bool  batch_mode = false 
)
protected

Build communicators and reserve backups.

Definition at line 339 of file MultiApp.C.

340{
341 auto config = rankConfig(
343 init(num_apps, config);
344}
LocalRankConfig rankConfig(processor_id_type rank, processor_id_type nprocs, dof_id_type napps, processor_id_type min_app_procs, processor_id_type max_app_procs, bool batch_mode=false)
Returns app partitioning information relevant to the given rank for a multiapp scenario with the give...
Definition MultiApp.C:1352
void init(unsigned int num_apps, bool batch_mode=false)
Build communicators and reserve backups.
Definition MultiApp.C:339
processor_id_type n_processors() const

Referenced by init(), and setupPositions().

◆ init() [2/2]

void MultiApp::init ( unsigned int  num_apps,
const LocalRankConfig config 
)
protected

Same as other init method, except defining a custom rank configuration.

Definition at line 347 of file MultiApp.C.

348{
349 TIME_SECTION(_init_timer);
350
351 _total_num_apps = num_apps;
352 _rank_config = config;
353 buildComm();
355
356 _has_bounding_box.resize(_my_num_apps, false);
357 _reset_happened.resize(_reset_times.size(), false);
359
360 if ((_cli_args.size() > 1) && (_total_num_apps != _cli_args.size()))
361 paramError("cli_args",
362 "The number of items supplied must be 1 or equal to the number of sub apps.");
363
364 // if cliArgs() != _cli_args, then cliArgs() was overridden and we need to check it
365 auto cla = cliArgs();
366 if (cla != std::vector<std::string>(_cli_args.begin(), _cli_args.end()))
367 {
368 if ((cla.size() > 1) && (_total_num_apps != cla.size()))
369 mooseError("The number of items supplied as command line argument to subapps must be 1 or "
370 "equal to the number of sub apps. Note: you use a multiapp that provides its own "
371 "command line parameters so the error is not in cli_args");
372 }
373}
void buildComm()
Create an MPI communicator suitable for each app.
Definition MultiApp.C:1430

◆ initialSetup()

void MultiApp::initialSetup ( )
overridevirtual

Method to be called in main-app initial setup for create sub-apps if using positions is false.

Reimplemented from SetupInterface.

Reimplemented in FullSolveMultiApp, and TransientMultiApp.

Definition at line 437 of file MultiApp.C.

438{
439 if (!_use_positions)
440 // if not using positions, we create the sub-apps in initialSetup instead of right after
441 // construction of MultiApp
442 createApps();
443}
void createApps()
Create the provided number of apps.
Definition MultiApp.C:387

Referenced by FullSolveMultiApp::initialSetup(), and TransientMultiApp::initialSetup().

◆ isFirstLocalRank()

bool MultiApp::isFirstLocalRank ( ) const
Returns
Whether this rank is the first rank of the subapp(s) it's involved in

Definition at line 1064 of file MultiApp.C.

1065{
1067}
bool is_first_local_rank
This is true if this rank is the primary/zero rank for a (sub)app slot.
Definition MultiApp.h:71

◆ isKokkosObject()

bool MooseObject::isKokkosObject ( ) const
inlineinherited

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

Definition at line 63 of file MooseObject.h.

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

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

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

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

◆ isParamValid()

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

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 199 of file MooseBase.h.

199{ return _pars.isParamValid(name); }

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

◆ isRootProcessor()

bool MultiApp::isRootProcessor ( )
inline

Whether or not this processor is the "root" processor for the sub communicator.

The "root" processor has rank 0 in the sub communicator

Definition at line 358 of file MultiApp.h.

358{ return _my_rank == 0; }

◆ jacobianSetup()

void SetupInterface::jacobianSetup ( )
virtualinherited

◆ keepSolutionDuringRestore()

void MultiApp::keepSolutionDuringRestore ( bool  keep_solution_during_restore)
protected

Preserve the solution from the previous simulation, and it is used as an initial guess for the next run.

Definition at line 892 of file MultiApp.C.

893{
894 if (_pars.isParamSetByUser("keep_solution_during_restore"))
895 paramError("keep_solution_during_restore",
896 "This parameter should only be provided in parent app");
897
898 _keep_solution_during_restore = keep_solution_during_restore;
899}

◆ localApp()

MooseApp * MultiApp::localApp ( unsigned int  local_app)

Get the local MooseApp object.

Parameters
local_appThe local app number

Definition at line 1080 of file MultiApp.C.

1081{
1082 mooseAssert(local_app < _apps.size(), "Index out of range: " + Moose::stringify(local_app));
1083 return _apps[local_app].get();
1084}
std::string stringify(const T &t)
conversion to string
Definition Conversion.h:64

◆ messagePrefix() [1/2]

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

Definition at line 256 of file MooseBase.h.

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

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

◆ messagePrefix() [2/2]

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

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

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

Definition at line 140 of file MooseBase.C.

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

◆ mooseDeprecated() [1/2]

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

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

Definition at line 317 of file MooseBase.h.

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

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

◆ mooseDeprecated() [2/2]

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

◆ mooseDeprecatedNoTrace()

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

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

Definition at line 327 of file MooseBase.h.

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

◆ mooseDocumentedError()

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

Definition at line 277 of file MooseBase.h.

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

Referenced by ManifoldSubdomainGenerator::ManifoldSubdomainGenerator().

◆ mooseError()

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

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

Definition at line 271 of file MooseBase.h.

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

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

◆ mooseErrorNonPrefixed()

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

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

Definition at line 290 of file MooseBase.h.

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

◆ mooseInfo()

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

◆ mooseWarning() [1/2]

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

Emits a warning prefixed with object name and type.

Definition at line 299 of file MooseBase.h.

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

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

◆ mooseWarning() [2/2]

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

Definition at line 73 of file SolutionInvalidInterface.h.

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

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

◆ mooseWarningNonPrefixed() [1/2]

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

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

Definition at line 308 of file MooseBase.h.

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

◆ mooseWarningNonPrefixed() [2/2]

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

Definition at line 80 of file SolutionInvalidInterface.h.

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

◆ moveApp()

void MultiApp::moveApp ( unsigned int  global_app,
Point  p 
)
virtual

Move the global_app to Point p.

Parameters
global_appThe global app number in question
pThe new position of the App.

Definition at line 1108 of file MultiApp.C.

1109{
1110 if (_use_positions)
1111 {
1112 _positions[global_app] = p;
1113
1114 if (hasLocalApp(global_app))
1115 {
1116 unsigned int local_app = globalAppToLocal(global_app);
1117
1119 _apps[local_app]->setOutputPosition(p);
1120 if (_run_in_position)
1121 paramError("run_in_position", "Moving apps and running apps in position is not supported");
1122 }
1123 }
1124}

Referenced by preTransfer().

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

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

◆ needsRestoration()

bool MultiApp::needsRestoration ( )
inline

Whether or not this MultiApp should be restored at the beginning of each Picard iteration.

Definition at line 210 of file MultiApp.h.

210{ return !_no_restore; }

Referenced by restore().

◆ numGlobalApps()

unsigned int MultiApp::numGlobalApps ( ) const
inline
Returns
Number of Global Apps in this MultiApp

Definition at line 278 of file MultiApp.h.

278{ return _total_num_apps; }

◆ numLocalApps()

unsigned int MultiApp::numLocalApps ( )
inline
Returns
Number of Apps on local processor.

Definition at line 283 of file MultiApp.h.

283{ return _apps.size(); }

◆ paramError()

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

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

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

Definition at line 457 of file MooseBase.h.

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

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

◆ parameters()

const InputParameters & MooseBase::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 131 of file MooseBase.h.

131{ return _pars; }

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

◆ paramInfo()

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

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

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

Definition at line 471 of file MooseBase.h.

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

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

◆ paramWarning() [1/2]

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

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

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

Definition at line 464 of file MooseBase.h.

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

◆ paramWarning() [2/2]

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

◆ parentOutputPositionChanged()

void MultiApp::parentOutputPositionChanged ( )
virtual

For apps outputting in position we need to change their output positions if their parent app moves.

Definition at line 1127 of file MultiApp.C.

1128{
1130 for (unsigned int i = 0; i < _apps.size(); i++)
1131 _apps[i]->setOutputPosition(_app.getOutputPosition() + _positions[_first_local_app + i]);
1132}

◆ perfGraph()

PerfGraph & PerfGraphInterface::perfGraph ( )
inherited

Get the PerfGraph.

Definition at line 86 of file PerfGraphInterface.C.

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

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

◆ position()

const Point & MultiApp::position ( unsigned int  app) const

The physical position of a global App number.

Parameters
appThe global app number you want the position for.
Returns
the position

Definition at line 1534 of file MultiApp.C.

1535{
1536 // If we're not using positions, it won't have changed
1537 if (_positions_objs.empty())
1538 return _positions[app];
1539 else
1540 // Find which Positions object is specifying it, and query a potentially updated value
1541 return _positions_objs[app]->getPosition(app - _positions_index_offsets[app], false);
1542}

Referenced by getBoundingBox().

◆ postExecute()

void MultiApp::postExecute ( )
virtual

Method called at the end of the simulation (after finalize).

Reimplemented in FullSolveMultiApp.

Definition at line 747 of file MultiApp.C.

748{
749 for (const auto & app_ptr : _apps)
750 {
751 auto * executioner = app_ptr->getExecutioner();
752 mooseAssert(executioner, "Executioner is nullptr");
753
754 executioner->postExecute();
755 }
756}

◆ preExecute()

virtual void MultiApp::preExecute ( )
inlinevirtual

Definition at line 122 of file MultiApp.h.

122{}

◆ preRunInputFile()

void MultiApp::preRunInputFile ( )
protectedvirtual

call back executed right before app->runInputFile()

Definition at line 1491 of file MultiApp.C.

1492{
1493}

Referenced by createApp().

◆ preTransfer()

void MultiApp::preTransfer ( Real  dt,
Real  target_time 
)
virtual

Gets called just before transfers are done to the MultiApp (Which is just before the MultiApp is solved).

Definition at line 657 of file MultiApp.C.

658{
659 // Get a transient executioner to get a user-set tolerance
660 Real timestep_tol = 1e-13;
661 if (dynamic_cast<TransientBase *>(_fe_problem.getMooseApp().getExecutioner()))
662 timestep_tol =
663 dynamic_cast<TransientBase *>(_fe_problem.getMooseApp().getExecutioner())->timestepTol();
664
665 // Determination on whether we need to backup the app due to changes below
666 bool backup_apps = false;
667
668 // First, see if any Apps need to be reset
669 for (unsigned int i = 0; i < _reset_times.size(); i++)
670 {
671 if (!_reset_happened[i] && (target_time + timestep_tol >= _reset_times[i]))
672 {
673 _reset_happened[i] = true;
674 if (_reset_apps.size() > 0)
675 for (auto & app : _reset_apps)
676 resetApp(app);
677
678 // If we reset an application, then we delete the old objects, including the coordinate
679 // transformation classes. Consequently we need to reset the coordinate transformation classes
680 // in the associated transfer classes
681 for (auto * const transfer : _associated_transfers)
682 transfer->getAppInfo();
683
684 // Similarly we need to transform the mesh again
686 for (const auto i : make_range(_my_num_apps))
687 {
688 auto app_ptr = _apps[i];
689 if (usingPositions())
690 app_ptr->getExecutioner()->feProblem().coordTransform().transformMesh(
691 app_ptr->getExecutioner()->feProblem().mesh(), _positions[_first_local_app + i]);
692 else
693 app_ptr->getExecutioner()->feProblem().coordTransform().transformMesh(
694 app_ptr->getExecutioner()->feProblem().mesh(), Point(0, 0, 0));
695 }
696
697 // If the time step covers multiple reset times, set them all as having 'happened'
698 for (unsigned int j = i; j < _reset_times.size(); j++)
699 if (target_time + timestep_tol >= _reset_times[j])
700 _reset_happened[j] = true;
701
702 // Backup in case the next solve fails
703 backup_apps = true;
704
705 break;
706 }
707 }
708
709 // Now move any apps that should be moved
710 if (_use_positions && !_move_happened && target_time + timestep_tol >= _move_time)
711 {
712 _move_happened = true;
713 for (unsigned int i = 0; i < _move_apps.size(); i++)
715
716 // Backup in case the next solve fails
717 backup_apps = true;
718 }
719
720 if (backup_apps)
721 backup();
722}
FEProblemBase & feProblem()
Return a reference to this Executioner's FEProblemBase instance.
MooseAppCoordTransform & coordTransform()
void transformMesh(MooseMesh &mesh, const libMesh::Point &translation)
Transforms the entire mesh with the coordinate transform This can be done to output in position,...
Executioner * getExecutioner() const
Retrieve the Executioner for this App.
Definition MooseApp.C:2015
virtual void resetApp(unsigned int global_app, Real time=0.0)
"Reset" the App corresponding to the global App number passed in.
Definition MultiApp.C:1087
virtual void moveApp(unsigned int global_app, Point p)
Move the global_app to Point p.
Definition MultiApp.C:1108
Base class for transient executioners that use a FixedPointSolve solve object for multiapp-main app i...
IntRange< T > make_range(T beg, T end)

◆ problemBase()

FEProblemBase & MultiApp::problemBase ( )
inline

Get the FEProblemBase this MultiApp is part of.

Definition at line 237 of file MultiApp.h.

237{ return _fe_problem; }

◆ propagateRecoverToSubApps()

virtual bool MultiApp::propagateRecoverToSubApps ( ) const
inlineprotectedvirtual

Whether or not to propagate the parent's recover state (the –recover and –test-checkpoint-half-transient flags) to sub-applications.

Returns true for all MultiApps except FullSolveMultiApp and its derived classes. FullSolveMultiApp always performs a complete fresh solve on every execution and must never recover its sub-apps from a checkpoint. Note that restart propagation (setRestart) is deliberately not gated here because a FullSolveMultiApp sub-app may legitimately be restarted from a user-specified restart file.

Reimplemented in FullSolveMultiApp.

Definition at line 421 of file MultiApp.h.

421{ return true; }

Referenced by createApp().

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

◆ readCommandLineArguments()

void MultiApp::readCommandLineArguments ( )
protected

Fill command line arguments for sub apps.

Definition at line 446 of file MultiApp.C.

447{
448 if (isParamValid("cli_args_files"))
449 {
450 _cli_args_from_file.clear();
451
452 std::vector<FileName> cli_args_files = getParam<std::vector<FileName>>("cli_args_files");
453 std::vector<FileName> input_files = getParam<std::vector<FileName>>("input_files");
454
455 // If we use parameter "cli_args_files", at least one file should be provided
456 if (!cli_args_files.size())
457 paramError("cli_args_files", "You need to provide at least one commandLine argument file ");
458
459 // If we multiple input files, then we need to check if the number of input files
460 // match with the number of argument files
461 if (cli_args_files.size() != 1 && cli_args_files.size() != input_files.size())
462 paramError("cli_args_files",
463 "The number of commandLine argument files ",
464 cli_args_files.size(),
465 " for MultiApp ",
466 name(),
467 " must either be only one or match the number of input files ",
468 input_files.size());
469
470 // Go through all argument files
471 std::vector<std::string> cli_args;
472 for (unsigned int p_file_it = 0; p_file_it < cli_args_files.size(); p_file_it++)
473 {
474 std::string cli_args_file = cli_args_files[p_file_it];
475 // Clear up
476 cli_args.clear();
477 // Read the file on the root processor then broadcast it
478 if (processor_id() == 0)
479 {
480 MooseUtils::checkFileReadable(cli_args_file);
481
482 std::ifstream is(cli_args_file.c_str());
483 // Read by line rather than space separated like the cli_args parameter
484 std::string line;
485 while (std::getline(is, line))
486 cli_args.push_back(line);
487
488 // We do not allow empty files
489 if (!cli_args.size())
490 paramError("cli_args_files",
491 "There is no commandLine argument in the commandLine argument file ",
492 cli_args_file);
493
494 // If we have position files, we need to
495 // make sure the number of commandLine argument strings
496 // match with the number of positions
497 if (_npositions_inputfile.size())
498 {
499 auto num_positions = _npositions_inputfile[p_file_it];
500 // Check if the number of commandLine argument strings equal to
501 // the number of positions
502 if (cli_args.size() == 1)
503 for (MooseIndex(num_positions) num = 0; num < num_positions; num++)
504 _cli_args_from_file.push_back(cli_args.front());
505 else if (cli_args.size() == num_positions)
506 for (auto && cli_arg : cli_args)
507 _cli_args_from_file.push_back(cli_arg);
508 else if (cli_args.size() != num_positions)
509 paramError("cli_args_files",
510 "The number of commandLine argument strings ",
511 cli_args.size(),
512 " in the file ",
513 cli_args_file,
514 " must either be only one or match the number of positions ",
515 num_positions);
516 }
517 else
518 {
519 // If we do not have position files, we will check if the number of
520 // commandLine argument strings match with the total number of subapps
521 for (auto && cli_arg : cli_args)
522 _cli_args_from_file.push_back(cli_arg);
523 }
524 }
525 }
526
527 // Broad cast all arguments to everyone
529 }
530
531 if (_cli_args_from_file.size() && _cli_args_from_file.size() != 1 &&
533 mooseError(" The number of commandLine argument strings ",
534 _cli_args_from_file.size(),
535 " must either be only one or match the total "
536 "number of sub apps ",
538
539 if (_cli_args_from_file.size() && cliArgs().size())
540 mooseError("Cannot set commandLine arguments from both input_file and external files");
541}
void broadcast(T &data, const unsigned int root_id=0, const bool identical_sizes=false) const
bool checkFileReadable(const std::string &filename, bool check_line_endings, bool throw_on_unreadable, bool check_for_git_lfs_pointer)
Definition MooseUtils.C:265
PetscErrorCode PetscInt const PetscInt IS * is

Referenced by createApps().

◆ registerInvalidSolutionInternal()

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

Definition at line 55 of file SolutionInvalidInterface.C.

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

◆ registerRestartableDataOnApp()

RestartableDataValue & Restartable::registerRestartableDataOnApp ( std::unique_ptr< RestartableDataValue data,
THREAD_ID  tid 
) const
privateinherited

Helper function for actually registering the restartable data.

Definition at line 63 of file Restartable.C.

65{
67 std::move(data), tid, _restartable_read_only, _metaname);
68}
RestartableDataValue & registerRestartableData(std::unique_ptr< RestartableDataValue > data, THREAD_ID tid, bool read_only, const RestartableDataMapName &metaname="")
Definition MooseApp.C:2449
const RestartableDataMapName _metaname
Restartable metadata name.
const bool _restartable_read_only
Flag for toggling read only status (see ReporterData)
MooseApp & _restartable_app
Reference to the application.

Referenced by Restartable::declareRestartableDataHelper().

◆ registerRestartableNameWithFilterOnApp()

void Restartable::registerRestartableNameWithFilterOnApp ( const std::string &  name,
Moose::RESTARTABLE_FILTER  filter 
)
privateinherited

Helper function for actually registering the restartable data.

Definition at line 71 of file Restartable.C.

73{
75}
void registerRestartableNameWithFilter(const std::string &name, Moose::RESTARTABLE_FILTER filter)
NOTE: This is an internal function meant for MOOSE use only!
Definition MooseApp.C:1701

Referenced by Restartable::declareRecoverableData().

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

◆ resetApp()

void MultiApp::resetApp ( unsigned int  global_app,
Real  time = 0.0 
)
virtual

"Reset" the App corresponding to the global App number passed in.

"Reset" means that the App will be deleted and recreated. The time for the new App will be set to the current simulation time. This might be handy if some sub-app in your simulation needs to get replaced by a "new" piece of material.

Parameters
global_appThe global app number to reset.
timeThe time to set as the the time for the new app, this should really be the time the old app was at.

Reimplemented in TransientMultiApp.

Definition at line 1087 of file MultiApp.C.

1088{
1089 TIME_SECTION(_reset_timer);
1090
1092
1093 if (hasLocalApp(global_app))
1094 {
1095 unsigned int local_app = globalAppToLocal(global_app);
1096
1097 // Extract the file numbers from the output, so that the numbering is maintained after reset
1098 std::map<std::string, unsigned int> m = _apps[local_app]->getOutputWarehouse().getFileNumbers();
1099
1100 createApp(local_app, time);
1101
1102 // Reset the file numbers of the newly reset apps
1103 _apps[local_app]->getOutputWarehouse().setFileNumbers(m);
1104 }
1105}

Referenced by preTransfer(), and TransientMultiApp::resetApp().

◆ residualSetup()

void SetupInterface::residualSetup ( )
virtualinherited

◆ restartableName()

std::string Restartable::restartableName ( const std::string &  data_name) const
protectedinherited

Gets the name of a piece of restartable data given a data name, adding the system name and object name prefix.

This should only be used in this interface and in testing.

Definition at line 78 of file Restartable.C.

79{
80 return _restartable_system_name + "/" + _restartable_name + "/" + data_name;
81}
const std::string _restartable_system_name
The system name this object is in.

Referenced by Restartable::declareRecoverableData(), and Restartable::declareRestartableDataHelper().

◆ restore()

void MultiApp::restore ( bool  force = true)
virtual

Restore the state of every Sub App.

This allows us to "Restore" this state later If the app is not forced to restore, it is only done as needed (and also for the apps underneath as needed)

Parameters
forceWhether the restoration has to happen no matter what.

Reimplemented in FullSolveMultiApp.

Definition at line 774 of file MultiApp.C.

775{
776 TIME_SECTION(_restore_timer);
777
778 if (force || needsRestoration())
779 {
780 // Must be restarting / recovering from main app so hold off on restoring
781 // Instead - the restore will happen in sub-apps' initialSetup()
782 // Note that _backups was already populated by dataLoad() in the main app
784 return;
785
786 // We temporarily copy and store solutions for all subapps
788 {
790
791 for (unsigned int i = 0; i < _my_num_apps; i++)
792 {
793 _end_solutions[i].resize(_apps[i]->getExecutioner()->feProblem().numSolverSystems());
794 for (unsigned int j = 0; j < _apps[i]->getExecutioner()->feProblem().numSolverSystems();
795 j++)
796 {
797 _end_solutions[i][j] = _apps[i]
798 ->getExecutioner()
799 ->feProblem()
800 .getSolverSystem(/*solver_sys=*/j)
801 .solution()
802 .clone();
803 }
804 auto & sub_multiapps =
805 _apps[i]->getExecutioner()->feProblem().getMultiAppWarehouse().getObjects();
806
807 // multiapps of each subapp should do the same things
808 // It is implemented recursively
809 for (auto & multi_app : sub_multiapps)
811 }
812 }
813
814 // We temporarily copy and store solutions for all subapps
816 {
818
819 for (unsigned int i = 0; i < _my_num_apps; i++)
822 }
823
825 _console << "Restoring MultiApp ... ";
826
827 for (unsigned int i = 0; i < _my_num_apps; i++)
828 {
829 _apps[i]->restore(std::move(_sub_app_backups[i]), false);
830 _sub_app_backups[i] = _apps[i]->finalizeRestore();
831 mooseAssert(_sub_app_backups[i], "Should have a backup");
832 }
833
835 _console << name() << std::endl;
836
837 // Now copy the latest solutions back for each subapp
839 {
840 for (unsigned int i = 0; i < _my_num_apps; i++)
841 {
842 for (unsigned int j = 0; j < _apps[i]->getExecutioner()->feProblem().numSolverSystems();
843 j++)
844 {
845 _apps[i]->getExecutioner()->feProblem().getSolverSystem(/*solver_sys=*/j).solution() =
846 *_end_solutions[i][j];
847
848 // We need to synchronize solution so that local_solution has the right values
849 _apps[i]->getExecutioner()->feProblem().getSolverSystem(/*solver_sys=*/j).update();
850 }
851 }
852
853 _end_solutions.clear();
854 }
855 // Now copy the latest auxiliary solutions back for each subapp
857 {
858 for (unsigned int i = 0; i < _my_num_apps; i++)
859 {
860 _apps[i]->getExecutioner()->feProblem().getAuxiliarySystem().solution() =
862
863 // We need to synchronize solution so that local_solution has the right values
864 _apps[i]->getExecutioner()->feProblem().getAuxiliarySystem().update();
865 }
866
867 _end_aux_solutions.clear();
868 }
869
870 // Make sure the displaced mesh on the multiapp is up-to-date with displacement variables
871 for (const auto & app_ptr : _apps)
872 if (app_ptr->feProblem().getDisplacedProblem())
873 app_ptr->feProblem().getDisplacedProblem()->updateMesh();
874
875 // If we are restoring due to a failed solve, make sure reset the solved state in the sub-apps
876 if (!getMooseApp().getExecutioner()->lastSolveConverged())
877 for (auto & app_ptr : _apps)
878 app_ptr->getExecutioner()->fixedPointSolve().clearFixedPointStatus();
879 }
880 else
881 {
882 for (unsigned int i = 0; i < _my_num_apps; i++)
883 {
884 for (auto & sub_app :
885 _apps[i]->getExecutioner()->feProblem().getMultiAppWarehouse().getObjects())
886 sub_app->restore(false);
887 }
888 }
889}
const ExecFlagType EXEC_INITIAL
Definition Moose.C:30
if(!dmm->_nl) SETERRQ(PETSC_COMM_WORLD
AuxiliarySystem & getAuxiliarySystem()
const ExecFlagType & getCurrentExecuteOnFlag() const
Return/set the current execution flag.
void keepSolutionDuringRestore(bool keep_solution_during_restore)
Preserve the solution from the previous simulation, and it is used as an initial guess for the next r...
Definition MultiApp.C:892
virtual void restore(bool force=true)
Restore the state of every Sub App.
Definition MultiApp.C:774
bool needsRestoration()
Whether or not this MultiApp should be restored at the beginning of each Picard iteration.
Definition MultiApp.h:210
std::vector< std::vector< std::unique_ptr< libMesh::NumericVector< Real > > > > _end_solutions
The solution from the end of the previous solve, this is cloned from the Nonlinear solution during re...
Definition MultiApp.h:621
std::vector< std::unique_ptr< NumericVector< Real > > > _end_aux_solutions
The auxiliary solution from the end of the previous solve, this is cloned from the auxiliary solution...
Definition MultiApp.h:624
virtual Executioner * getExecutioner(unsigned int app)
Definition MultiApp.C:725
NumericVector< Number > & solution()
Definition SystemBase.h:203
virtual std::unique_ptr< NumericVector< T > > clone() const=0

Referenced by dataLoad(), and FullSolveMultiApp::restore().

◆ runningInPosition()

bool MultiApp::runningInPosition ( ) const
inline

Whether or not this MultiApp is being run in position, eg with the coordinate transform already applied.

Definition at line 369 of file MultiApp.h.

369{ return _run_in_position; }

◆ setAppOutputFileBase() [1/2]

void MultiApp::setAppOutputFileBase ( )

Sets all the app's output file bases.

See also
MooseApp::setOutputFileBase for usage

Definition at line 1502 of file MultiApp.C.

1503{
1504 for (unsigned int i = 0; i < _my_num_apps; ++i)
1506}

Referenced by createApp(), and setAppOutputFileBase().

◆ setAppOutputFileBase() [2/2]

void MultiApp::setAppOutputFileBase ( unsigned int  index)
protected

Set the output file base of the application which corresponds to the index passed to the function.

Parameters
indexThe sub-application index

Definition at line 1517 of file MultiApp.C.

1518{
1519 const std::string multiapp_name =
1521 _apps[index]->setOutputFileBase(_app.getOutputFileBase() + "_" + multiapp_name);
1522}
std::string getOutputFileBase(bool for_non_moose_build_output=false) const
Get the output file base name.
Definition MooseApp.C:1532

◆ setupPositions()

void MultiApp::setupPositions ( )

Called just after construction to allow derived classes to set _positions and create sub-apps accordingly.

Definition at line 376 of file MultiApp.C.

377{
378 if (_use_positions)
379 {
381 init(_positions.size());
382 createApps();
383 }
384}
virtual void fillPositions()
must fill in _positions with the positions of the sub-aps
Definition MultiApp.C:544

◆ solveStep()

virtual bool MultiApp::solveStep ( Real  dt,
Real  target_time,
bool  auto_advance = true 
)
pure virtual

Re-solve all of the Apps.

Can be called multiple times to resolve the same timestep if auto_advance=false. Time is not actually advanced until advanceStep() is called.

Note that auto_advance=false might not be compatible with the options for the MultiApp

Returns
Whether or not all of the solves were successful (i.e. all solves made it to the target_time)

Implemented in FullSolveMultiApp, and TransientMultiApp.

◆ subdomainSetup()

void SetupInterface::subdomainSetup ( )
virtualinherited

Gets called when the subdomain changes (i.e.

in a Jacobian or residual loop) and before this object is asked to do its job

Reimplemented in Material, MaterialBase, GeneralUserObject, NodalUserObject, ThreadedGeneralUserObject, Constraint, Moose::Kokkos::AuxKernel, Moose::Kokkos::MaterialBase, and Moose::Kokkos::UserObject.

Definition at line 68 of file SetupInterface.C.

69{
70}

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

◆ timestepSetup()

void SetupInterface::timestepSetup ( )
virtualinherited

◆ transformBoundingBox()

void MultiApp::transformBoundingBox ( libMesh::BoundingBox box,
const MultiAppCoordTransform transform 
)
static

Transform a bounding box according to the transformations in the provided coordinate transformation object.

Definition at line 902 of file MultiApp.C.

903{
904 const Real min_x = box.first(0);
905 const Real max_x = box.second(0);
906 const Real min_y = box.first(1);
907 const Real max_y = box.second(1);
908 const Real min_z = box.first(2);
909 const Real max_z = box.second(2);
910
911 std::array<Point, 8> box_corners = {{Point(min_x, min_y, min_z),
912 Point(max_x, min_y, min_z),
913 Point(min_x, max_y, min_z),
914 Point(max_x, max_y, min_z),
915 Point(min_x, min_y, max_z),
916 Point(max_x, min_y, max_z),
917 Point(min_x, max_y, max_z),
918 Point(max_x, max_y, max_z)}};
919
920 // transform each corner
921 for (auto & corner : box_corners)
922 corner = transform(corner);
923
924 // Create new bounding box
925 Point new_box_min = box_corners[0];
926 Point new_box_max = new_box_min;
927 for (const auto p : make_range(1, 8))
928 for (const auto d : make_range(Moose::dim))
929 {
930 const Point & pt = box_corners[p];
931 if (new_box_min(d) > pt(d))
932 new_box_min(d) = pt(d);
933
934 if (new_box_max(d) < pt(d))
935 new_box_max(d) = pt(d);
936 }
937 box.first = new_box_min;
938 box.second = new_box_max;
939}
for(PetscInt i=0;i< nvars;++i)
unsigned int dim
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...

Referenced by getBoundingBox(), and MultiAppTransfer::transformBoundingBox().

◆ type()

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

Get the type of this class.

Returns
the name of the type of this class

Definition at line 93 of file MooseBase.h.

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

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

◆ typeAndName()

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

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

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

Definition at line 57 of file MooseBase.C.

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

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

◆ uniqueName()

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

Definition at line 69 of file MooseBase.C.

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

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

◆ uniqueParameterName()

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

Definition at line 63 of file MooseBase.C.

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

◆ usingPositions()

bool MultiApp::usingPositions ( ) const
inline

Whether or not this MultiApp is using positions or its own way for constructing sub-apps.

Definition at line 363 of file MultiApp.h.

363{ return _use_positions; }

Referenced by createApp(), and preTransfer().

◆ validParams()

InputParameters MultiApp::validParams ( )
static

Definition at line 51 of file MultiApp.C.

52{
55
56 params.addParam<bool>("use_displaced_mesh",
57 false,
58 "Whether or not this object should use the "
59 "displaced mesh for computation. Note that "
60 "in the case this is true but no "
61 "displacements are provided in the Mesh block "
62 "the undisplaced mesh will still be used.");
63
64 std::ostringstream app_types_strings;
65 for (const auto & name_bi_pair : AppFactory::instance().registeredObjects())
66 app_types_strings << name_bi_pair.first << " ";
67 MooseEnum app_types_options(app_types_strings.str(), "", true);
68
69 // Dynamic loading
70 params.addParam<MooseEnum>("app_type",
71 app_types_options,
72 "The type of application to build (applications not "
73 "registered can be loaded with dynamic libraries. Parent "
74 "application type will be used if not provided.");
75 params.addParam<std::string>("library_path",
76 "",
77 "Path to search for dynamic libraries (please "
78 "avoid committing absolute paths in addition to "
79 "MOOSE_LIBRARY_PATH)");
80 params.addParam<std::string>(
81 "library_name",
82 "",
83 "The file name of the library (*.la file) that will be dynamically loaded.");
84 params.addParam<bool>("library_load_dependencies",
85 false,
86 "Tells MOOSE to manually load library dependencies. This should not be "
87 "necessary and is here for debugging/troubleshooting.");
88
89 // Subapp positions
90 params.addParam<std::vector<Point>>(
91 "positions",
92 "The positions of the App locations. Each set of 3 values will represent a "
93 "Point. This and 'positions_file' cannot be both supplied. If this and "
94 "'positions_file'/'_objects' are not supplied, a single position (0,0,0) will be used");
95 params.addParam<std::vector<FileName>>("positions_file",
96 "Filename(s) that should be looked in for positions. Each"
97 " set of 3 values in that file will represent a Point. "
98 "This and 'positions(_objects)' cannot be both supplied");
99 params.addParam<std::vector<PositionsName>>("positions_objects",
100 "The name of a Positions object that will contain "
101 "the locations of the sub-apps created. This and "
102 "'positions(_file)' cannot be both supplied");
103 params.addParam<bool>(
104 "output_in_position",
105 false,
106 "If true this will cause the output from the MultiApp to be 'moved' by its position vector");
107 params.addParam<bool>(
108 "run_in_position",
109 false,
110 "If true this will cause the mesh from the MultiApp to be 'moved' by its position vector");
111
112 params.addRequiredParam<std::vector<FileName>>(
113 "input_files",
114 "The input file for each App. If this parameter only contains one input file "
115 "it will be used for all of the Apps. When using 'positions_from_file' it is "
116 "also admissable to provide one input_file per file.");
117 params.addParam<Real>("bounding_box_inflation",
118 0.01,
119 "Relative amount to 'inflate' the bounding box of this MultiApp.");
120 params.addParam<Point>("bounding_box_padding",
122 "Additional padding added to the dimensions of the bounding box. The "
123 "values are added to the x, y and z dimension respectively.");
124
125 params.addPrivateParam<MPI_Comm>("_mpi_comm");
126
127 // Set the default execution time
128 params.set<ExecFlagEnum>("execute_on", true) = EXEC_TIMESTEP_BEGIN;
129 // Add the POST_ADAPTIVITY execution flag.
130#ifdef LIBMESH_ENABLE_AMR
131 ExecFlagEnum & exec_enum = params.set<ExecFlagEnum>("execute_on");
133 params.setDocString("execute_on", exec_enum.getDocString());
134#endif
135
136 params.addParam<processor_id_type>("max_procs_per_app",
137 std::numeric_limits<processor_id_type>::max(),
138 "Maximum number of processors to give to each App in this "
139 "MultiApp. Useful for restricting small solves to just a few "
140 "procs so they don't get spread out");
141 params.addParam<processor_id_type>("min_procs_per_app",
142 1,
143 "Minimum number of processors to give to each App in this "
144 "MultiApp. Useful for larger, distributed mesh solves.");
145 params.addParam<bool>(
146 "wait_for_first_app_init",
147 false,
148 "Create the first sub-application on rank 0, then MPI_Barrier before "
149 "creating the next N-1 apps (on all ranks). "
150 "This is only needed if your sub-application needs to perform some setup "
151 "actions in quiet, without other sub-applications working at the same time.");
152
153 params.addParam<Real>("global_time_offset",
154 0,
155 "The time offset relative to the parent application for the purpose of "
156 "starting a subapp at a different time from the parent application. The "
157 "global time will be ahead by the offset specified here.");
158
159 // Resetting subapps
160 params.addParam<std::vector<Real>>(
161 "reset_time",
162 {},
163 "The time(s) at which to reset Apps given by the 'reset_apps' parameter. "
164 "Resetting an App means that it is destroyed and recreated, possibly "
165 "modeling the insertion of 'new' material for that app.");
166 params.addParam<std::vector<unsigned int>>(
167 "reset_apps",
168 {},
169 "The Apps that will be reset when 'reset_time' is hit. These are the App "
170 "'numbers' starting with 0 corresponding to the order of the App positions. "
171 "Resetting an App means that it is destroyed and recreated, possibly modeling "
172 "the insertion of 'new' material for that app.");
173
174 // Moving subapps
175 params.addParam<Real>(
176 "move_time",
177 std::numeric_limits<Real>::max(),
178 "The time at which Apps designated by move_apps are moved to move_positions.");
179
180 params.addParam<std::vector<unsigned int>>(
181 "move_apps",
182 {},
183 "Apps, designated by their 'numbers' starting with 0 corresponding to the order "
184 "of the App positions, to be moved at move_time to move_positions");
185 params.addParam<std::vector<Point>>(
186 "move_positions", {}, "The positions corresponding to each move_app.");
187
188 params.addParam<std::vector<CLIArgString>>(
189 "cli_args",
190 {},
191 "Additional command line arguments to pass to the sub apps. If one set is provided the "
192 "arguments are applied to all, otherwise there must be a set for each sub app.");
193
194 params.addParam<std::vector<FileName>>(
195 "cli_args_files",
196 "File names that should be looked in for additional command line arguments "
197 "to pass to the sub apps. Each line of a file is set to each sub app. If only "
198 "one line is provided, it will be applied to all sub apps.");
199
200 // Fixed point iterations
201 params.addRangeCheckedParam<Real>("relaxation_factor",
202 1.0,
203 "relaxation_factor>0 & relaxation_factor<2",
204 "Fraction of newly computed value to keep."
205 "Set between 0 and 2.");
206 params.addDeprecatedParam<std::vector<std::string>>(
207 "relaxed_variables",
208 {},
209 "Use transformed_variables.",
210 "List of subapp variables to relax during Multiapp coupling iterations");
211 params.addParam<std::vector<std::string>>(
212 "transformed_variables",
213 {},
214 "List of subapp variables to use coupling algorithm on during Multiapp coupling iterations");
215 params.addParam<std::vector<PostprocessorName>>(
216 "transformed_postprocessors",
217 {},
218 "List of subapp postprocessors to use coupling "
219 "algorithm on during Multiapp coupling iterations");
220 params.addParam<bool>("keep_solution_during_restore",
221 false,
222 "This is useful when doing MultiApp coupling iterations. It takes the "
223 "final solution from the previous coupling iteration"
224 "and re-uses it as the initial guess for the next coupling iteration");
225 params.addParam<bool>("keep_aux_solution_during_restore",
226 false,
227 "This is useful when doing MultiApp coupling iterations. It takes the "
228 "final auxiliary solution from the previous coupling iteration"
229 "and re-uses it as the initial guess for the next coupling iteration");
230 params.addParam<bool>(
231 "no_restore",
232 false,
233 "True to turn off restore for this multiapp. This is useful when doing steady-state "
234 "Picard iterations where we want to use the solution of previous Picard iteration as the "
235 "initial guess of the current Picard iteration.");
236 params.addParam<unsigned int>(
237 "max_multiapp_level",
238 10,
239 "Integer set by user that will stop the simulation if the multiapp level "
240 "exceeds it. Useful for preventing infinite loops with multiapp simulations");
241
242 params.addDeprecatedParam<bool>("clone_master_mesh",
243 false,
244 "True to clone parent app mesh and use it for this MultiApp.",
245 "clone_master_mesh is deprecated, use clone_parent_mesh instead");
246 params.addParam<bool>(
247 "clone_parent_mesh", false, "True to clone parent app mesh and use it for this MultiApp.");
248
249 params.addPrivateParam<bool>("use_positions", true);
250 params.declareControllable("enable");
251 params.declareControllable("cli_args", {EXEC_PRE_MULTIAPP_SETUP});
252 params.registerBase("MultiApp");
253
254 params.addParamNamesToGroup("use_displaced_mesh wait_for_first_app_init max_multiapp_level",
255 "Advanced");
256 params.addParamNamesToGroup("positions positions_file positions_objects run_in_position "
257 "output_in_position",
258 "Positions / transformations of the MultiApp frame of reference");
259 params.addParamNamesToGroup("min_procs_per_app max_procs_per_app", "Parallelism");
260 params.addParamNamesToGroup("reset_time reset_apps", "Reset MultiApp");
261 params.addParamNamesToGroup("move_time move_apps move_positions", "Timed move of MultiApps");
262 params.addParamNamesToGroup("relaxation_factor transformed_variables transformed_postprocessors "
263 "keep_solution_during_restore keep_aux_solution_during_restore "
264 "no_restore",
265 "Fixed point iteration");
266 params.addParamNamesToGroup("library_name library_path library_load_dependencies",
267 "Dynamic loading");
268 params.addParamNamesToGroup("cli_args cli_args_files", "Passing command line argument");
269 return params;
270}
const ExecFlagType EXEC_PRE_MULTIAPP_SETUP
Definition Moose.C:56
const ExecFlagType EXEC_TIMESTEP_BEGIN
Definition Moose.C:37
const ExecFlagType EXEC_POST_ADAPTIVITY
Definition Moose.C:60
Generic AppFactory class for building Application objects.
Definition AppFactory.h:55
A MultiMooseEnum object to hold "execute_on" flags.
void addAvailableFlags(const ExecFlagType &flag, Args... flags)
Add additional execute_on flags to the list of possible flags.
void declareControllable(const std::string &name, std::set< ExecFlagType > execute_flags={})
Declare the given parameters as controllable.
void addParamNamesToGroup(const std::string &space_delim_names, const std::string group_name)
This method takes a space delimited list of parameter names and adds them to the specified group name...
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object.
void addRequiredParam(const std::string &name, const std::string &doc_string)
This method adds a parameter and documentation string to the InputParameters object that will be extr...
void addDeprecatedParam(const std::string &name, const T &value, const std::string &doc_string, const std::string &deprecation_message)
void setDocString(const std::string &name, const std::string &doc)
Set the doc string of a parameter.
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 addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55
static InputParameters validParams()
Definition MooseObject.C:25
static InputParameters validParams()
VectorValue< Real > RealVectorValue
Definition SubProblem.h:34

Referenced by FullSolveMultiApp::validParams(), and TransientMultiApp::validParams().

Member Data Documentation

◆ _action_factory

ActionFactory& ParallelParamObject::_action_factory
protectedinherited

◆ _app

MooseApp& MooseBase::_app
protectedinherited

The MOOSE application this is associated with.

Definition at line 375 of file MooseBase.h.

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

◆ _app_type

std::string MultiApp::_app_type
protected

The type of application to build.

Definition at line 498 of file MultiApp.h.

Referenced by createApp(), and createApps().

◆ _apps

std::vector<std::shared_ptr<MooseApp> > MultiApp::_apps
protected

◆ _associated_transfers

std::vector<MultiAppTransfer *> MultiApp::_associated_transfers
protected

Transfers associated with this multiapp.

Definition at line 630 of file MultiApp.h.

Referenced by addAssociatedTransfer(), and preTransfer().

◆ _backup_timer

const PerfID MultiApp::_backup_timer
protected

Definition at line 641 of file MultiApp.h.

Referenced by backup().

◆ _bounding_box

std::vector<libMesh::BoundingBox> MultiApp::_bounding_box
protected

This multi-app's bounding box.

Definition at line 560 of file MultiApp.h.

Referenced by getBoundingBox(), and init().

◆ _bounding_box_padding

Point MultiApp::_bounding_box_padding
protected

Additional padding added to the bounding box, useful for 1D meshes.

Definition at line 566 of file MultiApp.h.

Referenced by getBoundingBox().

◆ _cli_args

const std::vector<CLIArgString>& MultiApp::_cli_args
protected

CommandLine arguments (controllable!)

Definition at line 605 of file MultiApp.h.

Referenced by cliArgs(), and init().

◆ _cli_args_from_file

std::vector<std::string> MultiApp::_cli_args_from_file
protected

CommandLine arguments from files.

Definition at line 608 of file MultiApp.h.

Referenced by createApp(), getCommandLineArgs(), and readCommandLineArguments().

◆ _cli_args_param

std::optional<std::string> MultiApp::_cli_args_param
mutableprivate

The parameter that was used to set the command line args, if any.

Definition at line 647 of file MultiApp.h.

Referenced by cliArgs(), and getCommandLineArgs().

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

◆ _current_execute_flag

const ExecFlagType& SetupInterface::_current_execute_flag
protectedinherited

Reference to FEProblemBase.

Definition at line 86 of file SetupInterface.h.

Referenced by PseudoTimestep::execute().

◆ _empty_execute_enum

ExecFlagEnum SetupInterface::_empty_execute_enum
privateinherited

Empty ExecFlagEnum for the case when the "execute_on" parameter is not included.

This is private because others should not be messing with it.

Definition at line 79 of file SetupInterface.h.

Referenced by SetupInterface::SetupInterface().

◆ _enabled

const bool& MooseObject::_enabled
protectedinherited

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

Definition at line 71 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _end_aux_solutions

std::vector<std::unique_ptr<NumericVector<Real> > > MultiApp::_end_aux_solutions
protected

The auxiliary solution from the end of the previous solve, this is cloned from the auxiliary solution during restore.

Definition at line 624 of file MultiApp.h.

Referenced by restore().

◆ _end_solutions

std::vector<std::vector<std::unique_ptr<libMesh::NumericVector<Real> > > > MultiApp::_end_solutions
protected

The solution from the end of the previous solve, this is cloned from the Nonlinear solution during restore Outer indexing by child application, inner indexing by solver system.

Definition at line 621 of file MultiApp.h.

Referenced by restore().

◆ _execute_enum

const ExecFlagEnum& SetupInterface::_execute_enum
protectedinherited

◆ _factory

Factory& ParallelParamObject::_factory
protectedinherited

◆ _fe_problem

FEProblemBase& MultiApp::_fe_problem
protected

◆ _first_local_app

unsigned int MultiApp::_first_local_app
protected

◆ _global_time_offset

const Real MultiApp::_global_time_offset
protected

The offset time so the MultiApp local time relative to the global time.

Definition at line 578 of file MultiApp.h.

Referenced by createLocalApp().

◆ _has_an_app

bool MultiApp::_has_an_app
protected

◆ _has_bounding_box

std::vector<bool> MultiApp::_has_bounding_box
protected

Flag if this multi-app computed its bounding box (valid only for non-displaced meshes)

Definition at line 557 of file MultiApp.h.

Referenced by getBoundingBox(), and init().

◆ _inflation

Real MultiApp::_inflation
protected

Relative bounding box inflation.

Definition at line 563 of file MultiApp.h.

Referenced by getBoundingBox().

◆ _init_timer

const PerfID MultiApp::_init_timer
protected

Definition at line 640 of file MultiApp.h.

Referenced by init().

◆ _input_files

std::vector<FileName> MultiApp::_input_files
protected

The input file for each app's simulation.

Definition at line 512 of file MultiApp.h.

Referenced by createApp(), and fillPositions().

◆ _keep_aux_solution_during_restore

bool MultiApp::_keep_aux_solution_during_restore
protected

Flag indicates if or not restart the auxiliary system from the latest auxiliary solution.

Definition at line 614 of file MultiApp.h.

Referenced by restore().

◆ _keep_solution_during_restore

bool MultiApp::_keep_solution_during_restore
protected

Flag indicates if or not restart from the latest solution.

Definition at line 611 of file MultiApp.h.

Referenced by FullSolveMultiApp::FullSolveMultiApp(), FullSolveMultiApp::initialSetup(), keepSolutionDuringRestore(), restore(), and TransientMultiApp::TransientMultiApp().

◆ _max_procs_per_app

processor_id_type MultiApp::_max_procs_per_app
protected

Maximum number of processors to give to each app.

Definition at line 569 of file MultiApp.h.

Referenced by init().

◆ _metaname

const RestartableDataMapName Restartable::_metaname
privateinherited

Restartable metadata name.

Definition at line 247 of file Restartable.h.

Referenced by Restartable::registerRestartableDataOnApp().

◆ _min_procs_per_app

processor_id_type MultiApp::_min_procs_per_app
protected

Minimum number of processors to give to each app.

Definition at line 572 of file MultiApp.h.

Referenced by init().

◆ _move_apps

std::vector<unsigned int> MultiApp::_move_apps
protected

The apps to be moved.

Definition at line 593 of file MultiApp.h.

Referenced by fillPositions(), and preTransfer().

◆ _move_happened

bool MultiApp::_move_happened
protected

Whether or not the move has happened.

Definition at line 599 of file MultiApp.h.

Referenced by preTransfer().

◆ _move_positions

std::vector<Point> MultiApp::_move_positions
protected

The new positions for the apps to be moved.

Definition at line 596 of file MultiApp.h.

Referenced by fillPositions(), and preTransfer().

◆ _move_time

Real MultiApp::_move_time
protected

The time at which to move apps.

Definition at line 590 of file MultiApp.h.

Referenced by preTransfer().

◆ _my_comm

MPI_Comm& MultiApp::_my_comm
protected

◆ _my_communicator

libMesh::Parallel::Communicator MultiApp::_my_communicator
protected

The communicator object that holds the MPI_Comm that we're going to use.

Definition at line 536 of file MultiApp.h.

Referenced by buildComm().

◆ _my_num_apps

unsigned int MultiApp::_my_num_apps
protected

◆ _my_rank

int MultiApp::_my_rank
protected

The mpi "rank" of this processor in the sub communicator.

Definition at line 551 of file MultiApp.h.

Referenced by buildComm(), and isRootProcessor().

◆ _name

const std::string& MooseBase::_name
protectedinherited

The name of this class.

Definition at line 381 of file MooseBase.h.

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

◆ _no_restore

const bool MultiApp::_no_restore
protected

Whether or not to skip restoring completely.

Definition at line 617 of file MultiApp.h.

Referenced by FullSolveMultiApp::FullSolveMultiApp(), needsRestoration(), and FullSolveMultiApp::restore().

◆ _node_name

std::string MultiApp::_node_name
protected

Node Name.

Definition at line 548 of file MultiApp.h.

Referenced by buildComm().

◆ _npositions_inputfile

std::vector<unsigned int> MultiApp::_npositions_inputfile
protected

Number of positions for each input file.

Definition at line 518 of file MultiApp.h.

Referenced by fillPositions(), and readCommandLineArguments().

◆ _orig_comm

const MPI_Comm& MultiApp::_orig_comm
protected

The original comm handle.

Definition at line 533 of file MultiApp.h.

Referenced by createApps().

◆ _orig_num_procs

int MultiApp::_orig_num_procs
protected

The number of processors in the original comm.

Definition at line 542 of file MultiApp.h.

Referenced by buildComm().

◆ _orig_rank

int MultiApp::_orig_rank
protected

The mpi "rank" of this processor in the original communicator.

Definition at line 545 of file MultiApp.h.

Referenced by appPostprocessorValue(), appProblem(), appProblemBase(), appUserObjectBase(), buildComm(), getBoundingBox(), and getExecutioner().

◆ _output_base

std::string MultiApp::_output_base
protected

The output file basename for each multiapp.

Definition at line 521 of file MultiApp.h.

◆ _output_in_position

bool MultiApp::_output_in_position
protected

Whether or not to move the output of the MultiApp into position.

Definition at line 575 of file MultiApp.h.

Referenced by createApp(), moveApp(), and parentOutputPositionChanged().

◆ _parent

const ParallelParamObject& DataFileInterface::_parent
privateinherited

◆ _pars

const InputParameters& MooseBase::_pars
protectedinherited

The object's parameters.

Definition at line 384 of file MooseBase.h.

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

◆ _pg_moose_app

MooseApp& PerfGraphInterface::_pg_moose_app
protectedinherited

The MooseApp that owns the PerfGraph.

Definition at line 135 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::perfGraph().

◆ _positions

std::vector<Point> MultiApp::_positions
protected

The positions of all of the apps, using input constant vectors (to be deprecated)

Definition at line 501 of file MultiApp.h.

Referenced by createApp(), fillPositions(), CentroidMultiApp::fillPositions(), QuadraturePointMultiApp::fillPositions(), moveApp(), parentOutputPositionChanged(), position(), preTransfer(), and setupPositions().

◆ _positions_index_offsets

std::vector<unsigned int> MultiApp::_positions_index_offsets
protected

The offsets, in case multiple Positions objects are specified.

Definition at line 505 of file MultiApp.h.

Referenced by fillPositions(), and position().

◆ _positions_objs

std::vector<const Positions *> MultiApp::_positions_objs
protected

The positions of all of the apps, using the Positions system.

Definition at line 503 of file MultiApp.h.

Referenced by fillPositions(), and position().

◆ _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_config

LocalRankConfig MultiApp::_rank_config
protected

The app configuration resulting from calling init.

Definition at line 627 of file MultiApp.h.

Referenced by buildComm(), init(), and isFirstLocalRank().

◆ _reset_apps

std::vector<unsigned int> MultiApp::_reset_apps
protected

The apps to be reset.

Definition at line 584 of file MultiApp.h.

Referenced by MultiApp(), and preTransfer().

◆ _reset_happened

std::vector<bool> MultiApp::_reset_happened
protected

Whether or not apps have been reset at each time.

Definition at line 587 of file MultiApp.h.

Referenced by init(), preTransfer(), and TransientMultiApp::solveStep().

◆ _reset_timer

const PerfID MultiApp::_reset_timer
protected

Definition at line 643 of file MultiApp.h.

Referenced by resetApp().

◆ _reset_times

std::vector<Real> MultiApp::_reset_times
protected

The times at which to reset apps.

Definition at line 581 of file MultiApp.h.

Referenced by init(), MultiApp(), and preTransfer().

◆ _restartable_app

MooseApp& Restartable::_restartable_app
protectedinherited

Reference to the application.

Definition at line 234 of file Restartable.h.

Referenced by Restartable::registerRestartableDataOnApp(), and Restartable::registerRestartableNameWithFilterOnApp().

◆ _restartable_name

std::string Restartable::_restartable_name
privateinherited

The name of the object.

Definition at line 250 of file Restartable.h.

Referenced by Restartable::declareRestartableDataWithObjectNameWithContext(), and Restartable::restartableName().

◆ _restartable_read_only

const bool Restartable::_restartable_read_only
protectedinherited

Flag for toggling read only status (see ReporterData)

Definition at line 243 of file Restartable.h.

Referenced by Restartable::registerRestartableDataOnApp().

◆ _restartable_system_name

const std::string Restartable::_restartable_system_name
protectedinherited

The system name this object is in.

Definition at line 237 of file Restartable.h.

Referenced by Restartable::restartableName().

◆ _restartable_tid

const THREAD_ID Restartable::_restartable_tid
protectedinherited

The thread ID for this object.

Definition at line 240 of file Restartable.h.

Referenced by Restartable::declareRestartableDataHelper().

◆ _restore_timer

const PerfID MultiApp::_restore_timer
protected

Definition at line 642 of file MultiApp.h.

Referenced by restore().

◆ _run_in_position

const bool MultiApp::_run_in_position
protected

Whether to run the child apps with their meshes transformed with the coordinate transforms.

Definition at line 633 of file MultiApp.h.

Referenced by createApp(), moveApp(), preTransfer(), and runningInPosition().

◆ _si_moose_base

const MooseBase& SolutionInvalidInterface::_si_moose_base
privateinherited

◆ _si_problem

const FEProblemBase* SolutionInvalidInterface::_si_problem
privateinherited

A pointer to FEProblem base.

Definition at line 114 of file SolutionInvalidInterface.h.

Referenced by SolutionInvalidInterface::flagInvalidSolutionInternal().

◆ _solve_step_timer

const PerfID MultiApp::_solve_step_timer
protected

Timers.

Definition at line 639 of file MultiApp.h.

Referenced by FullSolveMultiApp::solveStep(), and TransientMultiApp::solveStep().

◆ _sub_app_backups

SubAppBackups& MultiApp::_sub_app_backups
protected

The cached subapp backups (passed from the parent app)

Definition at line 636 of file MultiApp.h.

Referenced by backup(), createApp(), init(), and restore().

◆ _total_num_apps

unsigned int MultiApp::_total_num_apps
protected

The total number of apps to simulate.

Definition at line 524 of file MultiApp.h.

Referenced by buildComm(), createApp(), init(), numGlobalApps(), readCommandLineArguments(), and setAppOutputFileBase().

◆ _type

const std::string& MooseBase::_type
protectedinherited

◆ _use_positions

const bool MultiApp::_use_positions
protected

Toggle use of "positions".

Subapps are created at each different position. List of positions can be created using the Positions system

Definition at line 509 of file MultiApp.h.

Referenced by createApp(), initialSetup(), moveApp(), MultiApp(), parentOutputPositionChanged(), preTransfer(), setupPositions(), and usingPositions().

◆ _wait_for_first_app_init

const bool& MultiApp::_wait_for_first_app_init
protected

Whether to create the first app on rank 0 while all other MPI ranks are idle.

Definition at line 515 of file MultiApp.h.

Referenced by createApps().

◆ app_param

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

◆ kokkos_object_param

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

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

Definition at line 64 of file MooseBase.h.

Referenced by InputParameters::isKokkosObject().

◆ moose_base_param

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

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

Definition at line 61 of file MooseBase.h.

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

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

◆ usingCombinedWarningSolutionWarnings

MooseObject::usingCombinedWarningSolutionWarnings
inherited

Definition at line 67 of file MooseObject.h.


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