Skip to content

krcools/BEAST.jl

Repository files navigation

Docs-dev MIT license CI codecov.io DOI

Introduction

This Julia package, the boundary element analysis and simulation toolkit (BEAST), provides routines to convert integral and differential equations to linear systems of equations via the boundary element method (BEM) and the finite element method (FEM). To this end, the (Petrov-) Galerkin method is employed.

Currently, the focus is on equations encountered in classical electromagnetism, where frequency and time domain equations are covered. Several operators, basis functions, and geometry representations are implemented.

Documentation

Hello World

To solve scattering of a time-harmonic electromagnetic plane wave by a perfectly conducting sphere:

using CompScienceMeshes
using BEAST

# --- basis functions
Γ  = meshsphere(1.0, 2.5)   # triangulate sphere of radius one
RT = raviartthomas(Γ)       # define basis functions

# --- operators & excitation
𝑇 = Maxwell3D.singlelayer(wavenumber=2.0)                             # integral operator
𝐸 = Maxwell3D.planewave(direction=x̂, polarization=ẑ, wavenumber=2.0)  # excitation
𝑒 = (n × 𝐸) × n # tangential part

# --- compute the RHS and system matrix
e = assemble(𝑒, RT)         # assemble RHS
T = assemble(𝑇, RT, RT)     # assemble system matrix

# --- solve
u = T \ -e

# ... post processing ...

                

About

Boundary Element Analysis and Simulation Toolkit

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages