- postprocessorThe name of the postprocessor in the MultiApp to transfer the value to. This should most likely be a Reciever Postprocessor.
C++ Type:PostprocessorName
Controllable:No
Description:The name of the postprocessor in the MultiApp to transfer the value to. This should most likely be a Reciever Postprocessor.
- source_variableThe variable to transfer from.
C++ Type:VariableName
Controllable:No
Description:The variable to transfer from.
MultiAppVariableValueSamplePostprocessorTransfer
Samples the value of a variable within the main application at each sub-application position and transfers the value to a postprocessor on the sub-application(s) when performing the to-multiapp transfer. Reconstructs the value of a CONSTANT MONOMIAL variable associating the value of each element to the value of the postprocessor in the closest sub-application whem performing the from-multiapp transfer.
Description
This transfer supports data transfers between a variable on the main application and a postprocessor on the sub-applications. The variable can be a standard field variable, a component of an array variable, or all components of an array variable.
When transferring a variable to a postprocessor on the sub-applications of a MultiApp, the positions of sub-applications are used to sample the values of the variable and the sampled values are used to set the postprocessor values.
When transferring a postprocessor on the sub-applications of a MultiApp to a variable, the postprocessor value of a sub-application whose position is closest to an element is used to set the variable at the element. Because of this, this transfer object works just with CONSTANT
MONOMIAL
variables and is meant to be used mainly with CentroidMultiapp
. Interpolating FIRST
(or higher) order variables using the Multiapp postprocessors values centered in the multiapp position is not possible close to the variable domain edge and do not ensure the preservation of conserved quantities. The target variable must be an auxiliary variable.
For array variables, one can specify the specific component of the variable using "source_variable_component". Another option is to set "map_array_variable_components_to_child_apps" to true
, which will split the sub-applications into groups based on component of the array variable. This is useful when creating a set of positions for each component of an array variable. See the parameter description on how the sub-applications and components are associated.
In case the sub-applications are not defined in the whole variable domain (e.g. the CentroidMultiApp blocks group is a subgroup of the variable blocks group), the elements in the blocks without a multiapp will get the value of the nearest sub-application's postprocessor in the closest block in which sub-applications are defined.
Example Input File Syntax
The following input file snippet demonstrates the use of the MultiAppVariableValueSamplePostprocessorTransfer to transfer the value of a field variable at the sub-application positions to a Postprocessor on each sub-application.
[Transfers]
[./incoming_x]
type = MultiAppVariableValueSamplePostprocessorTransfer
source_variable = x
to_multi_app = sub
postprocessor = incoming_x
[../]
[./incoming_y]
type = MultiAppVariableValueSamplePostprocessorTransfer
source_variable = y
to_multi_app = sub
postprocessor = incoming_y
[../]
[]
(../moose/test/tests/multiapps/centroid_multiapp/centroid_multiapp.i)An example showing how to transfer all the components of an array variable is shown below. Note that the source variables have 2 components and the MultiApp has two sets of 4 positions, so 8 child apps. The first four child applications, tied to the first set of positions, receive the first variable component (at index 0). The second set of child applications receive the second variable component.
[Variables]
[u_parent]
components = 2
[]
[]
[AuxVariables]
[u_sub]
family = MONOMIAL
order = CONSTANT
components = 2
[]
[]
[MultiApps]
[sub]
type = FullSolveMultiApp
input_files = sub_array_sample.i
execute_on = timestep_end
positions = '0.25 0.25 0 0.75 0.25 0 0.25 0.75 0 0.75 0.75 0
0.25 0.25 0 0.75 0.25 0 0.25 0.75 0 0.75 0.75 0'
[]
[]
[Transfers]
[to_transfer]
type = MultiAppVariableValueSamplePostprocessorTransfer
to_multi_app = sub
postprocessor = from_parent
source_variable = u_parent
map_array_variable_components_to_child_apps = true
[]
[from_transfer]
type = MultiAppVariableValueSamplePostprocessorTransfer
from_multi_app = sub
postprocessor = to_parent
source_variable = u_sub
map_array_variable_components_to_child_apps = true
[]
[]
(../moose/test/tests/transfers/multiapp_variable_value_sample_transfer/parent_array_sample.i)Input Parameters
- check_multiapp_execute_onTrueWhen false the check between the multiapp and transfer execute on flags is not performed.
Default:True
C++ Type:bool
Controllable:No
Description:When false the check between the multiapp and transfer execute on flags is not performed.
- displaced_source_meshFalseWhether or not to use the displaced mesh for the source mesh.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to use the displaced mesh for the source mesh.
- displaced_target_meshFalseWhether or not to use the displaced mesh for the target mesh.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to use the displaced mesh for the target mesh.
- execute_onSAME_AS_MULTIAPPThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, ALWAYS, SAME_AS_MULTIAPP.
Default:SAME_AS_MULTIAPP
C++ Type:ExecFlagEnum
Controllable:No
Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, ALWAYS, SAME_AS_MULTIAPP.
- from_multi_appThe name of the MultiApp to receive data from
C++ Type:MultiAppName
Controllable:No
Description:The name of the MultiApp to receive data from
- map_array_variable_components_to_child_appsFalseWhen true, groups of sub-applications will be associated with different components of the supplied array variable in 'source_variable'. For instance, if there are 9 sub-applications and 3 components in the variable, sub-apps 0-2 will go to component 0, 3-5 will go to 1, and 6-8 will go to 2.
Default:False
C++ Type:bool
Controllable:No
Description:When true, groups of sub-applications will be associated with different components of the supplied array variable in 'source_variable'. For instance, if there are 9 sub-applications and 3 components in the variable, sub-apps 0-2 will go to component 0, 3-5 will go to 1, and 6-8 will go to 2.
- source_variable_component0The component of source variable, may be non-zero for array variables.
Default:0
C++ Type:unsigned int
Controllable:No
Description:The component of source variable, may be non-zero for array variables.
- to_multi_appThe name of the MultiApp to transfer the data to
C++ Type:MultiAppName
Controllable:No
Description:The name of the MultiApp to transfer the data to
Optional Parameters
- _called_legacy_paramsTrue
Default:True
C++ Type:bool
Controllable:No
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- skip_coordinate_collapsingTrueWhether to skip coordinate collapsing (translation and rotation are still performed, only XYZ, RZ etc collapsing is skipped) when performing mapping and inverse mapping coordinate transformation operations. This parameter should only be set by users who really know what they're doing.
Default:True
C++ Type:bool
Controllable:No
Description:Whether to skip coordinate collapsing (translation and rotation are still performed, only XYZ, RZ etc collapsing is skipped) when performing mapping and inverse mapping coordinate transformation operations. This parameter should only be set by users who really know what they're doing.
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.