Skip to content

BEACH Documentation

BEACH (BEM + Accumulated CHarge) is a surface-charging simulator that couples Coulomb fields from charges on triangular boundary elements with test-particle tracking in batches. The current release focuses on charge accumulation on insulator surfaces. The Fortran runtime beach performs the simulation, while the Python CLI/API (beachx and the beach package) handles configuration checks, post-processing, and visualization.

Terminal window
python -m pip install -U pip setuptools wheel
python -m pip install beach-bem
mkdir run_periodic2
cd run_periodic2
beachx config init
beachx lint beach.toml
beach beach.toml
beachx inspect outputs/latest

beach reads beach.toml directly. High-level notation such as box_origin / box_size and mesh.groups is normalized by the Fortran parser.

A normally completed run writes outputs/latest/summary.txt, and batches reaches the configured sim.batch_count. Then run beachx inspect outputs/latest to check absorbed and escaped particles, element charges, and mesh metadata. See Reading Output Files for the meaning of each output file.

GoalPage
Check outputs after the first runReading Output Files
Adapt a configuration from examplesConfiguration Recipes
Look up every beach.toml keyInput Parameters Reference
Write high-level notationbeachx config / High-Level Notation Guide
Make the first plotsPost-processing Tutorial
Use the full Python APIPython Post-processing API Reference
Understand the numerical modelBEACH Algorithm Overview
GoalEntry point
Run a small template meshConfiguration Recipes, “Minimal plane-mesh run”
Choose a particle source modelConfiguration Recipes and particles in Input Parameters Reference
Use two-periodic-axis boundariesperiodic2 in Configuration Recipes and Field Solvers and Boundary Conditions
Tune batch_durationbatch_duration Stability
Inspect implementation APIsFortran API and Fortran Dependency Map

For API-level implementation details, use the FORD-generated Fortran API.