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.

commentnote:Partial domain Multiapp

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
  [../]
[]
(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
  []
[]
(test/tests/transfers/multiapp_variable_value_sample_transfer/parent_array_sample.i)

Input Parameters

  • 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.

Required 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 FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, SAME_AS_MULTIAPP.

    Default:SAME_AS_MULTIAPP

    C++ Type:ExecFlagEnum

    Options:FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, SAME_AS_MULTIAPP

    Controllable:No

    Description:The list of flag(s) indicating when this object should be executed, the available options include FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, 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.

Advanced Parameters

Input Files