# MultiAppCommandLineControl

Control for modifying the command line arguments of MultiApps.

## Description

Depending on the type of stochastic analysis being performed, it may be necessary to pass command line arguments to the MultiApp objects being created. For example, if a the domain is required to be altered statistically in the x-direction the Mesh/xmax parameter in the sub-application must be altered. However, this value cannot be altered from within sub-application input file via a Control object because the xmax parameter is applied to the mesh when it is created. In this case, the MultiAppCommandLineControl can be used to pass custom values to the arguments of a MultiApp that are generated from Sampler and Distribution objects.

## Example Use

Consider a stochastic problem that is executing 3 simulations, but those simulations require the maximum x and y coordinates of a generated mesh be varied between 5 and 10.

First, the MultiApps block is defined to execute the desired simulations.

[Distributions]
[./uniform]
type = UniformDistribution
lower_bound = 5
upper_bound = 10
[../]
[]

(modules/stochastic_tools/test/tests/multiapps/commandline_control/master_multiple.i)

Second, a UniformDistribution object must be created:

[Distributions]
[./uniform]
type = UniformDistribution
lower_bound = 5
upper_bound = 10
[../]
[]

(modules/stochastic_tools/test/tests/multiapps/commandline_control/master_multiple.i)

A sampling scheme must be defined for capturing values from the uniform distribution. In this example, since there are two pieces of data to be controlled ("xmax" and "ymax") the uniform distribution is sampled twice. Since this sampled data will only be used during "PRE_MULTIAPP_SETUP" execution, so the "execute_on" parameter is setup to match.

[Samplers]
[./sample]
type = MonteCarloSampler
n_samples = 3
distributions = 'uniform uniform'
execute_on = 'PRE_MULTIAPP_SETUP'
[../]
[]

(modules/stochastic_tools/test/tests/multiapps/commandline_control/master_multiple.i)

Finally, the MultiAppCommandLineControl is used to apply the sampled data to the desired Mesh settings.

[Controls]
[cmdline]
type = MultiAppCommandLineControl
multi_app = sub
sampler = sample
param_names = 'Mesh/xmax Mesh/ymax'
[]
[]

(modules/stochastic_tools/test/tests/multiapps/commandline_control/master_multiple.i)

## Input Parameters

• multi_appThe name of the MultiApp to control.

C++ Type:MultiAppName

Options:

Description:The name of the MultiApp to control.

### Required Parameters

• depends_onThe Controls that this control relies upon (i.e. must execute before this one)

C++ Type:std::vector

Options:

Description:The Controls that this control relies upon (i.e. must execute before this one)

• param_namesThe names of the command line parameters to set via the sampled data.

C++ Type:std::vector

Options:

Description:The names of the command line parameters to set via the sampled data.

• samplerThe Sampler object to utilize for altering the command line options of the MultiApp.

C++ Type:SamplerName

Options:

Description:The Sampler object to utilize for altering the command line options of the MultiApp.

### Optional Parameters

• control_tagsAdds user-defined labels for accessing object parameters via control logic.

C++ Type:std::vector

Options:

Description:Adds user-defined labels for accessing object parameters via control logic.

• enableTrueSet the enabled status of the MooseObject.

Default:True

C++ Type:bool

Options:

Description:Set the enabled status of the MooseObject.

• implicitTrueDetermines whether this object is calculated using an implicit or explicit form

Default:True

C++ Type:bool

Options:

Description:Determines whether this object is calculated using an implicit or explicit form