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

Automatically generates Sub-App positions from positions in the master app's mesh. More...

#include <AutoPositionsMultiApp.h>

Inheritance diagram for AutoPositionsMultiApp:
[legend]

Public Types

enum  TEST_TYPE { ALL, ANY }
 A flag changing the behavior of hasBoundary. More...
 

Public Member Functions

 AutoPositionsMultiApp (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 restore () override
 Restore the state of every Sub App. More...
 
virtual bool solveStep (Real dt, Real target_time, bool auto_advance=true) override
 Re-solve all of the Apps. More...
 
virtual void incrementTStep () override
 Advances the multi-apps time step which is important for dt selection. More...
 
virtual void finishStep () 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 postExecute ()
 
void setupPositions ()
 Called just after construction to allow derived classes to set _positions;. More...
 
virtual bool isSolved () const
 Method that reports whether the application has been fully solved or not. 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 advanceStep ()
 Deprecated method. More...
 
virtual void backup ()
 Save off the state of every Sub App. More...
 
virtual ExecutionergetExecutioner (unsigned int app)
 
virtual BoundingBox getBoundingBox (unsigned int app, bool displaced_mesh)
 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 is part of. 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 ()
 
unsigned int numLocalApps ()
 
unsigned int firstLocalApp ()
 
bool hasApp ()
 Whether or not this MultiApp has an app on this processor. More...
 
bool hasLocalApp (unsigned int global_app)
 Whether or not the given global app number is on this processor. More...
 
MooseApplocalApp (unsigned int local_app)
 Get the local MooseApp object. More...
 
Point position (unsigned int app)
 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...
 
bool isRootProcessor ()
 Whether or not this processor is the "root" processor for the sub communicator. More...
 
const std::string & type () const
 Get the type of this object. More...
 
const std::string & name () const
 Get the name of the object. More...
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a 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...
 
MooseAppgetMooseApp () const
 Get the MooseApp this object is associated with. More...
 
virtual bool enabled () const
 Return the enabled status of the object. More...
 
template<typename... Args>
void paramError (const std::string &param, Args... args)
 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)
 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)
 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...
 
template<typename... Args>
void mooseError (Args &&... args) const
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
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...
 
const ExecFlagEnumgetExecuteOnEnum () const
 Return the execute on MultiMooseEnum for this object. More...
 
virtual const std::vector< ExecFlagType > & execFlags () const
 (DEPRECATED) Get the execution flag for the object TODO: ExecFlagType More...
 
ExecFlagType execBitFlags () const
 (DEPRECATED) Build and return the execution flags as a bitfield TODO: ExecFlagType More...
 
virtual const std::set< BoundaryID > & boundaryIDs () const
 Return the boundary IDs for this object. More...
 
const std::vector< BoundaryName > & boundaryNames () const
 Return the boundary names for this object. More...
 
unsigned int numBoundaryIDs () const
 Return the number of boundaries for this object. More...
 
bool hasBoundary (const BoundaryName &name) const
 Test if the supplied boundary name is valid for this object. More...
 
bool hasBoundary (const std::vector< BoundaryName > &names) const
 Test if the supplied vector of boundary names are valid for this object. More...
 
bool hasBoundary (const BoundaryID &id) const
 Test if the supplied boundary ids are valid for this object. More...
 
bool hasBoundary (const std::vector< BoundaryID > &ids, TEST_TYPE type=ALL) const
 Test if the supplied vector boundary ids are valid for this object. More...
 
bool hasBoundary (const std::set< BoundaryID > &ids, TEST_TYPE type=ALL) const
 Test if the supplied set of boundary ids are valid for this object. More...
 
bool isBoundarySubset (const std::set< BoundaryID > &ids) const
 Test if the class boundary ids are a subset of the supplied objects. More...
 
bool isBoundarySubset (const std::vector< BoundaryID > &ids) const
 
template<typename T >
bool hasBoundaryMaterialProperty (const std::string &prop_name) const
 Check if a material property is valid for all boundaries of this object. More...
 
virtual bool boundaryRestricted () const
 Returns true if this object has been restricted to a boundary. More...
 
const std::set< BoundaryID > & meshBoundaryIDs () const
 Returns the set of all boundary ids for the entire mesh. More...
 

Static Public Member Functions

static ExecFlagEnum getExecuteOptions ()
 (DEPRECATED) Returns the available options for the 'execute_on' input parameters TODO: ExecFlagType More...
 
static bool restricted (const std::set< BoundaryID > &ids)
 Helper for determining if the object is boundary restricted. More...
 

Public Attributes

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

Protected Member Functions

void fillPositions () override
 must fill in _positions with the positions of the sub-aps More...
 
virtual void initialSetup () override
 Gets called at the beginning of the simulation before this object is asked to do its job. 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...
 
void init (unsigned int num)
 Initialize the MultiApp by creating the provided number of apps. More...
 
template<typename T >
T & declareRestartableData (std::string data_name)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableData (std::string data_name, const T &init_value)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRestartableDataWithContext (std::string data_name, void *context)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableDataWithContext (std::string data_name, const T &init_value, void *context)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRecoverableData (std::string data_name)
 Declare a piece of data as "recoverable". More...
 
template<typename T >
T & declareRecoverableData (std::string data_name, const T &init_value)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRestartableDataWithObjectName (std::string data_name, std::string object_name)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableDataWithObjectNameWithContext (std::string data_name, std::string object_name, void *context)
 Declare a piece of data as "restartable". More...
 
bool hasBoundaryMaterialPropertyHelper (const std::string &prop_name) const
 A helper method to avoid circular #include problems. 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. More...
 
const bool _use_positions
 Toggle use of "positions". More...
 
std::vector< FileName > _input_files
 The input file for each app's simulation. 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...
 
unsigned int _max_procs_per_app
 Maximum 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...
 
Real _reset_time
 The time at which to reset apps. More...
 
std::vector< unsigned int > _reset_apps
 The apps to be reset. More...
 
bool _reset_happened
 Whether or not apps have been reset. 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...
 
SubAppBackups_backups
 Backups for each local App. More...
 
const InputParameters_pars
 Parameters of this object, references the InputParameters stored in the InputParametersWarehouse. More...
 
MooseApp_app
 The MooseApp this object is associated with. More...
 
const std::string & _type
 The type of this object (the Class name) More...
 
const std::string & _name
 The name of this object, reference to value stored in InputParameters. More...
 
const bool & _enabled
 Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects. More...
 
const ExecFlagEnum_execute_enum
 Execute settings for this oejct. More...
 
const std::vector< ExecFlagType_exec_flags
 (DEPRECATED) execution flag (when is the object executed/evaluated) TODO: ExecFlagType More...
 
const ExecFlagType_current_execute_flag
 Reference to FEProblemBase. More...
 

Detailed Description

Automatically generates Sub-App positions from positions in the master app's mesh.

Definition at line 24 of file AutoPositionsMultiApp.h.

Member Enumeration Documentation

◆ TEST_TYPE

A flag changing the behavior of hasBoundary.

Enumerator
ALL 
ANY 

Definition at line 35 of file BoundaryRestrictable.h.

Constructor & Destructor Documentation

◆ AutoPositionsMultiApp()

AutoPositionsMultiApp::AutoPositionsMultiApp ( const InputParameters parameters)

Definition at line 34 of file AutoPositionsMultiApp.C.

35  : TransientMultiApp(parameters), BoundaryRestrictable(this, true) // true for applying to nodesets
36 {
37  fillPositions();
38 }
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:57
TransientMultiApp(const InputParameters &parameters)
void fillPositions() override
must fill in _positions with the positions of the sub-aps
BoundaryRestrictable(const MooseObject *moose_object, bool nodal)
Class constructor Populates the _bnd_ids for the given boundary names supplied with the &#39;boundary&#39; in...

Member Function Documentation

◆ advanceStep()

virtual void MultiApp::advanceStep ( )
inlinevirtualinherited

Deprecated method.

Use finishStep

Definition at line 112 of file MultiApp.h.

113  {
114  mooseDeprecated("advanceStep() is deprecated; please use finishStep() instead");
115  finishStep();
116  }
virtual void finishStep()
Calls multi-apps executioners&#39; endStep and postStep methods which creates output and advances time (n...
Definition: MultiApp.h:124
void mooseDeprecated(Args &&... args) const
Definition: MooseObject.h:155

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

471 {
472  if (!_has_an_app)
473  mooseError("No app for ", MultiApp::name(), " on processor ", _orig_rank);
474 
476 }
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:365
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
FEProblemBase & appProblemBase(unsigned int app)
Get the FEProblemBase for the global app is part of.
Definition: MultiApp.C:437
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
PostprocessorValue & getPostprocessorValue(const PostprocessorName &name)
Get a reference to the value associated with the postprocessor.

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

449 {
451  "MultiApp::appProblem() is deprecated, call MultiApp::appProblemBase() instead.\n");
452  if (!_has_an_app)
453  mooseError("No app for ", name(), " on processor ", _orig_rank);
454 
455  unsigned int local_app = globalAppToLocal(app);
456 
457  return dynamic_cast<FEProblem &>(_apps[local_app]->getExecutioner()->feProblem());
458 }
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Definition: FEProblem.h:25
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:365
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
void mooseDeprecated(Args &&... args) const
Definition: MooseObject.h:155
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:710

◆ appProblemBase()

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

Get the FEProblemBase for the global app is part of.

Parameters
appThe global app number

Definition at line 437 of file MultiApp.C.

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

438 {
439  if (!_has_an_app)
440  mooseError("No app for ", name(), " on processor ", _orig_rank);
441 
442  unsigned int local_app = globalAppToLocal(app);
443 
444  return _apps[local_app]->getExecutioner()->feProblem();
445 }
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:365
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:710

◆ 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 137 of file TransientMultiApp.C.

138 {
139  if (std::find(_transferred_vars.begin(), _transferred_vars.end(), var_name) ==
140  _transferred_vars.end())
141  _transferred_vars.push_back(var_name);
142 
144  return appProblemBase(app).getAuxiliarySystem().system().get_vector("transfer");
145 
147 }
FEProblemBase & appProblemBase(unsigned int app)
Get the FEProblemBase for the global app is part of.
Definition: MultiApp.C:437
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 NumericVector< Number > & solution() override
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 461 of file MultiApp.C.

Referenced by MultiAppDTKUserObjectEvaluator::evaluate().

462 {
463  if (!_has_an_app)
464  mooseError("No app for ", MultiApp::name(), " on processor ", _orig_rank);
465 
467 }
const UserObject & getUserObjectBase(const std::string &name) const
Get the user object by its name.
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:365
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
FEProblemBase & appProblemBase(unsigned int app)
Get the FEProblemBase for the global app is part of.
Definition: MultiApp.C:437
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51

◆ backup()

void MultiApp::backup ( )
virtualinherited

Save off the state of every Sub App.

This allows us to "Restore" this state later

Definition at line 354 of file MultiApp.C.

Referenced by dataStore().

355 {
356  for (unsigned int i = 0; i < _my_num_apps; i++)
357  _backups[i] = _apps[i]->backup();
358 }
virtual void backup()
Save off the state of every Sub App.
Definition: MultiApp.C:354
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347
SubAppBackups & _backups
Backups for each local App.
Definition: MultiApp.h:419

◆ boundaryIDs()

const std::set< BoundaryID > & BoundaryRestrictable::boundaryIDs ( ) const
virtualinherited

Return the boundary IDs for this object.

Returns
A set of all boundary ids for which the object is restricted

Definition at line 148 of file BoundaryRestrictable.C.

Referenced by NonlinearSystemBase::addBoundaryCondition(), NonlinearSystemBase::addInterfaceKernel(), fillPositions(), Material::getZeroMaterialProperty(), BoundaryRestrictable::hasBoundaryMaterialPropertyHelper(), and Material::registerPropName().

149 {
150  return _bnd_ids;
151 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.

◆ boundaryNames()

const std::vector< BoundaryName > & BoundaryRestrictable::boundaryNames ( ) const
inherited

Return the boundary names for this object.

Returns
A set of all boundary names for which the object is restricted

Definition at line 154 of file BoundaryRestrictable.C.

Referenced by MaterialOutputAction::getParams(), NearestNodeDistanceAux::NearestNodeDistanceAux(), and NearestNodeValueAux::NearestNodeValueAux().

155 {
156  return _boundary_names;
157 }
std::vector< BoundaryName > _boundary_names
Vector the the boundary names.

◆ boundaryRestricted()

bool BoundaryRestrictable::boundaryRestricted ( ) const
virtualinherited

Returns true if this object has been restricted to a boundary.

See also
MooseObject

Definition at line 166 of file BoundaryRestrictable.C.

Referenced by MaterialOutputAction::getParams(), and DerivativeMaterialInterface< Material >::haveMaterialProperty().

167 {
169 }
static bool restricted(const std::set< BoundaryID > &ids)
Helper for determining if the object is boundary restricted.
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.

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

Referenced by MultiApp::init().

615 {
616  int ierr;
617 
618  ierr = MPI_Comm_size(_communicator.get(), &_orig_num_procs);
619  mooseCheckMPIErr(ierr);
620  ierr = MPI_Comm_rank(_communicator.get(), &_orig_rank);
621  mooseCheckMPIErr(ierr);
622 
623  struct utsname sysInfo;
624  uname(&sysInfo);
625 
626  _node_name = sysInfo.nodename;
627 
628  // If we have more apps than processors then we're just going to divide up the work
629  if (_total_num_apps >= (unsigned)_orig_num_procs)
630  {
631  _my_comm = MPI_COMM_SELF;
632  _my_rank = 0;
633 
635  unsigned int jobs_left = _total_num_apps - (_my_num_apps * _orig_num_procs);
636 
637  if (jobs_left != 0)
638  {
639  // Spread the remaining jobs out over the first set of processors
640  if ((unsigned)_orig_rank < jobs_left) // (these are the "jobs_left_pids" ie the pids that are
641  // snatching up extra jobs)
642  {
643  _my_num_apps += 1;
645  }
646  else
647  {
648  unsigned int num_apps_in_jobs_left_pids = (_my_num_apps + 1) * jobs_left;
649  unsigned int distance_to_jobs_left_pids = _orig_rank - jobs_left;
650 
651  _first_local_app = num_apps_in_jobs_left_pids + (_my_num_apps * distance_to_jobs_left_pids);
652  }
653  }
654  else
656 
657  return;
658  }
659 
660  // In this case we need to divide up the processors that are going to work on each app
661  int rank;
662  ierr = MPI_Comm_rank(_communicator.get(), &rank);
663  mooseCheckMPIErr(ierr);
664 
665  unsigned int procs_per_app = _orig_num_procs / _total_num_apps;
666 
667  if (_max_procs_per_app < procs_per_app)
668  procs_per_app = _max_procs_per_app;
669 
670  int my_app = rank / procs_per_app;
671  unsigned int procs_for_my_app = procs_per_app;
672 
673  if ((unsigned int)my_app > _total_num_apps - 1 && procs_for_my_app == _max_procs_per_app)
674  {
675  // If we've already hit the max number of procs per app then this processor
676  // won't have an app at all
677  _my_num_apps = 0;
678  _has_an_app = false;
679  }
680  else if ((unsigned int)my_app >=
681  _total_num_apps - 1) // The last app will gain any left-over procs
682  {
683  my_app = _total_num_apps - 1;
684  // procs_for_my_app += _orig_num_procs % _total_num_apps;
685  _first_local_app = my_app;
686  _my_num_apps = 1;
687  }
688  else
689  {
690  _first_local_app = my_app;
691  _my_num_apps = 1;
692  }
693 
694  if (_has_an_app)
695  {
696  _communicator.split(_first_local_app, rank, _my_communicator);
697 
698  ierr = MPI_Comm_rank(_my_comm, &_my_rank);
699  mooseCheckMPIErr(ierr);
700  }
701  else
702  {
703  _communicator.split(MPI_UNDEFINED, rank, _my_communicator);
704 
705  _my_rank = 0;
706  }
707 }
unsigned int _max_procs_per_app
Maximum number of processors to give to each app.
Definition: MultiApp.h:389
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:365
int _orig_num_procs
The number of processors in the original comm.
Definition: MultiApp.h:362
unsigned int _total_num_apps
The total number of apps to simulate.
Definition: MultiApp.h:344
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347
std::string _node_name
Node Name.
Definition: MultiApp.h:368
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
libMesh::Parallel::Communicator _my_communicator
The communicator object that holds the MPI_Comm that we&#39;re going to use.
Definition: MultiApp.h:356
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:350
int _my_rank
The mpi "rank" of this processor in the sub communicator.
Definition: MultiApp.h:371
ierr
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:359

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

Referenced by MultiAppDTKUserObjectEvaluator::evaluate().

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

◆ computeDT()

Real TransientMultiApp::computeDT ( )
inherited

Finds the smallest dt from among any of the apps.

Definition at line 558 of file TransientMultiApp.C.

559 {
560  if (_sub_cycling) // Bow out of the timestep selection dance
561  return std::numeric_limits<Real>::max();
562 
563  Real smallest_dt = std::numeric_limits<Real>::max();
564 
565  if (_has_an_app)
566  {
568 
569  for (unsigned int i = 0; i < _my_num_apps; i++)
570  {
572  ex->computeDT();
573  Real dt = ex->getDT();
574 
575  smallest_dt = std::min(dt, smallest_dt);
576  }
577  }
578 
579  if (_tolerate_failure) // Bow out of the timestep selection dance, we do this down here because we
580  // need to call computeConstrainedDT at least once for these
581  // executioners...
582  return std::numeric_limits<Real>::max();
583 
584  _communicator.min(smallest_dt);
585  return smallest_dt;
586 }
virtual Real getDT()
Definition: Transient.C:768
Transient executioners usually loop through a number of timesteps...
Definition: Transient.h:31
virtual void computeDT()
Definition: Transient.C:398
std::vector< Transient * > _transient_executioners
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:359

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

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

547 {
548 
549  // Define the app name
550  std::ostringstream multiapp_name;
551  std::string full_name;
552  multiapp_name << name() << std::setw(std::ceil(std::log10(_total_num_apps)))
553  << std::setprecision(0) << std::setfill('0') << std::right << _first_local_app + i;
554 
555  // Only add parent name if it the parent is not the main app
556  if (_app.multiAppLevel() > 0)
557  full_name = _app.name() + "_" + multiapp_name.str();
558  else
559  full_name = multiapp_name.str();
560 
562  app_params.set<FEProblemBase *>("_parent_fep") = &_fe_problem;
563  app_params.set<std::shared_ptr<CommandLine>>("_command_line") = _app.commandLine();
564  app_params.set<unsigned int>("_multiapp_level") = _app.multiAppLevel() + 1;
565  app_params.set<unsigned int>("_multiapp_number") = _first_local_app + i;
566  _apps[i] = AppFactory::instance().createShared(_app_type, full_name, app_params, _my_comm);
567  auto & app = _apps[i];
568 
569  std::string input_file = "";
570  if (_input_files.size() == 1) // If only one input file was provided, use it for all the solves
571  input_file = _input_files[0];
572  else
573  input_file = _input_files[_first_local_app + i];
574 
575  std::ostringstream output_base;
576 
577  // Create an output base by taking the output base of the master problem and appending
578  // the name of the multiapp + a number to it
579  if (!_app.getOutputFileBase().empty())
580  output_base << _app.getOutputFileBase() + "_";
581  else
582  {
583  std::string base = _app.getFileName();
584  size_t pos = base.find_last_of('.');
585  output_base << base.substr(0, pos) + "_out_";
586  }
587 
588  // Append the sub app name to the output file base
589  output_base << multiapp_name.str();
590  app->setGlobalTimeOffset(start_time);
591  app->setInputFileName(input_file);
592  app->setOutputFileBase(output_base.str());
593  app->setOutputFileNumbers(_app.getOutputWarehouse().getFileNumbers());
594  app->setRestart(_app.isRestarting());
595  app->setRecover(_app.isRecovering());
596 
597  // This means we have a backup of this app that we need to give to it
598  // Note: This won't do the restoration immediately. The Backup
599  // will be cached by the MooseApp object so that it can be used
600  // during FEProblemBase::initialSetup() during runInputFile()
601  if (_app.isRestarting() || _app.isRecovering())
602  app->restore(_backups[i]);
603 
604  if (_use_positions && getParam<bool>("output_in_position"))
605  app->setOutputPosition(_app.getOutputPosition() + _positions[_first_local_app + i]);
606 
607  // Update the MultiApp level for the app that was just created
608  app->setupOptions();
609  preRunInputFile();
610  app->runInputFile();
611 }
std::string getFileName(bool stripLeadingPath=true) const
Return the filename that was parsed.
Definition: MooseApp.C:1050
const std::string & name() const
Get the name of the object.
Definition: MooseApp.h:72
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:335
std::shared_ptr< CommandLine > commandLine() const
Get the command line.
Definition: MooseApp.h:293
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:51
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
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:515
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
std::string getOutputFileBase() const
Override the selection of the output file base name.
Definition: MooseApp.C:783
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition: MultiApp.h:326
bool isRestarting() const
Whether or not this is a "restart" calculation.
Definition: MooseApp.C:858
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
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:329
unsigned int _total_num_apps
The total number of apps to simulate.
Definition: MultiApp.h:344
Point getOutputPosition() const
Get the output position.
Definition: MooseApp.h:192
static AppFactory & instance()
Get the instance of the AppFactory.
Definition: AppFactory.C:17
SubAppBackups & _backups
Backups for each local App.
Definition: MultiApp.h:419
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:350
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:171
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
std::vector< Point > _positions
The positions of all of the apps.
Definition: MultiApp.h:332
std::vector< FileName > _input_files
The input file for each app&#39;s simulation.
Definition: MultiApp.h:338
virtual void preRunInputFile()
call back executed right before app->runInputFile()
Definition: MultiApp.C:720
InputParameters getValidParams(const std::string &name)
Get valid parameters for the object.
Definition: AppFactory.C:25
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition: MooseApp.C:852
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:359
OutputWarehouse & getOutputWarehouse()
Get the OutputWarehouse objects.
Definition: MooseApp.C:1056

◆ declareRecoverableData() [1/2]

template<typename T >
T & Restartable::declareRecoverableData ( std::string  data_name)
protectedinherited

Declare a piece of data as "recoverable".

This means that in the event of a recovery 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)

Definition at line 269 of file Restartable.h.

270 {
271  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
272 
273  registerRecoverableDataOnApp(full_name);
274 
275  return declareRestartableDataWithContext<T>(data_name, nullptr);
276 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:194
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191
void registerRecoverableDataOnApp(std::string name)
Helper function for actually registering the restartable data.
Definition: Restartable.C:54

◆ declareRecoverableData() [2/2]

template<typename T >
T & Restartable::declareRecoverableData ( std::string  data_name,
const T &  init_value 
)
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 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)
init_valueThe initial value of the data

Definition at line 280 of file Restartable.h.

281 {
282  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
283 
284  registerRecoverableDataOnApp(full_name);
285 
286  return declareRestartableDataWithContext<T>(data_name, init_value, nullptr);
287 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:194
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191
void registerRecoverableDataOnApp(std::string name)
Helper function for actually registering the restartable data.
Definition: Restartable.C:54

◆ declareRestartableData() [1/2]

template<typename T >
T & Restartable::declareRestartableData ( std::string  data_name)
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)

Definition at line 202 of file Restartable.h.

203 {
204  return declareRestartableDataWithContext<T>(data_name, nullptr);
205 }

◆ declareRestartableData() [2/2]

template<typename T >
T & Restartable::declareRestartableData ( std::string  data_name,
const T &  init_value 
)
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)
init_valueThe initial value of the data

Definition at line 209 of file Restartable.h.

210 {
211  return declareRestartableDataWithContext<T>(data_name, init_value, nullptr);
212 }

◆ declareRestartableDataWithContext() [1/2]

template<typename T >
T & Restartable::declareRestartableDataWithContext ( std::string  data_name,
void *  context 
)
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)
contextContext pointer that will be passed to the load and store functions

Definition at line 216 of file Restartable.h.

217 {
218  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
219  auto data_ptr = libmesh_make_unique<RestartableData<T>>(full_name, context);
220  T & restartable_data_ref = data_ptr->get();
221 
222  registerRestartableDataOnApp(full_name, std::move(data_ptr), _restartable_tid);
223 
224  return restartable_data_ref;
225 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:194
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191
THREAD_ID _restartable_tid
The thread ID for this object.
Definition: Restartable.h:197
void registerRestartableDataOnApp(std::string name, std::unique_ptr< RestartableDataValue > data, THREAD_ID tid)
Helper function for actually registering the restartable data.
Definition: Restartable.C:46

◆ declareRestartableDataWithContext() [2/2]

template<typename T >
T & Restartable::declareRestartableDataWithContext ( std::string  data_name,
const T &  init_value,
void *  context 
)
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)
init_valueThe initial value of the data
contextContext pointer that will be passed to the load and store functions

Definition at line 229 of file Restartable.h.

232 {
233  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
234  auto data_ptr = libmesh_make_unique<RestartableData<T>>(full_name, context);
235  data_ptr->set() = init_value;
236 
237  T & restartable_data_ref = data_ptr->get();
238  registerRestartableDataOnApp(full_name, std::move(data_ptr), _restartable_tid);
239 
240  return restartable_data_ref;
241 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:194
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191
THREAD_ID _restartable_tid
The thread ID for this object.
Definition: Restartable.h:197
void registerRestartableDataOnApp(std::string name, std::unique_ptr< RestartableDataValue > data, THREAD_ID tid)
Helper function for actually registering the restartable data.
Definition: Restartable.C:46

◆ declareRestartableDataWithObjectName()

template<typename T >
T & Restartable::declareRestartableDataWithObjectName ( std::string  data_name,
std::string  object_name 
)
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.

Definition at line 245 of file Restartable.h.

246 {
247  return declareRestartableDataWithObjectNameWithContext<T>(data_name, object_name, nullptr);
248 }

◆ declareRestartableDataWithObjectNameWithContext()

template<typename T >
T & Restartable::declareRestartableDataWithObjectNameWithContext ( std::string  data_name,
std::string  object_name,
void *  context 
)
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

Definition at line 252 of file Restartable.h.

255 {
256  std::string old_name = _restartable_name;
257 
258  _restartable_name = object_name;
259 
260  T & value = declareRestartableDataWithContext<T>(data_name, context);
261 
262  _restartable_name = old_name;
263 
264  return value;
265 }
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 91 of file MooseObject.h.

Referenced by EigenKernel::enabled().

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

◆ execBitFlags()

ExecFlagType SetupInterface::execBitFlags ( ) const
inherited

(DEPRECATED) Build and return the execution flags as a bitfield TODO: ExecFlagType

Definition at line 85 of file SetupInterface.C.

86 {
87  // TODO: ExecFlagType
88  mooseDeprecated("The execBitFlags method is being removed because MOOSE was updated to use a "
89  "ExecFlagEnum for execute flags. This method maintains the behavior of the "
90  "original method but the use of this method should be removed from your "
91  "application. The ExecFlagEnum should be inspected directly via the "
92  "getExecuteOnEnum() method.");
93 
94  unsigned int exec_bit_field = EXEC_NONE;
95  for (const auto & flag : _exec_flags)
96  exec_bit_field |= flag.id();
97  return ExecFlagType("deprecated", exec_bit_field);
98 }
MooseEnumItem ExecFlagType
Definition: Moose.h:85
const ExecFlagType EXEC_NONE
void mooseDeprecated(Args &&... args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
Definition: MooseError.h:237
const int & id() const
Return the numeric, name, or raw name.
Definition: MooseEnumItem.h:37
const std::vector< ExecFlagType > _exec_flags
(DEPRECATED) execution flag (when is the object executed/evaluated) TODO: ExecFlagType ...

◆ execFlags()

const std::vector< ExecFlagType > & SetupInterface::execFlags ( ) const
virtualinherited

(DEPRECATED) Get the execution flag for the object TODO: ExecFlagType

Reimplemented in MultiAppTransfer.

Definition at line 73 of file SetupInterface.C.

74 {
75  // TODO: ExecFlagType
76  mooseDeprecated("The execFlags() method is being removed because MOOSE has been updated to use a "
77  "ExecFlagEnum for execute flags. The current flags should be retrieved from "
78  "the \"exeucte_on\" parameters of your object or by using the \"_execute_enum\" "
79  "reference to the parameter or the getExecuteOnEnum() method.");
80 
81  return _exec_flags;
82 }
void mooseDeprecated(Args &&... args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
Definition: MooseError.h:237
const std::vector< ExecFlagType > _exec_flags
(DEPRECATED) execution flag (when is the object executed/evaluated) TODO: ExecFlagType ...

◆ fillPositions()

void AutoPositionsMultiApp::fillPositions ( )
overrideprotectedvirtual

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

Reimplemented from MultiApp.

Definition at line 49 of file AutoPositionsMultiApp.C.

Referenced by AutoPositionsMultiApp().

50 {
51  MooseMesh & master_mesh = _fe_problem.mesh();
52 
53  const std::set<BoundaryID> & bids = boundaryIDs();
54 
55  for (const auto & boundary_id : bids)
56  {
57  // Grab the nodes on the boundary ID and add a Sub-App at each one.
58  const std::vector<dof_id_type> & boundary_node_ids = master_mesh.getNodeList(boundary_id);
59 
60  for (const auto & boundary_node_id : boundary_node_ids)
61  {
62  Node & node = master_mesh.nodeRef(boundary_node_id);
63 
64  _positions.push_back(node);
65  }
66  }
67 }
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
Definition: MultiApp.h:326
virtual const Node & nodeRef(const dof_id_type i) const
Definition: MooseMesh.C:478
const std::vector< dof_id_type > & getNodeList(boundary_id_type nodeset_id) const
Return a writable reference to a vector of node IDs that belong to nodeset_id.
Definition: MooseMesh.C:2539
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:72
virtual MooseMesh & mesh() override
std::vector< Point > _positions
The positions of all of the apps.
Definition: MultiApp.h:332
virtual const std::set< BoundaryID > & boundaryIDs() const
Return the boundary IDs for this object.

◆ finishStep()

void TransientMultiApp::finishStep ( )
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().

Reimplemented from MultiApp.

Definition at line 538 of file TransientMultiApp.C.

539 {
540  if (!_sub_cycling)
541  {
542  for (unsigned int i = 0; i < _my_num_apps; i++)
543  {
545  ex->endStep();
546  ex->postStep();
547  }
548  }
549 }
Transient executioners usually loop through a number of timesteps...
Definition: Transient.h:31
virtual void endStep(Real input_time=-1.0)
Definition: Transient.C:658
std::vector< Transient * > _transient_executioners
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347
virtual void postStep()
Definition: Transient.C:341

◆ firstLocalApp()

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

Definition at line 218 of file MultiApp.h.

Referenced by MultiAppDTKUserObjectEvaluator::createSourceGeometry().

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

◆ getBoundingBox()

BoundingBox MultiApp::getBoundingBox ( unsigned int  app,
bool  displaced_mesh 
)
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

Definition at line 374 of file MultiApp.C.

Referenced by MultiAppDTKUserObjectEvaluator::createSourceGeometry().

375 {
376  if (!_has_an_app)
377  mooseError("No app for ", name(), " on processor ", _orig_rank);
378 
379  unsigned int local_app = globalAppToLocal(app);
380  FEProblemBase & fe_problem_base = _apps[local_app]->getExecutioner()->feProblem();
381  MooseMesh & mesh = (displaced_mesh && fe_problem_base.getDisplacedProblem().get() != NULL)
382  ? fe_problem_base.getDisplacedProblem()->mesh()
383  : fe_problem_base.mesh();
384 
385  {
387  if (displaced_mesh)
388  _bounding_box[local_app] = MeshTools::create_bounding_box(mesh);
389  else
390  {
391  if (!_has_bounding_box[local_app])
392  {
393  _bounding_box[local_app] = MeshTools::create_bounding_box(mesh);
394  _has_bounding_box[local_app] = true;
395  }
396  }
397  }
398  BoundingBox bbox = _bounding_box[local_app];
399 
400  Point min = bbox.min();
401  min -= _bounding_box_padding;
402  Point max = bbox.max();
403  max += _bounding_box_padding;
404 
405  Point inflation_amount = (max - min) * _inflation;
406 
407  Point inflated_min = min - inflation_amount;
408  Point inflated_max = max + inflation_amount;
409 
410  // This is where the app is located. We need to shift by this amount.
411  Point p = position(app);
412 
413  Point shifted_min = inflated_min;
414  Point shifted_max = inflated_max;
415 
416  // If the problem is RZ then we're going to invent a box that would cover the whole "3D" app
417  // FIXME: Assuming all subdomains are the same coordinate system type!
418  if (fe_problem_base.getCoordSystem(*(mesh.meshSubdomains().begin())) == Moose::COORD_RZ)
419  {
420  shifted_min(0) = -inflated_max(0);
421  shifted_min(1) = inflated_min(1);
422  shifted_min(2) = -inflated_max(0);
423 
424  shifted_max(0) = inflated_max(0);
425  shifted_max(1) = inflated_max(1);
426  shifted_max(2) = inflated_max(0);
427  }
428 
429  // Shift them to the position they're supposed to be
430  shifted_min += p;
431  shifted_max += p;
432 
433  return BoundingBox(shifted_min, shifted_max);
434 }
Point position(unsigned int app)
The physical position of a global App number.
Definition: MultiApp.h:243
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:365
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
Real _inflation
Relative bounding box inflation.
Definition: MultiApp.h:383
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual std::shared_ptr< DisplacedProblem > getDisplacedProblem()
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:72
std::vector< BoundingBox > _bounding_box
This multi-app&#39;s bounding box.
Definition: MultiApp.h:380
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
virtual Moose::CoordinateSystemType getCoordSystem(SubdomainID sid) override
virtual MooseMesh & mesh() override
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
Point _bounding_box_padding
Additional padding added to the bounding box, useful for 1D meshes.
Definition: MultiApp.h:386
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:359
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:710
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:2261
std::vector< bool > _has_bounding_box
Flag if this multi-app computed its bounding box (valid only for non-displaced meshes) ...
Definition: MultiApp.h:377

◆ getCheckedPointerParam()

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

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

73  {
74  return parameters().getCheckedPointerParam<T>(name, error_string);
75  }
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.
Definition: MooseObject.h:57
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51

◆ getExecuteOnEnum()

const ExecFlagEnum & SetupInterface::getExecuteOnEnum ( ) const
inherited

Return the execute on MultiMooseEnum for this object.

Definition at line 67 of file SetupInterface.C.

Referenced by ExecuteMooseObjectWarehouse< Transfer >::addObjectMask(), EigenExecutionerBase::init(), AttribExecOns::initFrom(), and MultiAppTransfer::MultiAppTransfer().

68 {
69  return _execute_enum;
70 }
const ExecFlagEnum & _execute_enum
Execute settings for this oejct.

◆ getExecuteOptions()

ExecFlagEnum SetupInterface::getExecuteOptions ( )
staticinherited

(DEPRECATED) Returns the available options for the 'execute_on' input parameters TODO: ExecFlagType

Returns
A MooseEnum with the available 'execute_on' options, the default is 'residual'

Definition at line 101 of file SetupInterface.C.

102 {
103  // TODO: ExecFlagType
104  ::mooseDeprecated("The 'getExecuteOptions' was replaced by the ExecFlagEnum class because MOOSE "
105  "was updated to use this for the execute flags and the new function provides "
106  "additional arguments for modification of the enum.");
108 }
ExecFlagEnum getDefaultExecFlagEnum()
Return the default ExecFlagEnum for MOOSE.
Definition: MooseUtils.C:724
void mooseDeprecated(Args &&... args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
Definition: MooseError.h:237

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

Referenced by TransientMultiApp::restore().

339 {
340  if (!_has_an_app)
341  mooseError("No app for ", name(), " on processor ", _orig_rank);
342 
343  return _apps[globalAppToLocal(app)]->getExecutioner();
344 }
int _orig_rank
The mpi "rank" of this processor in the original communicator.
Definition: MultiApp.h:365
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:710

◆ getMooseApp()

MooseApp& MooseObject::getMooseApp ( ) const
inlineinherited

Get the MooseApp this object is associated with.

Definition at line 86 of file MooseObject.h.

Referenced by RestartableDataIO::createBackup(), RestartableDataIO::deserializeRestartableData(), ConsoleUtils::outputMeshInformation(), Resurrector::restartRestartableData(), and RestartableDataIO::restoreBackup().

86 { return _app; }
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:171

◆ getParam()

template<typename T >
const T & MooseObject::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 185 of file MooseObject.h.

Referenced by FEProblemBase::addMaterialHelper(), ConstraintWarehouse::addObject(), BicubicSplineFunction::BicubicSplineFunction(), Piecewise::buildFromXandY(), DerivativeParsedMaterial::DerivativeParsedMaterial(), EigenKernel::EigenKernel(), FEProblemBase::FEProblemBase(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), SideSetsBetweenSubdomainsGenerator::generate(), ExtraNodesetGenerator::generate(), MeshExtruderGenerator::generate(), SideSetsAroundSubdomainGenerator::generate(), GenericConstantRankTwoTensor::GenericConstantRankTwoTensor(), TimeSequenceStepper::init(), AttribThread::initFrom(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), AdvancedOutput::initialSetup(), SideSetsBetweenSubdomains::modify(), AddExtraNodeset::modify(), MeshExtruder::modify(), SideSetsAroundSubdomain::modify(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedMaterial::ParsedMaterial(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), TimePeriod::TimePeriod(), and VectorOfPostprocessors::VectorOfPostprocessors().

186 {
187  return InputParameters::getParamHelper(name, _pars, static_cast<T *>(0));
188 }
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type)
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51

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

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

711 {
712  if (global_app >= _first_local_app && global_app <= _first_local_app + (_my_num_apps - 1))
713  return global_app - _first_local_app;
714 
715  _console << _first_local_app << " " << global_app << '\n';
716  mooseError("Invalid global_app!");
717 }
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:350
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ hasApp()

bool MultiApp::hasApp ( )
inlineinherited

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

Definition at line 223 of file MultiApp.h.

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

◆ hasBoundary() [1/5]

bool BoundaryRestrictable::hasBoundary ( const BoundaryName &  name) const
inherited

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

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

Definition at line 178 of file BoundaryRestrictable.C.

Referenced by BoundaryRestrictable::hasBoundary(), and BoundaryRestrictable::hasBoundaryMaterialPropertyHelper().

179 {
180  // Create a vector and utilize the getBoundaryIDs function, which
181  // handles the ANY_BOUNDARY_ID (getBoundaryID does not)
182  return hasBoundary(_bnd_mesh->getBoundaryIDs({name}));
183 }
MooseMesh * _bnd_mesh
Point to mesh.
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
std::vector< BoundaryID > getBoundaryIDs(const Elem *const elem, const unsigned short int side) const
Returns a vector of boundary IDs for the requested element on the requested side. ...
Definition: MooseMesh.C:2105

◆ hasBoundary() [2/5]

bool BoundaryRestrictable::hasBoundary ( const std::vector< BoundaryName > &  names) const
inherited

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

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

Definition at line 186 of file BoundaryRestrictable.C.

187 {
188  return hasBoundary(_bnd_mesh->getBoundaryIDs(names));
189 }
MooseMesh * _bnd_mesh
Point to mesh.
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
std::vector< BoundaryID > getBoundaryIDs(const Elem *const elem, const unsigned short int side) const
Returns a vector of boundary IDs for the requested element on the requested side. ...
Definition: MooseMesh.C:2105

◆ hasBoundary() [3/5]

bool BoundaryRestrictable::hasBoundary ( const BoundaryID id) const
inherited

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

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

Definition at line 192 of file BoundaryRestrictable.C.

193 {
194  if (_bnd_ids.empty() || _bnd_ids.find(Moose::ANY_BOUNDARY_ID) != _bnd_ids.end())
195  return true;
196  else
197  return _bnd_ids.find(id) != _bnd_ids.end();
198 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:321

◆ hasBoundary() [4/5]

bool BoundaryRestrictable::hasBoundary ( const std::vector< BoundaryID > &  ids,
TEST_TYPE  type = ALL 
) const
inherited

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

Parameters
idsA vector of BoundaryIDs ids to check
typeA flag for the type of matching to perform: ALL requires that all supplied ids must match those of the object; ANY requires that any one of the supplied ids must match those of the object
Returns
True if the all of the given ids are found within the ids for this object

Definition at line 201 of file BoundaryRestrictable.C.

202 {
203  std::set<BoundaryID> ids_set(ids.begin(), ids.end());
204  return hasBoundary(ids_set, type);
205 }
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
MatType type

◆ hasBoundary() [5/5]

bool BoundaryRestrictable::hasBoundary ( const std::set< BoundaryID > &  ids,
TEST_TYPE  type = ALL 
) const
inherited

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

Parameters
idsA std::set of BoundaryIDs to check
typeA flag for the type of matching to perform: ALL requires that all supplied ids must match those of the object; ANY requires that any one of the supplied ids must match those of the object
Returns
True if the all of the given ids are found within the ids for this object
See also
isSubset

Definition at line 208 of file BoundaryRestrictable.C.

209 {
210  // An empty input is assumed to be ANY_BOUNDARY_ID
211  if (ids.empty() || ids.find(Moose::ANY_BOUNDARY_ID) != ids.end())
212  return true;
213 
214  // All supplied IDs must match those of the object
215  else if (type == ALL)
216  {
217  if (_bnd_ids.find(Moose::ANY_BOUNDARY_ID) != _bnd_ids.end())
218  return true;
219  else
220  return std::includes(_bnd_ids.begin(), _bnd_ids.end(), ids.begin(), ids.end());
221  }
222  // Any of the supplied IDs must match those of the object
223  else
224  {
225  // Loop through the supplied ids
226  for (const auto & id : ids)
227  {
228  // Test the current supplied id
229  bool test = hasBoundary(id);
230 
231  // If the id exists in the stored ids, then return true, otherwise
232  if (test)
233  return true;
234  }
235  return false;
236  }
237 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
MatType type
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:321

◆ hasBoundaryMaterialProperty()

template<typename T >
bool BoundaryRestrictable::hasBoundaryMaterialProperty ( const std::string &  prop_name) const
inherited

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

This method returns true if the supplied property name has been declared in a Material object on the boundary 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 boundary ids of the object, otherwise false

Definition at line 223 of file BoundaryRestrictable.h.

224 {
225  // If you get here the supplied property is defined on all boundaries, but is still subject
226  // existence in the MateialData class
227  return hasBoundaryMaterialPropertyHelper(prop_name) &&
228  _bnd_material_data->haveProperty<T>(prop_name);
229 }
bool hasBoundaryMaterialPropertyHelper(const std::string &prop_name) const
A helper method to avoid circular #include problems.
std::shared_ptr< MaterialData > _bnd_material_data
Pointer to MaterialData for boundary (.

◆ hasBoundaryMaterialPropertyHelper()

bool BoundaryRestrictable::hasBoundaryMaterialPropertyHelper ( const std::string &  prop_name) const
protectedinherited

A helper method to avoid circular #include problems.

See also
hasBoundaryMaterialProperty

Definition at line 269 of file BoundaryRestrictable.C.

Referenced by BoundaryRestrictable::hasBoundaryMaterialProperty().

270 {
271  // Reference to MaterialWarehouse for testing and retrieving boundary ids
273 
274  // Complete set of BoundaryIDs that this object is defined
275  const std::set<BoundaryID> & ids =
277 
278  // Loop over each BoundaryID for this object
279  for (const auto & id : ids)
280  {
281  // Storage of material properties that have been DECLARED on this BoundaryID
282  std::set<std::string> declared_props;
283 
284  // If boundary materials exist, populated the set of properties that were declared
285  if (warehouse.hasActiveBoundaryObjects(id))
286  {
287  const std::vector<std::shared_ptr<Material>> & mats = warehouse.getActiveBoundaryObjects(id);
288  for (const auto & mat : mats)
289  {
290  const std::set<std::string> & mat_props = mat->getSuppliedItems();
291  declared_props.insert(mat_props.begin(), mat_props.end());
292  }
293  }
294 
295  // If the supplied property is not in the list of properties on the current id, return false
296  if (declared_props.find(prop_name) == declared_props.end())
297  return false;
298  }
299 
300  // If you get here the supplied property is defined on all boundaries
301  return true;
302 }
Material objects are special in that they have additional objects created automatically (see FEProble...
const MaterialWarehouse & getMaterialWarehouse() const
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
const std::set< BoundaryID > & meshBoundaryIDs() const
Returns the set of all boundary ids for the entire mesh.
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & getActiveBoundaryObjects(THREAD_ID tid=0) const
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
FEProblemBase * _bnd_feproblem
Pointer to FEProblemBase.
virtual const std::set< BoundaryID > & boundaryIDs() const
Return the boundary IDs for this object.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:321

◆ hasLocalApp()

bool MultiApp::hasLocalApp ( unsigned int  global_app)
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 485 of file MultiApp.C.

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

486 {
487  if (_has_an_app && global_app >= _first_local_app &&
488  global_app <= _first_local_app + (_my_num_apps - 1))
489  return true;
490 
491  return false;
492 }
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:350

◆ incrementTStep()

void TransientMultiApp::incrementTStep ( )
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 525 of file TransientMultiApp.C.

526 {
527  if (!_sub_cycling)
528  {
529  for (unsigned int i = 0; i < _my_num_apps; i++)
530  {
532  ex->incrementStepOrReject();
533  }
534  }
535 }
Transient executioners usually loop through a number of timesteps...
Definition: Transient.h:31
virtual void incrementStepOrReject()
This is where the solve step is actually incremented.
Definition: Transient.C:404
std::vector< Transient * > _transient_executioners
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347

◆ init()

void MultiApp::init ( unsigned int  num)
protectedinherited

Initialize the MultiApp by creating the provided number of apps.

This is called in the constructor, by default it utilizes the 'positions' input parameters.

Definition at line 182 of file MultiApp.C.

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

183 {
184  _total_num_apps = num;
185  buildComm();
186  _backups.reserve(_my_num_apps);
187  for (unsigned int i = 0; i < _my_num_apps; i++)
188  _backups.emplace_back(std::make_shared<Backup>());
189 
190  _has_bounding_box.resize(_my_num_apps, false);
191  _bounding_box.resize(_my_num_apps);
192 }
void buildComm()
Create an MPI communicator suitable for each app.
Definition: MultiApp.C:614
unsigned int _total_num_apps
The total number of apps to simulate.
Definition: MultiApp.h:344
std::vector< BoundingBox > _bounding_box
This multi-app&#39;s bounding box.
Definition: MultiApp.h:380
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347
SubAppBackups & _backups
Backups for each local App.
Definition: MultiApp.h:419
std::vector< bool > _has_bounding_box
Flag if this multi-app computed its bounding box (valid only for non-displaced meshes) ...
Definition: MultiApp.h:377

◆ initialSetup()

void AutoPositionsMultiApp::initialSetup ( )
overrideprotectedvirtual

Gets called at the beginning of the simulation before this object is asked to do its job.

Reimplemented from TransientMultiApp.

Definition at line 41 of file AutoPositionsMultiApp.C.

42 {
43  init(_positions.size());
44 
46 }
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job...
Definition: MultiApp.C:205
void init(unsigned int num)
Initialize the MultiApp by creating the provided number of apps.
Definition: MultiApp.C:182
std::vector< Point > _positions
The positions of all of the apps.
Definition: MultiApp.h:332

◆ isBoundarySubset() [1/2]

bool BoundaryRestrictable::isBoundarySubset ( const std::set< BoundaryID > &  ids) const
inherited

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

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

Definition at line 240 of file BoundaryRestrictable.C.

Referenced by BoundaryRestrictable::isBoundarySubset().

241 {
242  // An empty input is assumed to be ANY_BOUNDARY_ID
243  if (ids.empty() || ids.find(Moose::ANY_BOUNDARY_ID) != ids.end())
244  return true;
245 
246  if (_bnd_ids.find(Moose::ANY_BOUNDARY_ID) != _bnd_ids.end())
247  return std::includes(ids.begin(),
248  ids.end(),
249  _bnd_mesh->meshBoundaryIds().begin(),
250  _bnd_mesh->meshBoundaryIds().end());
251  else
252  return std::includes(ids.begin(), ids.end(), _bnd_ids.begin(), _bnd_ids.end());
253 }
MooseMesh * _bnd_mesh
Point to mesh.
const std::set< BoundaryID > & meshBoundaryIds() const
Returns a read-only reference to the set of boundary IDs currently present in the Mesh...
Definition: MooseMesh.C:2267
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:321

◆ isBoundarySubset() [2/2]

bool BoundaryRestrictable::isBoundarySubset ( const std::vector< BoundaryID > &  ids) const
inherited

Definition at line 256 of file BoundaryRestrictable.C.

257 {
258  std::set<BoundaryID> ids_set(ids.begin(), ids.end());
259  return isBoundarySubset(ids_set);
260 }
bool isBoundarySubset(const std::set< BoundaryID > &ids) const
Test if the class boundary ids are a subset of the supplied objects.

◆ isParamValid()

bool MooseObject::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 81 of file MooseObject.h.

Referenced by AdvancedOutput::AdvancedOutput(), BicubicSplineFunction::BicubicSplineFunction(), Piecewise::buildFromFile(), Piecewise::buildFromXandY(), DistributedGeneratedMesh::buildMesh(), GeneratedMesh::buildMesh(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), CSVReader::CSVReader(), MultiAppNearestNodeTransfer::execute(), Exodus::Exodus(), FEProblemBase::FEProblemBase(), FileOutput::FileOutput(), MultiApp::fillPositions(), FunctionDT::FunctionDT(), RenameBoundaryGenerator::generate(), ElementSubdomainIDGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), ExtraNodesetGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), MeshSideSetGenerator::generate(), RenameBlockGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), MeshExtruderGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), PatternedMeshGenerator::generate(), MultiAppNearestNodeTransfer::getLocalEntities(), MeshGenerator::getMesh(), MultiAppNearestNodeTransfer::getNearestNode(), IterationAdaptiveDT::init(), EigenExecutionerBase::init(), MooseMesh::init(), AdvancedOutput::initExecutionTypes(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), SolutionAux::initialSetup(), MooseParsedVectorFunction::initialSetup(), Console::initialSetup(), Receiver::initialSetup(), SolutionFunction::initialSetup(), MooseParsedGradFunction::initialSetup(), MooseParsedFunction::initialSetup(), AdvancedOutput::initialSetup(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), BreakBoundaryOnSubdomain::modify(), MeshExtruder::modify(), MeshSideSet::modify(), LowerDBlockFromSideset::modify(), AssignElementSubdomainID::modify(), ParsedSubdomainMeshModifier::modify(), RenameBlock::modify(), SubdomainBoundingBox::modify(), MooseMesh::MooseMesh(), EigenExecutionerBase::normalizeSolution(), Output::Output(), PetscOutput::PetscOutput(), Piecewise::Piecewise(), SolutionUserObject::readExodusII(), RenameBlock::RenameBlock(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), SolutionUserObject::SolutionUserObject(), and TimePeriod::TimePeriod().

81 { return _pars.isParamValid(name); }
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
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 283 of file MultiApp.h.

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

◆ isSolved()

virtual bool MultiApp::isSolved ( ) const
inlinevirtualinherited

Method that reports whether the application has been fully solved or not.

Most transient multiapps are never fully solved, however this method can be overridden in derived classes.

Reimplemented in FullSolveMultiApp.

Definition at line 78 of file MultiApp.h.

78 { return false; }

◆ jacobianSetup()

void SetupInterface::jacobianSetup ( )
virtualinherited

Gets called just before the Jacobian is computed and before this object is asked to do its job.

Reimplemented in EqualValueEmbeddedConstraint.

Definition at line 52 of file SetupInterface.C.

53 {
54 }

◆ localApp()

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

Get the local MooseApp object.

Parameters
local_appThe local app number

Definition at line 495 of file MultiApp.C.

496 {
497  mooseAssert(local_app < _apps.size(), "Index out of range: " + Moose::stringify(local_app));
498  return _apps[local_app].get();
499 }
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:58

◆ meshBoundaryIDs()

const std::set< BoundaryID > & BoundaryRestrictable::meshBoundaryIDs ( ) const
inherited

Returns the set of all boundary ids for the entire mesh.

Returns
A const reference the the boundary ids for the entire mesh

Definition at line 263 of file BoundaryRestrictable.C.

Referenced by BoundaryRestrictable::hasBoundaryMaterialPropertyHelper().

264 {
265  return _bnd_mesh->getBoundaryIDs();
266 }
MooseMesh * _bnd_mesh
Point to mesh.
std::vector< BoundaryID > getBoundaryIDs(const Elem *const elem, const unsigned short int side) const
Returns a vector of boundary IDs for the requested element on the requested side. ...
Definition: MooseMesh.C:2105

◆ mooseDeprecated()

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

◆ mooseError()

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

Definition at line 140 of file MooseObject.h.

Referenced by PetscExternalPartitioner::_do_partition(), GridPartitioner::_do_partition(), FEProblemBase::addConstraint(), FEProblemBase::addInitialCondition(), FEProblem::addLineSearch(), FEProblemBase::addLineSearch(), FEProblemBase::addOutput(), DiracKernel::addPointWithValidId(), FEProblemBase::addPostprocessor(), MooseMesh::addQuadratureNode(), FEProblemBase::addVectorPostprocessor(), Output::advancedExecuteOn(), AllSideSetsByNormalsGenerator::AllSideSetsByNormalsGenerator(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), DerivativeParsedMaterialHelper::assembleDerivatives(), Function::average(), Axisymmetric2D3DSolutionFunction::Axisymmetric2D3DSolutionFunction(), BicubicSplineFunction::BicubicSplineFunction(), BoundingValueElementDamper::BoundingValueElementDamper(), BoundingValueNodalDamper::BoundingValueNodalDamper(), BoundsAux::BoundsAux(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), BreakMeshByBlockGeneratorBase::BreakMeshByBlockGeneratorBase(), MooseMesh::buildCoarseningMap(), Piecewise::buildFromFile(), Piecewise::buildFromXandY(), Piecewise::buildFromXY(), TiledMesh::buildMesh(), FileMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), DistributedGeneratedMesh::buildMesh(), GeneratedMesh::buildMesh(), ImageMeshGenerator::buildMesh3D(), ImageMesh::buildMesh3D(), MooseMesh::buildRefinementMap(), MooseMesh::buildSideList(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), EigenExecutionerBase::chebyshev(), SubProblem::checkBlockMatProps(), SubProblem::checkBoundaryMatProps(), FEProblemBase::checkCoordinateSystems(), FEProblemBase::checkDependMaterialsHelper(), FEProblemBase::checkDisplacementOrders(), Material::checkExecutionStage(), BreakMeshByBlockBase::checkInputParameter(), Steady::checkIntegrity(), EigenExecutionerBase::checkIntegrity(), ActuallyExplicitEuler::checkLinearConvergence(), FEProblemBase::checkProblemIntegrity(), Material::checkStatefulSanity(), FEProblemBase::checkUserObjects(), LibmeshPartitioner::clone(), MooseMesh::clone(), ComparisonPostprocessor::comparisonIsTrue(), CompositeFunction::CompositeFunction(), ElementLpNormAux::compute(), ElementH1ErrorFunctionAux::compute(), NodalPatchRecovery::compute(), InterfaceKernel::computeElemNeighJacobian(), TimeSequenceStepperBase::computeFailedDT(), IterationAdaptiveDT::computeFailedDT(), TimeStepper::computeFailedDT(), HistogramVectorPostprocessor::computeHistogram(), EqualValueEmbeddedConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), FEProblemBase::computeResidualInternal(), FEProblemBase::computeResidualTag(), FEProblemBase::computeResidualType(), StatisticsVectorPostprocessor::computeStatValue(), Material::computeSubdomainProperties(), BDF2::computeTimeDerivatives(), ExplicitEuler::computeTimeDerivatives(), ImplicitEuler::computeTimeDerivatives(), NewmarkBeta::computeTimeDerivatives(), CrankNicolson::computeTimeDerivatives(), ActuallyExplicitEuler::computeTimeDerivatives(), LStableDirk2::computeTimeDerivatives(), LStableDirk3::computeTimeDerivatives(), ImplicitMidpoint::computeTimeDerivatives(), ExplicitTVDRK2::computeTimeDerivatives(), AStableDirk4::computeTimeDerivatives(), LStableDirk4::computeTimeDerivatives(), ExplicitRK2::computeTimeDerivatives(), PenetrationAux::computeValue(), ConcentricCircleMesh::ConcentricCircleMesh(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), TimeStepper::constrainStep(), AuxKernel::coupledDot(), AuxKernel::coupledDotDu(), CoupledForce::CoupledForce(), DebugResidualAux::DebugResidualAux(), BicubicSplineFunction::derivative(), DerivativeSumMaterial::DerivativeSumMaterial(), DGKernel::DGKernel(), FEProblemBase::duplicateVariableCheck(), EigenProblem::EigenProblem(), Eigenvalues::Eigenvalues(), ElementalVariableValue::ElementalVariableValue(), ElementQualityAux::ElementQualityAux(), MooseMesh::errorIfDistributedMesh(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), PerflogDumper::execute(), MultiAppPostprocessorTransfer::execute(), DiscreteElementUserObject::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), ElementQualityChecker::execute(), NodalValueSampler::execute(), MultiAppNearestNodeTransfer::execute(), PointValue::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), FindValueOnLine::execute(), TimeExtremeValue::execute(), VectorPostprocessorComparison::execute(), LeastSquaresFit::execute(), LeastSquaresFitHistory::execute(), FEProblemBase::executeControls(), MultiAppVectorPostprocessorTransfer::executeFromMultiapp(), MultiAppVectorPostprocessorTransfer::executeToMultiapp(), Exodus::Exodus(), FileOutput::FileOutput(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), VerifyElementUniqueID::finalize(), VerifyNodalUniqueID::finalize(), DiscreteElementUserObject::finalize(), ElementQualityChecker::finalize(), MemoryUsage::finalize(), PointSamplerBase::finalize(), Transfer::find_sys(), BreakMeshByBlockBase::findFreeBoundaryId(), BreakMeshByBlockGeneratorBase::findFreeBoundaryId(), FunctionDT::FunctionDT(), FunctionMaterialBase::FunctionMaterialBase(), ParsedMaterialHelper::functionParse(), FunctionScalarAux::FunctionScalarAux(), FunctionScalarIC::FunctionScalarIC(), GapValueAux::GapValueAux(), ExtraNodesetGenerator::generate(), ElementSubdomainIDGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), StitchedMeshGenerator::generate(), GeneratedMeshGenerator::generate(), MeshExtruderGenerator::generate(), SpiralAnnularMeshGenerator::generate(), SideSetsFromBoundingBoxGenerator::generate(), BoundingBoxNodeSetGenerator::generate(), PatternedMeshGenerator::generate(), GeneratedMesh::GeneratedMesh(), GeneratedMeshGenerator::GeneratedMeshGenerator(), RandomICBase::generateRandom(), GenericConstantMaterial::GenericConstantMaterial(), GenericFunctionMaterial::GenericFunctionMaterial(), MooseMesh::getBoundaryID(), MultiApp::getBoundingBox(), MooseMesh::getCoarseningMap(), Control::getControllableParameterByName(), FEProblemBase::getCoordSystem(), PiecewiseConstant::getDirection(), FEProblemBase::getDistribution(), ElementGenerator::getElemType(), MultiApp::getExecutioner(), FEProblemBase::getFunction(), SolutionUserObject::getLocalVarIndex(), AuxKernel::getMaterialProperty(), AuxKernel::getMaterialPropertyOld(), AuxKernel::getMaterialPropertyOlder(), SubProblem::getMatrixTagID(), AnnularMesh::getMaxInDimension(), DistributedGeneratedMesh::getMaxInDimension(), GeneratedMesh::getMaxInDimension(), FEProblemBase::getMaxQps(), FEProblemBase::getMaxShapeFunctions(), AnnularMesh::getMinInDimension(), DistributedGeneratedMesh::getMinInDimension(), GeneratedMesh::getMinInDimension(), MooseMesh::getMortarInterface(), MooseMesh::getMortarInterfaceByName(), MooseMesh::getNodeBlockIds(), MooseMesh::getNodeList(), FEProblemBase::getNonlinearSystem(), MooseMesh::getPairedBoundaryMapping(), ImageMeshGenerator::GetPixelInfo(), ImageMesh::GetPixelInfo(), MaterialStdVectorAux::getRealValue(), MooseMesh::getRefinementMap(), FEProblemBase::getSampler(), DisplacedProblem::getScalarVariable(), FEProblemBase::getScalarVariable(), DisplacedProblem::getStandardVariable(), FEProblemBase::getStandardVariable(), MooseMesh::getSubdomainBoundaryIds(), MooseMesh::getSubdomainID(), DisplacedProblem::getSystem(), FEProblemBase::getSystem(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), PerformanceData::getValue(), Residual::getValue(), PerfGraphData::getValue(), LineValueSampler::getValue(), FindValueOnLine::getValueAtPoint(), SubProblem::getVariableHelper(), SubProblem::getVectorTagID(), DisplacedProblem::getVectorVariable(), FEProblemBase::getVectorVariable(), MultiApp::globalAppToLocal(), MooseParsedVectorFunction::gradient(), AdvancedOutput::hasOutputHelper(), CrankNicolson::init(), CSVTimeSequenceStepper::init(), IterationAdaptiveDT::init(), EigenExecutionerBase::init(), Transient::init(), MooseMesh::init(), FEProblemBase::init(), NumPicardIterations::initialize(), PiecewiseBase::initialSetup(), FullSolveMultiApp::initialSetup(), SolutionAux::initialSetup(), Axisymmetric2D3DSolutionFunction::initialSetup(), Exodus::initialSetup(), SolutionFunction::initialSetup(), SolutionUserObject::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initShowHideLists(), Material::initStatefulProperties(), Function::integral(), InterfaceKernel::InterfaceKernel(), InterfaceTimeKernel::InterfaceTimeKernel(), EigenExecutionerBase::inversePowerIteration(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), LinearCombinationFunction::LinearCombinationFunction(), LinearCombinationPostprocessor::LinearCombinationPostprocessor(), LinearNodalConstraint::LinearNodalConstraint(), LineMaterialSamplerBase< Real >::LineMaterialSamplerBase(), LineSearch::lineSearch(), LineValueSampler::LineValueSampler(), MaterialRealTensorValueAux::MaterialRealTensorValueAux(), MaterialRealVectorValueAux::MaterialRealVectorValueAux(), MaterialStdVectorRealGradientAux::MaterialStdVectorRealGradientAux(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), SubProblem::meshChanged(), MeshExtruder::MeshExtruder(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshSideSetGenerator::MeshSideSetGenerator(), SideSetsFromNormals::modify(), SideSetsFromPoints::modify(), BreakMeshByBlockBase::modify(), AddExtraNodeset::modify(), MeshExtruder::modify(), SmoothMesh::modify(), AssignElementSubdomainID::modify(), ElementDeleterBase::modify(), AddAllSideSetsByNormals::modify(), RenameBlock::modify(), ParsedSubdomainMeshModifier::modify(), ImageSubdomain::modify(), BoundingBoxNodeSet::modify(), OrientedSubdomainBoundingBox::modify(), AddSideSetsFromBoundingBox::modify(), SubdomainBoundingBox::modify(), MooseMesh::MooseMesh(), MultiAppMeshFunctionTransfer::MultiAppMeshFunctionTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), NearestNodeDistanceAux::NearestNodeDistanceAux(), NearestNodeValueAux::NearestNodeValueAux(), RenameBlockGenerator::newBlockID(), RenameBlock::newBlockID(), RenameBlockGenerator::newBlockName(), RenameBlock::newBlockName(), NewmarkBeta::NewmarkBeta(), NodalConstraint::NodalConstraint(), NodalScalarKernel::NodalScalarKernel(), NodalVariableValue::NodalVariableValue(), NumDOFs::NumDOFs(), NumNonlinearIterations::NumNonlinearIterations(), NumVars::NumVars(), ElementSideNeighborLayers::operator()(), ElementPointNeighbors::operator()(), RelationshipManager::operator==(), XDA::output(), SolutionHistory::output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputScalarVariables(), Exodus::outputSetup(), AdvancedOutput::outputSystemInformation(), Console::outputVectorPostprocessors(), AdvancedOutput::outputVectorPostprocessors(), MooseObject::paramError(), PiecewiseBilinear::parse(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PatternedMesh::PatternedMesh(), PetscExternalPartitioner::PetscExternalPartitioner(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), Piecewise::Piecewise(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseMulticonstant::PiecewiseMulticonstant(), PiecewiseMultiInterpolation::PiecewiseMultiInterpolation(), SolutionUserObject::pointValueGradientWrapper(), SolutionUserObject::pointValueWrapper(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), ImplicitMidpoint::postResidual(), ExplicitTVDRK2::postResidual(), AStableDirk4::postResidual(), LStableDirk4::postResidual(), ExplicitRK2::postResidual(), Predictor::Predictor(), SolutionUserObject::readExodusII(), SolutionUserObject::readXda(), EqualValueEmbeddedConstraint::reinitConstraint(), RelativeSolutionDifferenceNorm::RelativeSolutionDifferenceNorm(), RenameBlock::RenameBlock(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), RinglebMesh::RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), ScalarComponentIC::ScalarComponentIC(), BicubicSplineFunction::secondDerivative(), FEProblemBase::setCoordSystem(), PiecewiseBase::setData(), EigenProblem::setEigenproblemType(), Sampler::setNumberOfRequiedRandomSeeds(), Exodus::setOutputDimension(), Split::setup(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SideSetsFromNormals::SideSetsFromNormals(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPoints::SideSetsFromPoints(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SolutionTimeAdaptiveDT::SolutionTimeAdaptiveDT(), SolutionUserObject::SolutionUserObject(), ActuallyExplicitEuler::solve(), FullSolveMultiApp::solveStep(), UserObject::spatialValue(), SphericalAverage::SphericalAverage(), SpiralAnnularMesh::SpiralAnnularMesh(), SpiralAnnularMeshGenerator::SpiralAnnularMeshGenerator(), StitchedMesh::StitchedMesh(), NodalUserObject::subdomainSetup(), GeneralUserObject::subdomainSetup(), Constraint::subdomainSetup(), Console::systemInfoFlags(), Terminator::Terminator(), TestSetupPostprocessorDataActionFunction::TestSetupPostprocessorDataActionFunction(), ThreadedGeneralUserObject::ThreadedGeneralUserObject(), ThreadedGeneralUserObject::threadJoin(), DiscreteElementUserObject::threadJoin(), GeneralUserObject::threadJoin(), TiledMeshGenerator::TiledMeshGenerator(), Function::timeDerivative(), TimeExtremeValue::TimeExtremeValue(), TimePeriod::TimePeriod(), VectorPostprocessorVisualizationAux::timestepSetup(), MultiAppCopyTransfer::transfer(), MultiAppMeshFunctionTransfer::transferVariable(), Transient::Transient(), TransientMultiApp::TransientMultiApp(), FEProblemBase::uDotDotOldRequested(), FEProblemBase::uDotOldRequested(), EqualValueBoundaryConstraint::updateConstrainedNodes(), SolutionUserObject::updateExodusBracketingTimeIndices(), Axisymmetric2D3DSolutionFunction::value(), ValueRangeMarker::ValueRangeMarker(), ValueThresholdMarker::ValueThresholdMarker(), MultiAppTransfer::variableIntegrityCheck(), VariableTimeIntegrationAux::VariableTimeIntegrationAux(), VectorNodalBC::VectorNodalBC(), VectorOfPostprocessors::VectorOfPostprocessors(), VectorPostprocessorFunction::VectorPostprocessorFunction(), MooseParsedGradFunction::vectorValue(), MooseParsedFunction::vectorValue(), VolumeHistogram::VolumeHistogram(), VTKOutput::VTKOutput(), DOFMapOutput::writeStreamToFile(), and Console::writeStreamToFile().

141  {
142  std::ostringstream oss;
143  moose::internal::mooseStreamAll(oss, std::forward<Args>(args)...);
144  std::string msg = oss.str();
145  callMooseErrorRaw(msg, &_app);
146  }
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:87
void callMooseErrorRaw(std::string &msg, MooseApp *app)
Definition: MooseObject.C:57
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:171

◆ mooseInfo()

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

◆ mooseWarning()

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

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

Referenced by MultiApp::preTransfer().

522 {
523  if (_use_positions)
524  {
525  _positions[global_app] = p;
526 
527  if (hasLocalApp(global_app))
528  {
529  unsigned int local_app = globalAppToLocal(global_app);
530 
532  _apps[local_app]->setOutputPosition(p);
533  }
534  }
535 }
bool hasLocalApp(unsigned int global_app)
Whether or not the given global app number is on this processor.
Definition: MultiApp.C:485
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:335
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
bool _output_in_position
Whether or not to move the output of the MultiApp into position.
Definition: MultiApp.h:392
std::vector< Point > _positions
The positions of all of the apps.
Definition: MultiApp.h:332
unsigned int globalAppToLocal(unsigned int global_app)
Map a global App number to the local number.
Definition: MultiApp.C:710

◆ name()

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

Get the name of the object.

Returns
The name of the object

Definition at line 51 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), FEProblemBase::addADJacobianMaterial(), FEProblemBase::addADResidualMaterial(), Executioner::addAttributeReporter(), DumpObjectsProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarKernel(), DumpObjectsProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), DumpObjectsProblem::addDGKernel(), FEProblemBase::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), FEProblemBase::addIndicator(), DumpObjectsProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), FEProblemBase::addInterfaceKernel(), DumpObjectsProblem::addKernel(), FEProblemBase::addKernel(), FEProblemBase::addMarker(), DumpObjectsProblem::addMaterial(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), MooseMesh::addMortarInterface(), FEProblemBase::addMultiApp(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addNodalKernel(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), FEProblemBase::addVectorPostprocessor(), Output::advancedExecuteOn(), AllSideSetsByNormalsGenerator::AllSideSetsByNormalsGenerator(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), DerivativeParsedMaterialHelper::assembleDerivatives(), AStableDirk4::AStableDirk4(), Function::average(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), FEProblemBase::checkDependMaterialsHelper(), Damper::checkMinDamping(), Material::checkStatefulSanity(), CompositeFunction::CompositeFunction(), Material::computeSubdomainProperties(), VectorPostprocessorVisualizationAux::computeValue(), AuxKernel::coupledCallback(), AuxKernel::coupledDot(), AuxKernel::coupledDotDu(), MultiApp::createApp(), FEProblemBase::declareVectorPostprocessorVector(), DOFMapOutput::demangle(), DerivativeSumMaterial::DerivativeSumMaterial(), DGKernel::DGKernel(), DumpObjectsProblem::dumpObjectHelper(), ElementValueSampler::ElementValueSampler(), MooseMesh::errorIfDistributedMesh(), AB2PredictorCorrector::estimateTimeError(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), StatisticsVectorPostprocessor::execute(), MultiAppNearestNodeTransfer::execute(), PointValue::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppProjectionTransfer::execute(), MultiAppVectorPostprocessorTransfer::execute(), HistogramVectorPostprocessor::execute(), MultiAppCopyTransfer::execute(), Exodus::Exodus(), FileOutput::FileOutput(), MultiApp::fillPositions(), PointSamplerBase::finalize(), DerivativeParsedMaterialHelper::findMatPropDerivative(), FunctionDT::FunctionDT(), GeneralUserObject::GeneralUserObject(), LowerDBlockFromSidesetGenerator::generate(), StitchedMeshGenerator::generate(), Material::getADMaterialProperty(), MultiApp::getBoundingBox(), MooseObject::getCheckedPointerParam(), Control::getControllableParameterByName(), Control::getControllableValue(), Control::getControllableValueByName(), FEProblemBase::getDistribution(), MultiApp::getExecutioner(), OutputWarehouse::getFileNumbers(), FEProblemBase::getFunction(), SolutionUserObject::getLocalVarIndex(), Marker::getMarkerValue(), FEProblemBase::getMaterial(), NodalPatchRecovery::getMaterialProperty(), AuxKernel::getMaterialProperty(), Material::getMaterialProperty(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), NodalPatchRecovery::getMaterialPropertyOld(), AuxKernel::getMaterialPropertyOld(), Material::getMaterialPropertyOld(), NodalPatchRecovery::getMaterialPropertyOlder(), AuxKernel::getMaterialPropertyOlder(), Material::getMaterialPropertyOlder(), MeshGenerator::getMesh(), MooseMesh::getMortarInterfaceByName(), OutputWarehouse::getOutput(), MooseObject::getParam(), GeneralUserObject::getPostprocessorValue(), AuxKernel::getPostprocessorValue(), FEProblemBase::getPostprocessorValue(), GeneralUserObject::getPostprocessorValueByName(), AuxKernel::getPostprocessorValueByName(), FEProblemBase::getPostprocessorValueOld(), FEProblemBase::getPostprocessorValueOlder(), FEProblemBase::getSampler(), AuxKernel::getScatterVectorPostprocessorValue(), FEProblemBase::getScatterVectorPostprocessorValue(), AuxKernel::getScatterVectorPostprocessorValueByName(), FEProblemBase::getScatterVectorPostprocessorValueOld(), Transient::getTimeStepperName(), AuxKernel::getUserObject(), InitialConditionBase::getUserObject(), FEProblemBase::getUserObject(), InitialConditionBase::getUserObjectBase(), AuxKernel::getUserObjectBase(), FEProblemBase::getUserObjectBase(), AuxKernel::getUserObjectByName(), InitialConditionBase::getUserObjectByName(), GeneralUserObject::getVectorPostprocessorValue(), AuxKernel::getVectorPostprocessorValue(), FEProblemBase::getVectorPostprocessorValue(), GeneralUserObject::getVectorPostprocessorValueByName(), AuxKernel::getVectorPostprocessorValueByName(), FEProblemBase::getVectorPostprocessorValueOld(), FEProblemBase::hasFunction(), AdvancedOutput::hasOutputHelper(), FEProblemBase::hasPostprocessor(), FEProblemBase::hasUserObject(), FEProblemBase::hasVectorPostprocessor(), FEProblemBase::init(), AdvancedOutput::initExecutionTypes(), AttribName::initFrom(), CSVReader::initialize(), StatisticsVectorPostprocessor::initialize(), HistogramVectorPostprocessor::initialize(), MultiAppProjectionTransfer::initialSetup(), DerivativeFunctionMaterialBase::initialSetup(), SolutionUserObject::initialSetup(), AdvancedOutput::initOutputList(), FEProblemBase::initPostprocessorData(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), Material::initStatefulProperties(), FEProblemBase::initVectorPostprocessorData(), Function::integral(), InterfaceKernel::InterfaceKernel(), MooseObject::isParamValid(), LinearCombinationFunction::LinearCombinationFunction(), Marker::Marker(), MatDiffusionBase< Real >::MatDiffusionBase(), MaterialDerivativeTestKernelBase< Real >::MaterialDerivativeTestKernelBase(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), MemoryUsageReporter::MemoryUsageReporter(), MeshSideSetGenerator::MeshSideSetGenerator(), ElementDeleterBase::modify(), MooseVariableInterface< Real >::MooseVariableInterface(), NearestPointBase< LayeredAverage >::NearestPointBase(), NodalValueSampler::NodalValueSampler(), NodalVariableValue::NodalVariableValue(), DOFMapOutput::output(), Output::Output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), ConsoleUtils::outputOutputInformation(), Nemesis::outputPostprocessors(), Exodus::outputPostprocessors(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), AdvancedOutput::outputVectorPostprocessors(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PointSamplerBase::PointSamplerBase(), Registry::registerObjectsTo(), FEProblemBase::registerRandomInterface(), Material::resetQpProperties(), Sampler::Sampler(), ScalarComponentIC::ScalarComponentIC(), MooseMesh::setBoundaryName(), Control::setControllableValue(), Control::setControllableValueByName(), OutputWarehouse::setFileNumbers(), Exodus::setOutputDimension(), MooseMesh::setSubdomainName(), Split::setup(), TransientMultiApp::setupApp(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SideValueSampler::SideValueSampler(), TransientMultiApp::solveStep(), UserObject::spatialValue(), SphericalAverage::SphericalAverage(), StitchedMesh::StitchedMesh(), SubProblem::storeBoundaryDelayedCheckMatProp(), SubProblem::storeBoundaryMatPropName(), SubProblem::storeBoundaryZeroMatProp(), SubProblem::storeSubdomainDelayedCheckMatProp(), SubProblem::storeSubdomainMatPropName(), SubProblem::storeSubdomainZeroMatProp(), TaggingInterface::TaggingInterface(), ThreadedGeneralUserObject::ThreadedGeneralUserObject(), TiledMeshGenerator::TiledMeshGenerator(), Function::timeDerivative(), VectorPostprocessorVisualizationAux::timestepSetup(), TransientMultiApp::TransientMultiApp(), MultiAppTransfer::variableIntegrityCheck(), and AdvancedOutput::wantOutput().

51 { return _name; }
const std::string & _name
The name of this object, reference to value stored in InputParameters.
Definition: MooseObject.h:177

◆ 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 552 of file TransientMultiApp.C.

◆ numBoundaryIDs()

unsigned int BoundaryRestrictable::numBoundaryIDs ( ) const
inherited

Return the number of boundaries for this object.

Returns
The number of boundary ids

Definition at line 160 of file BoundaryRestrictable.C.

161 {
162  return (unsigned int)_bnd_ids.size();
163 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.

◆ numGlobalApps()

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

Definition at line 208 of file MultiApp.h.

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

◆ numLocalApps()

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

Definition at line 213 of file MultiApp.h.

Referenced by MultiAppDTKUserObjectEvaluator::createSourceGeometry().

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

◆ paramError()

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

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 100 of file MooseObject.h.

Referenced by ADKernel< compute_stage >::ADKernel(), DGKernel::DGKernel(), ElementValueSampler::ElementValueSampler(), IntegratedBC::IntegratedBC(), Kernel::Kernel(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalValueSampler::NodalValueSampler(), RandomIC::RandomIC(), and MultiAppCopyTransfer::transfer().

101  {
102  auto prefix = param + ": ";
103  if (!_pars.inputLocation(param).empty())
104  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
105  mooseError(prefix, args...);
106  }
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
const std::string & inputLocation(const std::string &param) const
Get/set a string representing the location in the input text the parameter originated from (i...
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
const std::string & paramFullpath(const std::string &param) const
Get/set a string representing the full HIT parameter path from the input file (e.g.

◆ parameters()

const InputParameters& MooseObject::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 57 of file MooseObject.h.

Referenced by FEProblemBase::addADJacobianMaterial(), FEProblemBase::addADResidualMaterial(), DumpObjectsProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarKernel(), DumpObjectsProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), DumpObjectsProblem::addDGKernel(), FEProblemBase::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), FEProblemBase::addIndicator(), DumpObjectsProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), FEProblemBase::addInterfaceKernel(), DumpObjectsProblem::addKernel(), FEProblemBase::addKernel(), FEProblem::addLineSearch(), FEProblemBase::addMarker(), DumpObjectsProblem::addMaterial(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addNodalKernel(), FEProblemBase::addOutput(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), FEProblemBase::addVectorPostprocessor(), AdvancedOutput::AdvancedOutput(), assemble_l2(), Moose::assemble_matrix(), AuxKernel::AuxKernel(), AuxScalarKernel::AuxScalarKernel(), BoundsAux::BoundsAux(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), Moose::compute_bounds(), Moose::compute_jacobian(), Moose::compute_nearnullspace(), Moose::compute_nullspace(), Moose::compute_postcheck(), Moose::compute_transpose_nullspace(), Console::Console(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), Executioner::Executioner(), Exodus::Exodus(), FEProblem::FEProblem(), GapValueAux::GapValueAux(), MooseObject::getCheckedPointerParam(), MooseMesh::init(), BlockRestrictable::initializeBlockRestrictable(), FEProblemBase::initNullSpaceVectors(), InterfaceKernel::InterfaceKernel(), isValid(), MooseVariableInterface< Real >::MooseVariableInterface(), NearestPointBase< LayeredAverage >::NearestPointBase(), NodeFaceConstraint::NodeFaceConstraint(), PenetrationAux::PenetrationAux(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), MultiAppProjectionTransfer::projectSolution(), RandomIC::RandomIC(), InputParameterWarehouse::removeInputParameters(), FEProblem::setInputParametersFEProblem(), FEProblemBase::setInputParametersFEProblem(), DumpObjectsProblem::stringifyParameters(), and Transient::Transient().

57 { return _pars; }
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168

◆ paramInfo()

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

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 131 of file MooseObject.h.

132  {
133  auto prefix = param + ": ";
134  if (!_pars.inputLocation(param).empty())
135  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
136  mooseInfo(prefix, args...);
137  }
const std::string & inputLocation(const std::string &param) const
Get/set a string representing the location in the input text the parameter originated from (i...
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
void mooseInfo(Args &&... args) const
Definition: MooseObject.h:161
const std::string & paramFullpath(const std::string &param) const
Get/set a string representing the full HIT parameter path from the input file (e.g.

◆ paramWarning()

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

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 115 of file MooseObject.h.

116  {
117  auto prefix = param + ": ";
118  if (!_pars.inputLocation(param).empty())
119  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
120  mooseWarning(prefix, args...);
121  }
void mooseWarning(Args &&... args) const
Definition: MooseObject.h:149
const std::string & inputLocation(const std::string &param) const
Get/set a string representing the location in the input text the parameter originated from (i...
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
const std::string & paramFullpath(const std::string &param) const
Get/set a string representing the full HIT parameter path from the input file (e.g.

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

539 {
541  for (unsigned int i = 0; i < _apps.size(); i++)
542  _apps[i]->setOutputPosition(_app.getOutputPosition() + _positions[_first_local_app + i]);
543 }
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:335
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
Point getOutputPosition() const
Get the output position.
Definition: MooseApp.h:192
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:350
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:171
bool _output_in_position
Whether or not to move the output of the MultiApp into position.
Definition: MultiApp.h:392
std::vector< Point > _positions
The positions of all of the apps.
Definition: MultiApp.h:332

◆ position()

Point MultiApp::position ( unsigned int  app)
inlineinherited

The physical position of a global App number.

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

Definition at line 243 of file MultiApp.h.

Referenced by MultiAppDTKUserObjectEvaluator::evaluate(), MultiApp::fillPositions(), and MultiApp::getBoundingBox().

243 { return _positions[app]; }
std::vector< Point > _positions
The positions of all of the apps.
Definition: MultiApp.h:332

◆ postExecute()

void MultiApp::postExecute ( )
virtualinherited

Definition at line 347 of file MultiApp.C.

348 {
349  for (const auto & app_ptr : _apps)
350  app_ptr->getExecutioner()->postExecute();
351 }
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374

◆ preExecute()

virtual void MultiApp::preExecute ( )
inlinevirtualinherited

Definition at line 62 of file MultiApp.h.

62 {}

◆ preRunInputFile()

void MultiApp::preRunInputFile ( )
protectedvirtualinherited

call back executed right before app->runInputFile()

Definition at line 720 of file MultiApp.C.

Referenced by MultiApp::createApp().

721 {
722 }

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

319 {
320  // First, see if any Apps need to be Reset
321  if (!_reset_happened && target_time + 1e-14 >= _reset_time)
322  {
323  _reset_happened = true;
324  for (auto & app : _reset_apps)
325  resetApp(app);
326  }
327 
328  // Now move any apps that should be moved
329  if (_use_positions && !_move_happened && target_time + 1e-14 >= _move_time)
330  {
331  _move_happened = true;
332  for (unsigned int i = 0; i < _move_apps.size(); i++)
334  }
335 }
std::vector< unsigned int > _reset_apps
The apps to be reset.
Definition: MultiApp.h:398
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:335
Real _move_time
The time at which to move apps.
Definition: MultiApp.h:404
std::vector< Point > _move_positions
The new positions for the apps to be moved.
Definition: MultiApp.h:410
bool _reset_happened
Whether or not apps have been reset.
Definition: MultiApp.h:401
bool _move_happened
Whether or not the move has happened.
Definition: MultiApp.h:413
Real _reset_time
The time at which to reset apps.
Definition: MultiApp.h:395
std::vector< unsigned int > _move_apps
The apps to be moved.
Definition: MultiApp.h:407
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:502
virtual void moveApp(unsigned int global_app, Point p)
Move the global_app to Point p.
Definition: MultiApp.C:521

◆ problemBase()

FEProblemBase& MultiApp::problemBase ( )
inlineinherited

Get the FEProblemBase this MultiApp is part of.

Definition at line 167 of file MultiApp.h.

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

◆ 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 588 of file TransientMultiApp.C.

591 {
592  if (hasLocalApp(global_app))
593  {
594  unsigned int local_app = globalAppToLocal(global_app);
595 
596  // Grab the current time the App is at so we can start the new one at the same place
597  Real time =
598  _transient_executioners[local_app]->getTime() + _apps[local_app]->getGlobalTimeOffset();
599 
600  // Reset the Multiapp
601  MultiApp::resetApp(global_app, time);
602 
604 
605  // Setup the app, disable the output so that the initial condition does not output
606  // When an app is reset the initial condition was effectively already output before reset
607  FEProblemBase & problem = appProblemBase(local_app);
608  problem.allowOutput(false);
609  setupApp(local_app, time);
610  problem.allowOutput(true);
611  }
612 }
bool hasLocalApp(unsigned int global_app)
Whether or not the given global app number is on this processor.
Definition: MultiApp.C:485
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
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 is part of.
Definition: MultiApp.C:437
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:502
std::vector< Transient * > _transient_executioners
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:359
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:710

◆ residualSetup()

void SetupInterface::residualSetup ( )
virtualinherited

Gets called just before the residual is computed and before this object is asked to do its job.

Definition at line 57 of file SetupInterface.C.

58 {
59 }

◆ restore()

void TransientMultiApp::restore ( )
overridevirtualinherited

Restore the state of every Sub App.

This allows us to "Restore" this state later

Reimplemented from MultiApp.

Definition at line 169 of file TransientMultiApp.C.

170 {
171  // Must be restarting / recovering so hold off on restoring
172  // Instead - the restore will happen in createApp()
173  // Note that _backups was already populated by dataLoad()
174  if (_apps.empty())
175  return;
176 
178  {
180 
181  for (unsigned int i = 0; i < _my_num_apps; i++)
182  _end_solutions[i] =
184  }
185 
187 
189  {
190  for (unsigned int i = 0; i < _my_num_apps; i++)
192 
193  _end_solutions.clear();
194  }
195 }
virtual void restore()
Restore the state of every Sub App.
Definition: MultiApp.C:361
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
FEProblemBase & feProblem()
Return a reference to this Executioner&#39;s FEProblemBase instance.
Definition: Executioner.C:192
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...
virtual NumericVector< Number > & solution() override
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347
virtual NonlinearSystem & getNonlinearSystem()
virtual Executioner * getExecutioner(unsigned int app)
Definition: MultiApp.C:338

◆ restricted()

bool BoundaryRestrictable::restricted ( const std::set< BoundaryID > &  ids)
staticinherited

Helper for determining if the object is boundary restricted.

This is needed for the MaterialPropertyInterface.

Definition at line 172 of file BoundaryRestrictable.C.

Referenced by BoundaryRestrictable::boundaryRestricted().

173 {
174  return ids.find(Moose::ANY_BOUNDARY_ID) == ids.end();
175 }
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:321

◆ setupPositions()

void MultiApp::setupPositions ( )
inherited

Called just after construction to allow derived classes to set _positions;.

Definition at line 195 of file MultiApp.C.

Referenced by FEProblemBase::addMultiApp().

196 {
197  if (_use_positions)
198  {
199  fillPositions();
200  init(_positions.size());
201  }
202 }
const bool _use_positions
Toggle use of "positions".
Definition: MultiApp.h:335
virtual void fillPositions()
must fill in _positions with the positions of the sub-aps
Definition: MultiApp.C:224
void init(unsigned int num)
Initialize the MultiApp by creating the provided number of apps.
Definition: MultiApp.C:182
std::vector< Point > _positions
The positions of all of the apps.
Definition: MultiApp.h:332

◆ 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 198 of file TransientMultiApp.C.

199 {
200  if (!_has_an_app)
201  return true;
202 
203  _auto_advance = auto_advance;
204 
205  _console << "Solving MultiApp " << name() << std::endl;
206 
207  // "target_time" must always be in global time
208  target_time += _app.getGlobalTimeOffset();
209 
211  bool return_value = true;
212 
213  // Make sure we swap back the communicator regardless of how this routine is exited
214  try
215  {
216  int rank;
217  int ierr;
218  ierr = MPI_Comm_rank(_communicator.get(), &rank);
219  mooseCheckMPIErr(ierr);
220 
221  for (unsigned int i = 0; i < _my_num_apps; i++)
222  {
223 
225 
227 
228  // The App might have a different local time from the rest of the problem
229  Real app_time_offset = _apps[i]->getGlobalTimeOffset();
230 
231  // Maybe this MultiApp was already solved
232  if ((ex->getTime() + app_time_offset + 2e-14 >= target_time) ||
233  (ex->getTime() >= ex->endTime()))
234  continue;
235 
236  if (_sub_cycling)
237  {
238  Real time_old = ex->getTime() + app_time_offset;
239 
241  {
242  AuxiliarySystem & aux_system = problem.getAuxiliarySystem();
243  System & libmesh_aux_system = aux_system.system();
244 
245  NumericVector<Number> & solution = *libmesh_aux_system.solution;
246  NumericVector<Number> & transfer_old = libmesh_aux_system.get_vector("transfer_old");
247 
248  solution.close();
249 
250  // Save off the current auxiliary solution
251  transfer_old = solution;
252 
253  transfer_old.close();
254 
255  // Snag all of the local dof indices for all of these variables
256  AllLocalDofIndicesThread aldit(libmesh_aux_system, _transferred_vars);
257  ConstElemRange & elem_range = *problem.mesh().getActiveLocalElementRange();
258  Threads::parallel_reduce(elem_range, aldit);
259 
260  _transferred_dofs = aldit._all_dof_indices;
261  }
262 
263  // Disable/enable output for sub cycling
264  problem.allowOutput(_output_sub_cycles); // disables all outputs, including console
265  problem.allowOutput<Console>(_print_sub_cycles); // re-enables Console to print, if desired
266 
267  ex->setTargetTime(target_time - app_time_offset);
268 
269  // unsigned int failures = 0;
270 
271  bool at_steady = false;
272 
273  if (_first && !_app.isRecovering())
274  problem.advanceState();
275 
276  bool local_first = _first;
277 
278  // Now do all of the solves we need
279  while ((!at_steady && ex->getTime() + app_time_offset + 2e-14 < target_time) ||
280  !ex->lastSolveConverged())
281  {
282  if (local_first != true)
283  ex->incrementStepOrReject();
284 
285  local_first = false;
286 
287  ex->preStep();
288  ex->computeDT();
289 
291  {
292  // See what time this executioner is going to go to.
293  Real future_time = ex->getTime() + app_time_offset + ex->getDT();
294 
295  // How far along we are towards the target time:
296  Real step_percent = (future_time - time_old) / (target_time - time_old);
297 
298  Real one_minus_step_percent = 1.0 - step_percent;
299 
300  // Do the interpolation for each variable that was transferred to
302  AuxiliarySystem & aux_system = problem.getAuxiliarySystem();
303  System & libmesh_aux_system = aux_system.system();
304 
305  NumericVector<Number> & solution = *libmesh_aux_system.solution;
306  NumericVector<Number> & transfer = libmesh_aux_system.get_vector("transfer");
307  NumericVector<Number> & transfer_old = libmesh_aux_system.get_vector("transfer_old");
308 
309  solution.close(); // Just to be sure
310  transfer.close();
311  transfer_old.close();
312 
313  for (const auto & dof : _transferred_dofs)
314  {
315  solution.set(dof,
316  (transfer_old(dof) * one_minus_step_percent) +
317  (transfer(dof) * step_percent));
318  // solution.set(dof, transfer_old(dof));
319  // solution.set(dof, transfer(dof));
320  // solution.set(dof, 1);
321  }
322 
323  solution.close();
324  }
325 
326  ex->takeStep();
327 
328  bool converged = ex->lastSolveConverged();
329 
330  if (!converged)
331  {
332  mooseWarning(
333  "While sub_cycling ", name(), _first_local_app + i, " failed to converge!\n");
334 
335  _failures++;
336 
337  if (_failures > _max_failures)
338  {
339  std::stringstream oss;
340  oss << "While sub_cycling " << name() << _first_local_app << i << " REALLY failed!";
341  throw MultiAppSolveFailure(oss.str());
342  }
343  }
344 
345  Real solution_change_norm = ex->getSolutionChangeNorm();
346 
348  _console << "Solution change norm: " << solution_change_norm << std::endl;
349 
350  if (converged && _detect_steady_state && solution_change_norm < _steady_state_tol)
351  {
352  _console << "Detected Steady State! Fast-forwarding to " << target_time << std::endl;
353 
354  at_steady = true;
355 
356  // Indicate that the next output call (occurs in ex->endStep()) should output,
357  // regardless of intervals etc...
358  problem.forceOutput();
359 
360  // Clean up the end
361  ex->endStep(target_time - app_time_offset);
362  ex->postStep();
363  }
364  else
365  {
366  ex->endStep();
367  ex->postStep();
368  }
369  }
370 
371  // If we were looking for a steady state, but didn't reach one, we still need to output one
372  // more time, regardless of interval
373  if (!at_steady)
374  problem.outputStep(EXEC_FORCED);
375 
376  } // sub_cycling
377  else if (_tolerate_failure)
378  {
379  ex->takeStep(dt);
380  ex->endStep(target_time - app_time_offset);
381  ex->postStep();
382  }
383  else
384  {
385  _console << "Solving Normal Step!" << std::endl;
386 
387  if (_first && !_app.isRecovering())
388  problem.advanceState();
389 
390  if (auto_advance)
391  problem.allowOutput(true);
392 
393  ex->takeStep(dt);
394 
395  if (auto_advance)
396  {
397  ex->endStep();
398  ex->postStep();
399 
400  if (!ex->lastSolveConverged())
401  {
402  mooseWarning(name(), _first_local_app + i, " failed to converge!\n");
403 
404  if (_catch_up)
405  {
406  _console << "Starting Catch Up!" << std::endl;
407 
408  bool caught_up = false;
409 
410  unsigned int catch_up_step = 0;
411 
412  Real catch_up_dt = dt / 2;
413 
414  while (!caught_up && catch_up_step < _max_catch_up_steps)
415  {
416  _console << "Solving " << name() << " catch up step " << catch_up_step << std::endl;
417  ex->incrementStepOrReject();
418 
419  ex->computeDT();
420  ex->takeStep(catch_up_dt); // Cut the timestep in half to try two half-step solves
421  ex->endStep();
422 
423  if (ex->lastSolveConverged())
424  {
425  if (ex->getTime() + app_time_offset +
426  (ex->timestepTol() * std::abs(ex->getTime())) >=
427  target_time)
428  {
429  problem.outputStep(EXEC_FORCED);
430  caught_up = true;
431  }
432  }
433  else
434  catch_up_dt /= 2.0;
435 
436  ex->postStep();
437 
438  catch_up_step++;
439  }
440 
441  if (!caught_up)
442  throw MultiAppSolveFailure(name() + " Failed to catch up!\n");
443  }
444  }
445  }
446  else
447  {
448  if (!ex->lastSolveConverged())
449  {
450  // Even if we don't allow auto_advance - we can still catch up to the current time if
451  // possible
452  if (_catch_up)
453  {
454  _console << "Starting Catch Up!" << std::endl;
455 
456  bool caught_up = false;
457 
458  unsigned int catch_up_step = 0;
459 
460  Real catch_up_dt = dt / 2;
461 
462  // Note: this loop will _break_ if target_time is satisfied
463  while (catch_up_step < _max_catch_up_steps)
464  {
465  _console << "Solving " << name() << " catch up step " << catch_up_step << std::endl;
466  ex->incrementStepOrReject();
467 
468  ex->computeDT();
469  ex->takeStep(catch_up_dt); // Cut the timestep in half to try two half-step solves
470 
471  // This is required because we can't call endStep() yet
472  // (which normally increments time)
473  Real current_time = ex->getTime() + ex->getDT();
474 
475  if (ex->lastSolveConverged())
476  {
477  if (current_time + app_time_offset +
478  (ex->timestepTol() * std::abs(current_time)) >=
479  target_time)
480  {
481  caught_up = true;
482  break; // break here so that we don't run endStep() or postStep() since this
483  // MultiApp should NOT be auto_advanced
484  }
485  }
486  else
487  catch_up_dt /= 2.0;
488 
489  ex->endStep();
490  ex->postStep();
491 
492  catch_up_step++;
493  }
494 
495  if (!caught_up)
496  throw MultiAppSolveFailure(name() + " Failed to catch up!\n");
497  }
498  else
499  throw MultiAppSolveFailure(name() + " failed to converge");
500  }
501  }
502  }
503 
504  // Re-enable all output (it may of been disabled by sub-cycling)
505  problem.allowOutput(true);
506  }
507 
508  _first = false;
509 
510  _console << "Successfully Solved MultiApp " << name() << "." << std::endl;
511  }
512  catch (MultiAppSolveFailure & e)
513  {
514  mooseWarning(e.what());
515  _console << "Failed to Solve MultiApp " << name() << ", attempting to recover." << std::endl;
516  return_value = false;
517  }
518 
519  _transferred_vars.clear();
520 
521  return return_value;
522 }
Utility class for catching solve failure errors so that MOOSE can recover state before continuing...
virtual Real getDT()
Definition: Transient.C:768
ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:779
Transient executioners usually loop through a number of timesteps...
Definition: Transient.h:31
bool _print_sub_cycles
Flag for toggling console output on sub cycles.
virtual bool lastSolveConverged() override
Whether or not the last solve converged.
Definition: Transient.C:820
const ExecFlagType EXEC_FORCED
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:838
void mooseWarning(Args &&... args) const
Definition: MooseObject.h:149
virtual void computeDT()
Definition: Transient.C:398
An output object for writing to the console (screen)
Definition: Console.h:25
unsigned int _max_failures
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
Definition: MultiApp.h:374
virtual void endStep(Real input_time=-1.0)
Definition: Transient.C:658
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual Real getTime()
Get the current time.
Definition: Transient.h:98
Grab all the local dof indices for the variables passed in, in the system passed in.
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:455
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 is part of.
Definition: MultiApp.C:437
void forceOutput()
Indicates that the next call to outputStep should be forced.
bool & _first
Is it our first time through the execution loop?
virtual void incrementStepOrReject()
This is where the solve step is actually incremented.
Definition: Transient.C:404
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()
std::vector< Transient * > _transient_executioners
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
Definition: MultiApp.h:347
bool _has_an_app
Whether or not this processor as an App at all
Definition: MultiApp.h:416
unsigned int _first_local_app
The number of the first app on this processor.
Definition: MultiApp.h:350
Real & endTime()
Get the end time.
Definition: Transient.h:167
Real & timestepTol()
Get the timestep tolerance.
Definition: Transient.h:173
unsigned int _failures
virtual System & system() override
Get the reference to the libMesh system.
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:171
virtual MooseMesh & mesh() override
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
virtual void preStep()
Definition: Transient.C:335
ierr
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
virtual void postStep()
Definition: Transient.C:341
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition: MooseApp.C:852
Real getGlobalTimeOffset() const
Each App has it&#39;s own local time.
Definition: MooseApp.h:222
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
Definition: MultiApp.h:359
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:844

◆ subdomainSetup()

void SetupInterface::subdomainSetup ( )
virtualinherited

Gets called when the subdomain changes (i.e.

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

Reimplemented in Material, Constraint, GeneralUserObject, NodalUserObject, and ThreadedGeneralUserObject.

Definition at line 62 of file SetupInterface.C.

63 {
64 }

◆ timestepSetup()

void SetupInterface::timestepSetup ( )
virtualinherited

Gets called at the beginning of the timestep before this object is asked to do its job.

Reimplemented in SolutionUserObject, VectorPostprocessorVisualizationAux, NumNonlinearIterations, EqualValueEmbeddedConstraint, VectorMemoryUsage, and MemoryUsage.

Definition at line 47 of file SetupInterface.C.

48 {
49 }

◆ type()

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

Get the type of this object.

Returns
the name of the type of this object

Definition at line 45 of file MooseObject.h.

Referenced by DumpObjectsProblem::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarVariable(), DumpObjectsProblem::addAuxVariable(), DisplacedProblem::addAuxVariable(), FEProblemBase::addAuxVariable(), DumpObjectsProblem::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), DumpObjectsProblem::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), DumpObjectsProblem::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), DumpObjectsProblem::addKernel(), DumpObjectsProblem::addMaterial(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarVariable(), PhysicsBasedPreconditioner::addSystem(), FEProblemBase::addTimeIntegrator(), DumpObjectsProblem::addVariable(), DisplacedProblem::addVariable(), FEProblemBase::addVariable(), FEProblemBase::advanceMultiApps(), FEProblemBase::backupMultiApps(), MooseMesh::buildRefinementAndCoarseningMaps(), FEProblemBase::computeAuxiliaryKernels(), ElemElemConstraint::computeElemNeighJacobian(), InterfaceKernel::computeElemNeighJacobian(), DGKernel::computeElemNeighJacobian(), ElemElemConstraint::computeElemNeighResidual(), InterfaceKernel::computeElemNeighResidual(), DGKernel::computeElemNeighResidual(), FEProblemBase::computeMultiAppsDT(), InterfaceKernel::computeOffDiagElemNeighJacobian(), DGKernel::computeOffDiagElemNeighJacobian(), DGConvection::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), DGDiffusion::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), DGConvection::computeQpResidual(), CoupledTiedValueConstraint::computeQpResidual(), TiedValueConstraint::computeQpResidual(), LinearNodalConstraint::computeQpResidual(), DGDiffusion::computeQpResidual(), EqualValueBoundaryConstraint::computeQpResidual(), EqualValueEmbeddedConstraint::computeQpResidual(), FEProblemBase::computeUserObjects(), DisplacedProblem::createQRules(), FEProblemBase::createQRules(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), FEProblemBase::duplicateVariableCheck(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), FEProblemBase::execTransfers(), FEProblemBase::finishMultiAppStep(), ElementSubdomainIDGenerator::generate(), ElementGenerator::getElemType(), FEProblemBase::getMaterial(), FEProblemBase::getMaterialData(), FEProblemBase::getTransfers(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), AdvancedOutput::initAvailableLists(), SolutionUserObject::initialSetup(), AdvancedOutput::initShowHideLists(), AssignElementSubdomainID::modify(), ControlOutput::output(), Gnuplot::output(), Exodus::output(), CSV::output(), Console::output(), Nemesis::output(), AdvancedOutput::output(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), FEProblemBase::restoreMultiApps(), FEProblemBase::setCoupling(), FileOutput::shouldOutput(), Output::shouldOutput(), AdvancedOutput::shouldOutput(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), and AdvancedOutput::wantOutput().

45 { return _type; }
const std::string & _type
The type of this object (the Class name)
Definition: MooseObject.h:174

Member Data Documentation

◆ _app

MooseApp& MooseObject::_app
protectedinherited

The MooseApp this object is associated with.

Definition at line 171 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), AB2PredictorCorrector::AB2PredictorCorrector(), Executioner::addAttributeReporter(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), FEProblemBase::addOutput(), FEProblemBase::allowOutput(), AStableDirk4::AStableDirk4(), AlgebraicRelationshipManager::attachAlgebraicFunctorHelper(), RelationshipManager::attachRelationshipManagers(), ElementSideNeighborLayers::attachRelationshipManagersInternal(), ElementPointNeighbors::attachRelationshipManagersInternal(), FileMesh::buildMesh(), MeshGeneratorMesh::buildMesh(), FEProblemBase::checkNonlinearConvergence(), OversampleOutput::cloneMesh(), FEProblemBase::computeJacobianTags(), FEProblemBase::computeResidualTags(), Console::Console(), TimeStepper::constrainStep(), MultiApp::createApp(), DumpObjectsProblem::dumpObjectHelper(), DumpObjectsProblem::dumpVariableHelper(), EigenExecutionerBase::EigenExecutionerBase(), EigenKernel::EigenKernel(), NonlinearEigen::execute(), InversePowerMethod::execute(), Transient::execute(), Steady::execute(), FileOutput::FileOutput(), FEProblemBase::forceOutput(), MeshGenerator::getMesh(), MeshGenerator::getMeshByName(), MooseObject::getMooseApp(), InversePowerMethod::init(), NonlinearEigen::init(), Transient::init(), Steady::init(), MooseMesh::init(), NumPicardIterations::initialize(), TimePeriod::initialSetup(), Console::initialSetup(), MultiApp::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initOutputList(), FEProblemBase::initPetscOutput(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), InversePowerMethod::InversePowerMethod(), MooseObject::mooseError(), MooseMesh::MooseMesh(), NonlinearEigen::NonlinearEigen(), EigenExecutionerBase::normalizeSolution(), PerfGraphOutput::output(), Tecplot::output(), Exodus::output(), Nemesis::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Exodus::outputEmptyTimestep(), Console::outputInput(), Exodus::outputInput(), Exodus::outputNodalVariables(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), Console::outputSystemInformation(), MultiApp::parentOutputPositionChanged(), PerformanceData::PerformanceData(), PetscOutput::petscLinearOutput(), PetscOutput::petscNonlinearOutput(), FEProblemBase::projectSolution(), FEProblemBase::setRestartFile(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), TransientMultiApp::solveStep(), FEProblemBase::subdomainSetup(), FEProblemBase::theWarehouse(), TimeExtremeValue::TimeExtremeValue(), TimePeriod::TimePeriod(), FEProblemBase::timestepSetup(), Transient::Transient(), and Console::write().

◆ _app_type

std::string MultiApp::_app_type
protectedinherited

The type of application to build.

Definition at line 329 of file MultiApp.h.

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

◆ _apps

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

◆ _backups

SubAppBackups& MultiApp::_backups
protectedinherited

Backups for each local App.

Definition at line 419 of file MultiApp.h.

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

◆ _bounding_box

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

This multi-app's bounding box.

Definition at line 380 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 386 of file MultiApp.h.

Referenced by MultiApp::getBoundingBox().

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

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

Definition at line 32 of file ConsoleStreamInterface.h.

Referenced by IterationAdaptiveDT::acceptStep(), SetupRecoverFileBaseAction::act(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), SimplePredictor::apply(), FEProblemBase::backupMultiApps(), FEProblemBase::checkProblemIntegrity(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeResidualTags(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), AB2PredictorCorrector::converged(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppProjectionTransfer::execute(), MultiAppVectorPostprocessorTransfer::execute(), MultiAppCopyTransfer::execute(), Steady::execute(), MultiAppDTKUserObjectTransfer::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), FEProblemBase::FEProblemBase(), ElementQualityChecker::finalize(), FEProblemBase::finishMultiAppStep(), MultiApp::globalAppToLocal(), InversePowerMethod::init(), NonlinearEigen::init(), Steady::init(), FEProblemBase::initialAdaptMesh(), FEProblemBase::initialSetup(), EigenExecutionerBase::inversePowerIteration(), Transient::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseObject::mooseDeprecated(), MooseObject::mooseInfo(), MooseObject::mooseWarning(), PerfGraphOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), ActionWarehouse::printActionDependencySets(), EigenExecutionerBase::printEigenvalue(), MaterialPropertyDebugOutput::printMaterialMap(), SolutionTimeAdaptiveDT::rejectStep(), DT2::rejectStep(), FEProblemBase::restoreMultiApps(), SimplePredictor::shouldApply(), NonlinearSystem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), LStableDirk4::solve(), AStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), Transient::solveStep(), DT2::step(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _current_execute_flag

const ExecFlagType& SetupInterface::_current_execute_flag
protectedinherited

Reference to FEProblemBase.

Definition at line 98 of file SetupInterface.h.

◆ _enabled

const bool& MooseObject::_enabled
protectedinherited

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

Definition at line 180 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _exec_flags

const std::vector<ExecFlagType> SetupInterface::_exec_flags
protectedinherited

(DEPRECATED) execution flag (when is the object executed/evaluated) TODO: ExecFlagType

Definition at line 95 of file SetupInterface.h.

Referenced by SetupInterface::execBitFlags(), MultiAppTransfer::execFlags(), and SetupInterface::execFlags().

◆ _execute_enum

const ExecFlagEnum& SetupInterface::_execute_enum
protectedinherited

Execute settings for this oejct.

Definition at line 92 of file SetupInterface.h.

Referenced by ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), and SetupInterface::getExecuteOnEnum().

◆ _fe_problem

FEProblemBase& MultiApp::_fe_problem
protectedinherited

◆ _first_local_app

unsigned int MultiApp::_first_local_app
protectedinherited

◆ _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 377 of file MultiApp.h.

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

◆ _inflation

Real MultiApp::_inflation
protectedinherited

Relative bounding box inflation.

Definition at line 383 of file MultiApp.h.

Referenced by MultiApp::getBoundingBox().

◆ _input_files

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

The input file for each app's simulation.

Definition at line 338 of file MultiApp.h.

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

◆ _max_procs_per_app

unsigned int MultiApp::_max_procs_per_app
protectedinherited

Maximum number of processors to give to each app.

Definition at line 389 of file MultiApp.h.

Referenced by MultiApp::buildComm().

◆ _move_apps

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

The apps to be moved.

Definition at line 407 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 413 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 410 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 404 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 356 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 371 of file MultiApp.h.

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

◆ _name

const std::string& MooseObject::_name
protectedinherited

◆ _node_name

std::string MultiApp::_node_name
protectedinherited

Node Name.

Definition at line 368 of file MultiApp.h.

Referenced by MultiApp::buildComm().

◆ _orig_comm

const MPI_Comm& MultiApp::_orig_comm
protectedinherited

The original comm handle.

Definition at line 353 of file MultiApp.h.

◆ _orig_num_procs

int MultiApp::_orig_num_procs
protectedinherited

The number of processors in the original comm.

Definition at line 362 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 341 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 392 of file MultiApp.h.

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

◆ _pars

const InputParameters& MooseObject::_pars
protectedinherited

◆ _positions

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

◆ _reset_apps

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

The apps to be reset.

Definition at line 398 of file MultiApp.h.

Referenced by MultiApp::preTransfer().

◆ _reset_happened

bool MultiApp::_reset_happened
protectedinherited

Whether or not apps have been reset.

Definition at line 401 of file MultiApp.h.

Referenced by MultiApp::preTransfer().

◆ _reset_time

Real MultiApp::_reset_time
protectedinherited

The time at which to reset apps.

Definition at line 395 of file MultiApp.h.

Referenced by MultiApp::preTransfer().

◆ _total_num_apps

unsigned int MultiApp::_total_num_apps
protectedinherited

The total number of apps to simulate.

Definition at line 344 of file MultiApp.h.

Referenced by MultiApp::buildComm(), MultiApp::createApp(), MultiApp::init(), and MultiApp::numGlobalApps().

◆ _type

const std::string& MooseObject::_type
protectedinherited

The type of this object (the Class name)

Definition at line 174 of file MooseObject.h.

Referenced by FEProblemBase::init(), and MooseObject::type().

◆ _use_positions

const bool MultiApp::_use_positions
protectedinherited

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