- from_reporterThe name(s) of the Reporter(s) on the sub-app to transfer from.
C++ Type:std::vector<ReporterName>
Unit:(no unit assumed)
Controllable:No
Description:The name(s) of the Reporter(s) on the sub-app to transfer from.
- stochastic_reporterThe name of the StochasticReporter object to transfer values to.
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:The name of the StochasticReporter object to transfer values to.
SamplerReporterTransfer
Transfers data from Reporters on the sub-application to a StochasticReporter on the main application.
Overview
This object is designed to transfer data from postprocessors, vectorpostprocessors, and reporters on the sub-application to the main application. This object must transfer data to a StochasticReporter object.
How It Works
This transfer works similar to MultiAppCloneReporterTransfer whereby creating vector reporter values whose type is based on the type of value being transferred. The name of the reporter values are <stochastic_reporter name>/<transfer name or prefix>:<sub-app reporter object name>:<sub-app reporter value name>
. In parallel, the vector that the values are being transferred into are distributed by default. For instance, main_out.json is the output in serial showing all the transferred data; while main_parallel.json, main_parallel.json.1, main_parallel.json.2, and main_parallel.json.3 are the combined data from running on 4 processors. However, this split in files can be avoided if "parallel_type" in the reporter object is set to ROOT
. This will gather all the data to the root processor, beware using this option can cause memory issues with very very large stochastic runs.
Dealing with Failed Solves
When performing stochastic analysis with many perturbations of a sub-application, it is sometimes the case where the app receives a set of parameters that makes the solve difficult to converge. With the default configuration of this object, if one of sub-applications' solve fails, the main application will abort. If it is expected that some solves might not converge and aborting the main application is not the desired behavior, the parameter "ignore_solve_not_converge" must be set to true in the MultiApps
block (see SamplerFullSolveMultiApp for more details). With this parameter set to true in the multiapp, this object will transfer whatever the last compute values are. To keep track of whether the solve converged or not, the reporter value <stochastic_reporter name>/multiapp_converged
is created. See main_out.json as an example.
Example Syntax
(contrib/moose/modules/stochastic_tools/test/tests/transfers/sampler_reporter/main.i)Input Parameters
- check_multiapp_execute_onFalseWhen false the check between the multiapp and transfer execute on flags is not performed.
Default:False
C++ Type:bool
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:SAME_AS_MULTIAPP
C++ Type:ExecFlagEnum
Unit:(no unit assumed)
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
- from_multi_appThe name of the MultiApp to receive data from
C++ Type:MultiAppName
Unit:(no unit assumed)
Controllable:No
Description:The name of the MultiApp to receive data from
- prefixUse the supplied string as the prefix for reporter name rather than the transfer name.
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:Use the supplied string as the prefix for reporter name rather than the transfer name.
- samplerA the Sampler object that Transfer is associated..
C++ Type:SamplerName
Unit:(no unit assumed)
Controllable:No
Description:A the Sampler object that Transfer is associated..
- to_multi_appThe name of the MultiApp to transfer the data to
C++ Type:MultiAppName
Unit:(no unit assumed)
Controllable:No
Description:The name of the MultiApp to transfer the data to
Optional Parameters
- _called_legacy_paramsTrue
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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.