H2Lib  3.0
Data Structures | Typedefs | Enumerations | Functions
bem3d.h File Reference
#include <stdio.h>
#include <omp.h>
#include "basic.h"
#include "amatrix.h"
#include "gaussquad.h"
#include "factorizations.h"
#include "krylov.h"
#include "sparsematrix.h"
#include "cluster.h"
#include "clustergeometry.h"
#include "block.h"
#include "hmatrix.h"
#include "clusterbasis.h"
#include "h2matrix.h"
#include "dcluster.h"
#include "dblock.h"
#include "dclusterbasis.h"
#include "dh2matrix.h"
#include "krylovsolvers.h"
#include "hcoarsen.h"
#include "h2update.h"
#include "aca.h"
#include "macrosurface3d.h"
#include "surface3d.h"
#include "singquad2d.h"

Go to the source code of this file.

Data Structures

struct  _bem3d
 Main container object for computation of BEM related matrices and vectors. More...
 
struct  _kernelbem3d
 Substructure containing callback functions to different types of kernel evaluations. More...
 
struct  _listnode
 simple singly linked list to store unsigned inter values. More...
 
struct  _tri_list
 Simple singly connected list to efficiently store a list of triangles. More...
 
struct  _vert_list
 Simple singly connected list to efficiently store a list of vertices. More...
 

Typedefs

typedef struct _bem3d bem3d
 
typedef bem3dpbem3d
 
typedef const bem3dpcbem3d
 
typedef struct _aprxbem3d aprxbem3d
 
typedef aprxbem3dpaprxbem3d
 
typedef const aprxbem3dpcaprxbem3d
 
typedef struct _parbem3d parbem3d
 
typedef parbem3dpparbem3d
 
typedef const parbem3dpcparbem3d
 
typedef struct _kernelbem3d kernelbem3d
 
typedef kernelbem3dpkernelbem3d
 
typedef const kernelbem3dpckernelbem3d
 
typedef void(* quadpoints3d) (pcbem3d bem, const real bmin[3], const real bmax[3], const real delta, real(**Z)[3], real(**N)[3])
 Callback function type for parameterizations. More...
 
typedef enum _basisfunctionbem3d basisfunctionbem3d
 
typedef field(* boundary_func3d) (const real *x, const real *n, void *data)
 
typedef field(* kernel_func3d) (const real *x, const real *y, const real *nx, const real *ny, void *data)
 Evaluate a fundamental solution or its normal derivatives at points x and y. More...
 
typedef field(* kernel_wave_func3d) (const real *x, const real *y, const real *nx, const real *ny, pcreal dir, void *data)
 Evaluate a modified fundamental solution or its normal derivatives at points x and y. More...
 
typedef struct _listnode listnode
 
typedef listnodeplistnode
 
typedef struct _tri_list tri_list
 
typedef tri_listptri_list
 
typedef struct _vert_list vert_list
 
typedef vert_listpvert_list
 

Enumerations

enum  _basisfunctionbem3d { BASIS_NONE_BEM3D = 0, BASIS_CONSTANT_BEM3D = 'c', BASIS_LINEAR_BEM3D = 'l' }
 Possible types of basis functions. More...
 

Functions

pvert_list new_vert_list (pvert_list next)
 Create a new list to store a number of vertex indices. More...
 
void del_vert_list (pvert_list vl)
 Recursively deletes a vert_list. More...
 
ptri_list new_tri_list (ptri_list next)
 Create a new list to store a number of triangles indices. More...
 
void del_tri_list (ptri_list tl)
 Recursively deletes a tri_list. More...
 
pbem3d new_bem3d (pcsurface3d gr, basisfunctionbem3d row_basis, basisfunctionbem3d col_basis)
 Main constructor for bem3d objects. More...
 
void del_bem3d (pbem3d bem)
 Destructor for bem3d objects. More...
 
pclustergeometry build_bem3d_const_clustergeometry (pcbem3d bem, uint **idx)
 Creates a clustergeometry object for a BEM-Problem using piecewise constant basis functions. More...
 
pclustergeometry build_bem3d_linear_clustergeometry (pcbem3d bem, uint **idx)
 Creates a clustergeometry object for a BEM-Problem using linear basis functions. More...
 
pclustergeometry build_bem3d_clustergeometry (pcbem3d bem, uint **idx, basisfunctionbem3d basis)
 Creates a clustergeometry object for a BEM-Problem using the type of basis functions specified by basis. More...
 
pcluster build_bem3d_cluster (pcbem3d bem, uint clf, basisfunctionbem3d basis)
 Creates a clustertree for specified basis functions. More...
 
void assemble_cc_near_bem3d (const uint *ridx, const uint *cidx, pcbem3d bem, bool ntrans, pamatrix N, kernel_func3d kernel)
 Compute general entries of a boundary integral operator with piecewise constant basis functions for both Ansatz and test functions. More...
 
void assemble_cc_far_bem3d (const uint *ridx, const uint *cidx, pcbem3d bem, bool ntrans, pamatrix N, kernel_func3d kernel)
 Compute general entries of a boundary integral operator with piecewise constant basis functions for both Ansatz and test functions. More...
 
void assemble_cl_near_bem3d (const uint *ridx, const uint *cidx, pcbem3d bem, bool ntrans, pamatrix N, kernel_func3d kernel)
 Compute general entries of a boundary integral operator with piecewise constant basis functions for Test and piecewise linear basis functions for Ansatz functions. More...
 
void assemble_cl_far_bem3d (const uint *ridx, const uint *cidx, pcbem3d bem, bool ntrans, pamatrix N, kernel_func3d kernel)
 Compute general entries of a boundary integral operator with piecewise constant basis functions for Test and piecewise linear basis functions for Ansatz functions. More...
 
void assemble_lc_near_bem3d (const uint *ridx, const uint *cidx, pcbem3d bem, bool ntrans, pamatrix N, kernel_func3d kernel)
 Compute general entries of a boundary integral operator with piecewise linear basis functions for Test and piecewise contant basis functions for Ansatz functions. More...
 
void assemble_lc_far_bem3d (const uint *ridx, const uint *cidx, pcbem3d bem, bool ntrans, pamatrix N, kernel_func3d kernel)
 Compute general entries of a boundary integral operator with piecewise linear basis functions for Test and piecewise contant basis functions for Ansatz functions. More...
 
void assemble_ll_near_bem3d (const uint *ridx, const uint *cidx, pcbem3d bem, bool ntrans, pamatrix N, kernel_func3d kernel)
 Compute general entries of a boundary integral operator with piecewise linear basis functions for both Ansatz and test functions. More...
 
void assemble_ll_far_bem3d (const uint *ridx, const uint *cidx, pcbem3d bem, bool ntrans, pamatrix N, kernel_func3d kernel)
 Compute general entries of a boundary integral operator with piecewise linear basis functions for both Ansatz and test functions. More...
 
void fill_bem3d (pcbem3d bem, const real(*X)[3], const real(*Y)[3], const real(*NX)[3], const real(*NY)[3], pamatrix V, kernel_func3d kernel)
 Evaluate a kernel function $g$ at some points $x_i$ and $y_j$. More...
 
void fill_wave_bem3d (pcbem3d bem, const real(*X)[3], const real(*Y)[3], const real(*NX)[3], const real(*NY)[3], pamatrix V, pcreal dir, kernel_wave_func3d kernel)
 Evaluate a modified kernel function $g_c$ at some points $x_i$ and $y_j$ for some direction $c$. More...
 
void fill_row_c_bem3d (const uint *idx, const real(*Z)[3], pcbem3d bem, pamatrix V, kernel_func3d kernel)
 This function will integrate a kernel function $g$ on the boundary domain in the first argument using piecewise constant basis function. For the second argument some given points $Z_j$ will be used. The results will be stored in a matrix V. More...
 
void fill_col_c_bem3d (const uint *idx, const real(*Z)[3], pcbem3d bem, pamatrix V, kernel_func3d kernel)
 This function will integrate a kernel function $g$ on the boundary domain in the second argument using piecewise constant basis function. For the first argument some given points $Z_j$ will be used. The results will be stored in a matrix V. More...
 
void fill_row_l_bem3d (const uint *idx, const real(*Z)[3], pcbem3d bem, pamatrix V, kernel_func3d kernel)
 This function will integrate a kernel function $g$ on the boundary domain in the first argument using piecewise linear basis function. For the second argument some given points $Z_j$ will be used. The results will be stored in a matrix V. More...
 
void fill_col_l_bem3d (const uint *idx, const real(*Z)[3], pcbem3d bem, pamatrix V, kernel_func3d kernel)
 This function will integrate a kernel function $g$ on the boundary domain in the second argument using piecewise linear basis function. For the first argument some given points $Z_j$ will be used. The results will be stored in a matrix V. More...
 
void fill_dnz_row_c_bem3d (const uint *idx, const real(*Z)[3], const real(*N)[3], pcbem3d bem, pamatrix V, kernel_func3d kernel)
 This function will integrate a normal derivative of a kernel function $g$ with respect to $z$ on the boundary domain in the first argument using piecewise constant basis function. For the second argument some given points $Z_j$ will be used. The results will be stored in a matrix V. More...
 
void fill_dnz_col_c_bem3d (const uint *idx, const real(*Z)[3], const real(*N)[3], pcbem3d bem, pamatrix V, kernel_func3d kernel)
 This function will integrate a normal derivative of a kernel function $g$ with respect to $z$ on the boundary domain in the second argument using piecewise constant basis function. For the first argument some given points $Z_j$ will be used. The results will be stored in a matrix V. More...
 
void fill_dnz_row_l_bem3d (const uint *idx, const real(*Z)[3], const real(*N)[3], pcbem3d bem, pamatrix V, kernel_func3d kernel)
 This function will integrate a normal derivative of a kernel function $g$ with respect to $z$ on the boundary domain in the first argument using piecewise linear basis function. For the second argument some given points $Z_j$ will be used. The results will be stored in a matrix V. More...
 
void fill_dnz_col_l_bem3d (const uint *idx, const real(*Z)[3], const real(*N)[3], pcbem3d bem, pamatrix V, kernel_func3d kernel)
 This function will integrate a normal derivative of a kernel function $g$ with respect to $z$ on the boundary domain in the second argument using piecewise linear basis function. For the first argument some given points $Z_j$ will be used. The results will be stored in a matrix V. More...
 
void setup_hmatrix_recomp_bem3d (pbem3d bem, bool recomp, real accur_recomp, bool coarsen, real accur_coarsen)
 Initialize the bem object for on the fly recompression techniques. More...
 
void setup_hmatrix_aprx_inter_row_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m)
 This function initializes the bem3d object for approximating a matrix with tensorinterpolation within the row cluster. More...
 
void setup_hmatrix_aprx_inter_col_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m)
 This function initializes the bem3d object for approximating a matrix with tensorinterpolation within the column cluster. More...
 
void setup_hmatrix_aprx_inter_mixed_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m)
 This function initializes the bem3d object for approximating a matrix with tensorinterpolation within one of row or column cluster. More...
 
void setup_hmatrix_aprx_green_row_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, quadpoints3d quadpoints)
 creating hmatrix approximation using green's method with row cluster . More...
 
void setup_hmatrix_aprx_green_col_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, quadpoints3d quadpoints)
 creating hmatrix approximation using green's method with column cluster . More...
 
void setup_hmatrix_aprx_green_mixed_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, quadpoints3d quadpoints)
 creating hmatrix approximation using green's method with one of row or column cluster . More...
 
void setup_hmatrix_aprx_greenhybrid_row_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, real accur, quadpoints3d quadpoints)
 creating hmatrix approximation using green's method with row cluster connected with recompression technique using ACA. More...
 
void setup_hmatrix_aprx_greenhybrid_col_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, real accur, quadpoints3d quadpoints)
 creating hmatrix approximation using green's method with column cluster connected with recompression technique using ACA. More...
 
void setup_hmatrix_aprx_greenhybrid_mixed_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m, uint l, real delta, real accur, quadpoints3d quadpoints)
 creating hmatrix approximation using green's method with row or column cluster connected with recompression technique using ACA. More...
 
void setup_hmatrix_aprx_aca_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, real accur)
 Approximate matrix block with ACA using full pivoting. More...
 
void setup_hmatrix_aprx_paca_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, real accur)
 Approximate matrix block with ACA using partial pivoting. More...
 
void setup_hmatrix_aprx_hca_bem3d (pbem3d bem, pccluster rc, pccluster cc, pcblock tree, uint m, real accur)
 Approximate matrix block with hybrid cross approximation using Interpolation and ACA with full pivoting. More...
 
void setup_h2matrix_recomp_bem3d (pbem3d bem, bool hiercomp, real accur_hiercomp)
 Enables hierarchical recompression for hmatrices. More...
 
void setup_h2matrix_aprx_inter_bem3d (pbem3d bem, pcclusterbasis rb, pcclusterbasis cb, pcblock tree, uint m)
 Initialize the bem3d object for approximating a h2matrix with tensorinterpolation. More...
 
void setup_h2matrix_aprx_greenhybrid_bem3d (pbem3d bem, pcclusterbasis rb, pcclusterbasis cb, pcblock tree, uint m, uint l, real delta, real accur, quadpoints3d quadpoints)
 Initialize the bem3d object for approximating a h2matrix with green's method and ACA based recompression. More...
 
void setup_h2matrix_aprx_greenhybrid_ortho_bem3d (pbem3d bem, pcclusterbasis rb, pcclusterbasis cb, pcblock tree, uint m, uint l, real delta, real accur, quadpoints3d quadpoints)
 Initialize the bem3d object for approximating a h2matrix with green's method and ACA based recompression. The resulting clusterbasis will be orthogonal. More...
 
void setup_dh2matrix_aprx_inter_bem3d (pbem3d bem, pcdclusterbasis rb, pcdclusterbasis cb, pcdblock tree, uint m)
 Initialize the bem3d object for an interpolation based $\mathcal{DH}^2$-matrix approximation. More...
 
void setup_dh2matrix_aprx_inter_ortho_bem3d (pbem3d bem, pcdclusterbasis rb, pcdclusterbasis cb, pcdblock tree, uint m)
 Initialize the bem3d object for an interpolation based $\mathcal{DH}^2$-matrix approximation with orthogonal directional cluster basis. More...
 
void setup_dh2matrix_aprx_inter_recomp_bem3d (pbem3d bem, pcdclusterbasis rb, pcdclusterbasis cb, pcdblock tree, uint m, ptruncmode tm, real eps)
 Initialize the bem3d object for an interpolation based $\mathcal{DH}^2$-matrix approximation with orthogonal directional cluster basis. During the filling process the $\mathcal{DH}^2$-matrix will be recompressed with respective to truncmode and the given accuracy eps. More...
 
void assemble_bem3d_amatrix (pbem3d bem, pamatrix G)
 Assemble a dense matrix for some boundary integral operator given by bem. More...
 
void assemble_bem3d_hmatrix (pbem3d bem, pblock b, phmatrix G)
 Fills a hmatrix with a predefined approximation technique. More...
 
void assemblecoarsen_bem3d_hmatrix (pbem3d bem, pblock b, phmatrix G)
 Fills a hmatrix with a predefined approximation technique using coarsening strategy. More...
 
void assemble_bem3d_nearfield_hmatrix (pbem3d bem, pblock b, phmatrix G)
 Fills the nearfield blocks of a hmatrix. More...
 
void assemble_bem3d_farfield_hmatrix (pbem3d bem, pblock b, phmatrix G)
 Fills the farfield blocks of a hmatrix with a predefined approximation technique. More...
 
void assemble_bem3d_h2matrix_row_clusterbasis (pcbem3d bem, pclusterbasis rb)
 This function computes the matrix entries for the nested clusterbasis $ V_t \, , t \in \mathcal T_{\mathcal I} $. More...
 
void assemble_bem3d_h2matrix_col_clusterbasis (pcbem3d bem, pclusterbasis cb)
 This function computes the matrix entries for the nested clusterbasis $ W_s \, , s \in \mathcal T_{\mathcal J} $. More...
 
void assemble_bem3d_h2matrix (pbem3d bem, ph2matrix G)
 Fills a h2matrix with a predefined approximation technique. More...
 
void assemble_bem3d_nearfield_h2matrix (pbem3d bem, ph2matrix G)
 Fills the nearfield part of a h2matrix. More...
 
void assemble_bem3d_farfield_h2matrix (pbem3d bem, ph2matrix G)
 Fills a h2matrix with a predefined approximation technique. More...
 
void assemblehiercomp_bem3d_h2matrix (pbem3d bem, pblock b, ph2matrix G)
 Fills an h2matrix with a predefined approximation technique using hierarchical recompression. More...
 
void assemble_bem3d_dh2matrix_row_dclusterbasis (pcbem3d bem, pdclusterbasis rb)
 This function computes the matrix entries for the nested dclusterbasis $ V_t \, , t \in \mathcal T_{\mathcal I} $. More...
 
void assemble_bem3d_dh2matrix_col_dclusterbasis (pcbem3d bem, pdclusterbasis cb)
 This function computes the matrix entries for the nested dclusterbasis $ W_s \, , s \in \mathcal T_{\mathcal J} $. More...
 
void assemble_bem3d_dh2matrix_ortho_row_dclusterbasis (pcbem3d bem, pdclusterbasis rb, pdclusteroperator ro)
 Function for filling a directional row cluster basis with orthogonal matrices. More...
 
void assemble_bem3d_dh2matrix_ortho_col_dclusterbasis (pcbem3d bem, pdclusterbasis cb, pdclusteroperator co)
 Function for filling a directional column cluster basis with orthogonal matrices. More...
 
void assemble_bem3d_dh2matrix_recomp_both_dclusterbasis (pcbem3d bem, pdclusterbasis rb, pdclusteroperator bro, pdclusterbasis cb, pdclusteroperator bco, pcdblock broot)
 Function for filling both directional cluster bases with orthogonal matrices. More...
 
void assemble_bem3d_dh2matrix (pbem3d bem, pdh2matrix G)
 Fills a dh2matrix with a predefined approximation technique. More...
 
void assemble_bem3d_nearfield_dh2matrix (pbem3d bem, pdh2matrix G)
 Fills the nearfield part of a dh2matrix. More...
 
void assemble_bem3d_farfield_dh2matrix (pbem3d bem, pdh2matrix G)
 Fills a dh2matrix with a predefined approximation technique. More...
 
void assemble_bem3d_lagrange_c_amatrix (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcbem3d bem, pamatrix V)
 This function will integrate Lagrange polynomials on the boundary domain using piecewise constant basis function and store the results in a matrix V. More...
 
void assemble_bem3d_lagrange_wave_c_amatrix (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcreal dir, pcbem3d bem, pamatrix V)
 This function will integrate modified Lagrange polynomials on the boundary domain using piecewise constant basis function and store the results in a matrix V. More...
 
void assemble_bem3d_lagrange_l_amatrix (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcbem3d bem, pamatrix V)
 This function will integrate Lagrange polynomials on the boundary domain using linear basis function and store the results in a matrix V. More...
 
void assemble_bem3d_lagrange_wave_l_amatrix (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcreal dir, pcbem3d bem, pamatrix V)
 This function will integrate modified Lagrange polynomials on the boundary domain using linear basis function and store the results in a matrix V. More...
 
void assemble_bem3d_dn_lagrange_c_amatrix (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcbem3d bem, pamatrix V)
 This function will integrate the normal derivatives of the Lagrange polynomials on the boundary domain using piecewise constant basis function and store the results in a matrix V. More...
 
void assemble_bem3d_dn_lagrange_wave_c_amatrix (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcreal dir, pcbem3d bem, pamatrix V)
 This function will integrate the normal derivatives of the modified Lagrange polynomials on the boundary domain using piecewise constant basis function and store the results in a matrix V. More...
 
void assemble_bem3d_dn_lagrange_l_amatrix (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcbem3d bem, pamatrix V)
 This function will integrate the normal derivatives of the Lagrange polynomials on the boundary domain using linear basis function and store the results in a matrix V. More...
 
void assemble_bem3d_dn_lagrange_wave_l_amatrix (const uint *idx, pcrealavector px, pcrealavector py, pcrealavector pz, pcreal dir, pcbem3d bem, pamatrix V)
 This function will integrate the normal derivatives of the modified Lagrange polynomials on the boundary domain using linear basis function and store the results in a matrix V. More...
 
void assemble_bem3d_lagrange_amatrix (const real(*X)[3], pcrealavector px, pcrealavector py, pcrealavector pz, pcbem3d bem, pamatrix V)
 This function will evaluate the Lagrange polynomials in a given point set X and store the results in a matrix V. More...
 
void assemble_bem3d_lagrange_wave_amatrix (const real(*X)[3], pcrealavector px, pcrealavector py, pcrealavector pz, pcreal dir, pcbem3d bem, pamatrix V)
 This function will evaluate the modified Lagrange polynomials in a given point set X and store the results in a matrix V. More...
 
real normL2_bem3d (pbem3d bem, boundary_func3d f, void *data)
 Compute the $L_2(\Gamma)$-norm of some given function f. More...
 
real normL2_c_bem3d (pbem3d bem, pavector x)
 Compute the $L_2(\Gamma)$-norm of some given function $f$ in terms of a piecewise constant basis $\left( \varphi_i \right)_{i \in \mathcal I}$. More...
 
real normL2diff_c_bem3d (pbem3d bem, pavector x, boundary_func3d f, void *data)
 Compute the $L_2(\Gamma)$ difference norm of some given function $g$ in terms of a piecewise constant basis $\left( \varphi_i \right)_{i \in \mathcal I}$ and some other function $f$. More...
 
real normL2_l_bem3d (pbem3d bem, pavector x)
 Compute the $L_2(\Gamma)$-norm of some given function $f$ in terms of a piecewise linear basis $\left( \varphi_i \right)_{i \in \mathcal I}$. More...
 
real normL2diff_l_bem3d (pbem3d bem, pavector x, boundary_func3d f, void *data)
 Compute the $L_2(\Gamma)$ difference norm of some given function $g$ in terms of a piecewise linear basis $\left( \varphi_i \right)_{i \in \mathcal I}$ and some other function $f$. More...
 
void integrate_bem3d_c_avector (pbem3d bem, boundary_func3d f, pavector w, void *data)
 Computes the integral of a given function using piecewise constant basis functions over the boundary of a domain. More...
 
void integrate_bem3d_l_avector (pbem3d bem, boundary_func3d f, pavector w, void *data)
 Computes the integral of a given function using piecewise linear basis functions over the boundary of a domain. More...
 
void projectL2_bem3d_c_avector (pbem3d bem, boundary_func3d f, pavector w, void *data)
 Computes the $ L_2 $-projection of a given function using piecewise constant basis functions over the boundary of a domain. More...
 
void projectL2_bem3d_l_avector (pbem3d bem, boundary_func3d f, pavector w, void *data)
 Computes the $ L_2 $-projection of a given function using linear basis functions over the boundary of a domain. More...
 
void setup_vertex_to_triangle_map_bem3d (pbem3d bem)
 initializes the field bem->v2t when using linear basis functions More...
 
void build_bem3d_cube_quadpoints (pcbem3d bem, const real a[3], const real b[3], const real delta, real(**Z)[3], real(**N)[3])
 Generating quadrature points, weights and normal vectors on a cube parameterization. More...
 
prkmatrix build_bem3d_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 rkmatrix. More...
 
pamatrix build_bem3d_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 amatrix. More...
 
void build_bem3d_curl_sparsematrix (pcbem3d bem, psparsematrix *C0, psparsematrix *C1, psparsematrix *C2)
 Set up the surface curl operator. More...
 

Detailed Description

Author
Sven Christophersen
Date
2011