mipals / BoundaryIntegralEquations.jl

A simple package for solving Boundary Integral Equations using the (collocation) Boundary Element Method.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BoundaryIntegralEquations.jl

Documentation Tests CodeCov Lifecycle Aqua
Build Status Coverage Aqua QA

BoundaryIntegralEquations.jl provides the basic building blocks required for implementing Boundary Element Methods (BEMs). Currently, it supplies the discretization of the Kirchhoff–Helmholtz integral equation found in acoustical applications.

$$\zeta(\mathbf{x})p(\mathbf{x}) + \int_\Gamma \frac{\partial G(\mathbf{x}, \mathbf{y})}{\partial \mathbf{n}(\mathbf{y})}p(\mathbf{y})\ \mathrm{d}S_\mathbf{y} - \mathrm{i} \rho_0 c k \int_\Gamma G(\mathbf{x},\mathbf{y})v_\mathbf{n}(\mathbf{y})\ \mathrm{d}S_\mathbf{y} = 0.$$

where

$$G(\mathbf{x},\mathbf{y}) = \frac{\exp\left(\mathrm{i}k\|\mathbf{x} - \mathbf{y}\|_2\right)}{4\pi\|\mathbf{x} - \mathbf{y}\|_2},$$

is the Green's function of the Helmholtz operator, $k$ is the wavenumber, $\rho_0$ is the ambient density and $c$ is the speed of sound.

The package supplies support for acceleration methods such as e.g. the Fast Multipole Method (FMM) and Hierarchical matrices. For the FMM the package utilizes the Flatiron Institute Fast Multipole Libraries (2D, 3D) whereas for Hierarchical matrices it uses the HMatrices.jl package.

N.B. The package is still under heavy development.

Installation

The package can be installed directly from GitHub

using Pkg
Pkg.add(url="https://github.com/mipals/BoundaryIntegralEquations.jl")

Mesh formats

  • COMSOLs .mphtxt files (including entity description)
  • obj, stl, ply, off and 2DM through MeshIO.jl.

Similar Packages

  • BEAST.jl: Boundary Element Analysis and Simulation Toolkit. A general toolkit, with a focus on electromagnetics. Limitations with respect to element orders and only supplies Galerkin assembly.
  • NESSie.jl: Nonlocal Electrostatics in Structured Solvents. A specialized package written specifically for Nonlocal protein eletrostatics.

About

A simple package for solving Boundary Integral Equations using the (collocation) Boundary Element Method.

License:MIT License


Languages

Language:Julia 100.0%