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... | |
![]() | |
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 |
![]() | |
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 |
![]() | |
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 |
![]() | |
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 |
![]() | |
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 |
![]() | |
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 | |
![]() | |
enum | DifferenceFormula |
typedef std::map< std::string, double > | ConstMap |
typedef typename FunctionTime< typename numbers::NumberTraits< RangeNumberType >::real_type >::time_type | time_type |
![]() | |
enum | DifferenceFormula |
typedef typename FunctionTime< typename numbers::NumberTraits< RangeNumberType >::real_type >::time_type | time_type |
![]() | |
typedef typename FunctionTime< typename numbers::NumberTraits< RangeNumberType >::real_type >::time_type | time_type |
![]() | |
typedef Number | time_type |
![]() | |
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 ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
![]() | |
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 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 ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
![]() | |
boost::signals2::signal< void()> | declare_parameters_call_back |
boost::signals2::signal< void()> | parse_parameters_call_back |
![]() | |
Euler | |
UpwindEuler | |
FourthOrder | |
const unsigned int | n_components |
std::vector< std::string > | expressions |
![]() | |
Euler | |
UpwindEuler | |
FourthOrder | |
const unsigned int | n_components |
![]() | |
const unsigned int | n_components |
![]() | |
static ParameterHandler | prm |
![]() | |
static constexpr unsigned int | dimension |
![]() | |
static constexpr unsigned int | dimension |
![]() | |
static constexpr unsigned int | dimension |
![]() | |
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().