Class xlifepp::Kernel#

class Kernel#

Subclassed by xlifepp::TensorKernel

Public Functions

inline Kernel()#

basic constructor

inline Kernel(const Function &ker, const char *na, SingularityType st = _notsingular, real_t so = 0, SymType sy = _noSymmetry)#

constructor from Function object with name

inline Kernel(const Function &ker, const string_t &na, SingularityType st = _notsingular, real_t so = 0, SymType sy = _noSymmetry)#

constructor from Function object with name

inline Kernel(const Function &ker, SingularityType st = _notsingular, real_t so = 0, SymType sy = _noSymmetry)#

constructor from Function object

Kernel(const Kernel&)#

copy constructor

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), const char *na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function, with name

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), const Parameters &pa, const char *na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function and parameters, with name

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), const Parameters &pa, const string_t &na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function and parameters, with name

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), const Parameters &pa, dimen_t d, const char *na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function and parameters, with name

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), const Parameters &pa, dimen_t d, const string_t &na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function and parameters, with name

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), const Parameters &pa, dimen_t d, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function and parameters

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), const Parameters &pa, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function and parameters

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), const string_t &na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function, with name

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), dimen_t d, const char *na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function, with name

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), dimen_t d, const string_t &na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function, with name

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), dimen_t d, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function

template<typename T> inline  Kernel (T(fun)(const Point &, const Point &, Parameters &), SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit scalar kernel function

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const char *na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function, with name

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const Parameters &pa, const char *na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function and parameters, with name

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const Parameters &pa, const string_t &na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function and parameters, with name

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const Parameters &pa, dimen_t d, const char *na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function and parameters, with name

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const Parameters &pa, dimen_t d, const string_t &na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function and parameters, with name

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const Parameters &pa, dimen_t d, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function and parameters

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const Parameters &pa, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function and parameters

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), const string_t &na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function, with name

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), dimen_t d, const char *na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function, with name

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), dimen_t d, const string_t &na, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function, with name

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), dimen_t d, SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function

template<typename T> inline  Kernel (T(fun)(const Vector< Point > &, const Vector< Point > &, Parameters &), SingularityType st=_notsingular, real_t so=0, SymType sy=_noSymmetry)

constructor from explicit vector kernel function

virtual ~Kernel()#

destructor

virtual Kernel *clone() const#

clone current kernel (virtual)

void copy(const Kernel&)#

copy tool used by copy constructor and assign operator

clone current kernel (virtual)

inline virtual dimPair dims() const#

return the dimension of returned values

template<typename T>
inline T getParameter(const string_t &name, T value) const#

get parameter by its name

inline virtual void initParameters(const Parameters *pars = 0)#

initialization of Parameters

inline virtual bool isSymbolic() const#

return true is there is no explicit kernel function

inline bool no_ndotgradx() const#

true if ndotgradx is well defined

inline bool no_ndotgrady() const#

true if ndotgrady is well defined

inline bool normalRequired() const#

true if normal required

template<typename T>
T &operator()(const Point&, const Point&, T&) const#

compute kernel value at (x,y)

template<typename T>
T &operator()(const Point&, T&) const#

compute kernel value at (x,P) or (P,X) with P=xory

compute kernel value at (x,.) or (.,x) regarding xory flag

inline const Function &operator()(const Point &x, VariableName vn) const#

specify k(x,y) as y->k(x,y)

template<typename T>
Vector<T> &operator()(const Vector<Point>&, const Vector<Point>&, Vector<T>&) const#

compute kernel value at a list of points

inline const Function &operator()(VariableName vn, const Point &y) const#

specify k(x,y) as x->k(x,y)

const Function &operator()(VariableName) const#

specify k(x,y) as x->k(x,y) or y->k(x,y)

Kernel &operator=(const Kernel&)#

assign operator

virtual void print(std::ostream&) const#

print utilities

template<typename T>
inline void setParameter(const string_t &name, T value)#

add a T value in parameter’s list

inline void setParameter(Parameter &par)#

add a parameter

inline void setParameters(const Parameters &par)#

add a parameter’s list

inline void setX(const Point &P) const#

specify x=P as a parameter to interpret kernel as a y function (see Function class)

inline void setY(const Point &P) const#

specify y=P as a parameter to interpret kernel as a x function (see Function class)

inline virtual StrucType strucType() const#

return kernel structure type (_scalar, _vector or _matrix)

inline bool tangentRequired() const#

true if tangent required

inline virtual TensorKernel *tensorKernel()#

downcast to tensorkernel

inline virtual const TensorKernel *tensorKernel() const#

downcast to tensorkernel

inline virtual KernelType type() const#

return kernel type (_generalKernel, _tensorKernel, …)

void updateDimPoint()#

update dimPoint_ of related functions

void updateParametersLinks()#

update Parameters links

inline virtual ValueType valueType() const#

return kernel value type (_real or _complex)

inline bool xnormalRequired() const#

true if x-normal required

inline bool xtangentRequired() const#

true if x-tangent required

inline bool ynormalRequired() const#

true if y-normal required

inline bool ytangentRequired() const#

true if y-tangent required

Public Members

mutable bool checkType_ = false#

to activate the checking of arguments (see operator ())

mutable bool conjugate_ = false#

temporary flag for conjugate operation construction

Function curlx#

curl_x if available

Function curlxy#

curl_x curl_y if available

Function curly#

curl_y if available

dimen_t dimPoint = 3#

dimension of point (default=3)

Function divx#

div_x if available

Function divxy#

div_x div_y if available

Function divy#

div_y if available

Function dx1#

d_x1 if available (useful when matrix kernel)

Function dx2#

d_x2 if available (useful when matrix kernel)

Function dx3#

d_x3 if available (useful when matrix kernel)

KernelExpansion *expansion = nullptr#

kernel expansion

Function gradx#

x derivative grad_x K(x,y)

Function gradxy#

x,y derivative grad_x grad_y K(x,y)

Function grady#

y derivative grad_y K(x,y)

Function kernel#

kernel function K(x,y)

string_t name = ""#

kernel name

Function ndotgradx#

nx.gradx

Function ndotgrady#

ny.grady

Function nxtensornxtimesNGr#

nxtensornxtimesNGr

Function nxtensornxtimestracy#

nxtensornxtimestrac_y

Kernel *regPart = nullptr#

regular part of kernel

bool requireDof = false#

true if user declares that its function requires dof

bool requireDom = false#

true if user declares that its function requires domain

bool requireElt = false#

true if user declares that its function requires element

bool requireNx = false#

true if user declares that its function requires normal or x-normal vector

bool requireNy = false#

true if user declares that its function (kernel) requires y-normal vector

bool requireTx = false#

true if user declares that its function requires tangent or x-tangent vector

bool requireTy = false#

true if user declares that its function (kernel) requires y-tangent vector

string_t shortname = ""#

kernel name

Kernel *singPart = nullptr#

singular part of kernel

complex_t singularCoefficient = 0.#

coefficient of singularity

real_t singularOrder = 0.#

order of singularity

SingularityType singularType = _notsingular#

type of singularity (_notsingular, _r, _logr,_loglogr)

SymType symmetry = _noSymmetry#

kernel symmetry :_noSymmetry, _symmetric (K(x,y)=K(y,x)), _skewsymmetric,_adjoint,_skewadjoint

Function tracx#

trac_x if available

Function tracxy#

trac_x trac_y if available

Function tracy#

trac_y if available

mutable bool transpose_ = false#

temporary flag for transpose operation construction

Parameters userData#

to store some additional informations

mutable Point xory#

point x or y as parameter of the kernel (unused for ordinary function)

mutable bool xpar = false#

true means that point x is consider as a parameter (unused for ordinary function)