feynlag.vertices.bilinear.extract_fermion_vertices

feynlag.vertices.bilinear.extract_fermion_vertices(L, boson_fields)[source]

Group a fermionic Lagrangian by bilinear(s) and extract boson legs.

Parameters:
  • L – expanded Lagrangian sector; every term must contain one (FFS/FFV) or two (FFFF, four-fermion) Bilinear factors — raises otherwise (no silent drops). Add-valued bilinear legs (e.g. from a mass-basis rotation) are distributed first via expand_bilinear().

  • boson_fields – boson symbols for the coefficient extraction.

Returns:

dict {key: {n_bosons: {boson-tuple: coeff}}} where key is a flat (bar, gamma, field) for a one-bilinear (FFS/FFV) term and a nested ((bar,Γ,field), (bar',Γ′,field')) pair for a two-bilinear (FFFF) term. Consumers distinguish the two by isinstance(key[0], tuple).