www.mooseframework.org
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
CentroidMultiApp Class Reference

Automatically generates Sub-App positions from centroids of elements in the master mesh. More...

#include <CentroidMultiApp.h>

Inheritance diagram for CentroidMultiApp:
[legend]

Public Types

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

Public Member Functions

 CentroidMultiApp (const InputParameters &parameters)
 
virtual NumericVector< Number > & appTransferVector (unsigned int app, std::string var_name) override
 Get the vector to transfer to for this MultiApp. More...
 
virtual void initialSetup () override
 Method to be called in main-app initial setup for create sub-apps if using positions is false. More...
 
virtual bool solveStep (Real dt, Real target_time, bool auto_advance=true) override
 Re-solve all of the Apps. More...
 
virtual void incrementTStep (Real target_time) override
 Advances the multi-apps time step which is important for dt selection. More...
 
virtual void finishStep (bool recurse_through_multiapp_levels=false) override
 Calls multi-apps executioners' endStep and postStep methods which creates output and advances time (not the time step; see incrementTStep()) among other things. More...
 
virtual bool needsRestoration () override
 Whether or not this MultiApp should be restored at the beginning of each Picard iteration. More...
 
virtual void resetApp (unsigned int global_app, Real time) override
 "Reset" the App corresponding to the global App number passed in. More...
 
Real computeDT ()
 Finds the smallest dt from among any of the apps. More...
 
virtual void preExecute ()
 
virtual void finalize ()
 Method called towards the end of the simulation to execute on final. More...
 
virtual void postExecute ()
 Method called at the end of the simulation (after finalize). More...
 
void setupPositions ()
 Called just after construction to allow derived classes to set _positions and create sub-apps accordingly. More...
 
virtual void createLocalApp (const unsigned int i)
 Create the i-th local app. More...
 
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). More...
 
virtual void backup ()
 Save off the state of every Sub App. More...
 
virtual void restore (bool force=true)
 Restore the state of every Sub App. More...
 
virtual ExecutionergetExecutioner (unsigned int app)
 
virtual 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. More...
 
FEProblemBaseproblemBase ()
 Get the FEProblemBase this MultiApp is part of. More...
 
FEProblemBaseappProblemBase (unsigned int app)
 Get the FEProblemBase for the global app desired. More...
 
FEProblemappProblem (unsigned int app)
 Get the FEProblem for the global app is part of. More...
 
const UserObjectappUserObjectBase (unsigned int app, const std::string &name)
 Get a UserObject base for a specific global app. More...
 
Real appPostprocessorValue (unsigned int app, const std::string &name)
 Get a Postprocessor value for a specified global app. More...
 
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. More...
 
bool hasLocalApp (unsigned int global_app) const
 Whether or not the given global app number is on this processor. More...
 
MooseApplocalApp (unsigned int local_app)
 Get the local MooseApp object. More...
 
const Point & position (unsigned int app) const
 The physical position of a global App number. More...
 
virtual void moveApp (unsigned int global_app, Point p)
 Move the global_app to Point p. More...
 
virtual void parentOutputPositionChanged ()
 For apps outputting in position we need to change their output positions if their parent app moves. More...
 
MPI_Comm & comm ()
 Get the MPI communicator this MultiApp is operating on. More...
 
const Parallel::Communicator & comm () const
 
bool isRootProcessor ()
 Whether or not this processor is the "root" processor for the sub communicator. More...
 
bool usingPositions () const
 Whether or not this MultiApp is using positions or its own way for constructing sub-apps. More...
 
bool runningInPosition () const
 Whether or not this MultiApp is being run in position, eg with the coordinate transform already applied. More...
 
void addAssociatedTransfer (MultiAppTransfer &transfer)
 Add a transfer that is associated with this multiapp. More...
 
void setAppOutputFileBase ()
 Sets all the app's output file bases. More...
 
virtual bool enabled () const
 Return the enabled status of the object. More...
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 Get another shared pointer to this object that has the same ownership group. More...
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 Get the MooseApp this class is associated with. More...
 
const std::string & type () const
 Get the type of this class. More...
 
virtual const std::string & name () const
 Get the name of the class. More...
 
std::string typeAndName () const
 Get the class's combined type and name; useful in error handling. More...
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 Calls moose error with the message msg. More...
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 The unique parameter name of a valid parameter of this object for accessing parameter controls. More...
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
MooseObjectName uniqueName () const
 The unique name for accessing input parameters of this object in the InputParameterWarehouse. More...
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object. More...
 
template<typename T1 , typename T2 >
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 Retrieve two parameters and provide pair of parameters for the object. More...
 
template<typename T >
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 Retrieve a renamed parameter for the object. More...
 
template<typename T >
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 Verifies that the requested parameter exists and is not NULL and returns it to the caller. More...
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid. More...
 
bool isParamSetByUser (const std::string &nm) const
 Test if the supplied parameter is set by a user, as opposed to not set or set to default. More...
 
template<typename... Args>
void paramError (const std::string &param, Args... args) const
 Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args) const
 Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramInfo (const std::string &param, Args... args) const
 Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 Connect controllable parameter of this action with the controllable parameters of the objects added by this action. More...
 
template<typename... Args>
void mooseError (Args &&... args) const
 Emits an error prefixed with object name and type. More...
 
template<typename... Args>
void mooseErrorNonPrefixed (Args &&... args) const
 Emits an error without the prefixing included in mooseError(). More...
 
template<typename... Args>
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 Emits a documented error with object name and type. More...
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 Emits a warning prefixed with object name and type. More...
 
template<typename... Args>
void mooseWarningNonPrefixed (Args &&... args) const
 Emits a warning without the prefixing included in mooseWarning(). More...
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
std::string getDataFileName (const std::string &param) const
 Returns the path of a data file for a given FileName type parameter, searching (in the following order) More...
 
std::string getDataFileNameByName (const std::string &name, const std::string *param=nullptr) const
 Returns the path of a data file for a given relative file path. More...
 
virtual void timestepSetup ()
 Gets called at the beginning of the timestep before this object is asked to do its job. More...
 
virtual void jacobianSetup ()
 Gets called just before the Jacobian is computed and before this object is asked to do its job. More...
 
virtual void residualSetup ()
 Gets called just before the residual is computed and before this object is asked to do its job. More...
 
virtual void subdomainSetup ()
 Gets called when the subdomain changes (i.e. More...
 
virtual void customSetup (const ExecFlagType &)
 Gets called in FEProblemBase::execute() for execute flags other than initial, timestep_begin, nonlinear, linear and subdomain. More...
 
const ExecFlagEnumgetExecuteOnEnum () const
 Return the execute on MultiMooseEnum for this object. More...
 
PerfGraphperfGraph ()
 Get the PerfGraph. More...
 
const std::vector< SubdomainName > & blocks () const
 Return the block names for this object. More...
 
unsigned int numBlocks () const
 Return the number of blocks for this object. More...
 
virtual const std::set< SubdomainID > & blockIDs () const
 Return the block subdomain ids for this object Note, if this is not block restricted, this function returns all mesh subdomain ids. More...
 
unsigned int blocksMaxDimension () const
 Return the largest mesh dimension of the elements in the blocks for this object. More...
 
bool hasBlocks (const SubdomainName &name) const
 Test if the supplied block name is valid for this object. More...
 
bool hasBlocks (const std::vector< SubdomainName > &names) const
 Test if the supplied vector of block names are valid for this object. More...
 
bool hasBlocks (SubdomainID id) const
 Test if the supplied block ids are valid for this object. More...
 
bool hasBlocks (const std::vector< SubdomainID > &ids) const
 Test if the supplied vector block ids are valid for this object. More...
 
bool hasBlocks (const std::set< SubdomainID > &ids) const
 Test if the supplied set of block ids are valid for this object. More...
 
bool isBlockSubset (const std::set< SubdomainID > &ids) const
 Test if the class block ids are a subset of the supplied objects. More...
 
bool isBlockSubset (const std::vector< SubdomainID > &ids) const
 Test if the class block ids are a subset of the supplied objects. More...
 
template<typename T , bool is_ad = false>
bool hasBlockMaterialProperty (const std::string &prop_name)
 Check if a material property is valid for all blocks of this object. More...
 
const std::set< SubdomainID > & meshBlockIDs () const
 Return all of the SubdomainIDs for the mesh. More...
 
virtual bool blockRestricted () const
 Returns true if this object has been restricted to a block. More...
 
virtual void checkVariable (const MooseVariableFieldBase &variable) const
 Helper for checking that the ids for this object are in agreement with the variables on the supplied variable. More...
 

Static Public Member Functions

static InputParameters validParams ()
 
static void transformBoundingBox (BoundingBox &box, const MultiAppCoordTransform &transform)
 Transform a bounding box according to the transformations in the provided coordinate transformation object. More...
 

Public Attributes

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

Protected Member Functions

virtual void fillPositions () override
 fill in _positions with the positions of the sub-aps More...
 
void setAppOutputFileBase (unsigned int index)
 Set the output file base of the application which corresponds to the index passed to the function. More...
 
virtual std::vector< std::string > cliArgs () const
 function that provides cli_args to subapps More...
 
void readCommandLineArguments ()
 Fill command line arguments for sub apps. More...
 
void createApp (unsigned int i, Real start_time)
 Helper function for creating an App instance. More...
 
void buildComm ()
 Create an MPI communicator suitable for each app. More...
 
unsigned int globalAppToLocal (unsigned int global_app)
 Map a global App number to the local number. More...
 
virtual void preRunInputFile ()
 call back executed right before app->runInputFile() More...
 
virtual std::string getCommandLineArgsParamHelper (unsigned int local_app)
 Method to aid in getting the "cli_args" parameters. More...
 
void init (unsigned int num_apps, bool batch_mode=false)
 Build communicators and reserve backups. More...
 
void init (unsigned int num_apps, const LocalRankConfig &config)
 Same as other init method, except defining a custom rank configuration. More...
 
void createApps ()
 Create the provided number of apps. More...
 
void keepSolutionDuringRestore (bool keep_solution_during_restore)
 Reserve the solution from the previous simulation, and it is used as an initial guess for the next run. More...
 
template<typename T , typename... Args>
T & declareRestartableData (const std::string &data_name, Args &&... args)
 Declare a piece of data as "restartable" and initialize it. More...
 
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. More...
 
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. More...
 
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. More...
 
template<typename T , typename... Args>
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 Declare a piece of data as "recoverable" and initialize it. More...
 
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". More...
 
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". More...
 
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. More...
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 Call to register a named section for timing. More...
 
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. More...
 
std::string timedSectionName (const std::string &section_name) const
 
virtual bool hasBlockMaterialPropertyHelper (const std::string &prop_name)
 A helper method to allow the Material object to specialize the behavior of hasBlockMaterialProperty. More...
 
void initializeBlockRestrictable (const MooseObject *moose_object)
 An initialization routine needed for dual constructors. More...
 
Moose::CoordinateSystemType getBlockCoordSystem ()
 Check if the blocks this object operates on all have the same coordinate system, and if so return it. More...
 

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

Protected Attributes

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

Detailed Description

Automatically generates Sub-App positions from centroids of elements in the master mesh.

Definition at line 18 of file CentroidMultiApp.h.

Member Typedef Documentation

◆ DataFileParameterType

using DataFileInterface< MooseObject >::DataFileParameterType = DataFileName
inherited

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

Definition at line 26 of file DataFileInterface.h.

Constructor & Destructor Documentation

◆ CentroidMultiApp()

CentroidMultiApp::CentroidMultiApp ( const InputParameters parameters)

Definition at line 36 of file CentroidMultiApp.C.

38 {
39 }
TransientMultiApp(const InputParameters &parameters)
const InputParameters & parameters() const
Get the parameters of the object.
BlockRestrictable(const MooseObject *moose_object, bool initialize=true)
Class constructor Populates the &#39;block&#39; input parameters, see the general class documentation for det...

Member Function Documentation

◆ addAssociatedTransfer()

void MultiApp::addAssociatedTransfer ( MultiAppTransfer transfer)
inherited

Add a transfer that is associated with this multiapp.

Definition at line 1354 of file MultiApp.C.

1355 {
1356  _associated_transfers.push_back(&transfer);
1357 }
std::vector< MultiAppTransfer * > _associated_transfers
Transfers associated with this multiapp.
Definition: MultiApp.h:604

◆ appPostprocessorValue()

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

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 969 of file MultiApp.C.

970 {
971  if (!_has_an_app)
972  mooseError("No app for ", MultiApp::name(), " on processor ", _orig_rank);
973 
975 }
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:529
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
FEProblemBase & appProblemBase(unsigned int app)
Get the FEProblemBase for the global app desired.
Definition: MultiApp.C:936
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.
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.

◆ appProblem()

FEProblem & MultiApp::appProblem ( unsigned int  app)
inherited

Get the FEProblem for the global app is part of.

Parameters
appThe global app number

Definition at line 947 of file MultiApp.C.

948 {
950  "MultiApp::appProblem() is deprecated, call MultiApp::appProblemBase() instead.\n");
951  if (!_has_an_app)
952  mooseError("No app for ", name(), " on processor ", _orig_rank);
953 
954  unsigned int local_app = globalAppToLocal(app);
955 
956  return dynamic_cast<FEProblem &>(_apps[local_app]->getExecutioner()->feProblem());
957 }
void mooseDeprecated(Args &&... args) const
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Definition: FEProblem.h:20
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:529
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:1330

◆ appProblemBase()

FEProblemBase & MultiApp::appProblemBase ( unsigned int  app)
inherited

Get the FEProblemBase for the global app desired.

Parameters
appThe global app number

Definition at line 936 of file MultiApp.C.

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

937 {
938  if (!_has_an_app)
939  mooseError("No app for ", name(), " on processor ", _orig_rank);
940 
941  unsigned int local_app = globalAppToLocal(app);
942 
943  return _apps[local_app]->getExecutioner()->feProblem();
944 }
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:529
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:1330

◆ appTransferVector()

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

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 from MultiApp.

Definition at line 149 of file TransientMultiApp.C.

150 {
151  if (std::find(_transferred_vars.begin(), _transferred_vars.end(), var_name) ==
152  _transferred_vars.end())
153  _transferred_vars.push_back(var_name);
154 
156  return appProblemBase(app).getAuxiliarySystem().system().get_vector("transfer");
157 
159 }
NumericVector< Number > & solution()
Definition: SystemBase.h:182
FEProblemBase & appProblemBase(unsigned int app)
Get the FEProblemBase for the global app desired.
Definition: MultiApp.C:936
std::vector< std::string > _transferred_vars
The variables that have been transferred to. Used when doing transfer interpolation. This will be cleared after each solve.
AuxiliarySystem & getAuxiliarySystem()
virtual System & system() override
Get the reference to the libMesh system.

◆ appUserObjectBase()

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

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 960 of file MultiApp.C.

961 {
962  if (!_has_an_app)
963  mooseError("No app for ", MultiApp::name(), " on processor ", _orig_rank);
964 
966 }
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:529
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
FEProblemBase & appProblemBase(unsigned int app)
Get the FEProblemBase for the global app desired.
Definition: MultiApp.C:936
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const UserObject & getUserObjectBase(const std::string &name, const THREAD_ID tid=0) const
Get the user object by its name.

◆ backup()

void MultiApp::backup ( )
virtualinherited

Save off the state of every Sub App.

This allows us to "Restore" this state later

Reimplemented in FullSolveMultiApp.

Definition at line 722 of file MultiApp.C.

Referenced by FullSolveMultiApp::backup(), and dataStore().

723 {
724  TIME_SECTION(_backup_timer);
725 
727  _console << "Backed up MultiApp ... ";
728 
729  for (unsigned int i = 0; i < _my_num_apps; i++)
730  _sub_app_backups[i] = _apps[i]->backup();
731 
733  _console << name() << std::endl;
734 }
virtual void backup()
Save off the state of every Sub App.
Definition: MultiApp.C:722
bool verboseMultiApps() const
Whether or not to use verbose printing for MultiApps.
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition: MultiApp.h:479
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
const PerfID _backup_timer
Definition: MultiApp.h:615
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
SubAppBackups & _sub_app_backups
The cached subapp backups (passed from the parent app)
Definition: MultiApp.h:610
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ blockIDs()

const std::set< SubdomainID > & BlockRestrictable::blockIDs ( ) const
virtualinherited

Return the block subdomain ids for this object Note, if this is not block restricted, this function returns all mesh subdomain ids.

Returns
a set of SubdomainIDs that are valid for this object

Definition at line 190 of file BlockRestrictable.C.

Referenced by FunctorMaterial::addFunctorProperty(), DiracKernelBase::addPoint(), DiracKernelBase::addPointWithValidId(), NodalPatchRecoveryAuxBase::blockRestrictElements(), MooseMesh::cacheFaceInfoVariableOwnership(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), BlockRestrictable::getBlockCoordSystem(), MaterialBase::getGenericZeroMaterialPropertyByName(), BlockRestrictable::hasBlockMaterialPropertyHelper(), SubdomainsDivision::initialize(), ElementCentroidPositions::initialize(), MooseVariableBase::MooseVariableBase(), NodalPatchRecoveryAux::NodalPatchRecoveryAux(), PointwiseRenormalizeVector::PointwiseRenormalizeVector(), ProjectedMaterialPropertyNodalPatchRecoveryAux::ProjectedMaterialPropertyNodalPatchRecoveryAux(), MaterialBase::registerPropName(), and FVPointValueConstraint::setMyElem().

191 {
192  if (_blk_ids.find(Moose::ANY_BLOCK_ID) != _blk_ids.end())
193  return _blk_mesh->meshSubdomains();
194  else
195  return _blk_ids;
196 }
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.C:19
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error checking)
MooseMesh * _blk_mesh
Pointer to Mesh.
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:2922

◆ blockRestricted()

bool BlockRestrictable::blockRestricted ( ) const
virtualinherited

◆ blocks()

const std::vector< SubdomainName > & BlockRestrictable::blocks ( ) const
inherited

Return the block names for this object.

Note, if the 'blocks' input parameter was not utilized this will return an empty vector.

Returns
vector of SubdomainNames that are valid for this object

Definition at line 184 of file BlockRestrictable.C.

Referenced by MaterialOutputAction::getParams(), SubdomainsDivision::initialize(), and SolutionIC::initialSetup().

185 {
186  return _blocks;
187 }
std::vector< SubdomainName > _blocks
Vector the block names supplied by the user via the input file.

◆ blocksMaxDimension()

unsigned int BlockRestrictable::blocksMaxDimension ( ) const
inherited

Return the largest mesh dimension of the elements in the blocks for this object.

Definition at line 360 of file BlockRestrictable.C.

361 {
362  mooseAssert(_blk_dim != libMesh::invalid_uint, "Block restriction not initialized");
363  return _blk_dim;
364 }
unsigned int _blk_dim
Largest mesh dimension of the elements in the blocks for this object.
const unsigned int invalid_uint

◆ buildComm()

void MultiApp::buildComm ( )
protectedinherited

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 1288 of file MultiApp.C.

Referenced by MultiApp::init().

1289 {
1290  int ierr;
1291 
1292  ierr = MPI_Comm_size(_communicator.get(), &_orig_num_procs);
1293  mooseCheckMPIErr(ierr);
1294  ierr = MPI_Comm_rank(_communicator.get(), &_orig_rank);
1295  mooseCheckMPIErr(ierr);
1296 
1297 #ifdef LIBMESH_HAVE_SYS_UTSNAME_H
1298  struct utsname sysInfo;
1299  uname(&sysInfo);
1300  _node_name = sysInfo.nodename;
1301 #else
1302  _node_name = "Unknown";
1303 #endif
1304 
1305  int rank;
1306  ierr = MPI_Comm_rank(_communicator.get(), &rank);
1307  mooseCheckMPIErr(ierr);
1308 
1311 
1314  mooseError("Internal error, a processor has an undefined app.");
1315 
1316  if (_has_an_app)
1317  {
1319  ierr = MPI_Comm_rank(_my_comm, &_my_rank);
1320  mooseCheckMPIErr(ierr);
1321  }
1322  else
1323  {
1324  _communicator.split(MPI_UNDEFINED, rank, _my_communicator);
1325  _my_rank = 0;
1326  }
1327 }
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:529
LocalRankConfig _rank_config
The app configuration resulting from calling init.
Definition: MultiApp.h:601
dof_id_type first_local_app_index
The (global) index of the first local app for this rank.
Definition: MultiApp.h:64
const Parallel::Communicator & _communicator
ierr
int _orig_num_procs
The number of processors in the original comm.
Definition: MultiApp.h:526
void split(int color, int key, Communicator &target) const
unsigned int _total_num_apps
The total number of apps to simulate.
Definition: MultiApp.h:508
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
std::string _node_name
Node Name.
Definition: MultiApp.h:532
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
libMesh::Parallel::Communicator _my_communicator
The communicator object that holds the MPI_Comm that we&#39;re going to use.
Definition: MultiApp.h:520
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
int _my_rank
The mpi "rank" of this processor in the sub communicator.
Definition: MultiApp.h:535
dof_id_type num_local_apps
The number of (sub)apps that should/will be run locally on this rank.
Definition: MultiApp.h:58
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:523

◆ callMooseError()

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

Calls moose error with the message msg.

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

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

Definition at line 33 of file MooseBase.C.

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

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

◆ checkVariable()

void BlockRestrictable::checkVariable ( const MooseVariableFieldBase variable) const
virtualinherited

Helper for checking that the ids for this object are in agreement with the variables on the supplied variable.

Parameters
variableThe variable to check against.

Reimplemented in DomainUserObject.

Definition at line 333 of file BlockRestrictable.C.

Referenced by DomainUserObject::checkVariable().

334 {
335  // a variable defined on all internal sides does not need this check because
336  // it can be coupled with other variables in DG kernels
337  if (variable.activeSubdomains().count(Moose::INTERNAL_SIDE_LOWERD_ID) > 0)
338  return;
339 
340  if (!isBlockSubset(variable.activeSubdomains()))
341  {
342  std::string var_ids = Moose::stringify(variable.activeSubdomains(), ", ");
343  std::string obj_ids = Moose::stringify(blockRestricted() ? _blk_ids : meshBlockIDs(), ", ");
344  mooseError("The 'block' parameter of the object '",
345  _blk_name,
346  "' must be a subset of the 'block' parameter of the variable '",
347  variable.name(),
348  "':\n Object '",
349  _blk_name,
350  "': ",
351  obj_ids,
352  "\n Variable '",
353  variable.name(),
354  "': ",
355  var_ids);
356  }
357 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:299
const std::string & name() const override
Get the variable name.
virtual bool blockRestricted() const
Returns true if this object has been restricted to a block.
bool isBlockSubset(const std::set< SubdomainID > &ids) const
Test if the class block ids are a subset of the supplied objects.
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:62
const std::set< SubdomainID > & activeSubdomains() const
The subdomains the variable is active on.
const SubdomainID INTERNAL_SIDE_LOWERD_ID
Definition: MooseTypes.C:20
const std::set< SubdomainID > & meshBlockIDs() const
Return all of the SubdomainIDs for the mesh.
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error checking)
const std::string & _blk_name
Name of the object.

◆ cliArgs()

virtual std::vector<std::string> MultiApp::cliArgs ( ) const
inlineprotectedvirtualinherited

function that provides cli_args to subapps

Definition at line 387 of file MultiApp.h.

Referenced by MultiApp::createApp(), MultiApp::getCommandLineArgsParamHelper(), MultiApp::init(), and MultiApp::readCommandLineArguments().

388  {
389  return std::vector<std::string>(_cli_args.begin(), _cli_args.end());
390  }
const std::vector< CLIArgString > & _cli_args
CommandLine arguments.
Definition: MultiApp.h:589

◆ comm()

MPI_Comm& MultiApp::comm ( )
inlineinherited

Get the MPI communicator this MultiApp is operating on.

Returns
The MPI comm for this MultiApp

Definition at line 350 of file MultiApp.h.

350 { return _my_comm; }
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:523

◆ computeDT()

Real TransientMultiApp::computeDT ( )
inherited

Finds the smallest dt from among any of the apps.

Definition at line 607 of file TransientMultiApp.C.

608 {
609  if (_sub_cycling) // Bow out of the timestep selection dance
611 
612  Real smallest_dt = std::numeric_limits<Real>::max();
613 
614  if (_has_an_app)
615  {
617 
618  for (unsigned int i = 0; i < _my_num_apps; i++)
619  {
621  ex->computeDT();
622  Real dt = ex->getDT();
623 
624  smallest_dt = std::min(dt, smallest_dt);
625  }
626  }
627 
628  if (_tolerate_failure) // Bow out of the timestep selection dance, we do this down here because we
629  // need to call computeConstrainedDT at least once for these
630  // executioners...
632 
633  _communicator.min(smallest_dt);
634  return smallest_dt;
635 }
virtual Real getDT()
Definition: Transient.C:562
Transient executioners usually loop through a number of timesteps...
Definition: Transient.h:26
virtual void computeDT()
Definition: Transient.C:335
const Parallel::Communicator & _communicator
auto max(const L &left, const R &right)
void min(const T &r, T &o, Request &req) const
std::vector< Transient * > _transient_executioners
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
auto min(const L &left, const R &right)
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:523

◆ connectControllableParams()

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

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

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

Definition at line 33 of file MooseBaseParameterInterface.C.

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

◆ createApp()

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

Helper function for creating an App instance.

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

Definition at line 1055 of file MultiApp.C.

Referenced by MultiApp::createLocalApp(), and MultiApp::resetApp().

1056 {
1057  // Define the app name
1058  const std::string multiapp_name = getMultiAppName(name(), _first_local_app + i, _total_num_apps);
1059  std::string full_name;
1060 
1061  // Only add parent name if the parent is not the main app
1062  if (_app.multiAppLevel() > 0)
1063  full_name = _app.name() + "_" + multiapp_name;
1064  else
1065  full_name = multiapp_name;
1066 
1068  app_params.set<FEProblemBase *>("_parent_fep") = &_fe_problem;
1069  app_params.set<std::unique_ptr<Backup> *>("_initial_backup") = &_sub_app_backups[i];
1070 
1071  // Set the command line parameters with a copy of the main application command line parameters,
1072  // the copy is required so that the addArgument command below doesn't accumulate more and more
1073  // of the same cli_args, which is important when running in batch mode.
1074  std::shared_ptr<CommandLine> app_cli = std::make_shared<CommandLine>(*_app.commandLine());
1075 
1076  if (cliArgs().size() > 0 || _cli_args_from_file.size() > 0)
1077  {
1078  for (const std::string & str : MooseUtils::split(getCommandLineArgsParamHelper(i), ";"))
1079  {
1080  std::ostringstream oss;
1081  oss << full_name << ":" << str;
1082  app_cli->addArgument(oss.str());
1083  }
1084  }
1085  app_cli->initForMultiApp(full_name);
1086  app_params.set<std::shared_ptr<CommandLine>>("_command_line") = app_cli;
1087 
1089  _console << COLOR_CYAN << "Creating MultiApp " << name() << " of type " << _app_type
1090  << " of level " << _app.multiAppLevel() + 1 << " and number " << _first_local_app + i
1091  << " on processor " << processor_id() << " with full name " << full_name
1092  << COLOR_DEFAULT << std::endl;
1093  app_params.set<unsigned int>("_multiapp_level") = _app.multiAppLevel() + 1;
1094  app_params.set<unsigned int>("_multiapp_number") = _first_local_app + i;
1095  if (getParam<bool>("clone_master_mesh") || getParam<bool>("clone_parent_mesh"))
1096  {
1098  _console << COLOR_CYAN << "Cloned parent app mesh will be used for MultiApp " << name()
1099  << COLOR_DEFAULT << std::endl;
1100  app_params.set<const MooseMesh *>("_master_mesh") = &_fe_problem.mesh();
1101  auto displaced_problem = _fe_problem.getDisplacedProblem();
1102  if (displaced_problem)
1103  app_params.set<const MooseMesh *>("_master_displaced_mesh") = &displaced_problem->mesh();
1104  }
1105 
1106  // If only one input file was provided, use it for all the solves
1107  const auto input_index = _input_files.size() == 1 ? 0 : _first_local_app + i;
1108  const auto & input_file = _input_files[input_index];
1109 
1110  // create new parser tree for the application and parse
1111  auto parser = std::make_unique<Parser>(input_file);
1112 
1113  if (input_file.size())
1114  {
1115  parser->parse();
1116  const auto & app_type = parser->getAppType();
1117  if (app_type.empty() && _app_type.empty())
1118  mooseWarning("The application type is not specified for ",
1119  full_name,
1120  ". Please use [Application] block to specify the application type.");
1121  if (!app_type.empty() && app_type != _app_type &&
1122  !AppFactory::instance().isRegistered(app_type))
1123  mooseError("In the ",
1124  full_name,
1125  ", '",
1126  app_type,
1127  "' is not a registered application. The registered application is named: '",
1128  _app_type,
1129  "'. Please double check the [Application] block to make sure the correct "
1130  "application is provided. \n");
1131  }
1132 
1133  if (parser->getAppType().empty())
1134  parser->setAppType(_app_type);
1135 
1136  app_params.set<std::shared_ptr<Parser>>("_parser") = std::move(parser);
1137  _apps[i] = AppFactory::instance().createShared(_app_type, full_name, app_params, _my_comm);
1138  auto & app = _apps[i];
1139 
1140  app->setGlobalTimeOffset(start_time);
1141  app->setOutputFileNumbers(_app.getOutputWarehouse().getFileNumbers());
1142  app->setRestart(_app.isRestarting());
1143  app->setRecover(_app.isRecovering());
1144 
1145  if (_use_positions && getParam<bool>("output_in_position"))
1146  app->setOutputPosition(_app.getOutputPosition() + _positions[_first_local_app + i]);
1148  paramError("run_in_position",
1149  "Sub-apps are already displaced, so they are already output in position");
1150 
1151  // Update the MultiApp level for the app that was just created
1152  app->setupOptions();
1153  // if multiapp does not have file base in Outputs input block, output file base will
1154  // be empty here since setupOptions() does not set the default file base with the multiapp
1155  // input file name. Parent app will create the default file base for multiapp by taking the
1156  // output base of the parent app problem and appending the name of the multiapp plus a number to
1157  // it
1158  if (app->getOutputFileBase().empty())
1160  preRunInputFile();
1161 
1162  // Transfer coupling relaxation information to the subapps
1163  _apps[i]->fixedPointConfig().sub_relaxation_factor = getParam<Real>("relaxation_factor");
1164  _apps[i]->fixedPointConfig().sub_transformed_vars =
1165  getParam<std::vector<std::string>>("transformed_variables");
1166  // Handle deprecated parameter
1167  if (!parameters().isParamSetByAddParam("relaxed_variables"))
1168  _apps[i]->fixedPointConfig().sub_transformed_vars =
1169  getParam<std::vector<std::string>>("relaxed_variables");
1170  _apps[i]->fixedPointConfig().sub_transformed_pps =
1171  getParam<std::vector<PostprocessorName>>("transformed_postprocessors");
1172 
1173  app->runInputFile();
1174  auto fixed_point_solve = &(_apps[i]->getExecutioner()->fixedPointSolve());
1175  if (fixed_point_solve)
1176  fixed_point_solve->allocateStorage(false);
1177 
1178  // Transform the app mesh if requested
1179  if (_run_in_position)
1180  {
1181  if (usingPositions())
1182  app->getExecutioner()->feProblem().coordTransform().transformMesh(
1183  app->getExecutioner()->feProblem().mesh(), _positions[_first_local_app + i]);
1184  else
1185  app->getExecutioner()->feProblem().coordTransform().transformMesh(
1186  app->getExecutioner()->feProblem().mesh(), Point(0, 0, 0));
1187  }
1188 }
bool isRegistered(const std::string &app_name) const
Returns a Boolean indicating whether an application type has been registered.
Definition: AppFactory.h:119
virtual std::vector< std::string > cliArgs() const
function that provides cli_args to subapps
Definition: MultiApp.h:387
bool verboseMultiApps() const
Whether or not to use verbose printing for MultiApps.
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:493
std::shared_ptr< CommandLine > commandLine() const
Get the command line.
Definition: MooseApp.h:413
MooseAppPtr createShared(const std::string &app_type, const std::string &name, InputParameters parameters, MPI_Comm COMM_WORLD_IN)
Build an application object (must be registered)
Definition: AppFactory.C:124
virtual std::string getCommandLineArgsParamHelper(unsigned int local_app)
Method to aid in getting the "cli_args" parameters.
Definition: MultiApp.C:1191
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
unsigned int multiAppLevel() const
The MultiApp Level.
Definition: MooseApp.h:794
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition: MultiApp.h:479
bool isRestarting() const
Whether or not this is a "restart" calculation.
Definition: MooseApp.C:1174
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
std::vector< std::string > split(const std::string &str, const std::string &delimiter, std::size_t max_count=std::numeric_limits< std::size_t >::max())
Python like split functions for strings.
Definition: MooseUtils.C:1115
bool isParamSetByAddParam(const std::string &name) const
Returns whether or not the parameter was set due to addParam.
std::map< std::string, unsigned int > getFileNumbers()
Extracts the file numbers from the output objects.
std::string _app_type
The type of application to build.
Definition: MultiApp.h:482
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
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 ...
unsigned int _total_num_apps
The total number of apps to simulate.
Definition: MultiApp.h:508
Point getOutputPosition() const
Get the output position.
Definition: MooseApp.h:266
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:1375
static AppFactory & instance()
Get the instance of the AppFactory.
Definition: AppFactory.C:17
bool usingPositions() const
Whether or not this MultiApp is using positions or its own way for constructing sub-apps.
Definition: MultiApp.h:361
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514
virtual std::shared_ptr< const DisplacedProblem > getDisplacedProblem() const
SubAppBackups & _sub_app_backups
The cached subapp backups (passed from the parent app)
Definition: MultiApp.h:610
virtual MooseMesh & mesh() override
bool _output_in_position
Whether or not to move the output of the MultiApp into position.
Definition: MultiApp.h:559
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated) ...
Definition: MultiApp.h:485
const InputParameters & parameters() const
Get the parameters of the object.
std::vector< FileName > _input_files
The input file for each app&#39;s simulation.
Definition: MultiApp.h:496
virtual void preRunInputFile()
call back executed right before app->runInputFile()
Definition: MultiApp.C:1349
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
InputParameters getValidParams(const std::string &name)
Get valid parameters for the object.
Definition: AppFactory.C:30
processor_id_type processor_id() const
void setAppOutputFileBase()
Sets all the app&#39;s output file bases.
Definition: MultiApp.C:1360
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition: MooseApp.C:1168
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:523
const bool _run_in_position
Whether to run the child apps with their meshes transformed with the coordinate transforms.
Definition: MultiApp.h:607
OutputWarehouse & getOutputWarehouse()
Get the OutputWarehouse objects.
Definition: MooseApp.C:1773
std::vector< std::string > _cli_args_from_file
CommandLine arguments from files.
Definition: MultiApp.h:592

◆ createApps()

void MultiApp::createApps ( )
protectedinherited

Create the provided number of apps.

This is called in the setupPositions().

Definition at line 362 of file MultiApp.C.

Referenced by MultiApp::initialSetup(), and MultiApp::setupPositions().

363 {
364  if (!_has_an_app)
365  return;
366 
367  TIME_SECTION("createApps", 2, "Instantiating Sub-Apps", false);
368 
369  // Read commandLine arguments that will be used when creating apps
371 
373 
374  _apps.resize(_my_num_apps);
375 
376  // If the user provided an unregistered app type, see if we can load it dynamically
377  if (!AppFactory::instance().isRegistered(_app_type))
379  getParam<std::string>("library_path"),
380  getParam<std::string>("library_name"),
381  getParam<bool>("library_load_dependencies"));
382 
383  bool rank_did_quiet_init = false;
384  unsigned int local_app = libMesh::invalid_uint;
386  {
387  if (hasLocalApp(0))
388  {
389  rank_did_quiet_init = true;
390  local_app = globalAppToLocal(0);
391  createLocalApp(local_app);
392  }
393 
394  MPI_Barrier(_orig_comm);
395  }
396 
397  for (unsigned int i = 0; i < _my_num_apps; i++)
398  {
399  if (rank_did_quiet_init && i == local_app)
400  continue;
401  createLocalApp(i);
402  }
403 }
bool hasLocalApp(unsigned int global_app) const
Whether or not the given global app number is on this processor.
Definition: MultiApp.C:990
const unsigned int invalid_uint
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
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:499
std::string _app_type
The type of application to build.
Definition: MultiApp.h:482
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
static AppFactory & instance()
Get the instance of the AppFactory.
Definition: AppFactory.C:17
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
void readCommandLineArguments()
Fill command line arguments for sub apps.
Definition: MultiApp.C:422
virtual void createLocalApp(const unsigned int i)
Create the i-th local app.
Definition: MultiApp.C:406
const MPI_Comm & _orig_comm
The original comm handle.
Definition: MultiApp.h:517
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:523
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:1330
void dynamicAppRegistration(const std::string &app_name, std::string library_path, const std::string &library_name, bool lib_load_deps)
Definition: MooseApp.C:1939

◆ createLocalApp()

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

Create the i-th local app.

Parameters
[in]ilocal app index

Definition at line 406 of file MultiApp.C.

Referenced by MultiApp::createApps().

407 {
409  _app.builder().hitCLIFilter(_apps[i]->name(), _app.commandLine()->getArguments());
410 }
std::shared_ptr< CommandLine > commandLine() const
Get the command line.
Definition: MooseApp.h:413
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
Moose::Builder & builder()
Returns a writable reference to the builder.
Definition: MooseApp.h:204
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
void createApp(unsigned int i, Real start_time)
Helper function for creating an App instance.
Definition: MultiApp.C:1055
std::string hitCLIFilter(std::string appname, const std::vector< std::string > &argv)
Marks MOOSE hit syntax from supplied command-line arguments.
Definition: Builder.C:308
const Real _global_time_offset
The offset time so the MultiApp local time relative to the global time.
Definition: MultiApp.h:562

◆ 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 61 of file SetupInterface.h.

61 {}

◆ 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 276 of file Restartable.h.

279 {
280  auto & data_ptr =
281  declareRestartableDataHelper<T>(data_name, context, std::forward<Args>(args)...);
282  return Restartable::ManagedValue<T>(data_ptr);
283 }
Wrapper class for restartable data that is "managed.
Definition: Restartable.h:42

◆ 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 351 of file Restartable.h.

352 {
353  const auto full_name = restartableName(data_name);
354 
356 
357  return declareRestartableDataWithContext<T>(data_name, nullptr, std::forward<Args>(args)...);
358 }
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:66
void registerRestartableNameWithFilterOnApp(const std::string &name, Moose::RESTARTABLE_FILTER filter)
Helper function for actually registering the restartable data.
Definition: Restartable.C:59

◆ 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 269 of file Restartable.h.

270 {
271  return declareRestartableDataWithContext<T>(data_name, nullptr, std::forward<Args>(args)...);
272 }

◆ 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 294 of file Restartable.h.

297 {
298  return declareRestartableDataHelper<T>(data_name, context, std::forward<Args>(args)...).set();
299 }

◆ 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 323 of file Restartable.h.

326 {
327  return declareRestartableDataWithObjectNameWithContext<T>(
328  data_name, object_name, nullptr, std::forward<Args>(args)...);
329 }

◆ 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 333 of file Restartable.h.

337 {
338  std::string old_name = _restartable_name;
339 
340  _restartable_name = object_name;
341 
342  T & value = declareRestartableDataWithContext<T>(data_name, context, std::forward<Args>(args)...);
343 
344  _restartable_name = old_name;
345 
346  return value;
347 }
std::string _restartable_name
The name of the object.
Definition: Restartable.h:243
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 50 of file MooseObject.h.

Referenced by EigenKernel::enabled().

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

◆ errorPrefix()

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

Definition at line 43 of file MooseBase.C.

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

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

◆ fillPositions()

void CentroidMultiApp::fillPositions ( )
overrideprotectedvirtual

fill in _positions with the positions of the sub-aps

Reimplemented from MultiApp.

Definition at line 42 of file CentroidMultiApp.C.

43 {
44  MooseMesh & parent_app_mesh = _fe_problem.mesh();
45 
46  for (const auto & elem_ptr : parent_app_mesh.getMesh().active_local_element_ptr_range())
47  if (hasBlocks(elem_ptr->subdomain_id()))
48  _positions.push_back(elem_ptr->vertex_average());
49 
50  // Use the comm from the problem this MultiApp is part of
52 
53  if (_positions.empty())
54  mooseError("No positions found for CentroidMultiapp ", _name);
55 
56  // An attempt to try to make this parallel stable
57  std::sort(_positions.begin(), _positions.end());
58 }
void allgather(const T &send_data, std::vector< T, A > &recv_data) const
const Parallel::Communicator & comm() const
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition: MultiApp.h:479
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
Definition: MooseMesh.C:3199
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
const std::string _name
The name of this class.
Definition: MooseBase.h:90
virtual MooseMesh & mesh() override
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated) ...
Definition: MultiApp.h:485
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.

◆ finalize()

void MultiApp::finalize ( )
virtualinherited

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

Reimplemented in FullSolveMultiApp.

Definition at line 697 of file MultiApp.C.

698 {
699  for (const auto & app_ptr : _apps)
700  {
701  auto * executioner = app_ptr->getExecutioner();
702  mooseAssert(executioner, "Executioner is nullptr");
703 
704  executioner->feProblem().execute(EXEC_FINAL);
705  executioner->feProblem().outputStep(EXEC_FINAL);
706  }
707 }
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
const ExecFlagType EXEC_FINAL
Definition: Moose.C:38

◆ finishStep()

void TransientMultiApp::finishStep ( bool  = false)
overridevirtualinherited

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 from MultiApp.

Definition at line 580 of file TransientMultiApp.C.

581 {
582  if (!_sub_cycling)
583  {
584  for (unsigned int i = 0; i < _my_num_apps; i++)
585  {
587  ex->endStep();
588  ex->postStep();
589  if (recurse_through_multiapp_levels)
590  {
592  /*recurse_through_multiapp_levels=*/true);
594  /*recurse_through_multiapp_levels=*/true);
595  }
596  }
597  }
598 }
Transient executioners usually loop through a number of timesteps...
Definition: Transient.h:26
FEProblemBase & feProblem()
Return a reference to this Executioner&#39;s FEProblemBase instance.
Definition: Executioner.C:112
virtual void endStep(Real input_time=-1.0)
Definition: Transient.C:446
void finishMultiAppStep(ExecFlagType type, bool recurse_through_multiapp_levels=false)
Finish the MultiApp time step (endStep, postStep) associated with the ExecFlagType.
const ExecFlagType EXEC_TIMESTEP_END
Definition: Moose.C:32
const ExecFlagType EXEC_TIMESTEP_BEGIN
Definition: Moose.C:33
std::vector< Transient * > _transient_executioners
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
virtual void postStep()
Definition: Transient.C:275

◆ firstLocalApp()

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

Definition at line 286 of file MultiApp.h.

286 { return _first_local_app; }
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514

◆ getBlockCoordSystem()

Moose::CoordinateSystemType BlockRestrictable::getBlockCoordSystem ( )
protectedinherited

Check if the blocks this object operates on all have the same coordinate system, and if so return it.

Definition at line 311 of file BlockRestrictable.C.

312 {
313  if (!_blk_mesh)
314  mooseError("No mesh available in BlockRestrictable::checkCoordSystem()");
315  if (!_blk_feproblem)
316  mooseError("No problem available in BlockRestrictable::checkCoordSystem()");
317 
318  const auto & subdomains = blockRestricted() ? blockIDs() : meshBlockIDs();
319 
320  if (subdomains.empty())
321  mooseError("No subdomains found in the problem.");
322 
323  // make sure all subdomains are using the same coordinate system
324  auto coord_system = _blk_feproblem->getCoordSystem(*subdomains.begin());
325  for (auto subdomain : subdomains)
326  if (_blk_feproblem->getCoordSystem(subdomain) != coord_system)
327  mooseError("This object requires all subdomains to have the same coordinate system.");
328 
329  return coord_system;
330 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:299
FEProblemBase * _blk_feproblem
Pointer to FEProblemBase.
virtual const std::set< SubdomainID > & blockIDs() const
Return the block subdomain ids for this object Note, if this is not block restricted, this function returns all mesh subdomain ids.
virtual bool blockRestricted() const
Returns true if this object has been restricted to a block.
const std::set< SubdomainID > & meshBlockIDs() const
Return all of the SubdomainIDs for the mesh.
Moose::CoordinateSystemType getCoordSystem(SubdomainID sid) const
Definition: SubProblem.C:1235
MooseMesh * _blk_mesh
Pointer to Mesh.

◆ getBoundingBox()

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

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 862 of file MultiApp.C.

865 {
866  if (!_has_an_app)
867  mooseError("No app for ", name(), " on processor ", _orig_rank);
868 
869  unsigned int local_app = globalAppToLocal(app);
870  FEProblemBase & fe_problem_base = _apps[local_app]->getExecutioner()->feProblem();
871  MooseMesh & mesh = (displaced_mesh && fe_problem_base.getDisplacedProblem().get() != NULL)
872  ? fe_problem_base.getDisplacedProblem()->mesh()
873  : fe_problem_base.mesh();
874 
875  {
877  if (displaced_mesh)
878  _bounding_box[local_app] = MeshTools::create_bounding_box(mesh);
879  else
880  {
881  if (!_has_bounding_box[local_app])
882  {
883  _bounding_box[local_app] = MeshTools::create_bounding_box(mesh);
884  _has_bounding_box[local_app] = true;
885  }
886  }
887  }
888  BoundingBox bbox = _bounding_box[local_app];
889 
890  Point min = bbox.min();
892  Point max = bbox.max();
894 
895  Point inflation_amount = (max - min) * _inflation;
896 
897  Point inflated_min = min - inflation_amount;
898  Point inflated_max = max + inflation_amount;
899 
900  Point shifted_min = inflated_min;
901  Point shifted_max = inflated_max;
902 
903  if ((!coord_transform || coord_transform->skipCoordinateCollapsing()) &&
904  fe_problem_base.getCoordSystem(*(mesh.meshSubdomains().begin())) == Moose::COORD_RZ)
905  {
906  // If the problem is RZ then we're going to invent a box that would cover the whole "3D" app
907  // FIXME: Assuming all subdomains are the same coordinate system type!
908  shifted_min(0) = -inflated_max(0);
909  shifted_min(1) = inflated_min(1);
910  shifted_min(2) = -inflated_max(0);
911 
912  shifted_max(0) = inflated_max(0);
913  shifted_max(1) = inflated_max(1);
914  shifted_max(2) = inflated_max(0);
915  }
916 
917  if (coord_transform)
918  {
919  BoundingBox transformed_bbox(shifted_min, shifted_max);
920  transformBoundingBox(transformed_bbox, *coord_transform);
921  return transformed_bbox;
922  }
923  else
924  {
925  // This is where the app is located. We need to shift by this amount.
926  Point p = position(app);
927 
928  // Shift them to the position they're supposed to be
929  shifted_min += p;
930  shifted_max += p;
931  return BoundingBox(shifted_min, shifted_max);
932  }
933 }
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:529
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
MeshBase & mesh
Real _inflation
Relative bounding box inflation.
Definition: MultiApp.h:547
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
auto max(const L &left, const R &right)
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
void skipCoordinateCollapsing(bool skip_coordinate_collapsing)
set whether coordinate collapsing operations should be skipped
std::vector< BoundingBox > _bounding_box
This multi-app&#39;s bounding box.
Definition: MultiApp.h:544
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
static void transformBoundingBox(BoundingBox &box, const MultiAppCoordTransform &transform)
Transform a bounding box according to the transformations in the provided coordinate transformation o...
Definition: MultiApp.C:822
virtual std::shared_ptr< const DisplacedProblem > getDisplacedProblem() const
virtual MooseMesh & mesh() override
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
Moose::CoordinateSystemType getCoordSystem(SubdomainID sid) const
Definition: SubProblem.C:1235
Point _bounding_box_padding
Additional padding added to the bounding box, useful for 1D meshes.
Definition: MultiApp.h:550
auto min(const L &left, const R &right)
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:523
const Point & position(unsigned int app) const
The physical position of a global App number.
Definition: MultiApp.C:1384
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:1330
std::vector< bool > _has_bounding_box
Flag if this multi-app computed its bounding box (valid only for non-displaced meshes) ...
Definition: MultiApp.h:541

◆ getCheckedPointerParam()

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

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

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

Definition at line 268 of file MooseBaseParameterInterface.h.

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

◆ getCommandLineArgsParamHelper()

std::string MultiApp::getCommandLineArgsParamHelper ( unsigned int  local_app)
protectedvirtualinherited

Method to aid in getting the "cli_args" parameters.

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 1191 of file MultiApp.C.

Referenced by MultiApp::createApp().

1192 {
1193  auto cla = cliArgs();
1194 
1195  mooseAssert(cla.size() || _cli_args_from_file.size(), "There is no commandLine argument \n");
1196 
1197  // Single set of "cli_args" to be applied to all sub apps
1198  if (cla.size() == 1)
1199  return cla[0];
1200  else if (_cli_args_from_file.size() == 1)
1201  return _cli_args_from_file[0];
1202  else if (cla.size())
1203  // Unique set of "cli_args" to be applied to each sub apps
1204  return cla[local_app + _first_local_app];
1205  else
1206  return _cli_args_from_file[local_app + _first_local_app];
1207 }
virtual std::vector< std::string > cliArgs() const
function that provides cli_args to subapps
Definition: MultiApp.h:387
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514
std::vector< std::string > _cli_args_from_file
CommandLine arguments from files.
Definition: MultiApp.h:592

◆ getDataFileName()

std::string DataFileInterface< MooseObject >::getDataFileName ( const std::string &  param) const
inherited

Returns the path of a data file for a given FileName type parameter, searching (in the following order)

  • relative to the input file directory
  • relative to the running binary (assuming the application is installed)
  • relative to all registered data file directories

Definition at line 24 of file DataFileInterface.C.

25 {
26  // The path from the parameters, which has not been modified because it is a DataFileName
27  const auto & value = _parent.template getParam<DataFileParameterType>(param);
28  if (value.empty())
29  _parent.paramInfo(param, "Data file name is empty");
30 
31  const std::filesystem::path value_path = std::filesystem::path(std::string(value));
32 
33  // If the file is absolute, we should reference that directly and don't need to add
34  // any info beacuse this is not ambiguous
35  if (value_path.is_absolute() && MooseUtils::checkFileReadable(value, false, false, false))
36  return value;
37 
38  // Look relative to the input file
39  const auto base = _parent.parameters().getParamFileBase(param);
40  const std::string relative_to_context = std::filesystem::absolute(base / value_path).c_str();
41  if (MooseUtils::checkFileReadable(relative_to_context, false, false, false))
42  {
43  _parent.paramInfo(param, "Data file '", value, "' found relative to the input file.");
44  return relative_to_context;
45  }
46 
47  // Isn't absolute and couldn't find relative to the input file, so search the data
48  return getDataFileNameByName(value, &param);
49 }
std::string getDataFileNameByName(const std::string &name, const std::string *param=nullptr) const
Returns the path of a data file for a given relative file path.
std::filesystem::path getParamFileBase(const std::string &param_name) const
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true, bool check_for_git_lfs_pointer=true)
Checks to see if a file is readable (exists and permissions)
Definition: MooseUtils.C:256
const InputParameters & parameters() const
Get the parameters of the object.
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 in...

◆ getDataFileNameByName()

std::string DataFileInterface< MooseObject >::getDataFileNameByName ( const std::string &  name,
const std::string *  param = nullptr 
) 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. The optional param pointer can be used to turn the mooseErrors this function emits into paramErrors

  • relative to the running binary (assuming the application is installed)
  • relative to all registered data file directories

Definition at line 53 of file DataFileInterface.C.

55 {
57  const auto share_dir = MooseUtils::pathjoin(Moose::getExecutablePath(), "..", "share");
58  if (MooseUtils::pathIsDirectory(share_dir))
59  {
60  const auto dirs = MooseUtils::listDir(share_dir, false);
61  for (const auto & data_dir : dirs)
62  {
63  const auto path = MooseUtils::pathjoin(data_dir, "data", relative_path);
64  if (MooseUtils::checkFileReadable(path, false, false, false))
65  {
66  if (param)
68  *param, "Data file '", path, "' found in an installed app distribution.");
69  else
70  mooseInfo("Data file '", path, "' found in an installed app distribution.");
71  return path;
72  }
73  }
74  }
75 
77  for (const auto & data_dir : Registry::getRegistry().getDataFilePaths())
78  {
79  const auto path = MooseUtils::pathjoin(data_dir, relative_path);
80  if (MooseUtils::checkFileReadable(path, false, false, false))
81  {
82  if (param)
83  _parent.paramInfo(*param, "Data file '", path, "' found in a source repository.");
84  else
85  mooseInfo("Data file '", path, "' found in a source repository.");
86  return path;
87  }
88  }
89 
90  mooseException(param ? _parent.parameters().inputLocation(*param) : _parent.name(),
91  ": Unable to find data file '",
92  relative_path,
93  "' anywhere");
94 }
static Registry & getRegistry()
Get the global Registry singleton.
Definition: Registry.C:21
std::string getExecutablePath()
This function returns the PATH of the running executable.
bool pathIsDirectory(const std::string &path)
Definition: MooseUtils.C:247
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
void mooseInfo(Args &&... args)
Emit an informational message with the given stringified, concatenated args.
Definition: MooseError.h:366
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true, bool check_for_git_lfs_pointer=true)
Checks to see if a file is readable (exists and permissions)
Definition: MooseUtils.C:256
std::string inputLocation(const std::string &param) const
std::filesystem::path pathjoin(const std::filesystem::path &p)
Definition: MooseUtils.C:58
std::list< std::string > listDir(const std::string path, bool files_only=false)
Definition: MooseUtils.C:768
const InputParameters & parameters() const
Get the parameters of the object.
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 in...

◆ getExecuteOnEnum()

const ExecFlagEnum & SetupInterface::getExecuteOnEnum ( ) const
inherited

◆ getExecutioner()

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

Definition at line 688 of file MultiApp.C.

Referenced by MultiApp::restore().

689 {
690  if (!_has_an_app)
691  mooseError("No app for ", name(), " on processor ", _orig_rank);
692 
693  return _apps[globalAppToLocal(app)]->getExecutioner();
694 }
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:529
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:1330

◆ getMooseApp()

MooseApp& MooseBase::getMooseApp ( ) const
inlineinherited

◆ getMultiAppName()

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

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 1375 of file MultiApp.C.

Referenced by MultiApp::createApp(), and MultiApp::setAppOutputFileBase().

1376 {
1377  std::ostringstream multiapp_name;
1378  multiapp_name << base_name << std::setw(std::ceil(std::log10(total))) << std::setprecision(0)
1379  << std::setfill('0') << std::right << index;
1380  return multiapp_name.str();
1381 }

◆ getParam() [1/2]

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

Retrieve a parameter for the object.

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

Definition at line 204 of file MooseBaseParameterInterface.h.

Referenced by CreateDisplacedProblemAction::act(), AddPeriodicBCAction::act(), ADNodalKernel::ADNodalKernel(), ArrayParsedAux::ArrayParsedAux(), AddPeriodicBCAction::autoTranslationBoundaries(), BicubicSplineFunction::BicubicSplineFunction(), PiecewiseTabularBase::buildFromJSON(), PhysicsBase::checkVectorParamsNoOverlap(), PhysicsBase::checkVectorParamsSameLength(), FEProblemBase::createTagSolutions(), AccumulateReporter::declareLateValues(), DerivativeParsedMaterialTempl< is_ad >::DerivativeParsedMaterialTempl(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), EigenKernel::EigenKernel(), FEProblemBase::FEProblemBase(), FEProblemSolve::FEProblemSolve(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FVInterfaceKernel::FVInterfaceKernel(), ExtraNodesetGenerator::generate(), FileMeshGenerator::generate(), BreakMeshByBlockGenerator::generate(), CoarsenBlockGenerator::generate(), GeneratedMeshGenerator::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), BlockDeletionGenerator::generate(), MeshExtruderGenerator::generate(), GenericConstantRankTwoTensorTempl< is_ad >::GenericConstantRankTwoTensorTempl(), MooseApp::getCheckpointDirectories(), ExecutorInterface::getExecutor(), GhostingUserObject::GhostingUserObject(), TimeSequenceStepper::init(), IterationAdaptiveDT::init(), AdvancedOutput::init(), AttribThread::initFrom(), AttribSysNum::initFrom(), AttribResidualObject::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), IterationAdaptiveDT::limitDTToPostprocessorValue(), MooseMesh::MooseMesh(), MooseVariableBase::MooseVariableBase(), NestedDivision::NestedDivision(), ConsoleUtils::outputExecutionInformation(), ParsedAux::ParsedAux(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedElementDeletionGenerator::ParsedElementDeletionGenerator(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedMaterialTempl< is_ad >::ParsedMaterialTempl(), ParsedNodeTransformGenerator::ParsedNodeTransformGenerator(), ParsedODEKernel::ParsedODEKernel(), ParsedPostprocessor::ParsedPostprocessor(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), PiecewiseByBlockFunctorMaterialTempl< T >::PiecewiseByBlockFunctorMaterialTempl(), PiecewiseConstantByBlockMaterialTempl< is_ad >::PiecewiseConstantByBlockMaterialTempl(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), Moose::FV::setInterpolationMethod(), SetupMeshAction::setupMesh(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), TimePeriod::TimePeriod(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), and VectorOfPostprocessors::VectorOfPostprocessors().

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

◆ getParam() [2/2]

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

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

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

Definition at line 261 of file MooseBaseParameterInterface.h.

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

◆ getRenamedParam()

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

Retrieve a renamed parameter for the object.

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

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

Definition at line 211 of file MooseBaseParameterInterface.h.

213 {
214  // this enables having a default on the new parameter but bypassing it with the old one
215  // Most important: accept new parameter
216  if (isParamSetByUser(new_name) && !isParamValid(old_name))
217  return InputParameters::getParamHelper(new_name, _pars, static_cast<T *>(0), &_moose_base);
218  // Second most: accept old parameter
219  else if (isParamValid(old_name) && !isParamSetByUser(new_name))
220  return InputParameters::getParamHelper(old_name, _pars, static_cast<T *>(0), &_moose_base);
221  // Third most: accept default for new parameter
222  else if (isParamValid(new_name) && !isParamValid(old_name))
223  return InputParameters::getParamHelper(new_name, _pars, static_cast<T *>(0), &_moose_base);
224  // Refuse: no default, no value passed
225  else if (!isParamValid(old_name) && !isParamValid(new_name))
226  mooseError(_pars.blockFullpath() + ": parameter '" + new_name +
227  "' is being retrieved without being set.\n"
228  "Did you misspell it?");
229  // Refuse: both old and new parameters set by user
230  else
231  mooseError(_pars.blockFullpath() + ": parameter '" + new_name +
232  "' may not be provided alongside former parameter '" + old_name + "'");
233 }
const MooseBase & _moose_base
The MooseBase object that inherits this class.
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:299
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
bool isParamSetByUser(const std::string &nm) const
Test if the supplied parameter is set by a user, as opposed to not set or set to default.
std::string blockFullpath() const
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type, const MooseBase *moose_base=nullptr)

◆ 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 287 of file Restartable.h.

288 {
289  return declareRestartableDataHelper<T>(data_name, nullptr).get();
290 }

◆ 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 72 of file MooseObject.C.

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

◆ getSharedPtr() [2/2]

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

Definition at line 85 of file MooseObject.C.

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

◆ globalAppToLocal()

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

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 1330 of file MultiApp.C.

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

1331 {
1332  if (global_app >= _first_local_app && global_app <= _first_local_app + (_my_num_apps - 1))
1333  return global_app - _first_local_app;
1334 
1335  std::stringstream ss;
1336  ss << "Requesting app " << global_app << ", but processor " << processor_id() << " ";
1337  if (_my_num_apps == 0)
1338  ss << "does not own any apps";
1339  else if (_my_num_apps == 1)
1340  ss << "owns app " << _first_local_app;
1341  else
1342  ss << "owns apps " << _first_local_app << "-" << _first_local_app + (_my_num_apps - 1);
1343  ss << ".";
1344  mooseError("Invalid global_app!\n", ss.str());
1345  return 0;
1346 }
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
processor_id_type processor_id() const

◆ hasApp()

bool MultiApp::hasApp ( )
inlineinherited

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

Definition at line 296 of file MultiApp.h.

296 { return _has_an_app; }
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586

◆ hasBlockMaterialProperty()

template<typename T , bool is_ad>
bool BlockRestrictable::hasBlockMaterialProperty ( const std::string &  prop_name)
inherited

Check if a material property is valid for all blocks of this object.

This method returns true if the supplied property name has been declared in a Material object on the block ids for this object.

Template Parameters
TThe type of material property
Parameters
prop_namethe name of the property to query
Returns
true if the property exists for all block ids of the object, otherwise false
See also
Material::hasBlockMaterialProperty

Definition at line 264 of file BlockRestrictable.h.

265 {
266  mooseAssert(_blk_material_data != NULL, "MaterialData pointer is not defined");
267  return hasBlockMaterialPropertyHelper(prop_name) &&
268  _blk_material_data->haveGenericProperty<T, is_ad>(prop_name);
269 }
bool haveGenericProperty(const std::string &prop_name) const
Definition: MaterialData.h:253
const MaterialData * _blk_material_data
Pointer to the MaterialData class for this object.
virtual bool hasBlockMaterialPropertyHelper(const std::string &prop_name)
A helper method to allow the Material object to specialize the behavior of hasBlockMaterialProperty.

◆ hasBlockMaterialPropertyHelper()

bool BlockRestrictable::hasBlockMaterialPropertyHelper ( const std::string &  prop_name)
protectedvirtualinherited

A helper method to allow the Material object to specialize the behavior of hasBlockMaterialProperty.

It also avoid circular #include problems.

See also
hasBlockMaterialProperty

Definition at line 275 of file BlockRestrictable.C.

Referenced by BlockRestrictable::hasBlockMaterialProperty().

276 {
277 
278  // Reference to MaterialWarehouse for testing and retrieving block ids
280 
281  // Complete set of ids that this object is active
282  const std::set<SubdomainID> & ids = blockRestricted() ? blockIDs() : meshBlockIDs();
283 
284  // Loop over each id for this object
285  for (const auto & id : ids)
286  {
287  // Storage of material properties that have been DECLARED on this id
288  std::set<std::string> declared_props;
289 
290  // If block materials exist, populated the set of properties that were declared
291  if (warehouse.hasActiveBlockObjects(id))
292  {
293  const std::vector<std::shared_ptr<MaterialBase>> & mats = warehouse.getActiveBlockObjects(id);
294  for (const auto & mat : mats)
295  {
296  const std::set<std::string> & mat_props = mat->getSuppliedItems();
297  declared_props.insert(mat_props.begin(), mat_props.end());
298  }
299  }
300 
301  // If the supplied property is not in the list of properties on the current id, return false
302  if (declared_props.find(prop_name) == declared_props.end())
303  return false;
304  }
305 
306  // If you get here the supplied property is defined on all blocks
307  return true;
308 }
bool hasActiveBlockObjects(THREAD_ID tid=0) const
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects(THREAD_ID tid=0) const
FEProblemBase * _blk_feproblem
Pointer to FEProblemBase.
virtual const std::set< SubdomainID > & blockIDs() const
Return the block subdomain ids for this object Note, if this is not block restricted, this function returns all mesh subdomain ids.
virtual bool blockRestricted() const
Returns true if this object has been restricted to a block.
MaterialBase objects are special in that they have additional objects created automatically (see FEPr...
const MaterialWarehouse & getMaterialWarehouse() const
const std::set< SubdomainID > & meshBlockIDs() const
Return all of the SubdomainIDs for the mesh.

◆ hasBlocks() [1/5]

bool BlockRestrictable::hasBlocks ( const SubdomainName &  name) const
inherited

Test if the supplied block name is valid for this object.

Parameters
nameA SubdomainName to check
Returns
True if the given id is valid for this object

Definition at line 205 of file BlockRestrictable.C.

Referenced by LinearFVFluxKernel::addMatrixContribution(), DiracKernelBase::addPoint(), LinearFVFluxKernel::addRightHandSideContribution(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), DomainUserObject::checkVariable(), ComputeJacobianThread::compute(), DomainUserObject::DomainUserObject(), ExtraIDIntegralVectorPostprocessor::execute(), MeshDivisionFunctorReductionVectorPostprocessor::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), ExtraIDIntegralVectorPostprocessor::ExtraIDIntegralVectorPostprocessor(), QuadraturePointMultiApp::fillPositions(), fillPositions(), BlockRestrictable::hasBlocks(), MooseVariableField< Real >::hasBlocks(), FVFluxKernel::hasFaceSide(), and PointwiseRenormalizeVector::PointwiseRenormalizeVector().

206 {
207  // Create a vector and utilize the getSubdomainIDs function, which
208  // handles the ANY_BLOCK_ID (getSubdomainID does not)
209  std::vector<SubdomainName> names(1);
210  names[0] = name;
211  return hasBlocks(_blk_mesh->getSubdomainIDs(names));
212 }
std::string name(const ElemQuality q)
std::vector< SubdomainID > getSubdomainIDs(const std::vector< SubdomainName > &subdomain_name) const
Get the associated subdomainIDs for the subdomain names that are passed in.
Definition: MooseMesh.C:1520
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.
MooseMesh * _blk_mesh
Pointer to Mesh.

◆ hasBlocks() [2/5]

bool BlockRestrictable::hasBlocks ( const std::vector< SubdomainName > &  names) const
inherited

Test if the supplied vector of block names are valid for this object.

Parameters
namesA vector of SubdomainNames to check
Returns
True if the given ids are valid for this object

Definition at line 215 of file BlockRestrictable.C.

216 {
217  return hasBlocks(_blk_mesh->getSubdomainIDs(names));
218 }
std::vector< SubdomainID > getSubdomainIDs(const std::vector< SubdomainName > &subdomain_name) const
Get the associated subdomainIDs for the subdomain names that are passed in.
Definition: MooseMesh.C:1520
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.
MooseMesh * _blk_mesh
Pointer to Mesh.

◆ hasBlocks() [3/5]

bool BlockRestrictable::hasBlocks ( SubdomainID  id) const
inherited

Test if the supplied block ids are valid for this object.

Parameters
idA SubdomainID to check
Returns
True if the given id is valid for this object

Definition at line 221 of file BlockRestrictable.C.

222 {
223  if (_blk_ids.empty() || _blk_ids.find(Moose::ANY_BLOCK_ID) != _blk_ids.end())
224  return true;
225  else
226  return _blk_ids.find(id) != _blk_ids.end();
227 }
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.C:19
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error checking)

◆ hasBlocks() [4/5]

bool BlockRestrictable::hasBlocks ( const std::vector< SubdomainID > &  ids) const
inherited

Test if the supplied vector block ids are valid for this object.

Parameters
idsA vector of SubdomainIDs ids to check
Returns
True if all of the given ids are found within the ids for this object

Definition at line 230 of file BlockRestrictable.C.

231 {
232  std::set<SubdomainID> ids_set(ids.begin(), ids.end());
233  return hasBlocks(ids_set);
234 }
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.

◆ hasBlocks() [5/5]

bool BlockRestrictable::hasBlocks ( const std::set< SubdomainID > &  ids) const
inherited

Test if the supplied set of block ids are valid for this object.

Parameters
idsA std::set of SubdomainIDs to check
Returns
True if all of the given ids are found within the ids for this object
See also
isSubset

Definition at line 237 of file BlockRestrictable.C.

238 {
239  if (_blk_ids.empty() || _blk_ids.find(Moose::ANY_BLOCK_ID) != _blk_ids.end())
240  return true;
241  else
242  return std::includes(_blk_ids.begin(), _blk_ids.end(), ids.begin(), ids.end());
243 }
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.C:19
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error checking)

◆ hasLocalApp()

bool MultiApp::hasLocalApp ( unsigned int  global_app) const
inherited

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 990 of file MultiApp.C.

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

991 {
992  if (_has_an_app && global_app >= _first_local_app &&
993  global_app <= _first_local_app + (_my_num_apps - 1))
994  return true;
995 
996  return false;
997 }
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514

◆ incrementTStep()

void TransientMultiApp::incrementTStep ( Real  )
overridevirtualinherited

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 from MultiApp.

Definition at line 560 of file TransientMultiApp.C.

561 {
562  if (!_sub_cycling)
563  {
564  for (unsigned int i = 0; i < _my_num_apps; i++)
565  {
567 
568  // The App might have a different local time from the rest of the problem
569  Real app_time_offset = _apps[i]->getGlobalTimeOffset();
570 
571  // Only increment the step if we are after (target_time) the
572  // start_time (added to app_time_offset) of this sub_app.
573  if (_apps[i]->getStartTime() + app_time_offset < target_time)
574  ex->incrementStepOrReject();
575  }
576  }
577 }
Transient executioners usually loop through a number of timesteps...
Definition: Transient.h:26
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
virtual void incrementStepOrReject()
This is where the solve step is actually incremented.
Definition: Transient.C:341
std::vector< Transient * > _transient_executioners
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ init() [1/2]

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

Build communicators and reserve backups.

Definition at line 314 of file MultiApp.C.

Referenced by MultiApp::setupPositions().

315 {
316  auto config = rankConfig(
317  processor_id(), n_processors(), num_apps, _min_procs_per_app, _max_procs_per_app, batch_mode);
318  init(num_apps, config);
319 }
processor_id_type _min_procs_per_app
Minimum number of processors to give to each app.
Definition: MultiApp.h:556
processor_id_type n_processors() const
processor_id_type _max_procs_per_app
Maximum number of processors to give to each app.
Definition: MultiApp.h:553
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)
Returns app partitioning information relevant to the given rank for a multiapp scenario with the give...
Definition: MultiApp.C:1210
void init(unsigned int num_apps, bool batch_mode=false)
Build communicators and reserve backups.
Definition: MultiApp.C:314
processor_id_type processor_id() const

◆ init() [2/2]

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

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

Definition at line 322 of file MultiApp.C.

323 {
324  TIME_SECTION(_init_timer);
325 
326  _total_num_apps = num_apps;
327  _rank_config = config;
328  buildComm();
330 
331  _has_bounding_box.resize(_my_num_apps, false);
332  _reset_happened.resize(_reset_times.size(), false);
333  _bounding_box.resize(_my_num_apps);
334 
335  if ((_cli_args.size() > 1) && (_total_num_apps != _cli_args.size()))
336  paramError("cli_args",
337  "The number of items supplied must be 1 or equal to the number of sub apps.");
338 
339  // if cliArgs() != _cli_args, then cliArgs() was overridden and we need to check it
340  auto cla = cliArgs();
341  if (cla != std::vector<std::string>(_cli_args.begin(), _cli_args.end()))
342  {
343  if ((cla.size() > 1) && (_total_num_apps != cla.size()))
344  mooseError("The number of items supplied as command line argument to subapps must be 1 or "
345  "equal to the number of sub apps. Note: you use a multiapp that provides its own "
346  "command line parameters so the error is not in cli_args");
347  }
348 }
virtual std::vector< std::string > cliArgs() const
function that provides cli_args to subapps
Definition: MultiApp.h:387
const std::vector< CLIArgString > & _cli_args
CommandLine arguments.
Definition: MultiApp.h:589
LocalRankConfig _rank_config
The app configuration resulting from calling init.
Definition: MultiApp.h:601
std::vector< Real > _reset_times
The times at which to reset apps.
Definition: MultiApp.h:565
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 ...
void buildComm()
Create an MPI communicator suitable for each app.
Definition: MultiApp.C:1288
unsigned int _total_num_apps
The total number of apps to simulate.
Definition: MultiApp.h:508
std::vector< BoundingBox > _bounding_box
This multi-app&#39;s bounding box.
Definition: MultiApp.h:544
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
const PerfID _init_timer
Definition: MultiApp.h:614
SubAppBackups & _sub_app_backups
The cached subapp backups (passed from the parent app)
Definition: MultiApp.h:610
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::vector< bool > _reset_happened
Whether or not apps have been reset at each time.
Definition: MultiApp.h:571
std::vector< bool > _has_bounding_box
Flag if this multi-app computed its bounding box (valid only for non-displaced meshes) ...
Definition: MultiApp.h:541

◆ initializeBlockRestrictable()

void BlockRestrictable::initializeBlockRestrictable ( const MooseObject moose_object)
protectedinherited

An initialization routine needed for dual constructors.

Definition at line 74 of file BlockRestrictable.C.

Referenced by BlockRestrictable::BlockRestrictable().

75 {
76  // If the mesh pointer is not defined, but FEProblemBase is, get it from there
77  if (_blk_feproblem != NULL && _blk_mesh == NULL)
79 
80  // Check that the mesh pointer was defined, it is required for this class to operate
81  if (_blk_mesh == NULL)
82  mooseError("The input parameters must contain a pointer to FEProblem via '_fe_problem' or a "
83  "pointer to the MooseMesh via '_mesh'");
84 
85  // Populate the MaterialData pointer
86  if (_blk_feproblem != NULL)
88 
89  // The 'block' input is defined
90  if (moose_object->isParamValid("block"))
91  {
92  // Extract the blocks from the input
93  _blocks = moose_object->getParam<std::vector<SubdomainName>>("block");
94 
95  // Store the IDs in a set, handling ANY_BLOCK_ID if supplied
96  if (std::find(_blocks.begin(), _blocks.end(), "ANY_BLOCK_ID") != _blocks.end())
98  else
99  {
100  // Get the IDs from the supplied names
102  _blk_ids.insert(_vec_ids.begin(), _vec_ids.end());
103  }
104  }
105 
106  // When 'blocks' is not set and there is a "variable", use the blocks from the variable
107  else if (moose_object->isParamValid("variable"))
108  {
109  std::string variable_name = moose_object->parameters().getMooseType("variable");
110  if (!variable_name.empty())
112  ->getVariable(_blk_tid,
113  variable_name,
116  .activeSubdomains();
117  }
118 
119  // Produce error if the object is not allowed to be both block and boundary restricted
120  if (!_blk_dual_restrictable && !_boundary_ids.empty() && !_boundary_ids.empty())
121  if (!_boundary_ids.empty() && _boundary_ids.find(Moose::ANY_BOUNDARY_ID) == _boundary_ids.end())
122  moose_object->paramError("block",
123  "Attempted to restrict the object '",
124  _blk_name,
125  "' to a block, but the object is already restricted by boundary");
126 
127  // If no blocks were defined above, specify that it is valid on all blocks
128  if (_blk_ids.empty() && !moose_object->isParamValid("boundary"))
129  {
131  _blocks = {"ANY_BLOCK_ID"};
132  }
133 
134  // If this object is block restricted, check that defined blocks exist on the mesh
135  if (_blk_ids.find(Moose::ANY_BLOCK_ID) == _blk_ids.end())
136  {
137  const std::set<SubdomainID> & valid_ids = _blk_mesh->meshSubdomains();
138  std::vector<SubdomainID> diff;
139 
140  std::set_difference(_blk_ids.begin(),
141  _blk_ids.end(),
142  valid_ids.begin(),
143  valid_ids.end(),
144  std::back_inserter(diff));
145 
146  if (!diff.empty())
147  {
148  std::ostringstream msg;
149  auto sep = " ";
150  msg << "the following blocks (ids) do not exist on the mesh:";
151  for (const auto & id : diff)
152  {
153  if (_blk_name.size() > 0)
154  {
155  auto & name =
156  _blocks.at(std::find(_vec_ids.begin(), _vec_ids.end(), id) - _vec_ids.begin());
157  if (std::to_string(id) != name)
158  msg << sep << name << " (" << id << ")";
159  else
160  msg << sep << id;
161  }
162  else
163  msg << sep << id;
164  sep = ", ";
165  }
166  moose_object->paramError("block", msg.str());
167  }
168  }
169 
170  // Get the mesh dimension for the blocks
171  if (blockRestricted())
173  else
175 }
std::string name(const ElemQuality q)
std::string getMooseType(const std::string &name) const
Utility functions for retrieving one of the MooseTypes variables into the common "string" base class...
unsigned int _blk_dim
Largest mesh dimension of the elements in the blocks for this object.
const bool _blk_dual_restrictable
Flag for allowing dual restriction.
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:299
MaterialData & getMaterialData(Moose::MaterialDataType type, const THREAD_ID tid=0)
FEProblemBase * _blk_feproblem
Pointer to FEProblemBase.
virtual bool blockRestricted() const
Returns true if this object has been restricted to a block.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
std::vector< SubdomainID > _vec_ids
Vector of block ids supplied by the user via the input file (for error reporting) ...
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
Definition: MooseMesh.C:2679
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
THREAD_ID _blk_tid
Thread id for this object.
std::vector< SubdomainName > _blocks
Vector the block names supplied by the user via the input file.
void paramError(const std::string &param, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.C:19
unsigned int getBlocksMaxDimension(const std::vector< SubdomainName > &blocks) const
Returns the maximum element dimension on the given blocks.
Definition: MooseMesh.C:2700
const MaterialData * _blk_material_data
Pointer to the MaterialData class for this object.
virtual MooseMesh & mesh() override
const std::set< BoundaryID > & _boundary_ids
Reference to the boundary_ids, defaults to an empty set if not provided.
const InputParameters & parameters() const
Get the parameters of the object.
std::vector< SubdomainID > getSubdomainIDs(const std::vector< SubdomainName > &subdomain_name) const
Get the associated subdomainIDs for the subdomain names that are passed in.
Definition: MooseMesh.C:1520
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error checking)
const std::string & _blk_name
Name of the object.
MooseMesh * _blk_mesh
Pointer to Mesh.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.C:23
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:2922

◆ initialSetup()

void TransientMultiApp::initialSetup ( )
overridevirtualinherited

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

Reimplemented from MultiApp.

Definition at line 162 of file TransientMultiApp.C.

163 {
165 
166  if (!_has_an_app)
167  return;
168 
170 
171  if (_has_an_app)
172  {
174  // Grab Transient Executioners from each app
175  for (unsigned int i = 0; i < _my_num_apps; i++)
176  setupApp(i);
177  }
178 }
void setupApp(unsigned int i, Real time=0.0)
Setup the executioner for the local app.
std::vector< Transient * > _transient_executioners
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
virtual void initialSetup() override
Method to be called in main-app initial setup for create sub-apps if using positions is false...
Definition: MultiApp.C:413
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:523

◆ isBlockSubset() [1/2]

bool BlockRestrictable::isBlockSubset ( const std::set< SubdomainID > &  ids) const
inherited

Test if the class block ids are a subset of the supplied objects.

Parameters
idsA std::set of Subdomains to check
Returns
True if all of the block ids for this class are found within the given ids (opposite of hasBlocks)
See also
hasBlocks

Definition at line 246 of file BlockRestrictable.C.

Referenced by BlockRestrictable::checkVariable(), BlockRestrictable::isBlockSubset(), NodalPatchRecoveryAux::NodalPatchRecoveryAux(), and ProjectedMaterialPropertyNodalPatchRecoveryAux::ProjectedMaterialPropertyNodalPatchRecoveryAux().

247 {
248  // An empty input is assumed to be ANY_BLOCK_ID
249  if (ids.empty() || ids.find(Moose::ANY_BLOCK_ID) != ids.end())
250  return true;
251 
252  if (_blk_ids.find(Moose::ANY_BLOCK_ID) != _blk_ids.end())
253  return std::includes(ids.begin(),
254  ids.end(),
255  _blk_mesh->meshSubdomains().begin(),
256  _blk_mesh->meshSubdomains().end());
257  else
258  return std::includes(ids.begin(), ids.end(), _blk_ids.begin(), _blk_ids.end());
259 }
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.C:19
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error checking)
MooseMesh * _blk_mesh
Pointer to Mesh.
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:2922

◆ isBlockSubset() [2/2]

bool BlockRestrictable::isBlockSubset ( const std::vector< SubdomainID > &  ids) const
inherited

Test if the class block ids are a subset of the supplied objects.

Parameters
idsA std::vector of Subdomains to check
Returns
True if all of the block ids for this class are found within the given ids (opposite of hasBlocks)
See also
hasBlocks

Definition at line 262 of file BlockRestrictable.C.

263 {
264  std::set<SubdomainID> ids_set(ids.begin(), ids.end());
265  return isBlockSubset(ids_set);
266 }
bool isBlockSubset(const std::set< SubdomainID > &ids) const
Test if the class block ids are a subset of the supplied objects.

◆ isFirstLocalRank()

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

Definition at line 984 of file MultiApp.C.

985 {
987 }
LocalRankConfig _rank_config
The app configuration resulting from calling init.
Definition: MultiApp.h:601
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

◆ isParamSetByUser()

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

◆ isParamValid()

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

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 111 of file MooseBaseParameterInterface.h.

Referenced by CopyNodalVarsAction::act(), SetupMeshAction::act(), SetupDebugAction::act(), ComposeTimeStepperAction::act(), CreateDisplacedProblemAction::act(), SetAdaptivityOptionsAction::act(), CommonOutputAction::act(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), DiffusionCG::addFEBCs(), DiffusionCG::addFEKernels(), DiffusionFV::addFVBCs(), DiffusionFV::addFVKernels(), DiffusionCG::addNonlinearVariables(), AdvectiveFluxAux::AdvectiveFluxAux(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), AddPeriodicBCAction::autoTranslationBoundaries(), BicubicSplineFunction::BicubicSplineFunction(), BlockDeletionGenerator::BlockDeletionGenerator(), PiecewiseTabularBase::buildFromFile(), PiecewiseTabularBase::buildFromJSON(), GeneratedMesh::buildMesh(), CartesianGridDivision::CartesianGridDivision(), CartesianMeshGenerator::CartesianMeshGenerator(), PhysicsBase::checkParamsBothSetOrNotSet(), PhysicsBase::checkVectorParamsSameLength(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), CombinerGenerator::CombinerGenerator(), CSVReaderVectorPostprocessor::CSVReaderVectorPostprocessor(), CutMeshByPlaneGenerator::CutMeshByPlaneGenerator(), ConstantReporter::declareConstantReporterValues(), DGKernelBase::DGKernelBase(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), Eigenvalue::Eigenvalue(), ElementExtremeFunctorValueTempl< is_ad >::ElementExtremeFunctorValueTempl(), ElementExtremeValue::ElementExtremeValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), PIDTransientControl::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppUserObjectTransfer::execute(), Exodus::Exodus(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), FEProblemBase::FEProblemBase(), FEProblemSolve::FEProblemSolve(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FileOutput::FileOutput(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FunctionDT::FunctionDT(), FunctionValuePostprocessor::FunctionValuePostprocessor(), FVInterfaceKernel::FVInterfaceKernel(), FVMassMatrix::FVMassMatrix(), ExtraNodesetGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), SubdomainPerElementGenerator::generate(), AddMetaDataGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), FileMeshGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), BlockDeletionGenerator::generate(), GeneratedMeshGenerator::generate(), MeshExtruderGenerator::generate(), XYDelaunayGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), DistributedRectilinearMeshGenerator::generate(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), MooseBaseParameterInterface::getRenamedParam(), MultiAppNearestNodeTransfer::getTargetLocalNodes(), Terminator::handleMessage(), HFEMDirichletBC::HFEMDirichletBC(), EigenExecutionerBase::init(), IterationAdaptiveDT::init(), Eigenvalue::init(), AdvancedOutput::initExecutionTypes(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), MultiAppCloneReporterTransfer::initialSetup(), MultiAppVariableValueSampleTransfer::initialSetup(), PiecewiseTabularBase::initialSetup(), SolutionScalarAux::initialSetup(), SolutionAux::initialSetup(), Console::initialSetup(), MooseParsedVectorFunction::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), MooseParsedGradFunction::initialSetup(), MooseParsedFunction::initialSetup(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), MassMatrix::MassMatrix(), MatCoupledForce::MatCoupledForce(), MatDiffusionBase< Real >::MatDiffusionBase(), MooseMesh::MooseMesh(), MoosePreconditioner::MoosePreconditioner(), MooseVariableBase::MooseVariableBase(), MooseVariableFV< Real >::MooseVariableFV(), MortarConstraintBase::MortarConstraintBase(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldNearestLocationTransfer::MultiAppGeneralFieldNearestLocationTransfer(), MultiAppGeneralFieldShapeEvaluationTransfer::MultiAppGeneralFieldShapeEvaluationTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppReporterTransfer::MultiAppReporterTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), NodalExtremeValue::NodalExtremeValue(), EigenExecutionerBase::normalizeSolution(), Output::Output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), ParsedCurveGenerator::ParsedCurveGenerator(), PetscOutput::PetscOutput(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), PicardSolve::PicardSolve(), PIDTransientControl::PIDTransientControl(), PiecewiseTabularBase::PiecewiseTabularBase(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), MooseMesh::prepare(), MultiApp::readCommandLineArguments(), SolutionUserObject::readExodusII(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), ReporterPointSource::ReporterPointSource(), MooseMesh::setCoordSystem(), FileOutput::setFileBase(), FileOutput::setFileBaseInternal(), Split::setup(), SideSetsGeneratorBase::setup(), SetupMeshAction::setupMesh(), SideDiffusiveFluxIntegralTempl< is_ad, Real >::SideDiffusiveFluxIntegralTempl(), SideExtremeValue::SideExtremeValue(), SideSetsGeneratorBase::SideSetsGeneratorBase(), SolutionUserObject::SolutionUserObject(), Terminator::Terminator(), TimeIntervalTimes::TimeIntervalTimes(), TimePeriod::TimePeriod(), MultiAppDofCopyTransfer::transfer(), TransformGenerator::TransformGenerator(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), and VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl().

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

◆ isRootProcessor()

bool MultiApp::isRootProcessor ( )
inlineinherited

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 356 of file MultiApp.h.

356 { return _my_rank == 0; }
int _my_rank
The mpi "rank" of this processor in the sub communicator.
Definition: MultiApp.h:535

◆ jacobianSetup()

void SetupInterface::jacobianSetup ( )
virtualinherited

◆ keepSolutionDuringRestore()

void MultiApp::keepSolutionDuringRestore ( bool  keep_solution_during_restore)
protectedinherited

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

Definition at line 812 of file MultiApp.C.

813 {
814  if (_pars.isParamSetByUser("keep_solution_during_restore"))
815  paramError("keep_solution_during_restore",
816  "This parameter should only be provided in parent app");
817 
818  _keep_solution_during_restore = keep_solution_during_restore;
819 }
bool _keep_solution_during_restore
Flag indicates if or not restart from the latest solution.
Definition: MultiApp.h:595
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 ...
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was by the user.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.

◆ localApp()

MooseApp * MultiApp::localApp ( unsigned int  local_app)
inherited

Get the local MooseApp object.

Parameters
local_appThe local app number

Definition at line 1000 of file MultiApp.C.

1001 {
1002  mooseAssert(local_app < _apps.size(), "Index out of range: " + Moose::stringify(local_app));
1003  return _apps[local_app].get();
1004 }
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:62

◆ meshBlockIDs()

const std::set< SubdomainID > & BlockRestrictable::meshBlockIDs ( ) const
inherited

Return all of the SubdomainIDs for the mesh.

Returns
A set of all subdomians for the entire mesh

Definition at line 269 of file BlockRestrictable.C.

Referenced by BlockRestrictable::checkVariable(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), BlockRestrictable::getBlockCoordSystem(), BlockRestrictable::hasBlockMaterialPropertyHelper(), and SolutionIC::initialSetup().

270 {
271  return _blk_mesh->meshSubdomains();
272 }
MooseMesh * _blk_mesh
Pointer to Mesh.
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:2922

◆ mooseDeprecated()

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

Definition at line 91 of file MooseBaseErrorInterface.h.

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

92  {
93  moose::internal::mooseDeprecatedStream(_console, false, true, std::forward<Args>(args)...);
94  }
void mooseDeprecatedStream(S &oss, const bool expired, const bool print_title, Args &&... args)
Definition: MooseError.h:236
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ mooseDocumentedError()

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

Emits a documented error with object name and type.

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

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

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

Definition at line 61 of file MooseBaseErrorInterface.h.

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

◆ mooseError()

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

Emits an error prefixed with object name and type.

Definition at line 29 of file MooseBaseErrorInterface.h.

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

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

◆ mooseErrorNonPrefixed()

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

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

Definition at line 40 of file MooseBaseErrorInterface.h.

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

◆ mooseInfo()

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

◆ mooseWarning()

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

Emits a warning prefixed with object name and type.

Definition at line 75 of file MooseBaseErrorInterface.h.

Referenced by AddKernelAction::act(), SetupMeshAction::act(), MeshOnlyAction::act(), AddFunctionAction::act(), MaterialOutputAction::act(), CommonOutputAction::act(), DiracKernelBase::addPoint(), BoundaryMarker::BoundaryMarker(), BoundsBase::BoundsBase(), DistributedRectilinearMeshGenerator::buildCube(), MultiAppVariableValueSamplePostprocessorTransfer::cacheElemToPostprocessorData(), CartesianMeshGenerator::CartesianMeshGenerator(), CheckOutputAction::checkConsoleOutput(), MultiAppTransfer::checkMultiAppExecuteOn(), PhysicsBase::checkRequiredTasks(), OversampleOutput::cloneMesh(), GapValueAux::computeValue(), MultiApp::createApp(), MeshDiagnosticsGenerator::diagnosticsLog(), CartesianGridDivision::divisionIndex(), CylindricalGridDivision::divisionIndex(), SphericalGridDivision::divisionIndex(), Postprocessor::evaluateDotWarning(), MeshDivisionFunctorReductionVectorPostprocessor::execute(), ElementQualityChecker::finalize(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), FixedPointSolve::FixedPointSolve(), SubdomainPerElementGenerator::generate(), ParsedGenerateSideset::generate(), MultiAppTransfer::getAppInfo(), FunctorBinnedValuesDivision::getBinIndex(), PointSamplerBase::getLocalElemContainingPoint(), FEProblemBase::getMaterial(), Positions::getNearestPositionIndex(), LineValueSampler::getValue(), Terminator::handleMessage(), CartesianGridDivision::initialize(), SphericalGridDivision::initialize(), ElementGroupCentroidPositions::initialize(), CylindricalGridDivision::initialize(), ReferenceResidualProblem::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), MaterialBase::initStatefulProperties(), LeastSquaresFit::LeastSquaresFit(), IterationAdaptiveDT::limitDTToPostprocessorValue(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), FEProblemBase::mesh(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), NewmarkBeta::NewmarkBeta(), NodalPatchRecovery::NodalPatchRecovery(), NonlocalIntegratedBC::NonlocalIntegratedBC(), NonlocalKernel::NonlocalKernel(), Output::Output(), MultiAppGeneralFieldTransfer::outputValueConflicts(), PiecewiseConstantFromCSV::PiecewiseConstantFromCSV(), Executioner::problem(), PropertyReadFile::readData(), TestSourceStepper::rejectStep(), MaterialBase::resetQpProperties(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), MooseMesh::setCoordSystem(), FEProblemBase::sizeZeroes(), TransientMultiApp::solveStep(), Tecplot::Tecplot(), TimeDerivativeAux::TimeDerivativeAux(), Checkpoint::updateCheckpointFiles(), PiecewiseConstantFromCSV::value(), and VariableCondensationPreconditioner::VariableCondensationPreconditioner().

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

◆ mooseWarningNonPrefixed()

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

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

Definition at line 85 of file MooseBaseErrorInterface.h.

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

◆ moveApp()

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

Move the global_app to Point p.

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

Definition at line 1028 of file MultiApp.C.

Referenced by MultiApp::preTransfer().

1029 {
1030  if (_use_positions)
1031  {
1032  _positions[global_app] = p;
1033 
1034  if (hasLocalApp(global_app))
1035  {
1036  unsigned int local_app = globalAppToLocal(global_app);
1037 
1038  if (_output_in_position)
1039  _apps[local_app]->setOutputPosition(p);
1040  if (_run_in_position)
1041  paramError("run_in_position", "Moving apps and running apps in position is not supported");
1042  }
1043  }
1044 }
bool hasLocalApp(unsigned int global_app) const
Whether or not the given global app number is on this processor.
Definition: MultiApp.C:990
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:493
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
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 ...
bool _output_in_position
Whether or not to move the output of the MultiApp into position.
Definition: MultiApp.h:559
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated) ...
Definition: MultiApp.h:485
const bool _run_in_position
Whether to run the child apps with their meshes transformed with the coordinate transforms.
Definition: MultiApp.h:607
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:1330

◆ name()

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

Get the name of the class.

Returns
The name of the class

Reimplemented in MooseVariableBase.

Definition at line 57 of file MooseBase.h.

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

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

◆ needsRestoration()

bool TransientMultiApp::needsRestoration ( )
overridevirtualinherited

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

Reimplemented from MultiApp.

Definition at line 601 of file TransientMultiApp.C.

◆ numBlocks()

unsigned int BlockRestrictable::numBlocks ( ) const
inherited

Return the number of blocks for this object.

Returns
The number of subdomains

Definition at line 199 of file BlockRestrictable.C.

Referenced by ElementCentroidPositions::initialize().

200 {
201  return (unsigned int)_blk_ids.size();
202 }
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error checking)

◆ numGlobalApps()

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

Definition at line 276 of file MultiApp.h.

276 { return _total_num_apps; }
unsigned int _total_num_apps
The total number of apps to simulate.
Definition: MultiApp.h:508

◆ numLocalApps()

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

Definition at line 281 of file MultiApp.h.

281 { return _apps.size(); }
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538

◆ paramError()

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

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

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

Definition at line 237 of file MooseBaseParameterInterface.h.

Referenced by HierarchicalGridPartitioner::_do_partition(), SetupDebugAction::act(), ADConservativeAdvectionBC::ADConservativeAdvectionBC(), DiffusionCG::addFEKernels(), DiffusionFV::addFVKernels(), ADDGKernel::ADDGKernel(), DiffusionCG::addNonlinearVariables(), ReporterPointSource::addPoints(), ADIntegratedBCTempl< T >::ADIntegratedBCTempl(), ADKernelTempl< T >::ADKernelTempl(), ADNodalKernel::ADNodalKernel(), ADPenaltyPeriodicSegmentalConstraint::ADPenaltyPeriodicSegmentalConstraint(), ADPeriodicSegmentalConstraint::ADPeriodicSegmentalConstraint(), AdvancedExtruderGenerator::AdvancedExtruderGenerator(), AdvectiveFluxAux::AdvectiveFluxAux(), ADVectorFunctionDirichletBC::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), ArrayBodyForce::ArrayBodyForce(), ArrayDGKernel::ArrayDGKernel(), ArrayDGLowerDKernel::ArrayDGLowerDKernel(), ArrayDirichletBC::ArrayDirichletBC(), ArrayHFEMDirichletBC::ArrayHFEMDirichletBC(), ArrayIntegratedBC::ArrayIntegratedBC(), ArrayKernel::ArrayKernel(), ArrayLowerDIntegratedBC::ArrayLowerDIntegratedBC(), ArrayParsedAux::ArrayParsedAux(), ArrayPenaltyDirichletBC::ArrayPenaltyDirichletBC(), ArrayVacuumBC::ArrayVacuumBC(), AuxKernelTempl< Real >::AuxKernelTempl(), BlockDeletionGenerator::BlockDeletionGenerator(), BlockWeightedPartitioner::BlockWeightedPartitioner(), BoundsBase::BoundsBase(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), BuildArrayVariableAux::BuildArrayVariableAux(), PiecewiseTabularBase::buildFromFile(), CartesianGridDivision::CartesianGridDivision(), UserObjectInterface::castUserObject(), checkComponent(), MeshGenerator::checkGetMesh(), PostprocessorInterface::checkParam(), PhysicsBase::checkParamsBothSetOrNotSet(), Checkpoint::Checkpoint(), PhysicsBase::checkSecondParamSetOnlyIfFirstOneTrue(), Coupleable::checkVar(), MultiAppTransfer::checkVariable(), PhysicsBase::checkVectorParamsSameLength(), CircularBoundaryCorrectionGenerator::CircularBoundaryCorrectionGenerator(), CircularBoundaryCorrectionGenerator::circularCenterCalculator(), MultiAppGeneralFieldTransfer::closestToPosition(), CoarsenBlockGenerator::CoarsenBlockGenerator(), CombinerGenerator::CombinerGenerator(), CompositionDT::CompositionDT(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), LibtorchNeuralNetControl::conditionalParameterError(), ConstantVectorPostprocessor::ConstantVectorPostprocessor(), ContainsPointAux::ContainsPointAux(), CopyValueAux::CopyValueAux(), Coupleable::Coupleable(), CoupledForceTempl< is_ad >::CoupledForceTempl(), CoupledValueFunctionMaterialTempl< is_ad >::CoupledValueFunctionMaterialTempl(), MultiApp::createApp(), MeshGeneratorSystem::createMeshGenerator(), CylindricalGridDivision::CylindricalGridDivision(), ConstantReporter::declareConstantReporterValues(), AccumulateReporter::declareLateValues(), DGKernel::DGKernel(), DGKernelBase::DGKernelBase(), DGLowerDKernel::DGLowerDKernel(), DiffusionFluxAux::DiffusionFluxAux(), DomainUserObject::DomainUserObject(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), ElementExtremeFunctorValueTempl< is_ad >::ElementExtremeFunctorValueTempl(), ElementExtremeValue::ElementExtremeValue(), ElementGroupCentroidPositions::ElementGroupCentroidPositions(), ElementLengthAux::ElementLengthAux(), ElementLpNormAux::ElementLpNormAux(), ElementValueSampler::ElementValueSampler(), ElementVectorL2Error::ElementVectorL2Error(), ReporterPointSource::errorCheck(), MultiAppNearestNodeTransfer::execute(), MultiAppUserObjectTransfer::execute(), ExtraElementIDAux::ExtraElementIDAux(), ExtraElementIntegerDivision::ExtraElementIntegerDivision(), FEProblemSolve::FEProblemSolve(), FillBetweenCurvesGenerator::FillBetweenCurvesGenerator(), FillBetweenSidesetsGenerator::FillBetweenSidesetsGenerator(), ReporterPointSource::fillPoint(), SpatialUserObjectVectorPostprocessor::fillPoints(), CombinerGenerator::fillPositions(), MultiApp::fillPositions(), InternalSideIndicator::finalize(), FixedPointSolve::FixedPointSolve(), ForcingFunctionAux::ForcingFunctionAux(), FunctionArrayAux::FunctionArrayAux(), FunctionValuePostprocessor::FunctionValuePostprocessor(), FunctorADConverterTempl< T >::FunctorADConverterTempl(), FunctorAux::FunctorAux(), FunctorBinnedValuesDivision::FunctorBinnedValuesDivision(), FunctorElementalGradientAuxTempl< is_ad >::FunctorElementalGradientAuxTempl(), FunctorPositions::FunctorPositions(), FunctorVectorElementalAuxTempl< is_ad >::FunctorVectorElementalAuxTempl(), FVFluxBC::FVFluxBC(), FVInterfaceKernel::FVInterfaceKernel(), FVOneVarDiffusionInterface::FVOneVarDiffusionInterface(), FVTwoVarContinuityConstraint::FVTwoVarContinuityConstraint(), BoundaryDeletionGenerator::generate(), ElementsToTetrahedronsConverter::generate(), ExtraNodesetGenerator::generate(), FillBetweenSidesetsGenerator::generate(), PlaneIDMeshGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), AddMetaDataGenerator::generate(), FillBetweenCurvesGenerator::generate(), BlockToMeshConverterGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), CutMeshByPlaneGenerator::generate(), FlipSidesetGenerator::generate(), GeneratedMeshGenerator::generate(), CoarsenBlockGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), RefineBlockGenerator::generate(), RefineSidesetGenerator::generate(), BlockDeletionGenerator::generate(), BreakMeshByBlockGenerator::generate(), CombinerGenerator::generate(), MeshCollectionGenerator::generate(), MeshExtruderGenerator::generate(), ParsedCurveGenerator::generate(), StackGenerator::generate(), StitchedMeshGenerator::generate(), AdvancedExtruderGenerator::generate(), BreakMeshByElementGenerator::generate(), CircularBoundaryCorrectionGenerator::generate(), XYDelaunayGenerator::generate(), XYMeshLineCutter::generate(), PatternedMeshGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), GenericFunctorGradientMaterialTempl< is_ad >::GenericFunctorGradientMaterialTempl(), GenericFunctorMaterialTempl< is_ad >::GenericFunctorMaterialTempl(), GenericVectorFunctorMaterialTempl< is_ad >::GenericVectorFunctorMaterialTempl(), PropertyReadFile::getBlockData(), PropertyReadFile::getData(), Sampler::getGlobalSamples(), MultiAppNearestNodeTransfer::getLocalEntitiesAndComponents(), Sampler::getLocalSamples(), MeshGenerator::getMeshGeneratorNameFromParam(), MeshGenerator::getMeshGeneratorNamesFromParam(), Sampler::getNextLocalRow(), PostprocessorInterface::getPostprocessorNameInternal(), PostprocessorInterface::getPostprocessorValueInternal(), MultiAppNearestNodeTransfer::getTargetLocalNodes(), UserObjectInterface::getUserObjectBase(), UserObjectInterface::getUserObjectName(), HFEMDirichletBC::HFEMDirichletBC(), MultiApp::init(), DistributedPositions::initialize(), BlockWeightedPartitioner::initialize(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), PhysicsBase::initializePhysics(), MultiAppCloneReporterTransfer::initialSetup(), ReferenceResidualProblem::initialSetup(), MultiAppVariableValueSamplePostprocessorTransfer::initialSetup(), MultiAppDofCopyTransfer::initialSetup(), MultiAppGeneralFieldNearestLocationTransfer::initialSetup(), HistogramVectorPostprocessor::initialSetup(), PiecewiseConstantFromCSV::initialSetup(), LibtorchControlValuePostprocessor::initialSetup(), MultiAppGeneralFieldTransfer::initialSetup(), AddMetaDataGenerator::inputChecker(), IntegratedBC::IntegratedBC(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceValueUserObjectAux::InterfaceValueUserObjectAux(), InterpolatedStatefulMaterialTempl< T >::InterpolatedStatefulMaterialTempl(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), MultiApp::keepSolutionDuringRestore(), Kernel::Kernel(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), LinearCombinationFunction::LinearCombinationFunction(), LowerDIntegratedBC::LowerDIntegratedBC(), PNGOutput::makeMeshFunc(), MatCoupledForce::MatCoupledForce(), MaterialADConverterTempl< T >::MaterialADConverterTempl(), MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl(), PatternedMeshGenerator::mergeSubdomainNameMaps(), MeshCollectionGenerator::MeshCollectionGenerator(), MeshDiagnosticsGenerator::MeshDiagnosticsGenerator(), MeshDivisionAux::MeshDivisionAux(), MeshGenerator::MeshGenerator(), MooseLinearVariableFV< Real >::MooseLinearVariableFV(), MoosePreconditioner::MoosePreconditioner(), MooseVariableBase::MooseVariableBase(), MortarConstraintBase::MortarConstraintBase(), MortarNodalAuxKernelTempl< ComputeValueType >::MortarNodalAuxKernelTempl(), MultiApp::moveApp(), MoveNodeGenerator::MoveNodeGenerator(), MultiApp::MultiApp(), MultiAppCloneReporterTransfer::MultiAppCloneReporterTransfer(), MultiAppGeneralFieldNearestLocationTransfer::MultiAppGeneralFieldNearestLocationTransfer(), MultiAppGeneralFieldShapeEvaluationTransfer::MultiAppGeneralFieldShapeEvaluationTransfer(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppGeometricInterpolationTransfer::MultiAppGeometricInterpolationTransfer(), MultiAppNearestNodeTransfer::MultiAppNearestNodeTransfer(), MultiAppPostprocessorInterpolationTransfer::MultiAppPostprocessorInterpolationTransfer(), MultiAppPostprocessorToAuxScalarTransfer::MultiAppPostprocessorToAuxScalarTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), MultiAppProjectionTransfer::MultiAppProjectionTransfer(), MultiAppReporterTransfer::MultiAppReporterTransfer(), MultiAppScalarToAuxScalarTransfer::MultiAppScalarToAuxScalarTransfer(), MultiAppShapeEvaluationTransfer::MultiAppShapeEvaluationTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppUserObjectTransfer::MultiAppUserObjectTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), MultiAppVariableValueSampleTransfer::MultiAppVariableValueSampleTransfer(), MultiAppVectorPostprocessorTransfer::MultiAppVectorPostprocessorTransfer(), NestedDivision::NestedDivision(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalPatchRecoveryAux::NodalPatchRecoveryAux(), NodalValueSampler::NodalValueSampler(), Output::Output(), ParsedCurveGenerator::ParsedCurveGenerator(), ParsedElementDeletionGenerator::ParsedElementDeletionGenerator(), ParsedFunctorMaterialTempl< is_ad >::ParsedFunctorMaterialTempl(), ParsedNodeTransformGenerator::ParsedNodeTransformGenerator(), PatchMeshGenerator::PatchMeshGenerator(), PatternedMeshGenerator::PatternedMeshGenerator(), PenaltyPeriodicSegmentalConstraint::PenaltyPeriodicSegmentalConstraint(), PeriodicSegmentalConstraint::PeriodicSegmentalConstraint(), PIDTransientControl::PIDTransientControl(), PlaneDeletionGenerator::PlaneDeletionGenerator(), PlaneIDMeshGenerator::PlaneIDMeshGenerator(), PointwiseRenormalizeVector::PointwiseRenormalizeVector(), PolyLineMeshGenerator::PolyLineMeshGenerator(), ReporterInterface::possiblyCheckHasReporter(), VectorPostprocessorInterface::possiblyCheckHasVectorPostprocessor(), LibmeshPartitioner::prepareBlocksForSubdomainPartitioner(), ProjectedMaterialPropertyNodalPatchRecoveryAux::ProjectedMaterialPropertyNodalPatchRecoveryAux(), PropertyReadFile::PropertyReadFile(), RandomIC::RandomIC(), MultiApp::readCommandLineArguments(), PropertyReadFile::readData(), SolutionUserObject::readXda(), ReferenceResidualProblem::ReferenceResidualProblem(), RefineBlockGenerator::RefineBlockGenerator(), RefineSidesetGenerator::RefineSidesetGenerator(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), ReporterPointSource::ReporterPointSource(), SecondTimeDerivativeAux::SecondTimeDerivativeAux(), MooseMesh::setPartitioner(), SideSetsGeneratorBase::setup(), TimeSequenceStepperBase::setupSequence(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SingleRankPartitioner::SingleRankPartitioner(), SphericalGridDivision::SphericalGridDivision(), SymmetryTransformGenerator::SymmetryTransformGenerator(), Terminator::Terminator(), TimeDerivativeAux::TimeDerivativeAux(), Transfer::Transfer(), TransformGenerator::TransformGenerator(), TransientMultiApp::TransientMultiApp(), ParsedCurveGenerator::tSectionSpaceDefiner(), UniqueExtraIDMeshGenerator::UniqueExtraIDMeshGenerator(), UserObject::UserObject(), VariableCondensationPreconditioner::VariableCondensationPreconditioner(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), VolumeAux::VolumeAux(), XYDelaunayGenerator::XYDelaunayGenerator(), and XYMeshLineCutter::XYMeshLineCutter().

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

◆ parameters()

const InputParameters& MooseBaseParameterInterface::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 62 of file MooseBaseParameterInterface.h.

Referenced by SetupDebugAction::act(), CommonOutputAction::act(), Action::Action(), FEProblemBase::addAnyRedistributers(), FEProblemBase::addAuxKernel(), FEProblemBase::addAuxScalarKernel(), DisplacedProblem::addAuxVariable(), FEProblemBase::addBoundaryCondition(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), FEProblemBase::addDGKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), FEProblemBase::addFunction(), FEProblemBase::addFunctorMaterial(), FEProblemBase::addFVBC(), FEProblemBase::addFVInitialCondition(), FEProblemBase::addFVInterfaceKernel(), FEProblemBase::addFVKernel(), FEProblemBase::addIndicator(), FEProblemBase::addInitialCondition(), FEProblemBase::addInterfaceKernel(), FEProblemBase::addInterfaceMaterial(), FEProblemBase::addKernel(), FEProblemBase::addLinearFVBC(), FEProblemBase::addLinearFVKernel(), FEProblem::addLineSearch(), FEProblemBase::addMarker(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMeshDivision(), FEProblemBase::addMultiApp(), FEProblemBase::addNodalKernel(), FEProblemBase::addObject(), FEProblemBase::addObjectParamsHelper(), FEProblemBase::addOutput(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), FEProblemBase::addReporter(), FEProblemBase::addSampler(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), DisplacedProblem::addVariable(), FEProblemBase::addVectorPostprocessor(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), AdvancedOutput::AdvancedOutput(), ADVectorFunctionDirichletBC::ADVectorFunctionDirichletBC(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), assemble_l2(), Moose::assemble_matrix(), PhysicsBase::assertParamDefined(), Action::associateWithParameter(), AuxKernelTempl< Real >::AuxKernelTempl(), AuxScalarKernel::AuxScalarKernel(), BoundsBase::BoundsBase(), MooseMesh::buildTypedMesh(), UserObjectInterface::castUserObject(), PostprocessorInterface::checkParam(), PhysicsBase::checkSecondParamSetOnlyIfFirstOneTrue(), OversampleOutput::cloneMesh(), Moose::compute_bounds(), Moose::compute_jacobian(), Moose::compute_nearnullspace(), Moose::compute_nullspace(), Moose::compute_postcheck(), Moose::compute_transpose_nullspace(), LibtorchNeuralNetControl::conditionalParameterError(), Console::Console(), CommonOutputAction::create(), MultiApp::createApp(), Postprocessor::declareValue(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), Executor::Executor(), Exodus::Exodus(), FEProblem::FEProblem(), FEProblemBase::FEProblemBase(), FixedPointSolve::FixedPointSolve(), FunctorSmootherTempl< T >::FunctorSmootherTempl(), GapValueAux::GapValueAux(), ParsedSubdomainMeshGenerator::generate(), MooseBaseParameterInterface::getCheckedPointerParam(), ActionWarehouse::getCurrentActionName(), ExecutorInterface::getExecutor(), Material::getMaterial(), ReporterInterface::getReporterName(), Reporter::getReporterValueName(), UserObjectInterface::getUserObjectName(), VectorPostprocessorInterface::getVectorPostprocessorName(), GhostingUserObject::GhostingUserObject(), AttribSystem::initFrom(), AttribDisplaced::initFrom(), BlockRestrictable::initializeBlockRestrictable(), FullSolveMultiApp::initialSetup(), FEProblemBase::initNullSpaceVectors(), InterfaceDiffusiveFluxIntegralTempl< is_ad >::InterfaceDiffusiveFluxIntegralTempl(), InterfaceIntegralVariableValuePostprocessor::InterfaceIntegralVariableValuePostprocessor(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), isValid(), IterationAdaptiveDT::IterationAdaptiveDT(), LibtorchNeuralNetControl::LibtorchNeuralNetControl(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), MooseObject::MooseObject(), MooseVariableInterface< Real >::MooseVariableInterface(), MultiApp::MultiApp(), MultiAppGeneralFieldTransfer::MultiAppGeneralFieldTransfer(), MultiAppGeneralFieldUserObjectTransfer::MultiAppGeneralFieldUserObjectTransfer(), MultiAppTransfer::MultiAppTransfer(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), NodeFaceConstraint::NodeFaceConstraint(), OverlayMeshGenerator::OverlayMeshGenerator(), PatchMeshGenerator::PatchMeshGenerator(), PenetrationAux::PenetrationAux(), PicardSolve::PicardSolve(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), ProjectedStatefulMaterialStorageAction::processProperty(), PropertyReadFile::PropertyReadFile(), PseudoTimestep::PseudoTimestep(), RandomIC::RandomIC(), InputParameterWarehouse::removeInputParameters(), OutputWarehouse::resetFileBase(), FEProblem::setInputParametersFEProblem(), FEProblemBase::setInputParametersFEProblem(), SideSetsGeneratorBase::setup(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SteffensenSolve::SteffensenSolve(), DumpObjectsProblem::stringifyParameters(), TaggingInterface::TaggingInterface(), Transfer::Transfer(), Transient::Transient(), VectorBodyForce::VectorBodyForce(), VectorFunctionDirichletBC::VectorFunctionDirichletBC(), VectorFunctionIC::VectorFunctionIC(), and VectorMagnitudeFunctorMaterialTempl< is_ad >::VectorMagnitudeFunctorMaterialTempl().

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

◆ paramInfo()

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

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

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

Definition at line 254 of file MooseBaseParameterInterface.h.

Referenced by TransientMultiApp::TransientMultiApp().

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

◆ paramWarning()

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

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

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

Definition at line 247 of file MooseBaseParameterInterface.h.

Referenced by MultiAppNearestNodeTransfer::execute(), FEProblemSolve::FEProblemSolve(), FixedPointSolve::FixedPointSolve(), UniqueExtraIDMeshGenerator::generate(), PlaneIDMeshGenerator::generate(), Terminator::initialSetup(), and MooseMesh::MooseMesh().

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

◆ parentOutputPositionChanged()

void MultiApp::parentOutputPositionChanged ( )
virtualinherited

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

Definition at line 1047 of file MultiApp.C.

1048 {
1050  for (unsigned int i = 0; i < _apps.size(); i++)
1051  _apps[i]->setOutputPosition(_app.getOutputPosition() + _positions[_first_local_app + i]);
1052 }
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:493
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
Point getOutputPosition() const
Get the output position.
Definition: MooseApp.h:266
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514
bool _output_in_position
Whether or not to move the output of the MultiApp into position.
Definition: MultiApp.h:559
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated) ...
Definition: MultiApp.h:485

◆ perfGraph()

PerfGraph & PerfGraphInterface::perfGraph ( )
inherited

Get the PerfGraph.

Definition at line 78 of file PerfGraphInterface.C.

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

79 {
80  return _pg_moose_app.perfGraph();
81 }
MooseApp & _pg_moose_app
The MooseApp that owns the PerfGraph.
PerfGraph & perfGraph()
Get the PerfGraph for this app.
Definition: MooseApp.h:133

◆ position()

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

The physical position of a global App number.

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

Definition at line 1384 of file MultiApp.C.

Referenced by MultiApp::getBoundingBox().

1385 {
1386  // If we're not using positions, it won't have changed
1387  if (_positions_objs.empty())
1388  return _positions[app];
1389  else
1390  // Find which Positions object is specifying it, and query a potentially updated value
1391  return _positions_objs[app]->getPosition(app - _positions_index_offsets[app], false);
1392 }
std::vector< const Positions * > _positions_objs
The positions of all of the apps, using the Positions system.
Definition: MultiApp.h:487
std::vector< unsigned int > _positions_index_offsets
The offsets, in case multiple Positions objects are specified.
Definition: MultiApp.h:489
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated) ...
Definition: MultiApp.h:485

◆ postExecute()

void MultiApp::postExecute ( )
virtualinherited

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

Reimplemented in FullSolveMultiApp.

Definition at line 710 of file MultiApp.C.

711 {
712  for (const auto & app_ptr : _apps)
713  {
714  auto * executioner = app_ptr->getExecutioner();
715  mooseAssert(executioner, "Executioner is nullptr");
716 
717  executioner->postExecute();
718  }
719 }
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538

◆ preExecute()

virtual void MultiApp::preExecute ( )
inlinevirtualinherited

Definition at line 122 of file MultiApp.h.

122 {}

◆ preRunInputFile()

void MultiApp::preRunInputFile ( )
protectedvirtualinherited

call back executed right before app->runInputFile()

Definition at line 1349 of file MultiApp.C.

Referenced by MultiApp::createApp().

1350 {
1351 }

◆ preTransfer()

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

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

Definition at line 632 of file MultiApp.C.

633 {
634  // Get a transient executioner to get a user-set tolerance
635  Real timestep_tol = 1e-13;
636  if (dynamic_cast<Transient *>(_fe_problem.getMooseApp().getExecutioner()))
637  timestep_tol =
638  dynamic_cast<Transient *>(_fe_problem.getMooseApp().getExecutioner())->timestepTol();
639 
640  // First, see if any Apps need to be reset
641  for (unsigned int i = 0; i < _reset_times.size(); i++)
642  {
643  if (!_reset_happened[i] && (target_time + timestep_tol >= _reset_times[i]))
644  {
645  _reset_happened[i] = true;
646  if (_reset_apps.size() > 0)
647  for (auto & app : _reset_apps)
648  resetApp(app);
649 
650  // If we reset an application, then we delete the old objects, including the coordinate
651  // transformation classes. Consequently we need to reset the coordinate transformation classes
652  // in the associated transfer classes
653  for (auto * const transfer : _associated_transfers)
654  transfer->getAppInfo();
655 
656  // Similarly we need to transform the mesh again
657  if (_run_in_position)
658  for (const auto i : make_range(_my_num_apps))
659  {
660  auto app_ptr = _apps[i];
661  if (usingPositions())
662  app_ptr->getExecutioner()->feProblem().coordTransform().transformMesh(
663  app_ptr->getExecutioner()->feProblem().mesh(), _positions[_first_local_app + i]);
664  else
665  app_ptr->getExecutioner()->feProblem().coordTransform().transformMesh(
666  app_ptr->getExecutioner()->feProblem().mesh(), Point(0, 0, 0));
667  }
668 
669  // If the time step covers multiple reset times, set them all as having 'happened'
670  for (unsigned int j = i; j < _reset_times.size(); j++)
671  if (target_time + timestep_tol >= _reset_times[j])
672  _reset_happened[j] = true;
673 
674  break;
675  }
676  }
677 
678  // Now move any apps that should be moved
679  if (_use_positions && !_move_happened && target_time + timestep_tol >= _move_time)
680  {
681  _move_happened = true;
682  for (unsigned int i = 0; i < _move_apps.size(); i++)
684  }
685 }
std::vector< unsigned int > _reset_apps
The apps to be reset.
Definition: MultiApp.h:568
Transient executioners usually loop through a number of timesteps...
Definition: Transient.h:26
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:493
Real _move_time
The time at which to move apps.
Definition: MultiApp.h:574
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
std::vector< Point > _move_positions
The new positions for the apps to be moved.
Definition: MultiApp.h:580
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition: MultiApp.h:479
MooseApp & getMooseApp() const
Get the MooseApp this class is associated with.
Definition: MooseBase.h:45
std::vector< Real > _reset_times
The times at which to reset apps.
Definition: MultiApp.h:565
bool _move_happened
Whether or not the move has happened.
Definition: MultiApp.h:583
std::vector< MultiAppTransfer * > _associated_transfers
Transfers associated with this multiapp.
Definition: MultiApp.h:604
std::vector< unsigned int > _move_apps
The apps to be moved.
Definition: MultiApp.h:577
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:1007
Executioner * getExecutioner() const
Retrieve the Executioner for this App.
Definition: MooseApp.C:1483
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
bool usingPositions() const
Whether or not this MultiApp is using positions or its own way for constructing sub-apps.
Definition: MultiApp.h:361
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated) ...
Definition: MultiApp.h:485
const bool _run_in_position
Whether to run the child apps with their meshes transformed with the coordinate transforms.
Definition: MultiApp.h:607
virtual void moveApp(unsigned int global_app, Point p)
Move the global_app to Point p.
Definition: MultiApp.C:1028
std::vector< bool > _reset_happened
Whether or not apps have been reset at each time.
Definition: MultiApp.h:571

◆ problemBase()

FEProblemBase& MultiApp::problemBase ( )
inlineinherited

Get the FEProblemBase this MultiApp is part of.

Definition at line 236 of file MultiApp.h.

236 { return _fe_problem; }
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition: MultiApp.h:479

◆ readCommandLineArguments()

void MultiApp::readCommandLineArguments ( )
protectedinherited

Fill command line arguments for sub apps.

Definition at line 422 of file MultiApp.C.

Referenced by MultiApp::createApps().

423 {
424  if (isParamValid("cli_args_files"))
425  {
426  _cli_args_from_file.clear();
427 
428  std::vector<FileName> cli_args_files = getParam<std::vector<FileName>>("cli_args_files");
429  std::vector<FileName> input_files = getParam<std::vector<FileName>>("input_files");
430 
431  // If we use parameter "cli_args_files", at least one file should be provided
432  if (!cli_args_files.size())
433  paramError("cli_args_files", "You need to provide at least one commandLine argument file ");
434 
435  // If we multiple input files, then we need to check if the number of input files
436  // match with the number of argument files
437  if (cli_args_files.size() != 1 && cli_args_files.size() != input_files.size())
438  paramError("cli_args_files",
439  "The number of commandLine argument files ",
440  cli_args_files.size(),
441  " for MultiApp ",
442  name(),
443  " must either be only one or match the number of input files ",
444  input_files.size());
445 
446  // Go through all argument files
447  std::vector<std::string> cli_args;
448  for (unsigned int p_file_it = 0; p_file_it < cli_args_files.size(); p_file_it++)
449  {
450  std::string cli_args_file = cli_args_files[p_file_it];
451  // Clear up
452  cli_args.clear();
453  // Read the file on the root processor then broadcast it
454  if (processor_id() == 0)
455  {
456  MooseUtils::checkFileReadable(cli_args_file);
457 
458  std::ifstream is(cli_args_file.c_str());
459  std::copy(std::istream_iterator<std::string>(is),
460  std::istream_iterator<std::string>(),
461  std::back_inserter(cli_args));
462 
463  // We do not allow empty files
464  if (!cli_args.size())
465  paramError("cli_args_files",
466  "There is no commandLine argument in the commandLine argument file ",
467  cli_args_file);
468 
469  // If we have position files, we need to
470  // make sure the number of commandLine argument strings
471  // match with the number of positions
472  if (_npositions_inputfile.size())
473  {
474  auto num_positions = _npositions_inputfile[p_file_it];
475  // Check if the number of commandLine argument strings equal to
476  // the number of positions
477  if (cli_args.size() == 1)
478  for (MooseIndex(num_positions) num = 0; num < num_positions; num++)
479  _cli_args_from_file.push_back(cli_args.front());
480  else if (cli_args.size() == num_positions)
481  for (auto && cli_arg : cli_args)
482  _cli_args_from_file.push_back(cli_arg);
483  else if (cli_args.size() != num_positions)
484  paramError("cli_args_files",
485  "The number of commandLine argument strings ",
486  cli_args.size(),
487  " in the file ",
488  cli_args_file,
489  " must either be only one or match the number of positions ",
490  num_positions);
491  }
492  else
493  {
494  // If we do not have position files, we will check if the number of
495  // commandLine argument strings match with the total number of subapps
496  for (auto && cli_arg : cli_args)
497  _cli_args_from_file.push_back(cli_arg);
498  }
499  }
500  }
501 
502  // Broad cast all arguments to everyone
504  }
505 
506  if (_cli_args_from_file.size() && _cli_args_from_file.size() != 1 &&
508  mooseError(" The number of commandLine argument strings ",
509  _cli_args_from_file.size(),
510  " must either be only one or match the total "
511  "number of sub apps ",
513 
514  if (_cli_args_from_file.size() && cliArgs().size())
515  mooseError("Cannot set commandLine arguments from both input_file and external files");
516 }
virtual std::vector< std::string > cliArgs() const
function that provides cli_args to subapps
Definition: MultiApp.h:387
std::vector< unsigned int > _npositions_inputfile
Number of positions for each input file.
Definition: MultiApp.h:502
const Parallel::Communicator & _communicator
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
bool checkFileReadable(const std::string &filename, bool check_line_endings=false, bool throw_on_unreadable=true, bool check_for_git_lfs_pointer=true)
Checks to see if a file is readable (exists and permissions)
Definition: MooseUtils.C:256
PetscErrorCode PetscInt const PetscInt IS * is
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 ...
unsigned int _total_num_apps
The total number of apps to simulate.
Definition: MultiApp.h:508
void broadcast(T &data, const unsigned int root_id=0, const bool identical_sizes=false) const
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
processor_id_type processor_id() const
std::vector< std::string > _cli_args_from_file
CommandLine arguments from files.
Definition: MultiApp.h:592

◆ 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 53 of file PerfGraphInterface.C.

55 {
56  const auto timed_section_name = timedSectionName(section_name);
57  if (!moose::internal::getPerfGraphRegistry().sectionExists(timed_section_name))
58  return moose::internal::getPerfGraphRegistry().registerSection(timed_section_name, level);
59  else
60  return moose::internal::getPerfGraphRegistry().sectionID(timed_section_name);
61 }
PerfID registerSection(const std::string &section_name, const unsigned int level)
Call to register a named section for timing.
std::string timedSectionName(const std::string &section_name) const
PerfID sectionID(const std::string &section_name) const
Given a name return the PerfID The name of the section.
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 64 of file PerfGraphInterface.C.

68 {
69  const auto timed_section_name = timedSectionName(section_name);
70  if (!moose::internal::getPerfGraphRegistry().sectionExists(timed_section_name))
72  timedSectionName(section_name), level, live_message, print_dots);
73  else
74  return moose::internal::getPerfGraphRegistry().sectionID(timed_section_name);
75 }
PerfID registerSection(const std::string &section_name, const unsigned int level)
Call to register a named section for timing.
std::string timedSectionName(const std::string &section_name) const
PerfID sectionID(const std::string &section_name) const
Given a name return the PerfID The name of the section.
PerfGraphRegistry & getPerfGraphRegistry()
Get the global PerfGraphRegistry singleton.

◆ resetApp()

void TransientMultiApp::resetApp ( unsigned int  global_app,
Real  time 
)
overridevirtualinherited

"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 from MultiApp.

Definition at line 638 of file TransientMultiApp.C.

641 {
642  if (hasLocalApp(global_app))
643  {
644  unsigned int local_app = globalAppToLocal(global_app);
645 
646  // Grab the current time the App is at so we can start the new one at the same place
647  Real time =
648  _transient_executioners[local_app]->getTime() + _apps[local_app]->getGlobalTimeOffset();
649 
650  // Reset the Multiapp
651  MultiApp::resetApp(global_app, time);
652 
654 
655  // Setup the app, disable the output so that the initial condition does not output
656  // When an app is reset the initial condition was effectively already output before reset
657  FEProblemBase & problem = appProblemBase(local_app);
658  problem.allowOutput(false);
659  setupApp(local_app, time);
660  problem.allowOutput(true);
661  }
662 }
bool hasLocalApp(unsigned int global_app) const
Whether or not the given global app number is on this processor.
Definition: MultiApp.C:990
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
void setupApp(unsigned int i, Real time=0.0)
Setup the executioner for the local app.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
FEProblemBase & appProblemBase(unsigned int app)
Get the FEProblemBase for the global app desired.
Definition: MultiApp.C:936
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:1007
std::vector< Transient * > _transient_executioners
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:523
void allowOutput(bool state)
Ability to enable/disable all output calls.
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:1330

◆ 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 66 of file Restartable.C.

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

67 {
68  return _restartable_system_name + "/" + _restartable_name + "/" + data_name;
69 }
std::string _restartable_name
The name of the object.
Definition: Restartable.h:243
const std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:230

◆ restore()

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

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 737 of file MultiApp.C.

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

738 {
739  TIME_SECTION(_restore_timer);
740 
741  if (force || needsRestoration())
742  {
743  // Must be restarting / recovering from main app so hold off on restoring
744  // Instead - the restore will happen in sub-apps' initialSetup()
745  // Note that _backups was already populated by dataLoad() in the main app
747  return;
748 
749  // We temporarily copy and store solutions for all subapps
751  {
753 
754  for (unsigned int i = 0; i < _my_num_apps; i++)
755  {
756  _end_solutions[i] = _apps[i]
757  ->getExecutioner()
758  ->feProblem()
759  .getNonlinearSystemBase(/*nl_sys=*/0)
760  .solution()
761  .clone();
762  auto & sub_multiapps =
763  _apps[i]->getExecutioner()->feProblem().getMultiAppWarehouse().getObjects();
764 
765  // multiapps of each subapp should do the same things
766  // It is implemented recursively
767  for (auto & multi_app : sub_multiapps)
768  multi_app->keepSolutionDuringRestore(_keep_solution_during_restore);
769  }
770  }
771 
773  _console << "Restoring MultiApp ... ";
774 
775  for (unsigned int i = 0; i < _my_num_apps; i++)
776  {
777  _apps[i]->restore(std::move(_sub_app_backups[i]), false);
778  _sub_app_backups[i] = _apps[i]->finalizeRestore();
779  mooseAssert(_sub_app_backups[i], "Should have a backup");
780  }
781 
783  _console << name() << std::endl;
784 
785  // Now copy the latest solutions back for each subapp
787  {
788  for (unsigned int i = 0; i < _my_num_apps; i++)
789  {
790  _apps[i]->getExecutioner()->feProblem().getNonlinearSystemBase(/*nl_sys=*/0).solution() =
791  *_end_solutions[i];
792 
793  // We need to synchronize solution so that local_solution has the right values
794  _apps[i]->getExecutioner()->feProblem().getNonlinearSystemBase(/*nl_sys=*/0).update();
795  }
796 
797  _end_solutions.clear();
798  }
799  }
800  else
801  {
802  for (unsigned int i = 0; i < _my_num_apps; i++)
803  {
804  for (auto & sub_app :
805  _apps[i]->getExecutioner()->feProblem().getMultiAppWarehouse().getObjects())
806  sub_app->restore(false);
807  }
808  }
809 }
bool verboseMultiApps() const
Whether or not to use verbose printing for MultiApps.
const ExecFlagType & getCurrentExecuteOnFlag() const
Return/set the current execution flag.
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
const PerfID _restore_timer
Definition: MultiApp.h:616
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition: MultiApp.h:479
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
bool _keep_solution_during_restore
Flag indicates if or not restart from the latest solution.
Definition: MultiApp.h:595
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
virtual bool needsRestoration()
Whether or not this MultiApp should be restored at the beginning of each Picard iteration.
Definition: MultiApp.h:210
SubAppBackups & _sub_app_backups
The cached subapp backups (passed from the parent app)
Definition: MultiApp.h:610
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
std::vector< std::unique_ptr< 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:598
virtual Executioner * getExecutioner(unsigned int app)
Definition: MultiApp.C:688
const ExecFlagType EXEC_INITIAL
Definition: Moose.C:28

◆ runningInPosition()

bool MultiApp::runningInPosition ( ) const
inlineinherited

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

Definition at line 367 of file MultiApp.h.

367 { return _run_in_position; }
const bool _run_in_position
Whether to run the child apps with their meshes transformed with the coordinate transforms.
Definition: MultiApp.h:607

◆ setAppOutputFileBase() [1/2]

void MultiApp::setAppOutputFileBase ( )
inherited

Sets all the app's output file bases.

See also
MooseApp::setOutputFileBase for usage

Definition at line 1360 of file MultiApp.C.

Referenced by MultiApp::createApp().

1361 {
1362  for (unsigned int i = 0; i < _my_num_apps; ++i)
1364 }
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
void setAppOutputFileBase()
Sets all the app&#39;s output file bases.
Definition: MultiApp.C:1360

◆ setAppOutputFileBase() [2/2]

void MultiApp::setAppOutputFileBase ( unsigned int  index)
protectedinherited

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 1367 of file MultiApp.C.

1368 {
1369  const std::string multiapp_name =
1371  _apps[index]->setOutputFileBase(_app.getOutputFileBase() + "_" + multiapp_name);
1372 }
std::string getOutputFileBase(bool for_non_moose_build_output=false) const
Get the output file base name.
Definition: MooseApp.C:1073
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
unsigned int _total_num_apps
The total number of apps to simulate.
Definition: MultiApp.h:508
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:1375
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514

◆ setupPositions()

void MultiApp::setupPositions ( )
inherited

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

Definition at line 351 of file MultiApp.C.

352 {
353  if (_use_positions)
354  {
355  fillPositions();
356  init(_positions.size());
357  createApps();
358  }
359 }
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:493
void createApps()
Create the provided number of apps.
Definition: MultiApp.C:362
virtual void fillPositions()
must fill in _positions with the positions of the sub-aps
Definition: MultiApp.C:519
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated) ...
Definition: MultiApp.h:485
void init(unsigned int num_apps, bool batch_mode=false)
Build communicators and reserve backups.
Definition: MultiApp.C:314

◆ solveStep()

bool TransientMultiApp::solveStep ( Real  dt,
Real  target_time,
bool  auto_advance = true 
)
overridevirtualinherited

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)

Implements MultiApp.

Definition at line 181 of file TransientMultiApp.C.

182 {
183  if (!_has_an_app)
184  return true;
185 
186  TIME_SECTION(_solve_step_timer);
187 
188  _auto_advance = auto_advance;
189 
191  _console << COLOR_CYAN << "Solving MultiApp '" << name() << "' with target time " << target_time
192  << " and dt " << dt << " with auto-advance " << (auto_advance ? "on" : "off")
193  << COLOR_DEFAULT << std::endl;
194 
195  // "target_time" must always be in global time
196  target_time += _app.getGlobalTimeOffset();
197 
199  bool return_value = true;
200 
201  // Make sure we swap back the communicator regardless of how this routine is exited
202  try
203  {
204  int rank;
205  int ierr;
206  ierr = MPI_Comm_rank(_communicator.get(), &rank);
207  mooseCheckMPIErr(ierr);
208 
209  for (unsigned int i = 0; i < _my_num_apps; i++)
210  {
212 
214 
215  // The App might have a different local time from the rest of the problem
216  Real app_time_offset = _apps[i]->getGlobalTimeOffset();
217 
218  // Maybe this MultiApp was already solved
219  if ((ex->getTime() + app_time_offset + ex->timestepTol() >= target_time) ||
220  (ex->getTime() >= ex->endTime()))
221  continue;
222 
223  // Examine global time synchronization
224  if (!_sub_cycling && !_reset_happened.size())
225  {
226  // The multi-app general offset is substracted to go into local time.
227  if (std::abs(target_time - _app.getGlobalTimeOffset() - ex->getTime() - dt) >
228  ex->timestepTol())
229  mooseDoOnce(mooseWarning(
230  "The target time (time a multiapp must reach at the end of the time step) "
231  "is desynchronized between this app and subapp ",
232  i,
233  ".\n If this is desired: use the 'global_time_offset' multiapp parameter to "
234  "declare a constant offset\n"
235  "If the apps should (eventually) be synchronized in time, please either: \n"
236  " - match the 'start_time' in the main app and the multiapp, in the Executioner "
237  "block\n"
238  " - set 'sub_cycling' to true in the multiapp parameters\n"
239  "This message will only print once for all apps and all time steps."));
240  }
241 
242  if (_sub_cycling)
243  {
244  Real time_old = ex->getTime() + app_time_offset;
245 
247  {
248  AuxiliarySystem & aux_system = problem.getAuxiliarySystem();
249  System & libmesh_aux_system = aux_system.system();
250 
251  NumericVector<Number> & solution = *libmesh_aux_system.solution;
252  NumericVector<Number> & transfer_old = libmesh_aux_system.get_vector("transfer_old");
253 
254  solution.close();
255 
256  // Save off the current auxiliary solution
257  transfer_old = solution;
258 
259  transfer_old.close();
260 
261  // Snag all of the local dof indices for all of these variables
263  ConstElemRange & elem_range = *problem.mesh().getActiveLocalElementRange();
264  Threads::parallel_reduce(elem_range, aldit);
265 
266  _transferred_dofs = aldit.getDofIndices();
267  }
268 
269  // Disable/enable output for sub cycling
270  problem.allowOutput(_output_sub_cycles); // disables all outputs, including console
271  problem.allowOutput<Console>(_print_sub_cycles); // re-enables Console to print, if desired
272 
273  ex->setTargetTime(target_time - app_time_offset);
274 
275  // unsigned int failures = 0;
276 
277  bool at_steady = false;
278 
279  // ADL: During restart, there is already an FEProblemBase::advanceState that occurs at the
280  // end of TransientMultiApp::setupApp. advanceState, along with copying the solutions
281  // backwards in time/state, also *moves* (note it doesn't copy!) stateful material
282  // properties backwards (through swapping). So if restarting from a full-solve steady
283  // multi-app for example, then after one advance state, we will have good information in old
284  // and no information in current. But then if we advance again we no longer have good data
285  // in the old material properties, so don't advance here if we're restarting
286  if (_first && !_app.isRecovering() && !_app.isRestarting())
287  problem.advanceState();
288 
289  bool local_first = _first;
290 
291  // Now do all of the solves we need
292  while ((!at_steady && ex->getTime() + app_time_offset + ex->timestepTol() < target_time) ||
293  !ex->lastSolveConverged())
294  {
295  if (local_first != true)
296  ex->incrementStepOrReject();
297 
298  local_first = false;
299 
300  ex->preStep();
301  ex->computeDT();
302 
304  {
305  // See what time this executioner is going to go to.
306  Real future_time = ex->getTime() + app_time_offset + ex->getDT();
307 
308  // How far along we are towards the target time:
309  Real step_percent = (future_time - time_old) / (target_time - time_old);
310 
311  Real one_minus_step_percent = 1.0 - step_percent;
312 
313  // Do the interpolation for each variable that was transferred to
315  AuxiliarySystem & aux_system = problem.getAuxiliarySystem();
316  System & libmesh_aux_system = aux_system.system();
317 
318  NumericVector<Number> & solution = *libmesh_aux_system.solution;
319  NumericVector<Number> & transfer = libmesh_aux_system.get_vector("transfer");
320  NumericVector<Number> & transfer_old = libmesh_aux_system.get_vector("transfer_old");
321 
322  solution.close(); // Just to be sure
323  transfer.close();
324  transfer_old.close();
325 
326  for (const auto & dof : _transferred_dofs)
327  {
328  solution.set(dof,
329  (transfer_old(dof) * one_minus_step_percent) +
330  (transfer(dof) * step_percent));
331  // solution.set(dof, transfer_old(dof));
332  // solution.set(dof, transfer(dof));
333  // solution.set(dof, 1);
334  }
335 
336  solution.close();
337  }
338 
339  ex->takeStep();
340 
341  bool converged = ex->lastSolveConverged();
342 
343  if (!converged)
344  {
345  mooseWarning(
346  "While sub_cycling ", name(), _first_local_app + i, " failed to converge!\n");
347 
348  _failures++;
349 
350  if (_failures > _max_failures)
351  {
352  std::stringstream oss;
353  oss << "While sub_cycling " << name() << _first_local_app << i << " REALLY failed!";
354  throw MultiAppSolveFailure(oss.str());
355  }
356  }
357 
358  Real solution_change_norm = ex->getSolutionChangeNorm();
359 
361  _console << "Solution change norm: " << solution_change_norm << std::endl;
362 
363  if (converged && _detect_steady_state && solution_change_norm < _steady_state_tol)
364  {
366  _console << "Detected Steady State! Fast-forwarding to " << target_time << std::endl;
367 
368  at_steady = true;
369 
370  // Indicate that the next output call (occurs in ex->endStep()) should output,
371  // regardless of intervals etc...
372  problem.forceOutput();
373 
374  // Clean up the end
375  ex->endStep(target_time - app_time_offset);
376  ex->postStep();
377  }
378  else
379  {
380  ex->endStep();
381  ex->postStep();
382  }
383  }
384 
385  // If we were looking for a steady state, but didn't reach one, we still need to output one
386  // more time, regardless of interval
387  // Note: if we turn off the output for all time steps for sub-cycling, we still need to
388  // have one output at the end.
389  if ((!at_steady && _detect_steady_state) || !_output_sub_cycles)
390  problem.outputStep(EXEC_FORCED);
391 
392  } // sub_cycling
393  else if (_tolerate_failure)
394  {
395  ex->takeStep(dt);
396  ex->endStep(target_time - app_time_offset);
397  ex->postStep();
398  }
399  else
400  {
401  // ADL: During restart, there is already an FEProblemBase::advanceState that occurs at the
402  // end of TransientMultiApp::setupApp. advanceState, along with copying the solutions
403  // backwards in time/state, also *moves* (note it doesn't copy!) stateful material
404  // properties backwards (through swapping). So if restarting from a full-solve steady
405  // multi-app for example, then after one advance state, we will have good information in old
406  // and no information in current. But then if we advance again we no longer have good data
407  // in the old material properties, so don't advance here if we're restarting
408  if (_first && !_app.isRecovering() && !_app.isRestarting())
409  problem.advanceState();
410 
411  if (auto_advance)
412  problem.allowOutput(true);
413 
414  ex->takeStep(dt);
415 
416  if (auto_advance)
417  {
418  ex->endStep();
419  ex->postStep();
420 
421  if (!ex->lastSolveConverged())
422  {
423  mooseWarning(name(), _first_local_app + i, " failed to converge!\n");
424 
425  if (_catch_up)
426  {
428  _console << "Starting time step catch up!" << std::endl;
429 
430  bool caught_up = false;
431 
432  unsigned int catch_up_step = 0;
433 
434  // Cut the timestep in half to first try two half-step solves
435  Real catch_up_dt = dt / 2;
436  Real catch_up_time = 0;
437 
438  while (!caught_up && catch_up_step < _max_catch_up_steps)
439  {
441  _console << "Solving " << name() << " catch up step " << catch_up_step
442  << std::endl;
443  ex->incrementStepOrReject();
444 
445  // Avoid numerical precision errors on target time
446  if (catch_up_time + catch_up_dt > dt)
447  catch_up_dt = dt - catch_up_time;
448 
449  ex->computeDT();
450  ex->takeStep(catch_up_dt);
451  ex->endStep();
452 
453  if (ex->lastSolveConverged())
454  {
455  catch_up_time += catch_up_dt;
456  if (std::abs(catch_up_time - dt) <
457  (1 + std::abs(ex->getTime())) * ex->timestepTol())
458  {
459  problem.outputStep(EXEC_FORCED);
460  caught_up = true;
461  }
462  }
463  else
464  // Keep cutting time step in half until it converges
465  catch_up_dt /= 2.0;
466 
467  ex->postStep();
468 
469  catch_up_step++;
470  }
471 
472  if (!caught_up)
473  throw MultiAppSolveFailure(name() + " Failed to catch up!\n");
474  }
475  }
476  }
477  else // auto_advance == false
478  {
479  if (!ex->lastSolveConverged())
480  {
481  // Even if we don't allow auto_advance - we can still catch up to the current time if
482  // possible
483  if (_catch_up)
484  {
486  _console << "Starting Catch Up!" << std::endl;
487 
488  bool caught_up = false;
489 
490  unsigned int catch_up_step = 0;
491 
492  Real catch_up_dt = dt / 2;
493 
494  // Note: this loop will _break_ if target_time is satisfied
495  while (catch_up_step < _max_catch_up_steps)
496  {
498  _console << "Solving " << name() << " catch up step " << catch_up_step
499  << std::endl;
500  ex->incrementStepOrReject();
501 
502  ex->computeDT();
503  ex->takeStep(catch_up_dt); // Cut the timestep in half to try two half-step solves
504 
505  // This is required because we can't call endStep() yet
506  // (which normally increments time)
507  Real current_time = ex->getTime() + ex->getDT();
508 
509  if (ex->lastSolveConverged())
510  {
511  if (current_time + app_time_offset +
512  (ex->timestepTol() * std::abs(current_time)) >=
513  target_time)
514  {
515  caught_up = true;
516  break; // break here so that we don't run endStep() or postStep() since this
517  // MultiApp should NOT be auto_advanced
518  }
519  }
520  else
521  catch_up_dt /= 2.0;
522 
523  ex->endStep();
524  ex->postStep();
525 
526  catch_up_step++;
527  }
528 
529  if (!caught_up)
530  throw MultiAppSolveFailure(name() + " Failed to catch up!\n");
531  }
532  else
533  throw MultiAppSolveFailure(name() + " failed to converge");
534  }
535  }
536  }
537 
538  // Re-enable all output (it may of been disabled by sub-cycling)
539  problem.allowOutput(true);
540  }
541 
542  _first = false;
543 
545  _console << "Successfully Solved MultiApp " << name() << "." << std::endl;
546  }
547  catch (MultiAppSolveFailure & e)
548  {
549  mooseWarning(e.what());
550  _console << "Failed to Solve MultiApp " << name() << ", attempting to recover." << std::endl;
551  return_value = false;
552  }
553 
554  _transferred_vars.clear();
555 
556  return return_value;
557 }
Utility class for catching solve failure errors so that MOOSE can recover state before continuing...
virtual Real getDT()
Definition: Transient.C:562
ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:1041
Transient executioners usually loop through a number of timesteps...
Definition: Transient.h:26
bool _print_sub_cycles
Flag for toggling console output on sub cycles.
bool verboseMultiApps() const
Whether or not to use verbose printing for MultiApps.
const ExecFlagType EXEC_FORCED
Definition: Moose.C:39
virtual void setTargetTime(Real target_time)
Can be used to set the next "target time" which is a time to nail perfectly.
Definition: Transient.C:634
virtual void computeDT()
Definition: Transient.C:335
An output object for writing to the console (screen)
Definition: Console.h:18
unsigned int _max_failures
const PerfID _solve_step_timer
Timers.
Definition: MultiApp.h:613
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:538
virtual void endStep(Real input_time=-1.0)
Definition: Transient.C:446
const Parallel::Communicator & _communicator
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition: MultiApp.h:479
bool isRestarting() const
Whether or not this is a "restart" calculation.
Definition: MooseApp.C:1174
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual const std::string & name() const
Get the name of the class.
Definition: MooseBase.h:57
ierr
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
Grab all the (possibly semi)local dof indices for the variables passed in, in the system passed in...
ADRealEigenVector< T, D, asd > abs(const ADRealEigenVector< T, D, asd > &)
virtual void advanceState()
Advance all of the state holding vectors / datastructures so that we can move to the next timestep...
virtual void takeStep(Real input_dt=-1.0)
Do whatever is necessary to advance one step.
Definition: Transient.C:398
virtual bool lastSolveConverged() const override
Whether or not the last solve converged.
Definition: Transient.C:622
std::set< dof_id_type > _transferred_dofs
The DoFs associated with all of the currently transferred variables.
FEProblemBase & appProblemBase(unsigned int app)
Get the FEProblemBase for the global app desired.
Definition: MultiApp.C:936
void forceOutput()
Indicates that the next call to outputStep should be forced.
bool & _first
Is it our first time through the execution loop?
MooseApp & _app
The MOOSE application this is associated with.
Definition: MooseBase.h:84
virtual void incrementStepOrReject()
This is where the solve step is actually incremented.
Definition: Transient.C:341
std::vector< std::string > _transferred_vars
The variables that have been transferred to. Used when doing transfer interpolation. This will be cleared after each solve.
AuxiliarySystem & getAuxiliarySystem()
virtual void close()=0
std::vector< Transient * > _transient_executioners
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:511
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:586
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:514
Real & endTime()
Get a modifiable reference to the end time.
Definition: Transient.h:183
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real getTime() const
Get the current time.
Definition: Transient.h:95
Real & timestepTol()
Get the timestep tolerance.
Definition: Transient.h:189
unsigned int _failures
virtual System & system() override
Get the reference to the libMesh system.
virtual MooseMesh & mesh() override
virtual void preStep()
Definition: Transient.C:269
virtual void set(const numeric_index_type i, const Number value)=0
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
virtual void postStep()
Definition: Transient.C:275
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition: MooseApp.C:1168
Real getGlobalTimeOffset() const
Each App has it&#39;s own local time.
Definition: MooseApp.h:296
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:523
A system that holds auxiliary variables.
void allowOutput(bool state)
Ability to enable/disable all output calls.
virtual void outputStep(ExecFlagType type)
Output the current step.
Real getSolutionChangeNorm()
Get the Relative L2 norm of the change in the solution.
Definition: Transient.C:640
std::vector< bool > _reset_happened
Whether or not apps have been reset at each time.
Definition: MultiApp.h:571

◆ 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 MaterialBase, Material, NodalUserObject, GeneralUserObject, Constraint, and ThreadedGeneralUserObject.

Definition at line 60 of file SetupInterface.C.

61 {
62 }

◆ 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 47 of file PerfGraphInterface.C.

Referenced by PerfGraphInterface::registerTimedSection().

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

◆ timestepSetup()

void SetupInterface::timestepSetup ( )
virtualinherited

◆ transformBoundingBox()

void MultiApp::transformBoundingBox ( BoundingBox &  box,
const MultiAppCoordTransform transform 
)
staticinherited

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

Definition at line 822 of file MultiApp.C.

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

823 {
824  const Real min_x = box.first(0);
825  const Real max_x = box.second(0);
826  const Real min_y = box.first(1);
827  const Real max_y = box.second(1);
828  const Real min_z = box.first(2);
829  const Real max_z = box.second(2);
830 
831  std::array<Point, 8> box_corners = {{Point(min_x, min_y, min_z),
832  Point(max_x, min_y, min_z),
833  Point(min_x, max_y, min_z),
834  Point(max_x, max_y, min_z),
835  Point(min_x, min_y, max_z),
836  Point(max_x, min_y, max_z),
837  Point(min_x, max_y, max_z),
838  Point(max_x, max_y, max_z)}};
839 
840  // transform each corner
841  for (auto & corner : box_corners)
842  corner = transform(corner);
843 
844  // Create new bounding box
845  Point new_box_min = box_corners[0];
846  Point new_box_max = new_box_min;
847  for (const auto p : make_range(1, 8))
848  for (const auto d : make_range(Moose::dim))
849  {
850  const Point & pt = box_corners[p];
851  if (new_box_min(d) > pt(d))
852  new_box_min(d) = pt(d);
853 
854  if (new_box_max(d) < pt(d))
855  new_box_max(d) = pt(d);
856  }
857  box.first = new_box_min;
858  box.second = new_box_max;
859 }
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:148
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)

◆ type()

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

Get the type of this class.

Returns
the name of the type of this class

Definition at line 51 of file MooseBase.h.

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

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

◆ typeAndName()

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

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

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

Definition at line 27 of file MooseBase.C.

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

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

◆ uniqueName()

MooseObjectName MooseBaseParameterInterface::uniqueName ( ) const
inlineinherited

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

Definition at line 67 of file MooseBaseParameterInterface.h.

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

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

◆ uniqueParameterName()

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

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

Definition at line 52 of file MooseBaseParameterInterface.h.

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

◆ usingPositions()

bool MultiApp::usingPositions ( ) const
inlineinherited

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

Definition at line 361 of file MultiApp.h.

Referenced by MultiApp::createApp(), and MultiApp::preTransfer().

361 { return _use_positions; }
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:493

◆ validParams()

InputParameters CentroidMultiApp::validParams ( )
static

Definition at line 23 of file CentroidMultiApp.C.

24 {
27  params.addClassDescription(
28  "Automatically generates Sub-App positions from centroids of elements in the parent app "
29  " mesh.");
30  params.suppressParameter<std::vector<Point>>("positions");
31  params.suppressParameter<std::vector<FileName>>("positions_file");
32  params.suppressParameter<std::vector<PositionsName>>("positions_objects");
33  return params;
34 }
static InputParameters validParams()
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
static InputParameters validParams()
void suppressParameter(const std::string &name)
This method suppresses an inherited parameter so that it isn&#39;t required or valid in the derived class...
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...

Member Data Documentation

◆ _action_factory

ActionFactory& MooseBaseParameterInterface::_action_factory
protectedinherited

◆ _app

MooseApp& MooseBase::_app
protectedinherited

The MOOSE application this is associated with.

Definition at line 84 of file MooseBase.h.

◆ _app_type

std::string MultiApp::_app_type
protectedinherited

The type of application to build.

Definition at line 482 of file MultiApp.h.

Referenced by MultiApp::createApp(), and MultiApp::createApps().

◆ _apps

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

◆ _associated_transfers

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

Transfers associated with this multiapp.

Definition at line 604 of file MultiApp.h.

Referenced by MultiApp::addAssociatedTransfer(), and MultiApp::preTransfer().

◆ _backup_timer

const PerfID MultiApp::_backup_timer
protectedinherited

Definition at line 615 of file MultiApp.h.

Referenced by MultiApp::backup().

◆ _blk_material_data

const MaterialData* BlockRestrictable::_blk_material_data
protectedinherited

Pointer to the MaterialData class for this object.

Definition at line 207 of file BlockRestrictable.h.

Referenced by BlockRestrictable::hasBlockMaterialProperty(), and BlockRestrictable::initializeBlockRestrictable().

◆ _bounding_box

std::vector<BoundingBox> MultiApp::_bounding_box
protectedinherited

This multi-app's bounding box.

Definition at line 544 of file MultiApp.h.

Referenced by MultiApp::getBoundingBox(), and MultiApp::init().

◆ _bounding_box_padding

Point MultiApp::_bounding_box_padding
protectedinherited

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

Definition at line 550 of file MultiApp.h.

Referenced by MultiApp::getBoundingBox().

◆ _cli_args

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

CommandLine arguments.

Definition at line 589 of file MultiApp.h.

Referenced by MultiApp::cliArgs(), and MultiApp::init().

◆ _cli_args_from_file

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

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

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

Definition at line 31 of file ConsoleStreamInterface.h.

Referenced by IterationAdaptiveDT::acceptStep(), MeshOnlyAction::act(), SetupDebugAction::act(), MaterialOutputAction::act(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), PerfGraph::addToExecutionList(), SimplePredictor::apply(), SystemBase::applyScalingFactors(), MultiApp::backup(), FEProblemBase::backupMultiApps(), CoarsenedPiecewiseLinear::buildCoarsenedGrid(), MeshDiagnosticsGenerator::checkElementOverlap(), MeshDiagnosticsGenerator::checkElementTypes(), MeshDiagnosticsGenerator::checkElementVolumes(), FEProblemBase::checkExceptionAndStopSolve(), SolverSystem::checkInvalidSolution(), MeshDiagnosticsGenerator::checkLocalJacobians(), MeshDiagnosticsGenerator::checkNonConformalMesh(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), MeshDiagnosticsGenerator::checkNonPlanarSides(), FEProblemBase::checkProblemIntegrity(), ReferenceResidualProblem::checkRelativeConvergence(), MeshDiagnosticsGenerator::checkSidesetsOrientation(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), FixedPointSolve::computeCustomConvergencePostprocessor(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInitialDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeLinearSystemTags(), NonlinearSystemBase::computeScaling(), Problem::console(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), MultiApp::createApp(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MessageFromInput::execute(), Steady::execute(), Eigenvalue::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), ElementQualityChecker::finalize(), FEProblemBase::finishMultiAppStep(), MeshRepairGenerator::fixOverlappingNodes(), CoarsenBlockGenerator::generate(), MeshGenerator::generateInternal(), VariableCondensationPreconditioner::getDofToCondense(), InversePowerMethod::init(), NonlinearEigen::init(), FEProblemBase::initialAdaptMesh(), EigenExecutionerBase::inversePowerIteration(), FEProblemBase::joinAndFinalize(), Transient::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), FEProblemBase::logAdd(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseBaseErrorInterface::mooseDeprecated(), MooseBaseErrorInterface::mooseInfo(), MooseBaseErrorInterface::mooseWarning(), MooseBaseErrorInterface::mooseWarningNonPrefixed(), ReferenceResidualProblem::nonlinearConvergenceSetup(), ReporterDebugOutput::output(), PerfGraphOutput::output(), MaterialPropertyDebugOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), PseudoTimestep::outputPseudoTimestep(), Console::outputReporters(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), SolutionInvalidity::printDebug(), EigenExecutionerBase::printEigenvalue(), SteffensenSolve::printFixedPointConvergenceHistory(), SecantSolve::printFixedPointConvergenceHistory(), PicardSolve::printFixedPointConvergenceHistory(), FixedPointSolve::printFixedPointConvergenceReason(), PerfGraphLivePrint::printLiveMessage(), MaterialPropertyDebugOutput::printMaterialMap(), PerfGraphLivePrint::printStats(), AutomaticMortarGeneration::projectPrimaryNodesSinglePair(), AutomaticMortarGeneration::projectSecondaryNodesSinglePair(), CoarsenBlockGenerator::recursiveCoarsen(), SolutionTimeAdaptiveDT::rejectStep(), MultiApp::restore(), FEProblemBase::restoreMultiApps(), NonlinearSystemBase::setInitialSolution(), Checkpoint::shouldOutput(), SubProblem::showFunctorRequestors(), SubProblem::showFunctors(), FullSolveMultiApp::showStatusMessage(), FEProblemSolve::solve(), FixedPointSolve::solve(), NonlinearSystem::solve(), EigenProblem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), LStableDirk4::solve(), AStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), FixedPointSolve::solveStep(), PerfGraphLivePrint::start(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), Transient::takeStep(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _current_execute_flag

const ExecFlagType& SetupInterface::_current_execute_flag
protectedinherited

Reference to FEProblemBase.

Definition at line 78 of file SetupInterface.h.

Referenced by PseudoTimestep::execute().

◆ _enabled

const bool& MooseObject::_enabled
protectedinherited

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

Definition at line 61 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _end_solutions

std::vector<std::unique_ptr<NumericVector<Real> > > MultiApp::_end_solutions
protectedinherited

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

Definition at line 598 of file MultiApp.h.

Referenced by MultiApp::restore().

◆ _execute_enum

const ExecFlagEnum& SetupInterface::_execute_enum
protectedinherited

◆ _factory

Factory& MooseBaseParameterInterface::_factory
protectedinherited

◆ _fe_problem

FEProblemBase& MultiApp::_fe_problem
protectedinherited

◆ _first_local_app

unsigned int MultiApp::_first_local_app
protectedinherited

◆ _global_time_offset

const Real MultiApp::_global_time_offset
protectedinherited

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

Definition at line 562 of file MultiApp.h.

Referenced by MultiApp::createLocalApp().

◆ _has_an_app

bool MultiApp::_has_an_app
protectedinherited

◆ _has_bounding_box

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

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

Definition at line 541 of file MultiApp.h.

Referenced by MultiApp::getBoundingBox(), and MultiApp::init().

◆ _inflation

Real MultiApp::_inflation
protectedinherited

Relative bounding box inflation.

Definition at line 547 of file MultiApp.h.

Referenced by MultiApp::getBoundingBox().

◆ _init_timer

const PerfID MultiApp::_init_timer
protectedinherited

Definition at line 614 of file MultiApp.h.

Referenced by MultiApp::init().

◆ _input_files

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

The input file for each app's simulation.

Definition at line 496 of file MultiApp.h.

Referenced by MultiApp::createApp(), and MultiApp::fillPositions().

◆ _keep_solution_during_restore

bool MultiApp::_keep_solution_during_restore
protectedinherited

Flag indicates if or not restart from the latest solution.

Definition at line 595 of file MultiApp.h.

Referenced by MultiApp::keepSolutionDuringRestore(), MultiApp::restore(), and TransientMultiApp::TransientMultiApp().

◆ _max_procs_per_app

processor_id_type MultiApp::_max_procs_per_app
protectedinherited

Maximum number of processors to give to each app.

Definition at line 553 of file MultiApp.h.

Referenced by MultiApp::init().

◆ _min_procs_per_app

processor_id_type MultiApp::_min_procs_per_app
protectedinherited

Minimum number of processors to give to each app.

Definition at line 556 of file MultiApp.h.

Referenced by MultiApp::init().

◆ _move_apps

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

The apps to be moved.

Definition at line 577 of file MultiApp.h.

Referenced by MultiApp::fillPositions(), and MultiApp::preTransfer().

◆ _move_happened

bool MultiApp::_move_happened
protectedinherited

Whether or not the move has happened.

Definition at line 583 of file MultiApp.h.

Referenced by MultiApp::preTransfer().

◆ _move_positions

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

The new positions for the apps to be moved.

Definition at line 580 of file MultiApp.h.

Referenced by MultiApp::fillPositions(), and MultiApp::preTransfer().

◆ _move_time

Real MultiApp::_move_time
protectedinherited

The time at which to move apps.

Definition at line 574 of file MultiApp.h.

Referenced by MultiApp::preTransfer().

◆ _my_comm

MPI_Comm& MultiApp::_my_comm
protectedinherited

◆ _my_communicator

libMesh::Parallel::Communicator MultiApp::_my_communicator
protectedinherited

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

Definition at line 520 of file MultiApp.h.

Referenced by MultiApp::buildComm().

◆ _my_num_apps

unsigned int MultiApp::_my_num_apps
protectedinherited

◆ _my_rank

int MultiApp::_my_rank
protectedinherited

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

Definition at line 535 of file MultiApp.h.

Referenced by MultiApp::buildComm(), and MultiApp::isRootProcessor().

◆ _name

const std::string MooseBase::_name
protectedinherited

The name of this class.

Definition at line 90 of file MooseBase.h.

Referenced by AddBCAction::act(), AddDamperAction::act(), AddInitialConditionAction::act(), AddKernelAction::act(), AddConstraintAction::act(), AddDGKernelAction::act(), AddDiracKernelAction::act(), AddMeshGeneratorAction::act(), AddTransferAction::act(), AddScalarKernelAction::act(), AddVectorPostprocessorAction::act(), AddFVInitialConditionAction::act(), AddNodalKernelAction::act(), AddFunctorMaterialAction::act(), AddPostprocessorAction::act(), AddFVInterfaceKernelAction::act(), AddIndicatorAction::act(), AddInterfaceKernelAction::act(), AddUserObjectAction::act(), PartitionerAction::act(), ReadExecutorParamsAction::act(), AddMaterialAction::act(), AddMarkerAction::act(), AddMultiAppAction::act(), AddReporterAction::act(), AddFieldSplitAction::act(), AddTimesAction::act(), AddPositionsAction::act(), AddFVBCAction::act(), AddFVKernelAction::act(), AddDistributionAction::act(), SetupPreconditionerAction::act(), SetupTimeIntegratorAction::act(), AddFunctionAction::act(), AddMeshDivisionAction::act(), AddTimeStepperAction::act(), AddLinearFVBCAction::act(), AddLinearFVKernelAction::act(), AddOutputAction::act(), AddSamplerAction::act(), AddPeriodicBCAction::act(), AddControlAction::act(), ADPiecewiseLinearInterpolationMaterial::ADPiecewiseLinearInterpolationMaterial(), PiecewiseTabularBase::buildFromFile(), PiecewiseTabularBase::buildFromXY(), PiecewiseLinearBase::buildInterpolation(), CombinerGenerator::CombinerGenerator(), Executor::Executor(), ExtraIDIntegralReporter::ExtraIDIntegralReporter(), QuadraturePointMultiApp::fillPositions(), fillPositions(), MultiApp::fillPositions(), FunctionDT::FunctionDT(), FillBetweenPointVectorsGenerator::generate(), FillBetweenSidesetsGenerator::generate(), FillBetweenCurvesGenerator::generate(), NearestPointBase< LayeredSideDiffusiveFluxAverage, SideIntegralVariableUserObject >::name(), ParsedFunctorMaterialTempl< is_ad >::ParsedFunctorMaterialTempl(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseBase::setData(), and Split::setup().

◆ _node_name

std::string MultiApp::_node_name
protectedinherited

Node Name.

Definition at line 532 of file MultiApp.h.

Referenced by MultiApp::buildComm().

◆ _npositions_inputfile

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

Number of positions for each input file.

Definition at line 502 of file MultiApp.h.

Referenced by MultiApp::fillPositions(), and MultiApp::readCommandLineArguments().

◆ _orig_comm

const MPI_Comm& MultiApp::_orig_comm
protectedinherited

The original comm handle.

Definition at line 517 of file MultiApp.h.

Referenced by MultiApp::createApps().

◆ _orig_num_procs

int MultiApp::_orig_num_procs
protectedinherited

The number of processors in the original comm.

Definition at line 526 of file MultiApp.h.

Referenced by MultiApp::buildComm().

◆ _orig_rank

int MultiApp::_orig_rank
protectedinherited

◆ _output_base

std::string MultiApp::_output_base
protectedinherited

The output file basename for each multiapp.

Definition at line 505 of file MultiApp.h.

◆ _output_in_position

bool MultiApp::_output_in_position
protectedinherited

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

Definition at line 559 of file MultiApp.h.

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

◆ _pars

const InputParameters& MooseBaseParameterInterface::_pars
protectedinherited

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

Definition at line 162 of file MooseBaseParameterInterface.h.

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

◆ _pg_moose_app

MooseApp& PerfGraphInterface::_pg_moose_app
protectedinherited

The MooseApp that owns the PerfGraph.

Definition at line 124 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::perfGraph().

◆ _positions

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

◆ _positions_index_offsets

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

The offsets, in case multiple Positions objects are specified.

Definition at line 489 of file MultiApp.h.

Referenced by MultiApp::fillPositions(), and MultiApp::position().

◆ _positions_objs

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

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

Definition at line 487 of file MultiApp.h.

Referenced by MultiApp::fillPositions(), and MultiApp::position().

◆ _prefix

const std::string PerfGraphInterface::_prefix
protectedinherited

A prefix to use for all sections.

Definition at line 127 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::timedSectionName().

◆ _rank_config

LocalRankConfig MultiApp::_rank_config
protectedinherited

The app configuration resulting from calling init.

Definition at line 601 of file MultiApp.h.

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

◆ _reset_apps

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

The apps to be reset.

Definition at line 568 of file MultiApp.h.

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

◆ _reset_happened

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

Whether or not apps have been reset at each time.

Definition at line 571 of file MultiApp.h.

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

◆ _reset_timer

const PerfID MultiApp::_reset_timer
protectedinherited

Definition at line 617 of file MultiApp.h.

Referenced by MultiApp::resetApp().

◆ _reset_times

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

The times at which to reset apps.

Definition at line 565 of file MultiApp.h.

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

◆ _restartable_app

MooseApp& Restartable::_restartable_app
protectedinherited

Reference to the application.

Definition at line 227 of file Restartable.h.

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

◆ _restartable_read_only

const bool Restartable::_restartable_read_only
protectedinherited

Flag for toggling read only status (see ReporterData)

Definition at line 236 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 230 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 233 of file Restartable.h.

Referenced by Restartable::declareRestartableDataHelper().

◆ _restore_timer

const PerfID MultiApp::_restore_timer
protectedinherited

Definition at line 616 of file MultiApp.h.

Referenced by MultiApp::restore().

◆ _run_in_position

const bool MultiApp::_run_in_position
protectedinherited

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

Definition at line 607 of file MultiApp.h.

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

◆ _solve_step_timer

const PerfID MultiApp::_solve_step_timer
protectedinherited

Timers.

Definition at line 613 of file MultiApp.h.

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

◆ _sub_app_backups

SubAppBackups& MultiApp::_sub_app_backups
protectedinherited

The cached subapp backups (passed from the parent app)

Definition at line 610 of file MultiApp.h.

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

◆ _total_num_apps

unsigned int MultiApp::_total_num_apps
protectedinherited

◆ _type

const std::string MooseBase::_type
protectedinherited

◆ _use_positions

const bool MultiApp::_use_positions
protectedinherited

Toggle use of "positions".

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

Definition at line 493 of file MultiApp.h.

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

◆ _wait_for_first_app_init

const bool& MultiApp::_wait_for_first_app_init
protectedinherited

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

Definition at line 499 of file MultiApp.h.

Referenced by MultiApp::createApps().


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