MultiAppallows you to simultaneously solve for individual physics systems.
MultiAppcan represent many (hence Multi!) "sub-apps".
MultiApps... leading to multi-level solves.
MultiAppsare declared in the
typejust like any other block.
app_typeis required and is the name of the
MooseAppderived App that is going to be run. Generally this is something like
MultiAppcan be executed at any point during the master solve. You set that using
execute_onto one of:
positionsis a list of 3D coordinate pairs describing the offset of the sub-application into the physical space of the master application. More on this in a moment.
[MultiApps] [./some_multi] type = TransientMultiApp app_type = SomeApp execute_on = timestep_end positions = '0.0 0.0 0.0 0.5 0.5 0.0 0.6 0.6 0.0 0.7 0.7 0.0' input_files = 'sub.i' [../] 
Typein your input file (e.g.
AnimalApp) and MOOSE attempt to find the other library dynamically
library_path. This path needs to point to the
libfolder underneath your application.
TransientMultiApprequires that your "sub-apps" use an
TransientMultiAppwill be taken into account during time step selection inside the "master"
dtover the master and all sub-apps is used.
positions parameter allows you to define a "coordinate offset" of the sub-app's coordinates into the master app's domain.
- You must provide one set of $$$(x, y, z)$$$ coordinates for each sub-app.
- The number of coordinate sets determines the actual number of sub-applications.
- If you have a large number of positions you can read them from a file using
positions_file = filename.
- You can think of the $$$(x, y, z)$$$ coordinates as a vector that is being added to the coordinates of your sub-app's domain to put that domain in a specific spot within the master domain.
- If your sub-app's domain starts at $$$(0,0,0)$$$ it is easy to think of moving that point around using
- For sub-apps on completely different scales,
positions is the point in the master domain where that App is.
MultiAppsystem is designed for efficient parallel execution of hierarchical problems.
MultiApp, all of the processors are split among the sub-apps.
MultiAppare run simultaneously in parallel.
MultiAppswill be executed one after another.