H2Lib
3.0

Substructure containing callback functions to different types of kernel evaluations. More...
#include <bem2d.h>
Data Fields  
void(*  fundamental )(const real(*X)[2], const real(*Y)[2], pamatrix V) 
Evaluate the fundamental solution at given point sets X and Y More...  
void(*  dny_fundamental )(const real(*X)[2], const real(*Y)[2], const real(*NY)[2], pamatrix V) 
Evaluate the normal derivative of the fundamental solution in respect to the 2nd component at given point sets X and Y More...  
void(*  dnx_dny_fundamental )(const real(*X)[2], const real(*NX)[2], const real(*Y)[2], const real(*NY)[2], pamatrix V) 
Evaluate the normal derivatives of the fundamental solution in respect to the 1st and 2nd component at given point sets X and Y More...  
void(*  kernel_row )(const uint *idx, const real(*Z)[2], pcbem2d bem, pamatrix A) 
Integrate the kernel function within the 1st component. More...  
void(*  kernel_col )(const uint *idx, const real(*Z)[2], pcbem2d bem, pamatrix B) 
Integrate the kernel function within the 2nd component. More...  
void(*  dnz_kernel_row )(const uint *idx, const real(*Z)[2], const real(*NZ)[2], pcbem2d bem, pamatrix A) 
Integrate the normal derivative of the kernel function with respect to the 2nd component within the 1st component. More...  
void(*  dnz_kernel_col )(const uint *idx, const real(*Z)[2], const real(*NZ)[2], pcbem2d bem, pamatrix B) 
Integrate the normal derivative of the kernel function with respect to the 1st component within the 2nd component. More...  
void(*  fundamental_row )(const uint *idx, const real(*Z)[2], pcbem2d bem, pamatrix A) 
Integrate the fundamental solution within the 1st component. More...  
void(*  fundamental_col )(const uint *idx, const real(*Z)[2], pcbem2d bem, pamatrix B) 
Integrate the fundamental solution within the 2nd component. More...  
void(*  dnz_fundamental_row )(const uint *idx, const real(*Z)[2], const real(*NZ)[2], pcbem2d bem, pamatrix A) 
Integrate the normal derivative of the fundamental solution with respect to the 2nd component within the 1st component. More...  
void(*  dnz_fundamental_col )(const uint *idx, const real(*Z)[2], const real(*NZ)[2], pcbem2d bem, pamatrix B) 
Integrate the normal derivative of the fundamental solution with respect to the 1st component within the 2nd component. More...  
void(*  lagrange_row )(const uint *idx, pcavector px, pcavector py, pcbem2d bem, pamatrix V) 
Integrate the Lagrange polynomials or their derivatives within the 1st component. More...  
void(*  lagrange_col )(const uint *idx, pcavector px, pcavector py, pcbem2d bem, pamatrix W) 
Integrate the Lagrange polynomials or their derivatives within the 2nd component. More...  
Substructure containing callback functions to different types of kernel evaluations.
This struct consists of a set of callback function, that will evaluate the kernel, its derivatives or integrals over the kernel and / or its derivatives. Of course they depend on an appropriate problem to be solved. The kernel function will be a function of the following form:
In many application the field will just be the field of the real number , as in the laplaceproblem. But it can also be the complex field as in the helmholtzequation or a vector valued function as in the lameproblem.
void(* dnx_dny_fundamental) (const real(*X)[2], const real(*NX)[2], const real(*Y)[2], const real(*NY)[2], pamatrix V) 
Evaluate the normal derivatives of the fundamental solution in respect to the 1st and 2nd component at given point sets X
and Y
This callback will evaluate the normal derivatives of the fundamental solution corresponding to and at points and store the result into matrix V at position .
X  An array of 2Dvectors. X[i][0] will be the first component of the ith vector. Analogously X[i][1] will be the second component of the ith vector. The length of this array is determined by V>rows . 
NX  An array of normal vectors correspoding to the vectors defined by X and are stored in the same way as X and Y. 
Y  An array of 2Dvectors. Y[i][0] will be the first component of the ith vector. Analogously Y[i][1] will be the second component of the ith vector. The length of this array is determined by V>cols . 
NY  An array of normal vectors correspoding to the vectors defined by Y and are stored in the same way as X and Y. 
V  V will contain the results of the kernel evaluations. It applies

Evaluate the normal derivative of the fundamental solution in respect to the 2nd component at given point sets X
and Y
This callback will evaluate the normal derivatives of the fundamental solution corresponding to at points and store the result into matrix V at position .
X  An array of 2Dvectors. X[i][0] will be the first component of the ith vector. Analogously X[i][1] will be the second component of the ith vector. The length of this array is determined by V>rows . 
Y  An array of 2Dvectors. Y[i][0] will be the first component of the ith vector. Analogously Y[i][1] will be the second component of the ith vector. The length of this array is determined by V>cols . 
NY  An array of normal vectors correspoding to the vectors defined by Y and are stored in the same way as X and Y. 
V  V will contain the results of the kernel evaluations. It applies

void(* dnz_fundamental_col) (const uint *idx, const real(*Z)[2], const real(*NZ)[2], pcbem2d bem, pamatrix B) 
Integrate the normal derivative of the fundamental solution with respect to the 1st component within the 2nd component.
This callback will evaluate the integral
idx  This array describes the permutation of the degrees of freedom. Its length is determined by B>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
Z  An array of 2Dvectors. Z[i][0] will be the first component of the ith vector. Analogously Z[i][1] will be the second component of the ith vector. The length of this array is determined by B>cols . 
NZ  An array Normal vectors corresponding to the vectors Z. 
bem  BEMobject containing additional information for computation of the matrix entries. 
B  B will contain the results of the integral evaluations. It applies

void(* dnz_fundamental_row) (const uint *idx, const real(*Z)[2], const real(*NZ)[2], pcbem2d bem, pamatrix A) 
Integrate the normal derivative of the fundamental solution with respect to the 2nd component within the 1st component.
This callback will evaluate the integral
idx  This array describes the permutation of the degrees of freedom. Its length is determined by A>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
Z  An array of 2Dvectors. Z[i][0] will be the first component of the ith vector. Analogously Z[i][1] will be the second component of the ith vector. The length of this array is determined by A>cols . 
NZ  An array Normal vectors corresponding to the vectors Z. 
bem  BEMobject containing additional information for computation of the matrix entries. 
A  A will contain the results of the integral evaluations. It applies

void(* dnz_kernel_col) (const uint *idx, const real(*Z)[2], const real(*NZ)[2], pcbem2d bem, pamatrix B) 
Integrate the normal derivative of the kernel function with respect to the 1st component within the 2nd component.
This callback will evaluate the integral
with being a kernel function depending on a specific integral operator. In case of the single layer potential it applies . But in case of the double layer potential e.g. it applies .
idx  This array describes the permutation of the degrees of freedom. Its length is determined by B>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
Z  An array of 2Dvectors. Z[i][0] will be the first component of the ith vector. Analogously Z[i][1] will be the second component of the ith vector. The length of this array is determined by B>cols . 
NZ  An array Normal vectors corresponding to the vectors Z. 
bem  BEMobject containing additional information for computation of the matrix entries. 
B  B will contain the results of the integral evaluations. It applies

void(* dnz_kernel_row) (const uint *idx, const real(*Z)[2], const real(*NZ)[2], pcbem2d bem, pamatrix A) 
Integrate the normal derivative of the kernel function with respect to the 2nd component within the 1st component.
This callback will evaluate the integral
with being a kernel function depending on a specific integral operator. In case of the single layer potential it applies . But in case of the double layer potential e.g. it applies .
idx  This array describes the permutation of the degrees of freedom. Its length is determined by A>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
Z  An array of 2Dvectors. Z[i][0] will be the first component of the ith vector. Analogously Z[i][1] will be the second component of the ith vector. The length of this array is determined by A>cols . 
NZ  An array Normal vectors corresponding to the vectors Z. 
bem  BEMobject containing additional information for computation of the matrix entries. 
A  A will contain the results of the integral evaluations. It applies

Evaluate the fundamental solution at given point sets X
and Y
This callback will evaluate the fundamental solution at points and store the result into matrix V at position .
X  An array of 2Dvectors. X[i][0] will be the first component of the ith vector. Analogous X[i][1] will be the second component of the ith vector. The length of this array is determined by V>rows . 
Y  An array of 2Dvectors. Y[i][0] will be the first component of the ith vector. Analogous Y[i][1] will be the second component of the ith vector. The length of this array is determined by V>cols . 
V  V will contain the results of the kernel evaluations. It applies

Integrate the fundamental solution within the 2nd component.
This callback will evaluate the integral
idx  This array describes the permutation of the degrees of freedom. Its length is determined by B>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
Z  An array of 2Dvectors. Z[i][0] will be the first component of the ith vector. Analogously Z[i][1] will be the second component of the ith vector. The length of this array is determined by B>cols . 
bem  BEMobject containing additional information for computation of the matrix entries. 
B  B will contain the results of the integral evaluations. It applies

Integrate the fundamental solution within the 1st component.
This callback will evaluate the integral
idx  This array describes the permutation of the degrees of freedom. Its length is determined by A>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
Z  An array of 2Dvectors. Z[i][0] will be the first component of the ith vector. Analogously Z[i][1] will be the second component of the ith vector. The length of this array is determined by A>cols . 
bem  BEMobject containing additional information for computation of the matrix entries. 
A  A will contain the results of the integral evaluations. It applies

Integrate the kernel function within the 2nd component.
This callback will evaluate the integral
with being a kernel function depending on a specific integral operator. In case of the single layer potential it applies . But in case of the double layer potential e.g. it applies .
idx  This array describes the permutation of the degrees of freedom. Its length is determined by B>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
Z  An array of 2Dvectors. Z[i][0] will be the first component of the ith vector. Analogously Z[i][1] will be the second component of the ith vector. The length of this array is determined by B>cols . 
bem  BEMobject containing additional information for computation of the matrix entries. 
B  B will contain the results of the integral evaluations. It applies

Integrate the kernel function within the 1st component.
This callback will evaluate the integral
with being a kernel function depending on a specific integral operator. In case of the single layer potential it applies . But in case of the double layer potential e.g. it applies .
idx  This array describes the permutation of the degrees of freedom. Its length is determined by A>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
Z  An array of 2Dvectors. Z[i][0] will be the first component of the ith vector. Analogously Z[i][1] will be the second component of the ith vector. The length of this array is determined by A>cols . 
bem  BEMobject containing additional information for computation of the matrix entries. 
A  A will contain the results of the integral evaluations. It applies

Integrate the Lagrange polynomials or their derivatives within the 2nd component.
This callback will evaluate the integral
with being a Lagrange polynomial or its derivative.
idx  This array describes the permutation of the degrees of freedom. Its length is determined by W>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
px  A Vector of type avector that contains interpolation points in xdirection. 
py  A Vector of type avector that contains interpolation points in ydirection. 
bem  BEMobject containing additional information for computation of the matrix entries. 
W  W will contain the results of the integral evaluations. It applies The index is computed in a tensor way. Having Points in xdirection and Points in ydirection, then using the th and the the th point will result in matrix index . 
Integrate the Lagrange polynomials or their derivatives within the 1st component.
This callback will evaluate the integral
with being a Lagrange polynomial or its derivative.
idx  This array describes the permutation of the degrees of freedom. Its length is determined by V>rows . In case idx == NULL it is assumed the degrees of freedom are instead. 
px  A Vector of type avector that contains interpolation points in xdirection. 
py  A Vector of type avector that contains interpolation points in ydirection. 
bem  BEMobject containing additional information for computation of the matrix entries. 
V  V will contain the results of the integral evaluations. It applies The index is computed in a tensor way. Having Points in xdirection and Points in ydirection, then using the th and the th point will result in matrix index . 