Class xlifepp::Kernel#

class Kernel#

Inheritence diagram for xlifepp::Kernel:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="xlifepp::Kernel" tooltip="xlifepp::Kernel" fillcolor="#BFBFBF"] "2" [label="xlifepp::TensorKernel" tooltip="xlifepp::TensorKernel"] "2" -> "1" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::Kernel:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "6" [label="std::map< string_t, number_t >" tooltip="std::map< string_t, number_t >"] "10" [label="std::map< string_t, std::pair< ValueType, StrucType > >" tooltip="std::map< string_t, std::pair< ValueType, StrucType > >"] "7" [label="std::map< K, T >" tooltip="std::map< K, T >"] "5" [label="std::vector< T >" tooltip="std::vector< T >"] "9" [label="std::vector< real_t >" tooltip="std::vector< real_t >"] "4" [label="std::vector< xlifepp::Parameter * >" tooltip="std::vector< xlifepp::Parameter * >"] "2" [label="xlifepp::Function" tooltip="xlifepp::Function"] "1" [label="xlifepp::Kernel" tooltip="xlifepp::Kernel" fillcolor="#BFBFBF"] "11" [label="xlifepp::KernelExpansion" tooltip="xlifepp::KernelExpansion"] "3" [label="xlifepp::Parameters" tooltip="xlifepp::Parameters"] "8" [label="xlifepp::Point" tooltip="xlifepp::Point"] "6" -> "7" [dir=forward tooltip="template-instance"] "10" -> "7" [dir=forward tooltip="template-instance"] "9" -> "5" [dir=forward tooltip="template-instance"] "4" -> "5" [dir=forward tooltip="template-instance"] "2" -> "3" [dir=forward tooltip="usage"] "2" -> "2" [dir=forward tooltip="usage"] "2" -> "8" [dir=forward tooltip="usage"] "2" -> "10" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "1" [dir=forward tooltip="usage"] "1" -> "11" [dir=forward tooltip="usage"] "1" -> "3" [dir=forward tooltip="usage"] "1" -> "8" [dir=forward tooltip="usage"] "11" -> "2" [dir=forward tooltip="usage"] "3" -> "4" [dir=forward tooltip="usage"] "3" -> "6" [dir=forward tooltip="usage"] "8" -> "9" [dir=forward tooltip="public-inheritance"] }

Subclassed by xlifepp::TensorKernel

Public Functions

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)#

basic constructor

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

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

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 short 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

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)