Boundary Element Analysis and Simulation Toolkit
This package contains common basis functions and assembly routines for the implementation of boundary element methods. Examples are included for the 2D and 3D Helmholtz equations and for the 3D Maxwell equations.
Support for the space-time Galerkin based solution of time domain integral equations is in place for the 3D Helmholtz and Maxwell equations.
Installation is done simply by cloning this repo from within Julia (v0.6):
Pkg.clone("https://github.com/krcools/BEAST.jl")
Prequisite packages will be pulled in automatically. In addition, some functionality requires gmsh
to
be installed and on the system path.
To solve scattering by a time harmonic electromagnetic plane wave by a perfectly conducting sphere:
using CompScienceMeshes, BEAST
o, x, y, z = euclidianbasis(3)
Γ = meshsphere(1.0, 0.35)
RT = raviartthomas(Γ)
κ = 1.0
t = Maxwell3D.singlelayer(gamma=im*κ)
E = Maxwell3D.planewave(direction=z, polarization=x, wavenumber=κ)
e = (n × E) × n
@hilbertspace j
@hilbertspace k
efie = @discretise t[k,j]==e[k] j∈RT k∈RT
u = gmres(efie)