533 void (*dny_fundamental)(
const real (*X)[2],
const real (*Y)[2],
562 void (*dnx_dny_fundamental)(
const real (*X)[2],
const real (*NX)[2],
655 void (*dnz_kernel_row)(
const uint *idx,
const real (*Z)[2],
const real (*NZ)[2],
689 void (*dnz_kernel_col)(
const uint *idx,
const real (*Z)[2],
const real (*NZ)[2],
772 void (*dnz_fundamental_row)(
const uint *idx,
const real (*Z)[2],
802 void (*dnz_fundamental_col)(
const uint *idx,
const real (*Z)[2],
1026 real accur_recomp,
bool coarsen,
real accur_coarsen);
1593 real accur_hiercomp);
void setup_hmatrix_aprx_inter_row_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m)
This function initializes the bem2d object for approximating a matrix with tensorinterpolation within...
void assemblecoarsen_bem2d_hmatrix(pbem2d bem, pblock b, phmatrix G)
Fills an hmatrix with a predefined approximation technique using coarsening strategy.
void setup_h2matrix_aprx_greenhybrid_bem2d(pbem2d bem, pcclusterbasis rb, pcclusterbasis cb, pcblock tree, uint m, uint l, real delta, real accur, quadpoints2d quadpoints)
Initialize the bem2d object for approximating a h2matrix with green's method and ACA based recompress...
real * mass
Mass-matrix of reference basis functions.
Definition: bem2d.h:252
field(* boundary_func2d)(const real *x, const real *n)
Definition: bem2d.h:185
void assemble_bem2d_h2matrix_col_clusterbasis(pcbem2d bem, pclusterbasis cb)
This function computes the matrix entries for the nested clusterbasis .
void assemble_bem2d_dn_lagrange_const_amatrix(const uint *idx, pcavector px, pcavector py, pcbem2d bem, pamatrix V)
This function will integrate the normal derivatives of the Lagrange polynomials on the boundary domai...
void(* leaf_row)(pcbem2d bem, pclusterbasis rb, uint rname)
Computes the the matrix for a leaf cluster .
Definition: bem2d.h:365
pclustergeometry build_bem2d_const_clustergeometry(pcbem2d bem, uint **idx)
Creates a clustergeometry object for a BEM-Problem using piecewise constant basis functions...
pbem2d new_bem2d(pccurve2d gr)
Main constructor for bem2d objects.
const aprxbem2d * pcaprxbem2d
Definition: bem2d.h:87
This struct collects all type of quadrature formulas needed by the computation of matrix entries with...
Definition: singquad1d.h:39
void build_bem2d_rect_quadpoints(pcbem2d bem, const real a[2], const real b[2], const real delta, real(**Z)[2], real(**N)[2])
Generating quadrature points, weights and normal vectors on a rectangular parameterization.
void setup_hmatrix_aprx_aca_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, real accur)
Approximate matrix block with ACA using full pivoting.
void(* quadpoints2d)(pcbem2d bem, const real bmin[2], const real bmax[2], const real delta, real(**Z)[2], real(**N)[2])
Callback function type for parameterizations.
Definition: bem2d.h:140
uint N_neumann
Number of degrees of freedom for neumann data.
Definition: bem2d.h:227
void(* farfield_rk)(pccluster rc, uint rname, pccluster cc, uint cname, pcbem2d bem, prkmatrix R)
Computes rank-k-approximations of a given block.
Definition: bem2d.h:321
Representation of a polygon in 2D.
Definition: curve2d.h:46
Representation of -matrices.
Definition: h2matrix.h:48
void assemble_bem2d_hmatrix(pbem2d bem, pblock b, phmatrix G)
Fills an hmatrix with a predefined approximation technique.
pclustergeometry build_bem2d_clustergeometry(pcbem2d bem, uint **idx, basisfunctionbem2d basis)
Creates a clustergeometry object for a BEM-Problem using the type of basis functions specified by bas...
void assemblehiercomp_bem2d_h2matrix(pbem2d bem, pblock b, ph2matrix G)
Fills an h2matrix with a predefined approximation technique using hierarchical recompression.
Representation of -matrices.
Definition: hmatrix.h:49
Representation of a cluster basis.
Definition: clusterbasis.h:40
enum _basisfunctionbem2d basisfunctionbem2d
Definition: bem2d.h:170
Enum value to represent piecewise constant basis functions.
Definition: bem2d.h:160
const parbem2d * pcparbem2d
Definition: bem2d.h:102
uint N_dirichlet
Number of degrees of freedom for dirichlet data.
Definition: bem2d.h:237
void(* transfer_row)(pcbem2d bem, pclusterbasis rb, uint rname)
Computes the transfermatrices for a cluster .
Definition: bem2d.h:408
const kernelbem2d * pckernelbem2d
Definition: bem2d.h:119
struct _parbem2d parbem2d
Definition: bem2d.h:94
void setup_hmatrix_aprx_greenhybrid_col_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, real accur, quadpoints2d quadpoints)
creating hmatrix approximation using green's method with column cluster connected with recompression ...
unsigned uint
Unsigned integer type.
Definition: settings.h:70
void(* transfer_col)(pcbem2d bem, pclusterbasis cb, uint cname)
Computes the transfermatrices for a cluster .
Definition: bem2d.h:430
pamatrix build_bem2d_amatrix(pccluster row, pccluster col, void *data)
For a block defined by row and col this function will compute the full submatrix and return an amatri...
void projectl2_bem2d_const_avector(pbem2d bem, field(*rhs)(const real *x, const real *n), pavector f)
Computes the -projection of a given function using piecewise constant basis functions.
double _Complex field
Field type.
Definition: settings.h:171
void build_bem2d_circle_quadpoints(pcbem2d bem, const real a[2], const real b[2], const real delta, real(**Z)[2], real(**N)[2])
Generating quadrature points, weights and normal vectors on a circular parameterization.
basisfunctionbem2d basis_dirichlet
Type of basis function for dirichlet-data.
Definition: bem2d.h:242
void setup_hmatrix_aprx_greenhybrid_mixed_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, real accur, quadpoints2d quadpoints)
creating hmatrix approximation using green's method with row or column cluster connected with recompr...
Representation of a clustergeometry object.
Definition: clustergeometry.h:45
void setup_hmatrix_recomp_bem2d(pbem2d bem, bool recomp, real accur_recomp, bool coarsen, real accur_coarsen)
Initialize the bem object for on the fly recompression techniques.
uint * v2ts
Vertex to triangle map stating indices.
Definition: bem2d.h:274
Main container object for computation of BEM related matrices and vectors.
Definition: bem2d.h:205
aprxbem2d * paprxbem2d
Definition: bem2d.h:83
pparbem2d par
Some helpers to make parallel computations possible.
Definition: bem2d.h:448
void setup_h2matrix_recomp_bem2d(pbem2d bem, bool hiercomp, real accur_hiercomp)
Enables hierarchical recompression for hmatrices.
basisfunctionbem2d basis_neumann
Type of basis function for neumann-data.
Definition: bem2d.h:232
struct _aprxbem2d aprxbem2d
Definition: bem2d.h:79
void setup_h2matrix_aprx_inter_bem2d(pbem2d bem, pcclusterbasis rb, pcclusterbasis cb, pcblock tree, uint m)
Initialize the bem2d object for approximating a h2matrix with tensorinterpolation.
pcluster build_bem2d_cluster(pcbem2d bem, uint clf, basisfunctionbem2d basis)
Creates a clustertree for specified basis functions.
void(* leaf_col)(pcbem2d bem, pclusterbasis cb, uint cname)
Computes the the matrix for a leaf cluster .
Definition: bem2d.h:386
psingquad1d sq
Quadrature rules used within BEM computation.
Definition: bem2d.h:222
void setup_h2matrix_aprx_greenhybrid_ortho_bem2d(pbem2d bem, pcclusterbasis rb, pcclusterbasis cb, pcblock tree, uint m, uint l, real delta, real accur, quadpoints2d quadpoints)
Initialize the bem2d object for approximating a h2matrix with green's method and ACA based recompress...
pccurve2d gr
Polygonal two dimensional mesh.
Definition: bem2d.h:212
Substructure containing callback functions to different types of kernel evaluations.
Definition: bem2d.h:486
_basisfunctionbem2d
Possible types of basis functions.
Definition: bem2d.h:152
Enum value to represent piecewise linear basis functions.
Definition: bem2d.h:164
prkmatrix build_bem2d_rkmatrix(pccluster row, pccluster col, void *data)
For a block defined by row and col this function will build a rank-k-approximation and return the rkm...
field alpha
Boundary integral operator + mass matrix.
Definition: bem2d.h:257
paprxbem2d aprx
A collection of necessary data structures for approximating matrices with various techniques...
Definition: bem2d.h:439
void setup_hmatrix_aprx_paca_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, real accur)
Approximate matrix block with ACA using partial pivoting.
#define HEADER_PREFIX
Prefix for function declarations.
Definition: settings.h:43
void assemble_bem2d_lagrange_const_amatrix(const uint *idx, pcavector px, pcavector py, pcbem2d bem, pamatrix V)
This function will integrate Lagrange polynomials on the boundary domain using piecewise constant bas...
double real
real floating point type.
Definition: settings.h:97
bem2d * pbem2d
Definition: bem2d.h:66
kernelbem2d * pkernelbem2d
Definition: bem2d.h:114
void(* nearfield)(const uint *ridx, const uint *cidx, pcbem2d bem, bool ntrans, pamatrix N)
Computes nearfield entries of Galerkin matrices.
Definition: bem2d.h:298
void setup_hmatrix_aprx_hca_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m, real accur)
Approximate matrix block with hybrid cross approximation using Interpolation and ACA with full pivoti...
Representation of block trees.
Definition: block.h:48
void assemble_bem2d_h2matrix(pbem2d bem, pblock b, ph2matrix G)
Fills an h2matrix with a predefined approximation technique.
Dummy value, should never be used.
Definition: bem2d.h:156
Representation of cluster trees.
Definition: cluster.h:40
void assemble_bem2d_h2matrix_row_clusterbasis(pcbem2d bem, pclusterbasis rb)
This function computes the matrix entries for the nested clusterbasis .
Representation of a low-rank matrix in factorized form .
Definition: rkmatrix.h:36
void setup_hmatrix_aprx_green_col_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, quadpoints2d quadpoints)
creating hmatrix approximation using green's method with column cluster .
void setup_hmatrix_aprx_greenhybrid_row_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, real accur, quadpoints2d quadpoints)
creating hmatrix approximation using green's method with row cluster connected with recompression tec...
Representation of a matrix as an array in column-major order.
Definition: amatrix.h:43
void(* farfield_u)(uint rname, uint cname, pcbem2d bem, puniform U)
Computes coupling matrix for uniform matrices.
Definition: bem2d.h:344
void setup_hmatrix_aprx_inter_mixed_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m)
This function initializes the bem2d object for approximating a matrix with tensorinterpolation within...
uint * v2t
vertex to triangle map.
Definition: bem2d.h:266
void assemble_bem2d_lagrange_amatrix(const real(*X)[2], pcavector px, pcavector py, pamatrix V)
This function will evaluate the Lagrange polynomials in a given point set X and store the results in ...
void setup_hmatrix_aprx_green_mixed_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, quadpoints2d quadpoints)
creating hmatrix approximation using green's method with one of row or column cluster ...
void del_bem2d(pbem2d bem)
Destructor for bem2d objects.
const bem2d * pcbem2d
Definition: bem2d.h:70
void setup_hmatrix_aprx_green_row_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, quadpoints2d quadpoints)
creating hmatrix approximation using green's method with row cluster .
pclustergeometry build_bem2d_linear_clustergeometry(pcbem2d bem, uint **idx)
Creates a clustergeometry object for a BEM-Problem using linear basis functions.
void setup_hmatrix_aprx_inter_col_bem2d(pbem2d bem, pccluster rc, pccluster cc, pcblock tree, uint m)
This function initializes the bem2d object for approximating a matrix with tensorinterpolation within...
parbem2d * pparbem2d
Definition: bem2d.h:98
pkernelbem2d kernels
A collection of callback functions for different types of kernel evaluations.
Definition: bem2d.h:466