Skip to content

Commit

Permalink
Update SamplerTransfer to use getNextLocalRow
Browse files Browse the repository at this point in the history
  • Loading branch information
aeslaughter committed Nov 25, 2019
1 parent 1185660 commit fa06dcd
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 23 deletions.
8 changes: 0 additions & 8 deletions modules/stochastic_tools/include/transfers/SamplerTransfer.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,6 @@ class SamplerTransfer : public StochasticToolsTransfer
/// The name of the SamplerReceiver Control object on the sub-application
const std::string & _receiver_name;

/// Storage for data returned from Sampler object
DenseMatrix<Real> _samples;

/// Current global index for batch execution
dof_id_type _global_index;

/**
* Extract single row of Sampler data given the local index.
*/
void getLocalRow(const dof_id_type row_index, std::vector<Real> & row) const;
};
17 changes: 2 additions & 15 deletions modules/stochastic_tools/src/transfers/SamplerTransfer.C
Original file line number Diff line number Diff line change
Expand Up @@ -56,20 +56,11 @@ SamplerTransfer::SamplerTransfer(const InputParameters & parameters)
_sampler_ptr = &(ptr_fullsolve->getSampler());
}

void
SamplerTransfer::getLocalRow(const dof_id_type row_index, std::vector<Real> & row) const
{
row.resize(_samples.n());
for (unsigned int i = 0; i < _samples.n(); ++i)
row[i] = _samples(row_index, i);
}

void
SamplerTransfer::execute()
{
mooseAssert(_sampler_ptr->getNumberOfLocalRows() == _multi_app->numLocalApps(),
"The number of MultiApps and the number of sample rows must be the same.");
_samples = _sampler_ptr->getLocalSamples();

// Loop over all sub-apps
for (dof_id_type row_index = _sampler_ptr->getLocalRowBegin();
Expand All @@ -83,8 +74,7 @@ SamplerTransfer::execute()
SamplerReceiver * ptr = getReceiver(row_index);

// Populate the row of data to transfer
std::vector<Real> row;
getLocalRow(row_index - _sampler_ptr->getLocalRowBegin(), row);
std::vector<Real> row = _sampler_ptr->getNextLocalRow();

// Perform the transfer
ptr->transfer(_parameter_names, row);
Expand All @@ -94,7 +84,6 @@ SamplerTransfer::execute()
void
SamplerTransfer::initializeToMultiapp()
{
_samples = _sampler_ptr->getLocalSamples();
_global_index = _sampler_ptr->getLocalRowBegin();
}

Expand All @@ -103,8 +92,7 @@ SamplerTransfer::executeToMultiapp()
{
SamplerReceiver * ptr = getReceiver(processor_id());

std::vector<Real> row;
getLocalRow(_global_index - _sampler_ptr->getLocalRowBegin(), row);
std::vector<Real> row = _sampler_ptr->getNextLocalRow();

ptr->transfer(_parameter_names, row);

Expand All @@ -114,7 +102,6 @@ SamplerTransfer::executeToMultiapp()
void
SamplerTransfer::finalizeToMultiapp()
{
_samples.resize(0, 0);
}

SamplerReceiver *
Expand Down

0 comments on commit fa06dcd

Please sign in to comment.