https://mooseframework.inl.gov
ParsedOptimizationFunction.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 "OptimizationFunction.h"
13 #include "ReporterInterface.h"
14 
15 #include "libmesh/fparser_ad.hh"
16 
18 {
19 public:
21 
23 
24  using Function::value;
25  virtual Real value(Real t, const Point & p) const override;
26  virtual RealGradient gradient(Real t, const Point & p) const override;
27  virtual Real timeDerivative(Real t, const Point & p) const override;
28  virtual std::vector<Real> parameterGradient(Real t, const Point & p) const override;
29 
30 protected:
32  Real evaluateExpression(FunctionParserADBase<Real> & parser,
33  Real t,
34  const Point & p,
35  std::string name = "") const;
36 
38  const std::string & _expression;
39 
41  const std::vector<std::string> & _param_names;
42 
44  const std::vector<Real> & _params;
45 
47  const std::vector<std::string> & _symbol_names;
48 
50  const std::vector<Real> & _symbol_values;
51 
53  std::unique_ptr<FunctionParserADBase<Real>> _parser;
54 
56  std::vector<std::unique_ptr<FunctionParserADBase<Real>>> _derivative_parsers;
57 };
std::vector< std::unique_ptr< FunctionParserADBase< Real > > > _derivative_parsers
Pointers to parsed function objects representing derivative (first four are xyzt) ...
const std::vector< std::string > & _param_names
Parameters passed to FParser.
virtual Real value(Real t, const Point &p) const override
const std::vector< Real > & _symbol_values
Values passed by the user, they may be Reals for Postprocessors.
Real evaluateExpression(FunctionParserADBase< Real > &parser, Real t, const Point &p, std::string name="") const
Function to evaluate an inputted parser.
virtual const std::string & name() const
const std::vector< std::string > & _symbol_names
Variables passed to FParser.
const std::string & _expression
Function expression passed to FParser.
ParsedOptimizationFunction(const InputParameters &parameters)
virtual RealGradient gradient(Real t, const Point &p) const override
std::unique_ptr< FunctionParserADBase< Real > > _parser
Pointer to parsed function object.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Base class for functions used in inverse optimization The parameterDerivative function is used in adj...
const InputParameters & parameters() const
virtual std::vector< Real > parameterGradient(Real t, const Point &p) const override
virtual Real value(Real t, const Point &p) const
const std::vector< Real > & _params
Vector containing parameter values.
virtual Real timeDerivative(Real t, const Point &p) const override
static InputParameters validParams()