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.
Three-Minute Quick Start
Section titled “Three-Minute Quick Start”python -m pip install -U pip setuptools wheelpython -m pip install beach-bem
mkdir run_periodic2cd run_periodic2
beachx config initbeachx lint beach.toml
beach beach.tomlbeachx inspect outputs/latestbeach reads beach.toml directly. High-level notation such as box_origin / box_size and mesh.groups is normalized by the Fortran parser.
Success Check
Section titled “Success Check”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.
What to Read Next
Section titled “What to Read Next”| Goal | Page |
|---|---|
| Check outputs after the first run | Reading Output Files |
| Adapt a configuration from examples | Configuration Recipes |
Look up every beach.toml key | Input Parameters Reference |
| Write high-level notation | beachx config / High-Level Notation Guide |
| Make the first plots | Post-processing Tutorial |
| Use the full Python API | Python Post-processing API Reference |
| Understand the numerical model | BEACH Algorithm Overview |
Use Cases
Section titled “Use Cases”| Goal | Entry point |
|---|---|
| Run a small template mesh | Configuration Recipes, “Minimal plane-mesh run” |
| Choose a particle source model | Configuration Recipes and particles in Input Parameters Reference |
| Use two-periodic-axis boundaries | periodic2 in Configuration Recipes and Field Solvers and Boundary Conditions |
Tune batch_duration | batch_duration Stability |
| Inspect implementation APIs | Fortran API and Fortran Dependency Map |
Documentation Index
Section titled “Documentation Index”- Reading Output Files
- Configuration Recipes
- Input Parameters Reference
beachx config/ High-Level Notation Guide- Post-processing Tutorial
- Python Post-processing API Reference
- BEACH Algorithm Overview
- Field Solvers and Boundary Conditions
- Particle Tracking and Charge Accumulation
- Coulomb FMM Core Details
batch_durationStability- Execution and Development Workflow
- Fortran Dependency Map
- BEACH Agent User Guide
For API-level implementation details, use the FORD-generated Fortran API.