https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
13#include "ReporterInterface.h"
14
15#include "libmesh/fparser_ad.hh"
16
18{
19public:
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
30protected:
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};
const Real p
virtual Real value(Real t, const Point &p) const
const InputParameters & parameters() const
const std::string & name() const
Base class for functions used in inverse optimization The parameterDerivative function is used in adj...
Real evaluateExpression(FunctionParserADBase< Real > &parser, Real t, const Point &p, std::string name="") const
Function to evaluate an inputted parser.
const std::vector< Real > & _symbol_values
Values passed by the user, they may be Reals for Postprocessors.
std::unique_ptr< FunctionParserADBase< Real > > _parser
Pointer to parsed function object.
const std::vector< std::string > & _param_names
Parameters passed to FParser.
virtual RealGradient gradient(Real t, const Point &p) const override
std::vector< std::unique_ptr< FunctionParserADBase< Real > > > _derivative_parsers
Pointers to parsed function objects representing derivative (first four are xyzt)
const std::vector< Real > & _params
Vector containing parameter values.
const std::vector< std::string > & _symbol_names
Variables passed to FParser.
const std::string & _expression
Function expression passed to FParser.
virtual Real value(Real t, const Point &p) const override
virtual std::vector< Real > parameterGradient(Real t, const Point &p) const override
virtual Real timeDerivative(Real t, const Point &p) const override
static InputParameters validParams()