Skip to content

Latest commit

 

History

History
80 lines (45 loc) · 3.91 KB

MultiAppReporterTransfer.md

File metadata and controls

80 lines (45 loc) · 3.91 KB

MultiAppReporterTransfer

!syntax description /Transfers/MultiAppReporterTransfer

Overview

This MultiAppReporterTransfer provides a method to transfer a reporter value (see reporters) of any type between the main application and the sub-application(s). This includes vectors of real numbers from vectorpostprocessors as well as real numbers from postprocessors.

!param specifies where the data is coming from, and !param specifies where the data going to. These are a list of reporter names that must be the same length, as they directly correspond to each other. For vectorpostprocessors the syntax is "vpp_name"/"vector_name" and for reporters the syntax is "reporter_name"/"value_name".

When transferring data from the main application the data from the main is copied to each sub-application. If the !param is used then data is only transferred to the specified sub-application. When transferring data to the main application the !param must be supplied if there is more than one sub-application.

Siblings transfer behavior

This transfer supports sending data from a MultiApp to a MultiApp if and only if the number of subapps in the source MultiApp matches the number of subapps in the target MultiApp, and they are distributed the same way on the parallel processes. Each source app is then matched to the target app with the same subapp index.

Example Input File Syntax

!alert! tip

You can initialize arbitrary data containers for !param with the following objects:

  • Postprocessor: [Receiver.md]
  • VectorPostprocessor: [ConstantVectorPostprocessor.md]
  • Reporter: [ConstantReporter.md]

!alert-end!

Transferring VectorPostprocessors

Here, we are transferring data between vectorpostprocessors:

!listing reporter_transfer/main.i block=VectorPostprocessors caption=Main application VPPs

!listing reporter_transfer/sub0.i block=VectorPostprocessors caption=Sub-application VPPs

!listing reporter_transfer/main.i block=vpp_to_vpp vpp_from_vpp caption=Main application VPP transfers indent=2 header=[Transfers] footer=[]

Transferring Reporter Vectors

Here, we are transferring data between a reporter vector and vectorpostprocessors:

!listing reporter_transfer/main.i block=Reporters caption=Main application reporters

!listing reporter_transfer/sub0.i block=VectorPostprocessors caption=Sub-application VPPs

!listing reporter_transfer/main.i block=vector_to_vpp vector_from_vpp caption=Main application vector transfers indent=2 header=[Transfers] footer=[]

Transferring Reporter Real Numbers

Here, we are transferring data between a reporter real number and postprocessors:

!listing reporter_transfer/main.i block=Reporters caption=Main application reporters

!listing reporter_transfer/sub0.i block=Postprocessors caption=Sub-application Postprocessors

!listing reporter_transfer/main.i block=real_from_pp real_to_pp caption=Main application real transfers indent=2 header=[Transfers] footer=[]

Transferring Reporter Integers and Strings

Here, we are transferring integer and string data between reporters:

!listing reporter_transfer/main.i block=Reporters caption=Main application reporters

!listing reporter_transfer/sub0.i block=Reporters caption=Sub-application reporters

!listing reporter_transfer/main.i block=int_to_int int_from_int string_from_string string_to_string caption=Main application reporter transfers indent=2 header=[Transfers] footer=[]

!syntax parameters /Transfers/MultiAppReporterTransfer

!syntax inputs /Transfers/MultiAppReporterTransfer

!syntax children /Transfers/MultiAppReporterTransfer