Class xlifepp::DifferentialOperator#
-
class DifferentialOperator#
-
Collaboration diagram for xlifepp::DifferentialOperator:
description of a differential operator
Public Functions
-
DifferentialOperator()#
-
default constructor
-
DifferentialOperator(DiffOpType ty)#
-
constructor with type
-
~DifferentialOperator()#
-
destructor
-
template<typename K>
void eval(const std::vector<K>&, const std::vector<std::vector<K>>&, const std::vector<std::vector<K>>&, dimen_t&, dimen_t&, Vector<K>&, const Vector<real_t>* = nullptr, const std::vector<complex_t>& = std::vector<complex_t>()) const#
-
compute differential operator from shape values
evaluate differential operator from values and derivatives of basis functions d: dimension of shape function (d>1 means vector shape functions) w: shape functions values ordered as follows (n number of shape functions) (w_1)_1,…,(w_1)_d,(w_2)_1,…,(w_2)_d, …, (w_n)_1,…,(w_n)_d dw: shape functions derivatives (1 to m) ordered as follows dw[0] = (d1.w_1)_1,…,(d1.w_1)_d,(d1.w_2)_1,…,(d1.w_2)_d, …, (d1.w_n)_1,…,(d1.w_n)_d … dw[m] = (dm.w_1)_1,…,(dm.w_1)_d,(dm.w_2)_1,…,(dm.w_2)_d, …, (dm.w_n)_1,…,(dm.w_n)_d d2w: shape functions second derivatives (1 to m) ordered as follows dw[0] = (d11.w_1)_1,…,(d11.w_1)_d,(d11.w_2)_1,…,(d11.w_2)_d, …, (d11.w_n)_1,…,(d11.w_n)_d dw[1] = (d22.w_1)_1,…,(d22.w_1)_d,(d22.w_2)_1,…,(d22.w_2)_d, …, (d22.w_n)_1,…,(d22.w_n)_d dw[2] = (d12.w_1)_1,…,(d12.w_1)_d,(d12.w_2)_1,…,(d12.w_2)_d, …, (d12.w_n)_1,…,(d12.w_n)_d dw[3] = (d33.w_1)_1,…,(d33.w_1)_d,(d33.w_2)_1,…,(d33.w_2)_d, …, (d33.w_n)_1,…,(d33.w_n)_d 3D only dw[4] = (d13.w_1)_1,…,(d13.w_1)_d,(d13.w_2)_1,…,(d13.w_2)_d, …, (d13.w_n)_1,…,(d13.w_n)_d dw[5] = (d23.w_1)_1,…,(d23.w_1)_d,(d23.w_2)_1,…,(d23.w_2)_d, …, (d23.w_n)_1,…,(d23.w_n)_d
note that m may be different from d np: optionnal pointer to normal vector (default 0 : no normal vector) coefs: optional coefficients used in generalized operator (currently works only for real coefficients)
return always a real vector, ordered in the following loop on shape functions loop on components of shape function (when d >1) loop on derivatives of shape function (if required)
output: res: r_1,…, r_n where r_k are scalars or vectors or matrices d: size of blocks r_k m: number of matrix columns when r_k are matrices
-
inline bool extensionRequired() const#
-
returns if operator involves non-tangential derivatives
-
inline string_t name() const#
-
return operator name
-
inline bool normalRequired() const#
-
returns if operator requires normal vector
-
inline bool tangentRequired() const#
-
returns if operator requires tangent vector
-
inline DiffOpType type() const#
-
return operator type
Public Static Functions
-
static void clearGlobalVector()#
-
delete all DifferentialOperator objects
Public Static Attributes
-
static std::vector<DifferentialOperator*> theDifferentialOperators#
-
unique list of run time diff.
list of pointers of all DifferentialOperator
operators
-
DifferentialOperator()#