Manual

Usage

Note

This project uses ComputableDAGs.jl, which uses RuntimeGeneratedFunctions.jl. The latter requires an initialization step, so when using this project, make sure to have

using RuntimeGeneratedFunctions
RuntimeGeneratedFunctions.init(@__MODULE__)

somewhere in the preamble of your code or at the beginning of your REPL session. Otherwise the function generation will not work.

This package currently exports two functions, graph and number_of_diagrams. Both of these take a QEDbase.AbstractProcessDefinition as input. graph returns a ComputableDAGs.DAG representing the computation of the squared matrix element for QEDcore.PhaseSpacePoints. number_of_diagrams is a utility function that returns the number of valid tree-level Feynman diagrams for the given process.

For usage examples, please refer to the examples section of the docs.

Testing

This project can be tested using julia's Pkg.test(). Additionally, the behavior can be modified via some environment variables:

  • TEST_<GPU> = 1: Enables GPU tests for a GPU vendor, available are CUDA, AMDGPU, ONEAPI, and METAL. Disabled by default. Make sure the relevant libraries are installed on the executing machine.
  • TEST_CPU = 0: Disables CPU tests. Useful when you only want to run GPU tests, for example in the CI. Enabled by default.
  • LARGE_TESTS = 1: Whether to run large tests. Some tests can be slow and can be enabled or disabled with this variable. This is set to CI by default, which enables them locally and disables them in the CI (i.e., when the CI environment variable is set).