## BEMLIB

BEMLIB is a boundary-element software library of Fortran 77 (compatible with Fortran 90) and Matlab codes accompanying the book by C. Pozrikidis, A Practical Guide to Boundary Element Methods with the software library BEMLIB,'' Champan & Hall/CRC, (2002). Chapters 8-12 of the book contain the BEMLIB User Guide. BEMLIB is a distillation of the inclusive library FDLIB.If this sofware is of interest to you, please consider purchasing the book or ordering it through your company or library.

## Download

View and download BEMLIBTo unravel the compressed tar file, issue the Unix command:

tar xzvf BEMLIB.xx.xx.tgz |

where xx.xx is the version number (yy.mm).

## BEMLIB directories

### Directory: 01_num_meth

General-purpose numerical methods in scientific computing.
This directory accompanies the second edition of a book by
C. Pozrikidis entitled
*Numerical Computation in Science and Engineering*,
Second Edition,
Oxford University Press (2008).

Subdirectory | Topic |

01_num_comp | General aspects of numerical computation. |

02_lin_calc | Linear algebra and linear calculus. |

03_lin_eq | Solution of systems of linear algebraic equations. |

04_nl_eq | Solution of nonlinear algebraic equations. |

05_eigen | Computation of eigenvalues and eigenvectors of matrices. |

06_interp_diff | Function interpolation and differentiation. |

07_integration | Numerical integration of a function of one or two variables. |

08_approximation | Approximation of a function of one or two variables. |

09_ode | Ordinary differential equations. |

10_ode_ddm | Ordinary differential equations; domain discretization methods |

11_pde_diff | Partial differential equations; unsteady diffusion equation |

12_pde_poisson | Partial differential equations; Poisson equation |

13_pde_cd | Partial differential equations; convection-diffusion equation |

14_bem | Boundary-element methods. |

15_fem | Finite-element methods. |

99_spec_fnc | Computation of special functions including Bessel functions, the error function, and others. |

### Directory: 02_grids

Boundary-element grid generation.

Subdirectory | Topic |

grid_2d | Boundary-element discretization of a planar line into straight or circular elements. |

prd_2d | Adaptive discretization of a closed planar line. |

prd_2d_open | Adaptive discretization of an open planar line. |

prd_2d_pr | Adaptive discretization of a planar periodic line. |

prd_3d | Adaptive discretization of a closed three-dimensional line. |

prd_ax | Adaptive discretization of a line representing the contour of a surface in an azimuthal plane. |

trgl |
Triangulation of a closed surface into an
unstructured grid of curved triangles based on the successive subdivisions of an octahedron or icosahedron. |

trgl_flat | Triangulation of a disk, square, square with a circular hole, square with a square hole. |

### Directory: 03_laplace

Green and Neumann functions and boundary-element codes for Laplace's equation.

Subdirectory | Topic |

body_2d | Two-dimensional flow past, or due to the motion of, a body with arbitrary geometry. |

body_ax | Axisymmetric flow past, or due to the motion of, a body with arbitrary geometry. |

flow_1d | Steady unidirectional flow through a tube with arbitrary cross-section. |

flow_1d_1p | Steady unidirectional shear flow over a periodic array of cylinders or a periodic wall with arbitrary cross-section. |

flow_2d | Potential flow in a two-dimensional domain with arbitrary geometry. |

ldr_3d |
Solution of Laplace's equation
in the interior or exterior of a three-dimensional surface,
subject to the Dirichlet boundary condition. |

ldr_3d_2d |
Solution of Laplace's equation
in a doubly periodic domain,
subject to the Dirichlet boundary condition. |

ldr_3d_ext |
Solution of Laplace's equation
in the exterior of a three-dimensional surface,
subject to the Dirichlet boundary condition (completed double-layer formulation). |

ldr_3d_ext_se |
Solution of Laplace's equation
in the exterior of a three-dimensional surface,
subject to Dirichlet boundary conditions, computed by a spectral-element method (completed double-layer formulation). |

ldr_3d_int |
Solution of Laplace's equation
in the interior of a three-dimensional surface,
subject to the Dirichlet boundary condition (double-layer formulation). |

ldr_3d_int_se |
Solution of Laplace's equation
in the interior of a three-dimensional surface,
subject to the Dirichlet boundary condition, computed by a spectral-element method (double-layer formulation). |

lgf_2d | Green's and Neumann functions of Laplace's equation in two dimensions. |

lgf_3d | Green's and Neumann functions of Laplace's equation in three dimensions. |

lgf_ax | Green's and Neumann functions of Laplace's equation in axisymmetric domains. |

lnm_3d |
Solution of Laplace's equation
in the interior or exterior of a three-dimensional region,
subject to Neumann boundary conditions (boundary-integral formulation). |

tank_2d | Fluid sloshing in a rectangular tank. |

### Directory: 04_helmholtz

Boundary-element codes for Helmholtz's equation.

Subdirectory | Topic |

flow_1d_osc | Oscillatory unidirectional flow through a tube with arbitrary cross-section. |

### Directory: 05_stokes

Green functions and boundary-element codes for Stokes flow.

Subdirectory | Topic |

bump_3d | Shear flow past a spherical bump on a plane wall. |

caps_2d | Flow past a two-dimensional capsule. |

caps_3d | Flow past a three-dimensional capsule. |

chan2l | Two-layer flow in a channel. |

drop_3d | Flow past a three-dimensional drop. |

drop_3dw | Flow past a three-dimensional drop attached to a wall. |

drop_ax | Flow past an axisymmetric flow. |

em_2d | Two-dimensional flow of an emulsion. |

flow_2d | Two-dimensional flow in a domain with arbitrary geometry. |

flow_3d | Three-dimensional flow in an axisymmetric domain. |

prtcl_2d | Flow past a fixed bed of two-dimensional particles with flow configuration. |

prtcl_3d | Flow past, or due to the motion of, a three-dimensional rigid particle, for several flow configurations. |

prtcl_3d_mob | Motion of a rigid particle (mobility problem). |

prtcl_3d_mob_dlr_se | Motion of a rigid particle (mobility problem) computed by the double-layer representation (dlr) a spectral-element method (se). |

prtcl_ax | Flow past, or due to the motion of, a collection of axisymmetric particles. |

prtcl_sw | Swirling flow due to the rotation of an axisymmetric particle. |

rbc_2d | Numerical simulation of the deformation of a two-dimenional red blood cell. |

sgf_2d | Green's functions of two-dimensional Stokes flow. |

sgf_3d | Green's functions of three-dimensional Stokes flow. |

sgf_ax | Green's functions of axisymmetric Stokes flow. |

susp_3d | Dynamic simulation of a particle suspension. |

## Terms

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

To receive a copy of the GNU Lesser General Public License along write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

On the Internet, visit the URL: http://www.gnu.org/copyleft/lesser.html

## Acknowledgements

Thanks to Hoaxiang Luo, Mark Blyth, Bill Baxter, and others, for bug reports.