https://mooseframework.inl.gov
Loading...
Searching...
No Matches
TruncatedGaussian.C
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#include "TruncatedGaussian.h"
11#include "TruncatedNormal.h"
12
14
17{
20 "TruncatedGaussian likelihood function evaluating the model goodness against experiments.");
21 params.addRequiredParam<Real>("lower_bound", "Lower bound for the quantity of interest.");
22 params.addRequiredParam<Real>("upper_bound", "Upper bound for the quantity of interest.");
23 return params;
24}
25
27 : Gaussian(parameters),
28 _lower_bound(getParam<Real>("lower_bound")),
29 _upper_bound(getParam<Real>("upper_bound"))
30{
32 mooseError("The specified lower bound should be less than the upper bound.");
33}
34
35Real
36TruncatedGaussian::function(const std::vector<Real> & exp,
37 const std::vector<Real> & model,
38 const Real & noise,
39 const Real & lower_bound,
40 const Real & upper_bound,
41 const bool & log_likelihood)
42{
43 Real result = 0.0;
44 for (unsigned i = 0; i < exp.size(); ++i)
45 result += std::log(TruncatedNormal::pdf(exp[i], model[i], noise, lower_bound, upper_bound));
46 if (!log_likelihood)
47 result = std::exp(result);
48 return result;
49}
50
51Real
52TruncatedGaussian::function(const std::vector<Real> & x) const
53{
55}
const std::vector< double > x
const PertinentGeochemicalSystem model(database, {"H2O", "H+", "HCO3-", "O2(aq)", "Ca++", ">(s)FeOH", "radius_neg1", "radius_neg1.5"}, {"Calcite"}, {}, {"Calcite_asdf"}, {"CH4(aq)"}, {">(s)FeOCa+"}, "O2(aq)", "e-")
registerMooseObject("StochasticToolsApp", TruncatedGaussian)
A class used to generate a Gaussian likelihood of observing model predictions.
Definition Gaussian.h:19
const Real & _noise
Noise value.
Definition Gaussian.h:44
std::vector< Real > _exp_values
Experimental data values.
Definition Gaussian.h:47
const bool _log_likelihood
return log-likelihood or likelihood
Definition Gaussian.h:41
static InputParameters validParams()
Definition Gaussian.C:17
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
void mooseError(Args &&... args) const
A class used to generate a truncated Gaussian likelihood of observing model predictions.
virtual Real function(const std::vector< Real > &x) const override
Return the probability density or mass function at vector x.
static InputParameters validParams()
TruncatedGaussian(const InputParameters &parameters)
const Real _upper_bound
Upper bound.
const Real _lower_bound
Lower bound.
virtual Real pdf(const Real &x) const override