H2Lib
3.0

This module contains functions to setup and solve boundary integral equations for the Helmholtz problem in 3D. More...
Data Structures  
struct  _helmholtz_data 
Simple struct that containts the wavevector and some source point. More...  
Macros  
#define  KERNEL_CONST_HELMHOLTZBEM3D 0.0795774715459476679 
Constant that originates from the fundamental solution of the Helmholtz equation. The value is .  
Typedefs  
typedef struct _helmholtz_data  helmholtz_data 
Typedef of the struct _helmholtz_data.  
Functions  
pbem3d  new_slp_helmholtz_bem3d (field k, pcsurface3d gr, uint q_regular, uint q_singular, basisfunctionbem3d row_basis, basisfunctionbem3d col_basis) 
Creates a new bem3dobject for computation of single layer potential matrix of the Helmholtz equation. More...  
pbem3d  new_dlp_helmholtz_bem3d (field k, pcsurface3d gr, uint q_regular, uint q_singular, basisfunctionbem3d row_basis, basisfunctionbem3d col_basis, field alpha) 
Creates a new bem3dobject for computation of double layer potential matrix plus a scalar times the mass matrix of the Helmholtz equation. More...  
pbem3d  new_adlp_helmholtz_bem3d (field k, pcsurface3d gr, uint q_regular, uint q_singular, basisfunctionbem3d row_basis, basisfunctionbem3d col_basis, field alpha) 
Creates a new bem3dobject for computation of adjoint double layer potential matrix plus a scalar times the mass matrix of the Helmholtz equation. More...  
void  del_helmholtz_bem3d (pbem3d bem) 
Delete a bem3d object for the Helmholtz equation. More...  
field  rhs_dirichlet_point_helmholtzbem3d (const real *x, const real *n, const void *data) 
A function based upon the fundamental solution, that will serve as Dirichlet values. More...  
field  rhs_neumann_point_helmholtzbem3d (const real *x, const real *n, const void *data) 
A function based upon the fundamental solution, that will serve as Neumann values. More...  
field  rhs_robin_point_helmholtzbem3d (const real *x, const real *n, const void *data) 
A function based upon the fundamental solution, that will serve for Robin boundary conditions. More...  
field  rhs_dirichlet_plane_helmholtzbem3d (const real *x, const real *n, const void *data) 
A function based upon a plane wave, that will serve as Dirichlet values. More...  
field  rhs_neumann_plane_helmholtzbem3d (const real *x, const real *n, const void *data) 
A function based upon the plane wave, that will serve as Neumann values. More...  
field  rhs_robin_plane_helmholtzbem3d (const real *x, const real *n, const void *data) 
A function based upon the fundamental solution, that will serve for Robin boundary conditions. More...  
pbem3d  new_slp_helmholtz_ocl_bem3d (field k, pcsurface3d gr, uint q_regular, uint q_singular, basisfunctionbem3d row_basis, basisfunctionbem3d col_basis) 
Creates a new bem3dobject for OpenCL computation of single layer potential matrix of the Helmholtz equation. More...  
pbem3d  new_dlp_helmholtz_ocl_bem3d (field k, pcsurface3d gr, uint q_regular, uint q_singular, basisfunctionbem3d row_basis, basisfunctionbem3d col_basis, field alpha) 
Creates a new bem3dobject for computation of double layer potential matrix plus a scalar times the mass matrix of the Helmholtz equation. More...  
void  del_helmholtz_ocl_bem3d (pbem3d bem) 
Delete a bem3d object for the Helmholtz equation. More...  
This module contains functions to setup and solve boundary integral equations for the Helmholtz problem in 3D.
void del_helmholtz_bem3d  (  pbem3d  bem  ) 
Delete a bem3d object for the Helmholtz equation.
bem  Object to be deleted. 
void del_helmholtz_ocl_bem3d  (  pbem3d  bem  ) 
Delete a bem3d object for the Helmholtz equation.
bem  Object to be deleted. 
pbem3d new_adlp_helmholtz_bem3d  (  field  k, 
pcsurface3d  gr,  
uint  q_regular,  
uint  q_singular,  
basisfunctionbem3d  row_basis,  
basisfunctionbem3d  col_basis,  
field  alpha  
) 
Creates a new bem3dobject for computation of adjoint double layer potential matrix plus a scalar times the mass matrix of the Helmholtz equation.
After calling this function the resulting bemobject will provide all functionality that is necessary to build up fully populated adjoint double layer potential matrix and also hmatrix or h2matrix approximation of this matrix.
k  Wavenumber . 
gr  Surface mesh. 
q_regular  Order of gaussian quadrature used within computation of matrix entries for single integrals and regular double integrals. 
q_singular  Order of gaussian quadrature used within computation of matrix entries singular double integrals. 
row_basis  Type of basis functions that are used for the test space. Can be one of the values defined in basisfunctionbem3d. 
col_basis  Type of basis functions that are used for the trial space. Can be one of the values defined in basisfunctionbem3d. 
alpha  Adjoint double layer operator + mass matrix. 
pbem3d new_dlp_helmholtz_bem3d  (  field  k, 
pcsurface3d  gr,  
uint  q_regular,  
uint  q_singular,  
basisfunctionbem3d  row_basis,  
basisfunctionbem3d  col_basis,  
field  alpha  
) 
Creates a new bem3dobject for computation of double layer potential matrix plus a scalar times the mass matrix of the Helmholtz equation.
After calling this function the resulting bemobject will provide all functionality that is necessary to build up fully populated double layer potential matrix and also hmatrix or h2matrix approximation of this matrix.
k  Wavenumber . 
gr  Surface mesh. 
q_regular  Order of gaussian quadrature used within computation of matrix entries for single integrals and regular double integrals. 
q_singular  Order of gaussian quadrature used within computation of matrix entries singular double integrals. 
row_basis  Type of basis functions that are used for the test space. Can be one of the values defined in basisfunctionbem3d. 
col_basis  Type of basis functions that are used for the trial space. Can be one of the values defined in basisfunctionbem3d. 
alpha  Double layer operator + mass matrix. 
pbem3d new_dlp_helmholtz_ocl_bem3d  (  field  k, 
pcsurface3d  gr,  
uint  q_regular,  
uint  q_singular,  
basisfunctionbem3d  row_basis,  
basisfunctionbem3d  col_basis,  
field  alpha  
) 
Creates a new bem3dobject for computation of double layer potential matrix plus a scalar times the mass matrix of the Helmholtz equation.
After calling this function the resulting bemobject will provide all functionality that is necessary to build up fully populated double layer potential matrix and also hmatrix or h2matrix approximation of this matrix.
k  Wavenumber . 
gr  Surface mesh. 
q_regular  Order of gaussian quadrature used within computation of matrix entries for single integrals and regular double integrals. 
q_singular  Order of gaussian quadrature used within computation of matrix entries singular double integrals. 
row_basis  Type of basis functions that are used for the test space. Can be one of the values defined in basisfunctionbem3d. 
col_basis  Type of basis functions that are used for the trial space. Can be one of the values defined in basisfunctionbem3d. 
alpha  Double layer operator + mass matrix. 
pbem3d new_slp_helmholtz_bem3d  (  field  k, 
pcsurface3d  gr,  
uint  q_regular,  
uint  q_singular,  
basisfunctionbem3d  row_basis,  
basisfunctionbem3d  col_basis  
) 
Creates a new bem3dobject for computation of single layer potential matrix of the Helmholtz equation.
After calling this function the resulting bemobject will provide all functionality that is necessary to build up fully populated single layer potential matrix and also hmatrix or h2matrix approximation of this matrix.
k  Wavenumber . 
gr  Surface mesh 
q_regular  Order of gaussian quadrature used within computation of matrix entries for single integrals and regular double integrals. 
q_singular  Order of gaussian quadrature used within computation of matrix entries singular double integrals. 
row_basis  Type of basis functions that are used for the test space. Can be one of the values defined in basisfunctionbem3d. 
col_basis  Type of basis functions that are used for the trial space. Can be one of the values defined in basisfunctionbem3d. 
pbem3d new_slp_helmholtz_ocl_bem3d  (  field  k, 
pcsurface3d  gr,  
uint  q_regular,  
uint  q_singular,  
basisfunctionbem3d  row_basis,  
basisfunctionbem3d  col_basis  
) 
Creates a new bem3dobject for OpenCL computation of single layer potential matrix of the Helmholtz equation.
After calling this function the resulting bemobject will provide all functionality that is necessary to build up fully populated single layer potential matrix and also hmatrix or h2matrix approximation of this matrix.
k  Wavenumber . 
gr  Surface mesh 
q_regular  Order of gaussian quadrature used within computation of matrix entries for single integrals and regular double integrals. 
q_singular  Order of gaussian quadrature used within computation of matrix entries singular double integrals. 
row_basis  Type of basis functions that are used for the test space. Can be one of the values defined in basisfunctionbem3d. 
col_basis  Type of basis functions that are used for the trial space. Can be one of the values defined in basisfunctionbem3d. 
A function based upon a plane wave, that will serve as Dirichlet values.
When computing the Neumann data out of the Dirichlet data one can use this function as test data which will generate Dirichlet values of with the following values:
where is some arbitrarily chosen source point and can be set via data>source
. Corresponding Neumann data can be generated by using rhs_neumann_plane_helmholtzbem3d.
To build up an appropriate Dirichlet data coefficient vector one needs the projection. This can be done by passing this function to projectL2_bem3d_c_avector for piecewise constant basis functions or to projectL2_bem3d_l_avector for piecewise linear basis functions.
x  Evaluation point. 
n  Normal vector to current evaluation point. 
data  Additional data for evaluating the functional. Here a pointer to a helmholtz_data object is expected. 
A function based upon the fundamental solution, that will serve as Dirichlet values.
When computing the Neumann data out of the Dirichlet data one can use this function as test data which will generate Dirichlet values of with the following values:
where is some arbitrarily chosen source point and can be set via data>source
. Corresponding Neumann data can be generated by using rhs_neumann_point_helmholtzbem3d.
To build up an appropriate Dirichlet data coefficient vector one needs the projection. This can be done by passing this function to projectL2_bem3d_c_avector for piecewise constant basis functions or to projectL2_bem3d_l_avector for piecewise linear basis functions.
x  Evaluation point. 
n  Normal vector to current evaluation point. 
data  Additional data for evaluating the functional. Here a pointer to a helmholtz_data object is expected. 
A function based upon the plane wave, that will serve as Neumann values.
When computing the Neumann data out of the Dirichlet data one can use this function as test data which will generate Dirichlet values of with the following values:
where is some arbitrarily chosen source point and can be set via data>source
. Corresponding Dirichlet data can be generated by using rhs_dirichlet_plane_helmholtzbem3d.
To build up an appropriate Neumann data coefficient vector one needs the projection. This can be done by passing this function to projectL2_bem3d_c_avector for piecewise constant basis functions or to projectL2_bem3d_l_avector for piecewise linear basis functions.
x  Evaluation point. 
n  Normal vector to current evaluation point. 
data  Additional data for evaluating the functional. Here a pointer to a helmholtz_data object is expected. 
A function based upon the fundamental solution, that will serve as Neumann values.
When computing the Neumann data out of the Dirichlet data one can use this function as test data which will generate Dirichlet values of with the following values:
where is some arbitrarily chosen source point and can be set via data>source
. Corresponding Dirichlet data can be generated by using rhs_dirichlet_point_helmholtzbem3d.
To build up an appropriate Neumann data coefficient vector one needs the projection. This can be done by passing this function to projectL2_bem3d_c_avector for piecewise constant basis functions or to projectL2_bem3d_l_avector for piecewise linear basis functions.
x  Evaluation point. 
n  Normal vector to current evaluation point. 
data  Additional data for evaluating the functional. Here a pointer to a helmholtz_data object is expected. 
A function based upon the fundamental solution, that will serve for Robin boundary conditions.
This function is a linear combination of rhs_dirichlet_plane_helmholtzbem3d and rhs_neumann_plane_helmholtzbem3d and serves as Robin boundary condition. The function is evaluated as:
where is some arbitrarily chosen source point and can be set via data>source
. The coefficient can be set via data>eta
.
To build up an appropriate coefficient vector one needs the some integration on the boundary. This can be done by passing this function to integrate_bem3d_c_avector for piecewise constant basis functions or to integrate_bem3d_l_avector for piecewise linear basis functions.
x  Evaluation point. 
n  Normal vector to current evaluation point. 
data  Additional data for evaluating the functional. Here a pointer to a helmholtz_data object is expected. 
A function based upon the fundamental solution, that will serve for Robin boundary conditions.
This function is a linear combination of rhs_dirichlet_point_helmholtzbem3d and rhs_neumann_point_helmholtzbem3d and serves as Robin boundary condition. The function is evaluated as:
where is some arbitrarily chosen source point and can be set via data>source
. The coefficient can be set via data>eta
.
To build up an appropriate coefficient vector one needs the some integration on the boundary. This can be done by passing this function to integrate_bem3d_c_avector for piecewise constant basis functions or to integrate_bem3d_l_avector for piecewise linear basis functions.
x  Evaluation point. 
n  Normal vector to current evaluation point. 
data  Additional data for evaluating the functional. Here a pointer to a helmholtz_data object is expected. 