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 bem3d-object 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 bem3d-object 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 bem3d-object 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 bem3d-object 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 bem3d-object 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 bem3d-object 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 bem-object 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 bem3d-object for computation of double layer potential matrix plus a scalar times the mass matrix of the Helmholtz equation.
After calling this function the resulting bem-object 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 bem3d-object for computation of double layer potential matrix plus a scalar times the mass matrix of the Helmholtz equation.
After calling this function the resulting bem-object 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 bem3d-object for computation of single layer potential matrix of the Helmholtz equation.
After calling this function the resulting bem-object 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 bem3d-object for OpenCL computation of single layer potential matrix of the Helmholtz equation.
After calling this function the resulting bem-object 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. |