QuantumElectrodynamics.jl is an open-source Julia framework designed for high-performance numerical calculations in perturbative and strong-field quantum electrodynamics (QED). It integrates scattering amplitude evaluation and Monte Carlo event generation into a modular and extensible architecture, leveraging Julia’s multiple dispatch and metaprogramming features. Core interfaces are defined in QEDbase.jl, standardize representations for fundamental objects, such as four-momenta and bi-spinors, and support the configuration of scattering processes and computational models. Complementary modules like QEDcore.jl, QEDprocesses.jl, and QEDevents.jl handle core computations, cross section calculations, and sampling algorithms, respectively. The framework also supports symbolic Feynman diagram computations via QEDFeynmanDiagrams.jl, enabling code generation and domain-specific optimizations. It has built-in compatibility for GPU execution through packages like CUDA.jl and AMDGPU.jl, QuantumElectrodynamics.jl offers a high-performance, flexible foundation for advancing numerical methods in high-energy physics.
Currently, the framework consists of
QEDbase.jl: interfaces and common functionalityQEDcore.jl: Implementation of core functionality that is needed across all or most content packagesQEDprocesses.jl: Scattering process definitions, models, and calculation of cross-sections and probabilities.QEDevents.jl: Monte-Carlo event generation for scattering processes.QEDfields.jl: Description of classical electromagnetic fields used in background-field approximations.QEDFeynmanDiagrams.jl: Feynman diagram generation for arbitrary QED processes.