GPT-BEM: Boundary Element Method (BEM) solver: In the regular version of GPT beamline components can be modelled using any combination of built-in elements, custom elements (user-defined code), and/or fieldmaps. For most applications that works well, where the natural workflow is to use the built-in analytical expression in the early design stages, and switch to 1D, 2D or 3D fieldmaps when the design is being finalised. However, some electron microscopy applications require fieldmaps with such high-precision that running a Finite Element solver becomes problematic, or not possible at all. The Boundaery Element Method (BEM) extension of GPT is written to make static electromagnetic field calculations possible in full 3D, even for the most complex geometries such as micro lens arrays or tip-geometires. We employ a method known as Boundary Element Method (BEM), where we essentially solve a 2D surface problem inside a 3D geomoetry. This reduction of dimensionality allows for a relative precision better than 10^{-6}, even for millions of surface trianges.

The GPT-BEM extension consists of the following components:

BEMdraw: A drawing components with STEP import

BEMmesh: A mesh generator

BEMsolve: Hierarchical Boundary Element Method (BEM) solver

Aberration analys

The normal GPT version can be used to track particle through the resulting BEM fields as calcualted by BEMsolve.

BEMdraw: is an ASCII-based geometric script processor for creating complex three-dimensional shapes. Geometric shapes such as multipoles, lens arrays and nanotip-geometries can be drawn fully parametric from scratch. Alternatively, a STEP file of an existing geometry can be importent and adjusted.

BEMmesh: creates a mesh tailor made for the Boundary Element Method: It eliminiates all high-apsect traingles and replaces them by almost equilateral triangles that slowly change in size.

BEMsolve: is the actual Boundary Element Method solver. It solves for the geometry, allowing eletrode voltages (and currents through coils) to be adjusted without the need to solve again. The output are the equivalent surface charges for unit potential (current), and optionally field multipole components up to 6^{th} order.

Aberrations: is an additional postprocessing feature in GPT itself that allows for the calculation of 3D aberration coefficients based upon tracking results. Distortions, on-axis aberrations such as sextupole component, and off-axis aberrations such as Coma are all fitted up to 7^{th} order. Also included are all chromatic dependencies.