QED Diagram Generation #10

Open
opened 2024-05-13 18:50:13 +02:00 by rubydragon · 1 comment
Owner

Implement a good generation algorithm for QED diagrams.

Idea:

  1. Generate Feynman diagrams according to diploma thesis
    1.1: Generate unlabeled free rooted plane trees (http://combos.org/tree) from fermion lines
    1.2: Connect external photons
    1.3: Assign left-side fermions in all combinations
    1.4: Assign right-side fermions in all combinations
    1.5: Assign external photons
  2. For each diagram, generate DAG by moving from the legs inwards -> optimal depth
  3. Either reduce in the process or reduce afterwards

Use recursive iterators for the diagram generation to reduce memory footprint while generating.

Implement a good generation algorithm for QED diagrams. Idea: 1. Generate Feynman diagrams according to diploma thesis 1.1: Generate unlabeled free rooted plane trees (http://combos.org/tree) from fermion lines 1.2: Connect external photons 1.3: Assign left-side fermions in all combinations 1.4: Assign right-side fermions in all combinations 1.5: Assign external photons 2. For each diagram, generate DAG by moving from the legs inwards -> optimal depth 3. Either reduce in the process or reduce afterwards Use recursive iterators for the diagram generation to reduce memory footprint while generating.
Author
Owner

Revision of the diagram generation:

What we really want are "labeled free plane trees with n vertices", i.e., trees that have no specified root (->free), have labeled nodes, and are in a plane (-> ordering of subtrees is fixed). This is not the same as generating only free plane trees and then labeling them in n! ways, since in this way we produce isomorphic duplicates. We can actually easily see this by noticing that the formula for the number of labeled free plane trees (3n-3)!/(2n-1)! doesn't always have a factor of n!, resulting in fractions.

Therefore, it is likely more useful to find an appropriate generation algorithm generating labelled free plane trees with n vertices directly. The procedure then becomes:
1.1: Generate labeled free plane trees from fermion lines with fixed left sides: (3n-3)!/(2n-1)! objects
1.2: Connect external photons: previous objects times C(m+3n-3, 3n-3)
1.3: Assign right-side fermions in all combinations: previous objects times e! * u! * t!
1.4: Assign external photons: previous objects times m!

Revision of the diagram generation: What we really want are "labeled free plane trees with n vertices", i.e., trees that have no specified root (->free), have labeled nodes, and are in a plane (-> ordering of subtrees is fixed). This is not the same as generating only free plane trees and then labeling them in n! ways, since in this way we produce isomorphic duplicates. We can actually easily see this by noticing that the formula for the number of labeled free plane trees (3n-3)!/(2n-1)! doesn't always have a factor of n!, resulting in fractions. Therefore, it is likely more useful to find an appropriate generation algorithm generating labelled free plane trees with n vertices directly. The procedure then becomes: 1.1: Generate labeled free plane trees from fermion lines with fixed left sides: (3n-3)!/(2n-1)! objects 1.2: Connect external photons: previous objects times C(m+3n-3, 3n-3) 1.3: Assign right-side fermions in all combinations: previous objects times e! * u! * t! 1.4: Assign external photons: previous objects times m!
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rubydragon/metagraphoptimization.jl#10
No description provided.