FEDEM Solver  R8.0
Source code of the dynamics solver
FFaUserFuncPlugin.H
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2023 SAP SE
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5 // This file is part of FEDEM - https://openfedem.org
7 
13 #ifndef FFA_USER_FUNC_PLUGIN_H
14 #define FFA_USER_FUNC_PLUGIN_H
15 
18 
19 
25  public FFaSingelton<FFaUserFuncPlugin>
26 {
27 public:
32  bool validate(const std::string& lib, int nchar = 0, char* sign = NULL);
36  bool getSign(int nchar, char* sign) const;
37 
43  int getFuncs(int maxUF, int* funcId, bool silence = false) const;
49  int getFuncName(int id, int nchar = 0, char* name = NULL) const;
56  int getParName(int id, int ipar = 1, int nchar = 0, char* name = NULL) const;
60  double getDefaultParVal(int id, int ipar) const;
61 
63  const char** getPixmap(int id) const;
64 
72  int getFlag(int id) const;
73 
80  double getValue(int bId, int fId, const double* params,
81  double x, int& err) const;
88  double getValue(int bId, int fId, const double* params,
89  const double* args, int& err) const;
97  double getDiff(int bId, int fId, int ia, const double* params,
98  const double* args, int& err) const;
99 
110  int wave(int bId, int fId, double d, double g,
111  const double* params, const double* args,
112  double& h, double* u, double* du) const;
113 
114 private:
115  friend class FFaSingelton<FFaUserFuncPlugin>;
116 };
117 
118 #endif
Management of dynamic loading of shared object libraries.
Base class for dynamic loading of shared object libraries.
Definition: FFaDynamicLibraryBase.H:37
Template class for singleton classes.
Definition: FFaSingelton.H:20
Singleton class for user-defined functions plugins.
Definition: FFaUserFuncPlugin.H:26
double getValue(int bId, int fId, const double *params, double x, int &err) const
Evaluates single-argument user-defined functions.
Definition: FFaUserFuncPlugin.C:286
double getDefaultParVal(int id, int ipar) const
Returns a default parameter value for a given function type.
Definition: FFaUserFuncPlugin.C:184
int wave(int bId, int fId, double d, double g, const double *params, const double *args, double &h, double *u, double *du) const
Evaluates user-defined wave functions.
Definition: FFaUserFuncPlugin.C:361
int getParName(int id, int ipar=1, int nchar=0, char *name=NULL) const
Returns a function parameter name for a given function type.
Definition: FFaUserFuncPlugin.C:152
bool validate(const std::string &lib, int nchar=0, char *sign=NULL)
Checks if the named library can be loaded as a plugin.
Definition: FFaUserFuncPlugin.C:44
const char ** getPixmap(int id) const
Returns a pointer to a pixmap to display in the property panel.
Definition: FFaUserFuncPlugin.C:214
int getFlag(int id) const
Returns the function flag for a given function type, id.
Definition: FFaUserFuncPlugin.C:261
int getFuncName(int id, int nchar=0, char *name=NULL) const
Returns a function type name.
Definition: FFaUserFuncPlugin.C:118
double getDiff(int bId, int fId, int ia, const double *params, const double *args, int &err) const
Evaluates a derivative of multi-argument user-defined functions.
Definition: FFaUserFuncPlugin.C:326
int getFuncs(int maxUF, int *funcId, bool silence=false) const
Returns a list of function types defined in the plugin.
Definition: FFaUserFuncPlugin.C:89
bool getSign(int nchar, char *sign) const
Returns the signature string of the loaded plugin.
Definition: FFaUserFuncPlugin.C:60
real(dp), save, private g
Definition: FNVwaveForceModule.f90:42
real(dp), dimension(:,:), allocatable u
Definition: inverseModule.f90:20
real(dp), dimension(:), allocatable, save err
Internal work array.
Definition: timeStepModule.f90:31