A wrapper for the FunctionParser class. More...
#include <function.h>
Public Member Functions | |
| Function (const std::string §ion_name="", const std::string &expression="0", const std::string &function_description="Function expression", const std::map< std::string, double > &constants={}, const std::string &variable_names=FunctionParser< dim >::default_variable_names()+",t", const double h=1e-8) | |
| Build a Function based on ParameterAcceptor. More... | |
| void | update_constants (const std::map< std::string, double > &constants) |
| Reinitialize the function with the new constants. More... | |
| void | update_expression (const std::string &expr) |
| Reinitialize the function with the new expression. More... | |
Public Member Functions inherited from ParameterAcceptor | |
| ParameterAcceptor (const std::string §ion_name="") | |
| unsigned int | get_acceptor_id () const |
| virtual | ~ParameterAcceptor () override |
| virtual void | declare_parameters (ParameterHandler &prm) |
| virtual void | parse_parameters (ParameterHandler &prm) |
| std::string | get_section_name () const |
| std::vector< std::string > | get_section_path () const |
| void | add_parameter (const std::string &entry, ParameterType ¶meter, const std::string &documentation="", ParameterHandler &prm_=prm, const Patterns::PatternBase &pattern=*Patterns::Tools::Convert< ParameterType >::to_pattern()) |
| void | enter_subsection (const std::string &subsection) |
| void | leave_subsection () |
| void | enter_my_subsection (ParameterHandler &prm) |
| void | leave_my_subsection (ParameterHandler &prm) |
| void | serialize (Archive &ar, const unsigned int version) |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
Public Member Functions inherited from Subscriptor | |
| Subscriptor () | |
| Subscriptor (const Subscriptor &) | |
| Subscriptor (Subscriptor &&) noexcept | |
| virtual | ~Subscriptor () |
| Subscriptor & | operator= (const Subscriptor &) |
| Subscriptor & | operator= (Subscriptor &&) noexcept |
| void | serialize (Archive &ar, const unsigned int version) |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
Public Member Functions inherited from FunctionParser< dim > | |
| FunctionParser (const unsigned int n_components=1, const double initial_time=0.0, const double h=1e-8) | |
| FunctionParser (const std::string &expression, const std::string &constants="", const std::string &variable_names=default_variable_names()+",t", const double h=1e-8) | |
| FunctionParser (const FunctionParser &)=delete | |
| FunctionParser (FunctionParser &&)=delete | |
| FunctionParser & | operator= (const FunctionParser &)=delete |
| FunctionParser & | operator= (FunctionParser &&)=delete |
| virtual void | initialize (const std::string &vars, const std::vector< std::string > &expressions, const ConstMap &constants, const bool time_dependent=false) override |
| void | initialize (const std::string &vars, const std::string &expression, const ConstMap &constants, const bool time_dependent=false) |
| virtual double | value (const Point< dim > &p, const unsigned int component=0) const override |
| const std::vector< std::string > & | get_expressions () const |
| void | set_formula (const DifferenceFormula formula=Euler) |
| void | set_h (const double h) |
| virtual Tensor< 1, dim > | gradient (const Point< dim > &p, const unsigned int component=0) const override |
| virtual void | vector_gradient (const Point< dim > &p, std::vector< Tensor< 1, dim > > &gradients) const override |
| virtual void | vector_gradient (const Point< dim > &p, std::vector< Tensor< 1, dim, RangeNumberType > > &gradients) const |
| virtual void | gradient_list (const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim > > &gradients, const unsigned int component=0) const override |
| virtual void | gradient_list (const std::vector< Point< dim > > &points, std::vector< Tensor< 1, dim, RangeNumberType > > &gradients, const unsigned int component=0) const |
| virtual void | vector_gradient_list (const std::vector< Point< dim > > &points, std::vector< std::vector< Tensor< 1, dim > > > &gradients) const override |
| virtual void | vector_gradient_list (const std::vector< Point< dim > > &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType > > > &gradients) const |
| virtual void | vector_value (const Point< dim > &p, Vector< RangeNumberType > &values) const |
| virtual void | value_list (const std::vector< Point< dim > > &points, std::vector< RangeNumberType > &values, const unsigned int component=0) const |
| virtual void | vector_value_list (const std::vector< Point< dim > > &points, std::vector< Vector< RangeNumberType > > &values) const |
| virtual void | vector_values (const std::vector< Point< dim > > &points, std::vector< std::vector< RangeNumberType > > &values) const |
| virtual void | vector_gradients (const std::vector< Point< dim > > &points, std::vector< std::vector< Tensor< 1, dim, RangeNumberType > > > &gradients) const |
| virtual RangeNumberType | laplacian (const Point< dim > &p, const unsigned int component=0) const |
| virtual void | vector_laplacian (const Point< dim > &p, Vector< RangeNumberType > &values) const |
| virtual void | laplacian_list (const std::vector< Point< dim > > &points, std::vector< RangeNumberType > &values, const unsigned int component=0) const |
| virtual void | vector_laplacian_list (const std::vector< Point< dim > > &points, std::vector< Vector< RangeNumberType > > &values) const |
| virtual SymmetricTensor< 2, dim, RangeNumberType > | hessian (const Point< dim > &p, const unsigned int component=0) const |
| virtual void | vector_hessian (const Point< dim > &p, std::vector< SymmetricTensor< 2, dim, RangeNumberType > > &values) const |
| virtual void | hessian_list (const std::vector< Point< dim > > &points, std::vector< SymmetricTensor< 2, dim, RangeNumberType > > &values, const unsigned int component=0) const |
| virtual void | vector_hessian_list (const std::vector< Point< dim > > &points, std::vector< std::vector< SymmetricTensor< 2, dim, RangeNumberType > > > &values) const |
| virtual std::size_t | memory_consumption () const |
| Number | get_time () const |
| virtual void | set_time (const Number new_time) |
| virtual void | advance_time (const Number delta_t) |
| void | serialize (Archive &ar, const unsigned int version) |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| unsigned int | n_subscriptions () const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
| void | init_muparser () const |
| double | do_value (const Point< dim > &p, const double time, unsigned int component) const |
| void | do_all_values (const Point< dim > &p, const double time, ArrayView< double > &values) const |
Public Member Functions inherited from AutoDerivativeFunction< int dim > | |
| AutoDerivativeFunction (const double h, const unsigned int n_components=1, const double initial_time=0.0) | |
| virtual | ~AutoDerivativeFunction () override=default |
| void | set_formula (const DifferenceFormula formula=Euler) |
| void | set_h (const double h) |
| Number | get_time () const |
| void | serialize (Archive &ar, const unsigned int version) |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
Public Member Functions inherited from Function< int dim, typename RangeNumberType > | |
| Function (const unsigned int n_components=1, const time_type initial_time=0.0) | |
| Function (const Function &f)=default | |
| virtual | ~Function () override=0 |
| Function & | operator= (const Function &f) |
| Number | get_time () const |
| void | serialize (Archive &ar, const unsigned int version) |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
| void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
| unsigned int | n_subscriptions () const |
| void | list_subscribers (StreamType &stream) const |
| void | list_subscribers () const |
Public Member Functions inherited from FunctionTime< typename Number > | |
| FunctionTime (const Number initial_time=Number(0.0)) | |
| virtual | ~FunctionTime ()=default |
| Number | get_time () const |
Private Member Functions | |
| void | reinit () |
| Reset the Function object using the expression, the constants, and the variables stored in this class. More... | |
Private Attributes | |
| std::string | expression |
| The actual FunctionParser expression. More... | |
| std::map< std::string, double > | constants |
| Constants that can be used in the expression. More... | |
| const std::string | variable_names |
| Keep variable names around to re-initialize the FunctionParser class. More... | |
Additional Inherited Members | |
Public Types inherited from FunctionParser< dim > | |
| enum | DifferenceFormula |
| typedef std::map< std::string, double > | ConstMap |
| typedef typename FunctionTime< typename numbers::NumberTraits< RangeNumberType >::real_type >::time_type | time_type |
Public Types inherited from AutoDerivativeFunction< int dim > | |
| enum | DifferenceFormula |
| typedef typename FunctionTime< typename numbers::NumberTraits< RangeNumberType >::real_type >::time_type | time_type |
Public Types inherited from Function< int dim, typename RangeNumberType > | |
| typedef typename FunctionTime< typename numbers::NumberTraits< RangeNumberType >::real_type >::time_type | time_type |
Public Types inherited from FunctionTime< typename Number > | |
| typedef Number | time_type |
Static Public Member Functions inherited from ParameterAcceptor | |
| static void | initialize (const std::string &filename="", const std::string &output_filename="", const ParameterHandler::OutputStyle output_style_for_output_filename=ParameterHandler::Short, ParameterHandler &prm=ParameterAcceptor::prm, const ParameterHandler::OutputStyle output_style_for_filename=ParameterHandler::DefaultStyle) |
| static void | initialize (std::istream &input_stream, ParameterHandler &prm=ParameterAcceptor::prm) |
| static void | clear () |
| static void | parse_all_parameters (ParameterHandler &prm=ParameterAcceptor::prm) |
| static void | declare_all_parameters (ParameterHandler &prm=ParameterAcceptor::prm) |
| static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
| static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Static Public Member Functions inherited from Subscriptor | |
| static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
| static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Static Public Member Functions inherited from FunctionParser< dim > | |
| static std::string | default_variable_names () |
| static ::ExceptionBase & | ExcParseError (int arg1, std::string arg2) |
| static ::ExceptionBase & | ExcInvalidExpressionSize (int arg1, int arg2) |
| static DifferenceFormula | get_formula_of_order (const unsigned int ord) |
| static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
| static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Static Public Member Functions inherited from AutoDerivativeFunction< int dim > | |
| static DifferenceFormula | get_formula_of_order (const unsigned int ord) |
| static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
| static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Static Public Member Functions inherited from Function< int dim, typename RangeNumberType > | |
| static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
| static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Public Attributes inherited from ParameterAcceptor | |
| boost::signals2::signal< void()> | declare_parameters_call_back |
| boost::signals2::signal< void()> | parse_parameters_call_back |
Public Attributes inherited from FunctionParser< dim > | |
| Euler | |
| UpwindEuler | |
| FourthOrder | |
| const unsigned int | n_components |
| std::vector< std::string > | expressions |
Public Attributes inherited from AutoDerivativeFunction< int dim > | |
| Euler | |
| UpwindEuler | |
| FourthOrder | |
| const unsigned int | n_components |
Public Attributes inherited from Function< int dim, typename RangeNumberType > | |
| const unsigned int | n_components |
Static Public Attributes inherited from ParameterAcceptor | |
| static ParameterHandler | prm |
Static Public Attributes inherited from FunctionParser< dim > | |
| static constexpr unsigned int | dimension |
Static Public Attributes inherited from AutoDerivativeFunction< int dim > | |
| static constexpr unsigned int | dimension |
Static Public Attributes inherited from Function< int dim, typename RangeNumberType > | |
| static constexpr unsigned int | dimension |
Protected Attributes inherited from ParameterAcceptor | |
| const std::string | section_name |
| std::vector< std::string > | subsections |
A wrapper for the FunctionParser class.
Definition at line 28 of file function.h.
| Function< dim >::Function | ( | const std::string & | section_name = "", |
| const std::string & | expression = "0", |
||
| const std::string & | function_description = "Function< dim > expression", |
||
| const std::map< std::string, double > & | constants = {}, |
||
| const std::string & | variable_names = FunctionParser<dim>::default_variable_names() + ",t", |
||
| const double | h = 1e-8 |
||
| ) |
Build a Function based on ParameterAcceptor.
An example usage of this class is the following:
The above snippet of code will delcare the ParameterAcceptor::prm ParameterHandler with the following entries:
| section_name | The name of ParameterAcceptor section |
| expression | The expression of the function |
| function_description | How the expression is declared in the parameter file |
| constants | A map of constants we can use in the function expression |
| variable_names | Comma separated names of the independent dvariables in the expression. Either dim or dim+1 (for time dependent problems) names must be given. |
| h | The step size for finite difference approximation of derivatives |
Definition at line 24 of file function.cc.
References ParameterHandler::add_action(), ParameterAcceptor::add_parameter(), ParsedTools::Function< dim >::constants, ParameterAcceptor::enter_my_subsection(), ParameterAcceptor::leave_my_subsection(), ParameterAcceptor::prm, ParsedTools::Function< dim >::reinit(), ParameterAcceptor::sep, ParsedTools::Function< dim >::update_constants(), and ParsedTools::Function< dim >::variable_names.
| void Function< dim >::update_constants | ( | const std::map< std::string, double > & | constants | ) |
Reinitialize the function with the new constants.
Definition at line 83 of file function.cc.
References numbers::E, numbers::LN10, numbers::LN2, numbers::LOG10E, numbers::LOG2E, numbers::PI, numbers::PI_2, numbers::PI_4, numbers::SQRT1_2, and numbers::SQRT2.
Referenced by ParsedTools::Function< dim >::Function().
| void Function< dim >::update_expression | ( | const std::string & | expr | ) |
Reinitialize the function with the new expression.
Definition at line 104 of file function.cc.
|
private |
Reset the Function object using the expression, the constants, and the variables stored in this class.
Definition at line 70 of file function.cc.
References FunctionParser< int dim >::initialize(), and Utilities::split_string_list().
Referenced by ParsedTools::Function< dim >::Function().
|
private |
The actual FunctionParser expression.
Definition at line 93 of file function.h.
|
private |
Constants that can be used in the expression.
Definition at line 98 of file function.h.
Referenced by ParsedTools::Function< dim >::Function().
|
private |
Keep variable names around to re-initialize the FunctionParser class.
Definition at line 103 of file function.h.
Referenced by ParsedTools::Function< dim >::Function().