IFEM  90A354
Public Member Functions | Protected Member Functions | Private Types | List of all members
EvalMultiFunction< ParentFunc, Ret, Scalar > Class Template Reference

A general spatial expression function of any return type. More...

#include <ExprFunctions.h>

Inheritance diagram for EvalMultiFunction< ParentFunc, Ret, Scalar >:
Inheritance graph
[legend]
Collaboration diagram for EvalMultiFunction< ParentFunc, Ret, Scalar >:
Collaboration graph
[legend]

Public Member Functions

 EvalMultiFunction (const std::string &functions, const std::string &variables="", const Real epsX=1e-8, const Real epsT=1e-12)
 The constructor parses the expression string for each component.
 
virtual ~EvalMultiFunction ()
 Empty destructor.
 
bool isConstant () const override
 Returns whether the function is time-independent or not.
 
unsigned char getType () const override
 Returns the function type flag.
 
Ret deriv (const Vec3 &X, int dir) const override
 Returns first-derivative of the function.
 
Ret dderiv (const Vec3 &X, int dir1, int dir2) const override
 Returns second-derivative of the function.
 
void setParam (const std::string &name, Real value) override
 Sets an additional parameter in the function.
 
- Public Member Functions inherited from EvalFunctions< Scalar >
void addDerivative (const std::string &functions, const std::string &variables, int d1, int d2=0)
 Adds an expression function for a first or second derivative.
 
size_t getNoSpaceDim () const
 Returns number of spatial dimension.
 

Protected Member Functions

void setNoDims ()
 Sets the number of spatial dimensions (default implementation).
 
Ret evaluate (const Vec3 &X) const override
 Evaluates the function expressions.
 
std::vector< RealevalGradient (const Vec3 &X) const override
 Returns the gradient of the function as a 1D array.
 
std::vector< RealevalHessian (const Vec3 &X) const override
 Returns the second derivatives of the function as a 1D array.
 
std::vector< RealevalTimeDerivative (const Vec3 &X) const override
 Returns the time derivatives of the function as a 1D array.
 
- Protected Member Functions inherited from EvalFunctions< Scalar >
 EvalFunctions (const std::string &functions, const std::string &variables, const Real epsX, const Real epsT)
 The constructor parses the expression string for each component.
 
virtual ~EvalFunctions ()
 Defaulted destructor. More...
 

Private Types

using FuncType = typename EvalFunctions< Scalar >::FuncType
 Type alias for the function.
 

Additional Inherited Members

- Protected Types inherited from EvalFunctions< Scalar >
using FuncType = EvalFuncSpatial< Scalar >
 Type alias for function.
 
- Protected Attributes inherited from EvalFunctions< Scalar >
std::vector< std::unique_ptr< FuncType > > p
 Array of component expressions.
 
size_t nsd = 0
 Number of spatial dimensions.
 

Detailed Description

template<class ParentFunc, class Ret, class Scalar>
class EvalMultiFunction< ParentFunc, Ret, Scalar >

A general spatial expression function of any return type.

The function is implemented as an array of EvalFunction objects.


The documentation for this class was generated from the following files: