https://mooseframework.inl.gov
PMCMCDecision.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 #pragma once
11 
12 #include "GeneralReporter.h"
13 #include "PMCMCBase.h"
14 #include "LikelihoodFunctionBase.h"
15 #include "LikelihoodInterface.h"
16 #include "Distribution.h"
17 
23 {
24 public:
27  virtual void initialize() override {}
28  virtual void finalize() override {}
29  virtual void execute() override;
30 
31 protected:
37  virtual void computeEvidence(std::vector<Real> & evidence,
38  const DenseMatrix<Real> & input_matrix);
39 
45  virtual void computeTransitionVector(std::vector<Real> & tv, const std::vector<Real> & evidence);
46 
54  virtual void nextSamples(std::vector<Real> & req_inputs,
55  DenseMatrix<Real> & input_matrix,
56  const std::vector<Real> & tv,
57  const unsigned int & parallel_index);
58 
63  virtual void nextSeeds() {}
64 
66  const std::vector<Real> & _output_value;
67 
69  std::vector<Real> & _outputs_required;
70 
72  std::vector<std::vector<Real>> & _inputs;
73 
75  std::vector<Real> & _tpm;
76 
78  std::vector<Real> & _variance;
79 
82 
84  std::vector<const LikelihoodFunctionBase *> _likelihoods;
85 
88 
90  const PMCMCBase * const _pmcmc;
91 
94 
96  const std::vector<Real> & _rnd_vec;
97 
99  const std::vector<Real> & _new_var_samples;
100 
102  const std::vector<const Distribution *> _priors;
103 
106 
109 
112 
115 
117  std::vector<Real> _var_prev;
118 
120  std::vector<Real> _outputs_prev;
121 
122 private:
125 
128 };
dof_id_type _num_confg_values
Storage for the number of experimental configuration values.
PMCMCDecision will help making sample accept/reject decisions in MCMC schemes (for e...
Definition: PMCMCDecision.h:22
virtual void computeEvidence(std::vector< Real > &evidence, const DenseMatrix< Real > &input_matrix)
Compute the evidence (aka, betterness of the proposed sample vs the previous)
Definition: PMCMCDecision.C:80
Real & _noise
Model noise term to pass to Likelihoods object.
Definition: PMCMCDecision.h:81
virtual void finalize() override
Definition: PMCMCDecision.h:28
dof_id_type _num_confg_params
Storage for the number of experimental configuration parameters.
virtual void execute() override
const std::vector< Real > & _output_value
Model output value from SubApp.
Definition: PMCMCDecision.h:66
std::vector< Real > & _variance
Model variance term.
Definition: PMCMCDecision.h:78
int _check_step
Ensure that the MCMC algorithm proceeds in a sequential fashion.
libMesh::Parallel::Communicator & _local_comm
Communicator that was split based on samples that have rows.
PMCMCDecision(const InputParameters &parameters)
Definition: PMCMCDecision.C:39
DenseMatrix< Real > _data_prev
Storage for previous inputs.
std::vector< Real > _var_prev
Storage for previous variances.
const PMCMCBase *const _pmcmc
MCMC sampler base.
Definition: PMCMCDecision.h:90
virtual void computeTransitionVector(std::vector< Real > &tv, const std::vector< Real > &evidence)
Compute the transition probability vector (after the computation of evidence)
virtual void nextSeeds()
Compute the next set of seeds to facilitate proposals.
Definition: PMCMCDecision.h:63
const Distribution * _var_prior
Storage for the prior over the variance.
const std::vector< const Distribution * > _priors
Storage for the priors.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
dof_id_type _props
Storage for the number of parallel proposals.
Definition: PMCMCDecision.h:93
virtual void nextSamples(std::vector< Real > &req_inputs, DenseMatrix< Real > &input_matrix, const std::vector< Real > &tv, const unsigned int &parallel_index)
Resample inputs given the transition vector (after transition vector computed)
static InputParameters validParams()
Definition: PMCMCDecision.C:17
const InputParameters & parameters() const
std::vector< const LikelihoodFunctionBase * > _likelihoods
Storage for the likelihood objects to be utilized.
Definition: PMCMCDecision.h:84
std::vector< Real > _outputs_prev
Storage for previous outputs.
Sampler & _sampler
The MCMC sampler.
Definition: PMCMCDecision.h:87
const std::vector< Real > & _new_var_samples
Storage for new proposed variance samples.
Definition: PMCMCDecision.h:99
const std::vector< Real > & _rnd_vec
Storage for the random numbers for decision making.
Definition: PMCMCDecision.h:96
std::vector< Real > & _outputs_required
Transfer the right outputs to the file.
Definition: PMCMCDecision.h:69
std::vector< Real > & _tpm
Transition probability matrix.
Definition: PMCMCDecision.h:75
std::vector< std::vector< Real > > & _inputs
Model input data that is uncertain.
Definition: PMCMCDecision.h:72
virtual void initialize() override
Definition: PMCMCDecision.h:27
uint8_t dof_id_type
A base class used to perform Parallel Markov Chain Monte Carlo (MCMC) sampling.
Definition: PMCMCBase.h:19