www.mooseframework.org
MonteCarloSampler.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #include "MonteCarloSampler.h"
11 #include "Distribution.h"
12 
13 registerMooseObject("StochasticToolsApp", MonteCarloSampler);
14 
16 
17 InputParameters
19 {
20  InputParameters params = Sampler::validParams();
21  params.addClassDescription("Monte Carlo Sampler.");
22  params.addRequiredParam<dof_id_type>("num_rows", "The number of rows per matrix to generate.");
23  params.addRequiredParam<std::vector<DistributionName>>(
24  "distributions",
25  "The distribution names to be sampled, the number of distributions provided defines the "
26  "number of columns per matrix.");
27  return params;
28 }
29 
30 MonteCarloSampler::MonteCarloSampler(const InputParameters & parameters)
31  : Sampler(parameters),
32  _distribution_names(getParam<std::vector<DistributionName>>("distributions"))
33 {
34  for (const DistributionName & name : _distribution_names)
35  _distributions.push_back(&getDistributionByName(name));
36 
37  setNumberOfRows(getParam<dof_id_type>("num_rows"));
38  setNumberOfCols(_distributions.size());
39 }
40 
41 Real
42 MonteCarloSampler::computeSample(dof_id_type /*row_index*/, dof_id_type col_index)
43 {
44  return _distributions[col_index]->quantile(getRand());
45 }
defineLegacyParams
defineLegacyParams(MonteCarloSampler)
MonteCarloSampler::validParams
static InputParameters validParams()
Definition: MonteCarloSampler.C:18
MonteCarloSampler.h
validParams
InputParameters validParams()
name
const std::string name
Definition: Setup.h:21
MonteCarloSampler::MonteCarloSampler
MonteCarloSampler(const InputParameters &parameters)
Definition: MonteCarloSampler.C:30
MonteCarloSampler::_distribution_names
const std::vector< DistributionName > & _distribution_names
Distribution names.
Definition: MonteCarloSampler.h:36
registerMooseObject
registerMooseObject("StochasticToolsApp", MonteCarloSampler)
MonteCarloSampler
A class used to perform Monte Carlo Sampling.
Definition: MonteCarloSampler.h:21
MonteCarloSampler::computeSample
virtual Real computeSample(dof_id_type row_index, dof_id_type col_index)
Return the sample for the given row and column.
Definition: MonteCarloSampler.C:42
MonteCarloSampler::_distributions
std::vector< Distribution const * > _distributions
Storage for distribution objects to be utilized.
Definition: MonteCarloSampler.h:33