https://mooseframework.inl.gov
ExtremeValue.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 "ExtremeValue.h"
11 
12 registerMooseObject("StochasticToolsApp", ExtremeValue);
13 
16 {
18  params.addClassDescription("Generalized extreme value likelihood function evaluating the model "
19  "goodness against experiments.");
20  return params;
21 }
22 
23 ExtremeValue::ExtremeValue(const InputParameters & parameters) : Gaussian(parameters) {}
24 
25 Real
26 ExtremeValue::function(const std::vector<Real> & exp,
27  const std::vector<Real> & model,
28  const Real & noise,
29  const bool & log_likelihood)
30 {
31  Real result = 0.0;
32  for (unsigned i = 0; i < exp.size(); ++i)
33  {
34  Real x = (exp[i] - model[i]) / noise;
35  Real pdf = std::exp(-(x + std::exp(-x))) / noise;
36  result += std::log(pdf);
37  }
38  if (!log_likelihood)
39  result = std::exp(result);
40  return result;
41 }
42 
43 Real
44 ExtremeValue::function(const std::vector<Real> & x) const
45 {
46  return function(_exp_values, x, _noise, _log_likelihood);
47 }
ExtremeValue(const InputParameters &parameters)
Definition: ExtremeValue.C:23
A class used to generate a generalized extreme value likelihood of observing model predictions...
Definition: ExtremeValue.h:17
auto exp(const T &)
virtual Real function(const std::vector< Real > &x) const override
Return the probability density or mass function at vector x.
Definition: ExtremeValue.C:44
const Real & _noise
Noise value.
Definition: Gaussian.h:44
A class used to generate a Gaussian likelihood of observing model predictions.
Definition: Gaussian.h:18
const std::vector< double > x
static InputParameters validParams()
Definition: Gaussian.C:17
static InputParameters validParams()
Definition: ExtremeValue.C:15
const bool _log_likelihood
return log-likelihood or likelihood
Definition: Gaussian.h:41
std::vector< Real > _exp_values
Experimental data values.
Definition: Gaussian.h:47
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-")
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
registerMooseObject("StochasticToolsApp", ExtremeValue)