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

A tool for output Sampler data. More...

#include <SamplerData.h>

Inheritance diagram for SamplerData:
[legend]

Public Member Functions

 SamplerData (const InputParameters &parameters)
 
virtual void initialize () override
 
virtual void finalize () override
 
virtual void execute () override
 
virtual void threadJoin (const UserObject &uo) override
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Attributes

std::vector< VectorPostprocessorValue * > _sample_vectors
 Storage for declared vectors, one for each column. More...
 
Sampler & _sampler
 The sampler to extract data. More...
 
const MooseEnum & _sampler_method
 The method of data retrival from the Sample. More...
 

Detailed Description

A tool for output Sampler data.

Definition at line 24 of file SamplerData.h.

Constructor & Destructor Documentation

◆ SamplerData()

SamplerData::SamplerData ( const InputParameters &  parameters)

Definition at line 44 of file SamplerData.C.

45  : GeneralVectorPostprocessor(parameters),
46  SamplerInterface(this),
47  _sampler(getSampler("sampler")),
48  _sampler_method(getParam<MooseEnum>("sampler_method"))
49 {
50  for (dof_id_type j = 0; j < _sampler.getNumberOfCols(); ++j)
51  _sample_vectors.push_back(
52  &declareVector(getParam<SamplerName>("sampler") + "_" + std::to_string(j)));
53 }

Member Function Documentation

◆ execute()

void SamplerData::execute ( )
overridevirtual

Definition at line 65 of file SamplerData.C.

66 {
67  if (_sampler_method == "get_global_samples")
68  {
69  DenseMatrix<Real> data = _sampler.getGlobalSamples();
70  for (unsigned int j = 0; j < data.n(); ++j)
71  for (unsigned int i = 0; i < data.m(); ++i)
72  (*_sample_vectors[j])[i] = data(i, j);
73  }
74 
75  else if (_sampler_method == "get_local_samples")
76  {
77  DenseMatrix<Real> data = _sampler.getLocalSamples();
78  for (unsigned int j = 0; j < data.n(); ++j)
79  for (unsigned int i = 0; i < data.m(); ++i)
80  (*_sample_vectors[j])[i] = data(i, j);
81  }
82 
83  else if (_sampler_method == "get_next_local_row")
84  {
85  for (dof_id_type i = _sampler.getLocalRowBegin(); i < _sampler.getLocalRowEnd(); ++i)
86  {
87  std::vector<Real> data = _sampler.getNextLocalRow();
88  for (std::size_t j = 0; j < data.size(); ++j)
89  (*_sample_vectors[j])[i - _sampler.getLocalRowBegin()] = data[j];
90  }
91  }
92 }

◆ finalize()

void SamplerData::finalize ( )
overridevirtual

Definition at line 95 of file SamplerData.C.

96 {
97  if (_sampler_method != "get_global_samples")
98  for (auto & ppv_ptr : _sample_vectors)
99  _communicator.gather(0, *ppv_ptr);
100 }

◆ initialize()

void SamplerData::initialize ( )
overridevirtual

Definition at line 56 of file SamplerData.C.

57 {
58  dof_id_type n = (_sampler_method == "get_global_samples") ? _sampler.getNumberOfRows()
59  : _sampler.getNumberOfLocalRows();
60  for (auto & ppv_ptr : _sample_vectors)
61  ppv_ptr->resize(n, 0);
62 }

◆ threadJoin()

void SamplerData::threadJoin ( const UserObject &  uo)
overridevirtual

TODO: Use this when the Sampler objects become threaded

Definition at line 103 of file SamplerData.C.

104 {
106  /*
107  if (_use_local_samples)
108  {
109  const SamplerData & obj = static_cast<const SamplerData &>(uo);
110  for (std::size_t i = 0; i < _sample_vectors.size(); ++i)
111  (*_sample_vectors[i]).insert(_sample_vectors[i]->end(), obj._sample_vectors[i]->begin(),
112  obj._sample_vectors[i]->end());
113  }
114  */
115 }

◆ validParams()

InputParameters SamplerData::validParams ( )
static

Definition at line 21 of file SamplerData.C.

22 {
23  InputParameters params = GeneralVectorPostprocessor::validParams();
24  params.addClassDescription(
25  "Tool for extracting Sampler object data and storing in VectorPostprocessor vectors.");
27  params.addRequiredParam<SamplerName>("sampler",
28  "The sample from which to extract distribution data.");
29 
30  // The execute method computes the complete vectors on all processes, so broadcasting the data
31  // is not required.
32  // params.set<bool>("_is_broadcast") = false;
33 
34  // Control for
35  MooseEnum method("get_global_samples get_local_samples get_next_local_row", "get_next_local_row");
36  params.addParam<MooseEnum>(
37  "sampler_method",
38  method,
39  "Control the method of data retrival from the Sampler object; this is mainly for testing.");
40 
41  return params;
42 }

Member Data Documentation

◆ _sample_vectors

std::vector<VectorPostprocessorValue *> SamplerData::_sample_vectors
protected

Storage for declared vectors, one for each column.

Definition at line 37 of file SamplerData.h.

Referenced by execute(), finalize(), initialize(), and SamplerData().

◆ _sampler

Sampler& SamplerData::_sampler
protected

The sampler to extract data.

Definition at line 40 of file SamplerData.h.

Referenced by execute(), initialize(), and SamplerData().

◆ _sampler_method

const MooseEnum& SamplerData::_sampler_method
protected

The method of data retrival from the Sample.

Definition at line 43 of file SamplerData.h.

Referenced by execute(), finalize(), and initialize().


The documentation for this class was generated from the following files:
SamplerData::_sample_vectors
std::vector< VectorPostprocessorValue * > _sample_vectors
Storage for declared vectors, one for each column.
Definition: SamplerData.h:37
validParams
InputParameters validParams()
SamplerData::_sampler
Sampler & _sampler
The sampler to extract data.
Definition: SamplerData.h:40
SamplerData::_sampler_method
const MooseEnum & _sampler_method
The method of data retrival from the Sample.
Definition: SamplerData.h:43