https://mooseframework.inl.gov
AdaptiveMonteCarloDecision.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 #pragma once
10 
11 #include "GeneralReporter.h"
14 
20 {
21 public:
24  virtual void initialize() override {}
25  virtual void finalize() override {}
26  virtual void execute() override;
27 
28 protected:
30  const std::vector<Real> & _output_value;
31 
33  std::vector<Real> & _output_required;
34 
36  std::vector<std::vector<Real>> & _inputs;
37 
38 private:
43  void reinitChain();
44 
47 
50 
53 
56 
59 
61  std::vector<std::vector<Real>> _prev_val;
62 
64  std::vector<Real> _prev_val_out;
65 
67  std::vector<std::vector<Real>> _inputs_sto;
68 
70  std::vector<std::vector<Real>> _inputs_sorted;
71 
73  std::vector<Real> _outputs_sto;
74 
76  std::vector<Real> _output_sorted;
77 
80 
82  const bool _gp_used;
83 
85  const int * const _gp_training_samples;
86 };
Sampler & _sampler
The adaptive Monte Carlo sampler.
std::vector< Real > _prev_val_out
Storage for previously accepted output value.
A class used to perform Parallel Subset Simulation Sampling.
const bool _gp_used
Check if a GP is used.
A class used to perform Adaptive Importance Sampling using a Markov Chain Monte Carlo algorithm...
AdaptiveMonteCarloDecision(const InputParameters &parameters)
const InputParameters & parameters() const
void reinitChain()
This reinitializes the Markov chain to the starting value until the Gaussian process training is comp...
std::vector< std::vector< Real > > _inputs_sto
Storage for the previously accepted sample inputs across all the subsets.
std::vector< std::vector< Real > > _inputs_sorted
Store the sorted input samples according to their corresponding outputs.
std::vector< std::vector< Real > > _prev_val
Storage for previously accepted input values. This helps in making decision on the next proposed inpu...
const int *const _gp_training_samples
Store the GP training samples.
libMesh::Parallel::Communicator & _local_comm
Communicator that was split based on samples that have rows.
const std::vector< Real > & _output_value
Model output value from SubApp.
const ParallelSubsetSimulation *const _pss
Parallel Subset Simulation sampler.
std::vector< Real > _output_sorted
Store the sorted output sample values.
virtual void initialize() override
AdaptiveMonteCarloDecision will help make sample accept/reject decisions in adaptive Monte Carlo sche...
int _check_step
Ensure that the MCMC algorithm proceeds in a sequential fashion.
static InputParameters validParams()
std::vector< Real > _outputs_sto
Storage for previously accepted sample outputs across all the subsets.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< Real > & _output_required
Modified value of model output by this reporter class.
const AdaptiveImportanceSampler *const _ais
Adaptive Importance Sampler.
std::vector< std::vector< Real > > & _inputs
Model input data that is uncertain.
Real _output_limit
Store the intermediate ouput failure thresholds.