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