lgatr.interface.spurions

Tools to include reference multivectors (‘spurions’) for symmetry breaking.

Functions

get_num_spurions([beam_spurion, ...])

Compute how many reference multivectors/spurions a given configuration will have

get_spurions([beam_spurion, ...])

Construct a list of reference multivectors/spurions for symmetry breaking

lgatr.interface.spurions.get_num_spurions(beam_spurion='xyplane', add_time_spurion=True, beam_mirror=True)[source]

Compute how many reference multivectors/spurions a given configuration will have

Parameters:
  • beam_spurion (str) – Different options for adding a beam_reference Options: ‘lightlike’, ‘spacelike’, ‘timelike’, ‘xyplane’, None

  • add_time_spurion (bool) – Whether to add the time direction as a reference to the network

  • beam_mirror (bool) – If true, include (x, 0, 0, -1) in addition to (x, 0, 0, 1). Only relevant for beam_reference in [‘lightlike’, ‘spacelike’, ‘timelike’] This is not required for beam_spurion=xyplane, as the xy-plane is symmetric

Returns:

num_spurions – Number of spurions

Return type:

int

lgatr.interface.spurions.get_spurions(beam_spurion='xyplane', add_time_spurion=True, beam_mirror=True, device='cpu', dtype=torch.float32)[source]

Construct a list of reference multivectors/spurions for symmetry breaking

Parameters:
  • beam_spurion (str) – Different options for adding a beam_reference Options: ‘lightlike’, ‘spacelike’, ‘timelike’, ‘xyplane’, None

  • add_time_spurion (bool) – Whether to add the time direction as a reference to the network

  • beam_mirror (bool) – Whether we only want (x, 0, 0, 1) or both (x, 0, 0, +/- 1) for the beam If true, include (x, 0, 0, -1) in addition to (x, 0, 0, 1). Only relevant for beam_reference in [‘lightlike’, ‘spacelike’, ‘timelike’] This is not required for beam_spurion=xyplane, as the xy-plane is symmetric

  • device (torch.device)

  • dtype (torch.dtype)

Returns:

spurions – spurion embedded as multivector object with shape (num_spurions, 16)

Return type:

torch.tensor