Go to the documentation of this file.
15 #include "libmesh/mesh_tools.h"
27 "no_backup_and_restore",
29 "True to turn off backup/restore for this multiapp. This is useful when doing steady-state "
30 "Picard iterations where we want to use the solution of previous Picard iteration as the "
31 "initial guess of the current Picard iteration");
33 "keep_full_output_history",
35 "Whether or not to keep the full output history when this multiapp has multiple entries");
44 if (getParam<bool>(
"no_backup_and_restore"))
53 if (getParam<bool>(
"no_backup_and_restore"))
73 auto & app =
_apps[i];
90 mooseError(
"FullSolveMultiApp is not compatible with auto_advance=false");
99 ierr = MPI_Comm_rank(_communicator.get(), &rank);
100 mooseCheckMPIErr(
ierr);
102 bool last_solve_converged =
true;
106 if (!getParam<bool>(
"keep_full_output_history"))
107 _apps[i]->getOutputWarehouse().reset();
112 last_solve_converged =
false;
115 return last_solve_converged;
virtual void init()
Initialize the executioner.
MPI_Comm & _my_comm
The MPI communicator this object is going to use.
defineLegacyParams(FullSolveMultiApp)
unsigned int _my_num_apps
The number of apps this object is involved in simulating.
void mooseError(Args &&... args) const
static InputParameters validParams()
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job.
Executioners are objects that do the actual work of solving your problem.
std::vector< Executioner * > _executioners
bool _has_an_app
Whether or not this processor as an App at all
virtual void backup() override
Save off the state of every Sub App.
A MultiApp represents one or more MOOSE applications that are running simultaneously.
virtual void execute()=0
Pure virtual execute function MUST be overridden by children classes.
FullSolveMultiApp(const InputParameters ¶meters)
std::vector< std::shared_ptr< MooseApp > > _apps
Pointers to each of the Apps.
This type of MultiApp will do a full solve when it is asked to take a step.
virtual void backup()
Save off the state of every Sub App.
virtual void restore()
Restore the state of every Sub App.
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job.
static InputParameters validParams()
registerMooseObject("MooseApp", FullSolveMultiApp)
virtual void restore() override
Restore the state of every Sub App.
virtual bool lastSolveConverged() const =0
Whether or not the last solve converged.
virtual bool solveStep(Real dt, Real target_time, bool auto_advance=true) override
Re-solve all of the Apps.