eoms

This submodule implements unmasking of EOMs, i.e., reexpressing D0l, D0, and DF into user-provided expression. This is typically being done after deriving an overcomplete basis. This way we have a handle on keeping track of EOM-vanishing operators and impose those relations when deriving a minimal basis.

class GluonEOM(TF: Fraction, Nc: Fraction, gluonPart: list[LinearComb], fermionPart: list[LinearComb | None])

Bases: object

The gluon EOM specifies what the short-hand DF actually looks like.

Nc: Fraction
TF: Fraction
fermionPart: list[LinearComb | None]
gluonPart: list[LinearComb]
_unmaskfeom(unmasked: LinearComb, fEOM: LinearComb, fEOMl: LinearComb, model: Model) bool

Internal routine that replaces a single (matching) fermion EOM by the appropriate linear combination on each call. Returns a boolean indicating whether an EOM was encountered.

Parameters:
  • unmasked (LinearComb) – Expression in which too look for masked fermion EOMs.

  • fEOM (LinearComb) – Representation of the fermion EOM action on the right flavour for a specific flavour or set of flavours.

  • fEOMl (LinearComb) – Representation of the fermion EOM acting on the left flavour for a specific flavour or set of flavours.

  • model (Model) – Descriptor of the currently assumed theory.

Returns:

Boolean indicating whether a masked fermion EOM has been encountered and unmasked.

Return type:

bool

_unmaskgeom(unmasked: LinearComb, gluonEOM: GluonEOM) bool

Internal routine that replaces a single gluon EOM by the appropriate linear combination on each call. Returns a boolean indicating whether an EOM was encountered.

Parameters:
  • unmasked (LinearComb) – Expression in which the gluon EOM is supposed to be written out explicitly.

  • gluonEOM (GluonEOM) – Descriptor indicating how to unmask the gluon EOM.

Returns:

Boolean indicating whether a masked gluon EOM has been encountered and unmasked.

Return type:

bool

unmaskFermionEOMs(op: LinearComb, fEOM: LinearComb, model: Model)

Writes out all fermionic EOM contained in op explicitly. Expects fEOM to be of the form (for a specific set of flavours or flavour)

Psi.D0.Psi := Psi.Gamma[gmu].D[mu].Psi + Psi.M.Psi

Any deviation from this default form can be implemented by changing the linear combination.

CAUTION: op will be changed!

Parameters:
  • op (LinearComb) – Expression in which to replace all occurrences of the masked fermion EOM represented by D0 and D0l with the precise expression from fEOM.

  • fEOM (LinearComb) – Written out form of the fermion EOM acting on the right flavour.

unmaskGluonEOMs(op: LinearComb, gluonEOM: GluonEOM)

Writes out all gluon EOMs contained in op explicitly. gluonEOM has to be given in the form

1/TF*tr(DF[mu].Colour) :=

1/TF*tr([D(nu),F(nu,mu)].Colour) + SUM_Psi Psi.Gamma[gmu].Colour.Psi

Any deviation from this default form can be implemented by changing the linear combination.

tr(Colour.Colour) = -TF*KroneckerDelta

It is assumed that there will be at most one pair of Colour in any expression, i.e., at most 4-quark operators!

CAUTION: op and gluonEOM will be changed!

Parameters:
  • op (LinearComb) – Expression in which all masked occurrences of the gluon EOM are supposed to be unmasked.

  • gluonEOM (GluonEOM) – Descriptor indicating how to unmask the gluon EOM.