H2Lib
3.0
|
Substructure containing callback functions to different types of kernel evaluations. More...
#include <bem3d.h>
Data Fields | |
void(* | fundamental )(pcbem3d bem, const real(*X)[3], const real(*Y)[3], pamatrix V) |
Evaluate the fundamental solution at given point sets X and Y . More... | |
void(* | fundamental_wave )(pcbem3d bem, const real(*X)[3], const real(*Y)[3], pcreal dir, pamatrix V) |
Evaluate the modified fundamental solution in direction at given point sets X and Y . More... | |
void(* | dny_fundamental )(pcbem3d bem, const real(*X)[3], const real(*Y)[3], const real(*NY)[3], 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 )(pcbem3d bem, const real(*X)[3], const real(*NX)[3], const real(*Y)[3], const real(*NY)[3], 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)[3], pcbem3d bem, pamatrix A) |
Integrate the kernel function within the 1st component. More... | |
void(* | kernel_col )(const uint *idx, const real(*Z)[3], pcbem3d bem, pamatrix B) |
Integrate the kernel function within the 2nd component. More... | |
void(* | dnz_kernel_row )(const uint *idx, const real(*Z)[3], const real(*NZ)[3], pcbem3d 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)[3], const real(*NZ)[3], pcbem3d 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)[3], pcbem3d bem, pamatrix A) |
Integrate the fundamental solution within the 1st component. More... | |
void(* | fundamental_col )(const uint *idx, const real(*Z)[3], pcbem3d bem, pamatrix B) |
Integrate the fundamental solution within the 2nd component. More... | |
void(* | dnz_fundamental_row )(const uint *idx, const real(*Z)[3], const real(*NZ)[3], pcbem3d 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)[3], const real(*NZ)[3], pcbem3d 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, pcrealavector px, pcrealavector py, pcrealavector pz, pcbem3d bem, pamatrix V) |
Integrate the Lagrange polynomials or their derivatives within the 1st component. More... | |
void(* | lagrange_wave_row )(const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcreal dir, pcbem3d bem, pamatrix V) |
Integrate the modified Lagrange polynomials in direction or their derivatives within the 1st component. More... | |
void(* | lagrange_col )(const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcbem3d bem, pamatrix W) |
Integrate the Lagrange polynomials or their derivatives within the 2nd component. More... | |
void(* | lagrange_wave_col )(const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcreal dir, pcbem3d bem, pamatrix W) |
Integrate the modified Lagrange polynomials in direction 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 laplace-problem. But it can also be the complex field as in the helmholtz-equation or a vector valued function as in the lame-problem.
void(* dnx_dny_fundamental) (pcbem3d bem, const real(*X)[3], const real(*NX)[3], const real(*Y)[3], const real(*NY)[3], 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 .
bem | BEM-object containing additional information for computation of the matrix entries. |
X | An array of 3D-vectors. X[i][0] will be the first component of the i-th vector. Analogously X[i][1] will be the second component of the i-th 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 3D-vectors. Y[i][0] will be the first component of the i-th vector. Analogously Y[i][1] will be the second component of the i-th 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(* dny_fundamental) (pcbem3d bem, const real(*X)[3], const real(*Y)[3], const real(*NY)[3], pamatrix V) |
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 .
bem | BEM-object containing additional information for computation of the matrix entries. |
X | An array of 3D-vectors. X[i][0] will be the first component of the i-th vector. Analogously X[i][1] will be the second component of the i-th vector. The length of this array is determined by V->rows . |
Y | An array of 3D-vectors. Y[i][0] will be the first component of the i-th vector. Analogously Y[i][1] will be the second component of the i-th 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)[3], const real(*NZ)[3], pcbem3d 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 3D-vectors. Z[i][0] will be the first component of the i-th vector. Analogously Z[i][1] will be the second component of the i-th vector. The length of this array is determined by B->cols . |
NZ | An array Normal vectors corresponding to the vectors Z. |
bem | BEM-object 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)[3], const real(*NZ)[3], pcbem3d 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 3D-vectors. Z[i][0] will be the first component of the i-th vector. Analogously Z[i][1] will be the second component of the i-th vector. The length of this array is determined by A->cols . |
NZ | An array Normal vectors corresponding to the vectors Z. |
bem | BEM-object 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)[3], const real(*NZ)[3], pcbem3d 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 3D-vectors. Z[i][0] will be the first component of the i-th vector. Analogously Z[i][1] will be the second component of the i-th vector. The length of this array is determined by B->cols . |
NZ | An array Normal vectors corresponding to the vectors Z. |
bem | BEM-object 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)[3], const real(*NZ)[3], pcbem3d 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 3D-vectors. Z[i][0] will be the first component of the i-th vector. Analogously Z[i][1] will be the second component of the i-th vector. The length of this array is determined by A->cols . |
NZ | An array Normal vectors corresponding to the vectors Z. |
bem | BEM-object 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 .
bem | BEM-object containing additional information for computation of the matrix entries. |
X | An array of 3D-vectors. X[i][0] will be the first component of the i-th vector. Analogous X[i][1] will be the second component of the i-th vector. The length of this array is determined by V->rows . |
Y | An array of 3D-vectors. Y[i][0] will be the first component of the i-th vector. Analogous Y[i][1] will be the second component of the i-th 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 3D-vectors. Z[i][0] will be the first component of the i-th vector. Analogously Z[i][1] will be the second component of the i-th vector. The length of this array is determined by B->cols . |
bem | BEM-object 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 3D-vectors. Z[i][0] will be the first component of the i-th vector. Analogously Z[i][1] will be the second component of the i-th vector. The length of this array is determined by A->cols . |
bem | BEM-object containing additional information for computation of the matrix entries. |
A | A will contain the results of the integral evaluations. It applies
|
void(* fundamental_wave) (pcbem3d bem, const real(*X)[3], const real(*Y)[3], pcreal dir, pamatrix V) |
Evaluate the modified fundamental solution in direction at given point sets X
and Y
.
This callback will evaluate the modified fundamental solution with direction at points and store the result into matrix V at position .
bem | BEM-object containing additional information for computation of the matrix entries. |
X | An array of 3D-vectors. X[i][0] will be the first component of the i-th vector. Analogous X[i][1] will be the second component of the i-th vector. The length of this array is determined by V->rows . |
Y | An array of 3D-vectors. Y[i][0] will be the first component of the i-th vector. Analogous Y[i][1] will be the second component of the i-th vector. The length of this array is determined by V->cols . |
dir | Direction in which the modified fundamental solution should be evaluated. |
V | V will contain the results of the kernel 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 3D-vectors. Z[i][0] will be the first component of the i-th vector. Analogously Z[i][1] will be the second component of the i-th vector. The length of this array is determined by B->cols . |
bem | BEM-object 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 3D-vectors. Z[i][0] will be the first component of the i-th vector. Analogously Z[i][1] will be the second component of the i-th vector. The length of this array is determined by A->cols . |
bem | BEM-object containing additional information for computation of the matrix entries. |
A | A will contain the results of the integral evaluations. It applies
|
void(* lagrange_col) (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcbem3d bem, pamatrix W) |
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 x-direction. |
py | A Vector of type avector that contains interpolation points in y-direction. |
pz | A Vector of type avector that contains interpolation points in z-direction. |
bem | BEM-object 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 x-direction, Points in y-direction and Points in z-direction, then using the -th, the -th and the -th point will result in matrix index . |
void(* lagrange_row) (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcbem3d bem, pamatrix V) |
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 x-direction. |
py | A Vector of type avector that contains interpolation points in y-direction. |
pz | A Vector of type avector that contains interpolation points in z-direction. |
bem | BEM-object 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 x-direction, Points in y-direction and Points in z-direction, then using the -th, the -th and the -th point will result in matrix index . |
void(* lagrange_wave_col) (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcreal dir, pcbem3d bem, pamatrix W) |
Integrate the modified Lagrange polynomials in direction 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 x-direction. |
py | A Vector of type avector that contains interpolation points in y-direction. |
pz | A Vector of type avector that contains interpolation points in z-direction. |
dir | Direction in which the modified Lagrange polynomials should be evaluated. |
bem | BEM-object 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 x-direction, Points in y-direction and Points in z-direction, then using the -th, the -th and the -th point will result in matrix index . |
void(* lagrange_wave_row) (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcreal dir, pcbem3d bem, pamatrix V) |
Integrate the modified Lagrange polynomials in direction 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 x-direction. |
py | A Vector of type avector that contains interpolation points in y-direction. |
pz | A Vector of type avector that contains interpolation points in z-direction. |
dir | Direction in which the modified Lagrange polynomials should be evaluated. |
bem | BEM-object 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 x-direction, Points in y-direction and Points in z-direction, then using the -th, the -th and the -th point will result in matrix index . |