www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SamplerParameterTransfer Class Reference

Copy each row from each DenseMatrix to the sub-applications SamplerReceiver object. More...

#include <SamplerParameterTransfer.h>

Inheritance diagram for SamplerParameterTransfer:
[legend]

Public Member Functions

 SamplerParameterTransfer (const InputParameters &parameters)
 
virtual void execute () override
 Traditional Transfer callback. More...
 
void setGlobalMultiAppIndex (dof_id_type index)
 Method for keeping track of the global MultiApp index when running in batch mode. More...
 
virtual void initializeToMultiapp () override
 Methods used when running in batch mode (see SamplerFullSolveMultiApp) More...
 
virtual void executeToMultiapp () override
 
virtual void finalizeToMultiapp () override
 
virtual void initializeFromMultiapp ()
 Methods for transferring data from sub-applications to the master application. More...
 
virtual void executeFromMultiapp ()
 
virtual void finalizeFromMultiapp ()
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

SamplerReceivergetReceiver (unsigned int app_index)
 Return the SamplerReceiver object and perform error checking. More...
 

Protected Attributes

const std::vector< std::string > & _parameter_names
 Storage for the list of parameters to control. More...
 
const std::string & _receiver_name
 The name of the SamplerReceiver Control object on the sub-application. More...
 
dof_id_type _global_index
 Current global index for batch execution. More...
 
Sampler * _sampler_ptr
 Pointer to the Sampler object used by the SamplerTransientMultiApp or SamplerFullSolveMultiApp. More...
 

Detailed Description

Copy each row from each DenseMatrix to the sub-applications SamplerReceiver object.

Definition at line 21 of file SamplerParameterTransfer.h.

Constructor & Destructor Documentation

◆ SamplerParameterTransfer()

SamplerParameterTransfer::SamplerParameterTransfer ( const InputParameters &  parameters)

Definition at line 43 of file SamplerParameterTransfer.C.

44  : StochasticToolsTransfer(parameters),
45  _parameter_names(getParam<std::vector<std::string>>("parameters")),
46  _receiver_name(getParam<std::string>("to_control"))
47 {
48 }

Member Function Documentation

◆ execute()

void SamplerParameterTransfer::execute ( )
overridevirtual

Traditional Transfer callback.

Definition at line 51 of file SamplerParameterTransfer.C.

52 {
53  mooseAssert(_sampler_ptr->getNumberOfLocalRows() == _multi_app->numLocalApps(),
54  "The number of MultiApps and the number of sample rows must be the same.");
55 
56  // Loop over all sub-apps
57  for (dof_id_type row_index = _sampler_ptr->getLocalRowBegin();
58  row_index < _sampler_ptr->getLocalRowEnd();
59  row_index++)
60  {
61  mooseAssert(_multi_app->hasLocalApp(row_index),
62  "The current sample row index is not a valid global MultiApp index.");
63 
64  // Get the sub-app SamplerReceiver object and perform error checking
65  SamplerReceiver * ptr = getReceiver(row_index);
66 
67  // Populate the row of data to transfer
68  std::vector<Real> row = _sampler_ptr->getNextLocalRow();
69 
70  // Perform the transfer
71  ptr->transfer(_parameter_names, row);
72  }
73 }

◆ executeFromMultiapp()

void StochasticToolsTransfer::executeFromMultiapp ( )
virtualinherited

Reimplemented in SamplerPostprocessorTransfer.

Definition at line 112 of file StochasticToolsTransfer.C.

113 {
114 }

◆ executeToMultiapp()

void SamplerParameterTransfer::executeToMultiapp ( )
overridevirtual

Reimplemented from StochasticToolsTransfer.

Definition at line 82 of file SamplerParameterTransfer.C.

83 {
84  SamplerReceiver * ptr = getReceiver(processor_id());
85 
86  std::vector<Real> row = _sampler_ptr->getNextLocalRow();
87 
88  ptr->transfer(_parameter_names, row);
89 
90  _global_index++;
91 }

◆ finalizeFromMultiapp()

void StochasticToolsTransfer::finalizeFromMultiapp ( )
virtualinherited

Reimplemented in SamplerPostprocessorTransfer.

Definition at line 117 of file StochasticToolsTransfer.C.

118 {
119 }

◆ finalizeToMultiapp()

void SamplerParameterTransfer::finalizeToMultiapp ( )
overridevirtual

Reimplemented from StochasticToolsTransfer.

Definition at line 94 of file SamplerParameterTransfer.C.

95 {
96 }

◆ getReceiver()

SamplerReceiver * SamplerParameterTransfer::getReceiver ( unsigned int  app_index)
protected

Return the SamplerReceiver object and perform error checking.

Parameters
app_indexThe global sup-app index

Definition at line 99 of file SamplerParameterTransfer.C.

100 {
101  // Test that the sub-application has the given Control object
102  FEProblemBase & to_problem = _multi_app->appProblemBase(app_index);
103  ExecuteMooseObjectWarehouse<Control> & control_wh = to_problem.getControlWarehouse();
104  if (!control_wh.hasActiveObject(_receiver_name))
105  mooseError("The sub-application (",
106  _multi_app->name(),
107  ") does not contain a Control object with the name '",
109  "'.");
110 
111  SamplerReceiver * ptr =
112  dynamic_cast<SamplerReceiver *>(control_wh.getActiveObject(_receiver_name).get());
113 
114  if (!ptr)
115  mooseError(
116  "The sub-application (",
117  _multi_app->name(),
118  ") Control object for the 'to_control' parameter must be of type 'SamplerReceiver'.");
119 
120  return ptr;
121 }

Referenced by execute(), and executeToMultiapp().

◆ initializeFromMultiapp()

void StochasticToolsTransfer::initializeFromMultiapp ( )
virtualinherited

Methods for transferring data from sub-applications to the master application.

Reimplemented in SamplerPostprocessorTransfer.

Definition at line 107 of file StochasticToolsTransfer.C.

108 {
109 }

◆ initializeToMultiapp()

void SamplerParameterTransfer::initializeToMultiapp ( )
overridevirtual

Methods used when running in batch mode (see SamplerFullSolveMultiApp)

Reimplemented from StochasticToolsTransfer.

Definition at line 76 of file SamplerParameterTransfer.C.

77 {
78  _global_index = _sampler_ptr->getLocalRowBegin();
79 }

◆ setGlobalMultiAppIndex()

void StochasticToolsTransfer::setGlobalMultiAppIndex ( dof_id_type  index)
inlineinherited

Method for keeping track of the global MultiApp index when running in batch mode.

See StochasticTools<FullSolve/Transient>MultiApp

Definition at line 54 of file StochasticToolsTransfer.h.

54 { _global_index = index; }

◆ validParams()

InputParameters SamplerParameterTransfer::validParams ( )
static

Definition at line 26 of file SamplerParameterTransfer.C.

27 {
28  InputParameters params = StochasticToolsTransfer::validParams();
29  params.addClassDescription("Copies Sampler data to a SamplerReceiver object.");
30  params.set<MultiMooseEnum>("direction") = "to_multiapp";
31  params.suppressParameter<MultiMooseEnum>("direction");
32  params.addParam<std::vector<std::string>>(
33  "parameters",
34  "A list of parameters (on the sub application) to control "
35  "with the Sampler data. The order of the parameters listed "
36  "here should match the order of the items in the Sampler.");
37  params.addRequiredParam<std::string>("to_control",
38  "The name of the 'SamplerReceiver' on the sub application "
39  "to which the Sampler data will be transferred.");
40  return params;
41 }

Member Data Documentation

◆ _global_index

dof_id_type SamplerParameterTransfer::_global_index
protected

Current global index for batch execution.

Definition at line 55 of file SamplerParameterTransfer.h.

Referenced by executeToMultiapp(), and initializeToMultiapp().

◆ _parameter_names

const std::vector<std::string>& SamplerParameterTransfer::_parameter_names
protected

Storage for the list of parameters to control.

Definition at line 49 of file SamplerParameterTransfer.h.

Referenced by execute(), and executeToMultiapp().

◆ _receiver_name

const std::string& SamplerParameterTransfer::_receiver_name
protected

The name of the SamplerReceiver Control object on the sub-application.

Definition at line 52 of file SamplerParameterTransfer.h.

Referenced by getReceiver().

◆ _sampler_ptr

Sampler* StochasticToolsTransfer::_sampler_ptr
protectedinherited

The documentation for this class was generated from the following files:
StochasticToolsTransfer::StochasticToolsTransfer
StochasticToolsTransfer(const InputParameters &parameters)
Definition: StochasticToolsTransfer.C:26
SamplerParameterTransfer::_receiver_name
const std::string & _receiver_name
The name of the SamplerReceiver Control object on the sub-application.
Definition: SamplerParameterTransfer.h:52
SamplerParameterTransfer::_global_index
dof_id_type _global_index
Current global index for batch execution.
Definition: SamplerParameterTransfer.h:55
StochasticToolsTransfer::_sampler_ptr
Sampler * _sampler_ptr
Pointer to the Sampler object used by the SamplerTransientMultiApp or SamplerFullSolveMultiApp.
Definition: StochasticToolsTransfer.h:61
SamplerReceiver::transfer
void transfer(const std::vector< std::string > &names, const std::vector< Real > &values)
Update the parameter names and associated values.
Definition: SamplerReceiver.C:105
SamplerReceiver
A Control object for receiving data from a master application Sampler object.
Definition: SamplerReceiver.h:25
StochasticToolsTransfer::validParams
static InputParameters validParams()
Definition: StochasticToolsTransfer.C:18
SamplerParameterTransfer::getReceiver
SamplerReceiver * getReceiver(unsigned int app_index)
Return the SamplerReceiver object and perform error checking.
Definition: SamplerParameterTransfer.C:99
SamplerParameterTransfer::_parameter_names
const std::vector< std::string > & _parameter_names
Storage for the list of parameters to control.
Definition: SamplerParameterTransfer.h:49
StochasticToolsTransfer::_global_index
dof_id_type _global_index
Index for tracking the global index when using batch mode operation.
Definition: StochasticToolsTransfer.h:58