16#include "libmesh/fparser_ad.hh"
21#define usingFunctionParserUtilsMembers(T) \
22 using typename FunctionParserUtils<T>::SymFunction; \
23 using typename FunctionParserUtils<T>::SymFunctionPtr; \
24 using typename FunctionParserUtils<T>::FailureMethod; \
25 using FunctionParserUtils<T>::evaluate; \
26 using FunctionParserUtils<T>::functionsOptimize; \
27 using FunctionParserUtils<T>::setParserFeatureFlags; \
28 using FunctionParserUtils<T>::addFParserConstants; \
29 using FunctionParserUtils<T>::_enable_jit; \
30 using FunctionParserUtils<T>::_enable_ad_cache; \
31 using FunctionParserUtils<T>::_disable_fpoptimizer; \
32 using FunctionParserUtils<T>::_enable_auto_optimize; \
33 using FunctionParserUtils<T>::_eval_error_msg; \
34 using FunctionParserUtils<T>::_func_params
40 typedef FunctionParserADBase<Real>
type;
53template <
bool is_ad = false>
82 const std::string & object_name =
"");
86 const std::vector<std::string> & constant_names,
87 const std::vector<std::string> & constant_expressions)
const;
102 const std::string & expression,
103 const std::string & variables,
104 const std::vector<std::string> & constant_names,
105 const std::vector<std::string> & constant_expressions,
typename GenericSymFunctionTempl< is_ad >::type GenericSymFunction
Moose::GenericType< Real, is_ad > GenericReal
FailureMethod
Enum for failure method.
std::vector< GenericReal< is_ad > > _func_params
Array to stage the parameters passed to the functions when calling Eval.
void addFParserConstants(SymFunctionPtr &parser, const std::vector< std::string > &constant_names, const std::vector< std::string > &constant_expressions) const
add constants (which can be complex expressions) to the parser object
const Real _quiet_nan
appropriate not a number value to return
std::shared_ptr< SymFunction > SymFunctionPtr
Shorthand for an smart pointer to an autodiff function parser object.
void setParserFeatureFlags(SymFunctionPtr &) const
apply input parameters to internal feature flags of the parser object
virtual void functionsOptimize(SymFunctionPtr &parsed_function)
run FPOptimizer on the parsed function
enum FunctionParserUtils::FailureMethod _evalerror_behavior
void parsedFunctionSetup(SymFunctionPtr &function, const std::string &expression, const std::string &variables, const std::vector< std::string > &constant_names, const std::vector< std::string > &constant_expressions, const libMesh::Parallel::Communicator &comm) const
Performs setup steps on a SymFunction.
GenericReal< is_ad > evaluate(SymFunctionPtr &, const std::vector< GenericReal< is_ad > > &, const std::string &object_name="")
Evaluate FParser object and check EvalError.
FunctionParserUtils(const InputParameters ¶meters)
static const char * _eval_error_msg[]
table of FParser eval error codes
const Real _epsilon
fuzzy comparison tolerance
bool _enable_auto_optimize
bool _enable_jit
feature flags
bool _disable_fpoptimizer
GenericReal< is_ad > evaluate(SymFunctionPtr &, const std::string &object_name="")
Evaluate FParser object and check EvalError.
static InputParameters validParams()
GenericSymFunction< is_ad > SymFunction
Shorthand for an autodiff function parser object.
Helper class to pick the correct function parser.
FunctionParserADBase< Real > type