Class xlifepp::DifferentialOperator#

class DifferentialOperator#

Collaboration diagram for xlifepp::DifferentialOperator:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "3" [label="std::vector< T >" tooltip="std::vector< T >"] "2" [label="std::vector< xlifepp::DifferentialOperator * >" tooltip="std::vector< xlifepp::DifferentialOperator * >"] "1" [label="xlifepp::DifferentialOperator" tooltip="xlifepp::DifferentialOperator" fillcolor="#BFBFBF"] "2" -> "3" [dir=forward tooltip="template-instance"] "1" -> "2" [dir=forward tooltip="usage"] }

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 number_t order() const#

return operator order

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