Motivation#
BIEKIT exists to provide a clean, minimal boundary integral workflow that is easy to read and easy to validate. The current scope is intentionally small: surface meshes, low‑order bases, and three core equations (Laplace / Helmholtz / Maxwell EFIE).
Why triangles + quads#
Benchmark and legacy tools often assume quad meshes, while modern meshing pipelines produce triangles. Supporting mixed triangle/quad surfaces makes it possible to compare against existing solvers and reuse existing data.
Why explicit DoF bookkeeping#
Different spaces require different DoF ownership rules (vertex/edge/face). Separating layout (DofLayout) from global indexing (DofMap) keeps the rules explicit and easy to audit.
Why mapping + Piola are first‑class#
For Maxwell EFIE with RWG (H(div)) bases, values must be transformed correctly between reference and physical elements. Keeping geometry mapping (ElementMapping) and value mapping (PiolaTransform) explicit avoids hidden assumptions.
Why operator‑only solvers#
Boundary integral operators are dense. Building full matrices quickly becomes expensive, so the code focuses on matrix‑free apply and uses GMRES for iterative solves.