https://mooseframework.inl.gov
Standardizer.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 "MooseTypes.h"
13 #include <vector>
14 #include "DataIO.h"
15 
16 namespace StochasticTools
17 {
18 
20 
22 {
23 public:
24  Standardizer() = default;
25 
28  void set(const Real & n);
30  void set(const Real & mean, const Real & stdev);
32  void set(const Real & mean, const Real & stdev, const Real & n);
34  void set(const std::vector<Real> & mean, const std::vector<Real> & stdev);
35 
37  const std::vector<Real> & getMean() const { return _mean; }
39  const std::vector<Real> & getStdDev() const { return _stdev; }
40 
42  void computeSet(const RealEigenMatrix & input);
43 
45  void storeHelper(std::ostream & stream, void * context) const;
46 
48  void getStandardized(RealEigenMatrix & input) const;
49 
51  void getDestandardized(RealEigenMatrix & input) const;
52 
54  void getDescaled(RealEigenMatrix & input) const;
55 
56 protected:
57  std::vector<Real> _mean;
58  std::vector<Real> _stdev;
59 };
60 
61 } // StochasticTools namespace
62 
63 template <>
64 void dataStore(std::ostream & stream, StochasticTools::Standardizer & standardizer, void * context);
65 template <>
66 void dataLoad(std::istream & stream, StochasticTools::Standardizer & standardizer, void * context);
void storeHelper(std::ostream &stream, void *context) const
Helper for dataStore.
Definition: Standardizer.C:105
void getDescaled(RealEigenMatrix &input) const
De-scales the assumed scaled input.
Definition: Standardizer.C:97
void getStandardized(RealEigenMatrix &input) const
Returns the standardized (centered and scaled) of the provided input.
Definition: Standardizer.C:80
void dataStore(std::ostream &stream, StochasticTools::Standardizer &standardizer, void *context)
Definition: Standardizer.C:119
void computeSet(const RealEigenMatrix &input)
Methods for computing and setting mean and standard deviation.
Definition: Standardizer.C:58
Enum for batch type in stochastic tools MultiApp.
std::vector< Real > _stdev
Definition: Standardizer.h:58
void getDestandardized(RealEigenMatrix &input) const
De-standardizes (de-centered and de-scaled) the assumed standardized input.
Definition: Standardizer.C:88
Eigen::Matrix< Real, Eigen::Dynamic, Eigen::Dynamic > RealEigenMatrix
std::vector< Real > _mean
Definition: Standardizer.h:57
const std::vector< Real > & getStdDev() const
Get the standard deviation vector.
Definition: Standardizer.h:39
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::vector< Real > & getMean() const
Get the mean vector.
Definition: Standardizer.h:37
Class for standardizing data (centering and scaling)
Definition: Standardizer.h:21
void dataLoad(std::istream &stream, StochasticTools::Standardizer &standardizer, void *context)
Definition: Standardizer.C:126