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;
53 template <
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,
GenericReal< is_ad > evaluate(SymFunctionPtr &, const std::string &object_name="")
Evaluate FParser object and check EvalError.
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
Moose::GenericType< Real, is_ad > GenericReal
Helper class to pick the correct function parser.
typename GenericSymFunctionTempl< is_ad >::type GenericSymFunction
std::shared_ptr< SymFunction > SymFunctionPtr
Shorthand for an smart pointer to an autodiff function parser object.
FunctionParserUtils(const InputParameters ¶meters)
FunctionParserADBase< Real > type
virtual void functionsOptimize(SymFunctionPtr &parsed_function)
run FPOptimizer on the parsed function
GenericSymFunction< is_ad > SymFunction
Shorthand for an autodiff function parser object.
bool _enable_jit
feature flags
enum FunctionParserUtils::FailureMethod _evalerror_behavior
FailureMethod
Enum for failure method.
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.
const Real _quiet_nan
appropriate not a number value to return
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
bool _disable_fpoptimizer
static const char * _eval_error_msg[]
table of FParser eval error codes
std::vector< GenericReal< is_ad > > _func_params
Array to stage the parameters passed to the functions when calling Eval.
static InputParameters validParams()
const Real _epsilon
fuzzy comparison tolerance
bool _enable_auto_optimize
void setParserFeatureFlags(SymFunctionPtr &) const
apply input parameters to internal feature flags of the parser object