CffSurface
CffSurface
class CffSurfaceA denominator surface appearing in a Cross-Free Family representation.
Surfaces identify the combinations of on-shell energies that can occur in loop-energy denominators. They are obtained from a CffResult rather than constructed directly.
Examples
from symbolica import S, E
from symbolica.community import hepkit as hep
model = hep.Model.phi4()
process = model.process(["phi", "phi"], ["phi", "phi"])
result = process.generate_diagrams(loops=1)
diagram = result.diagrams[0]
result = diagram.build_cff()
surface = result.surfaces[0]
energy_combination = result.surface_expression(surface)Attributes
| Name | Description |
|---|---|
external_shift |
Return external edge IDs and their integer shift coefficients. |
index |
Return the index of an energy or H surface |
kind |
Return the surface category: energy, h, unit, or infinite. |
negative_energies |
Return edge IDs whose on-shell energies enter with negative sign. |
positive_energies |
Return edge IDs whose on-shell energies enter with positive sign. |
symbol_name |
Return the Symbolica variable name assigned to this surface |
vertices |
Return the original diagram vertex IDs enclosed by this surface |
external_shift
CffSurface.external_shift: builtins.list[tuple[builtins.int, builtins.int]]Return external edge IDs and their integer shift coefficients.
Examples
Using the setup in the CffSurface class example:
external_energy_shift = surface.external_shiftindex
CffSurface.index: builtins.intReturn the index of an energy or H surface.
Raises :class:CffError for the special unit or infinite sentinels.
Examples
Using the setup in the CffSurface class example:
surface_by_index = {item.index: item for item in result.surfaces}kind
CffSurface.kind: builtins.strReturn the surface category: energy, h, unit, or infinite.
Examples
Using the setup in the CffSurface class example:
surface_kinds = {item.kind for item in result.surfaces}negative_energies
CffSurface.negative_energies: builtins.list[builtins.int]Return edge IDs whose on-shell energies enter with negative sign.
Examples
Using the setup in the CffSurface class example:
negative_edges = surface.negative_energiespositive_energies
CffSurface.positive_energies: builtins.list[builtins.int]Return edge IDs whose on-shell energies enter with positive sign.
Examples
Using the setup in the CffSurface class example:
positive_edges = surface.positive_energiessymbol_name
CffSurface.symbol_name: builtins.strReturn the Symbolica variable name assigned to this surface.
Raises :class:CffError for the special unit or infinite sentinels, which are not denominator variables.
Examples
Using the setup in the CffSurface class example:
surface_names = [item.symbol_name for item in result.surfaces]vertices
CffSurface.vertices: builtins.list[builtins.int]Return the original diagram vertex IDs enclosed by this surface.
Contracted CFF vertices retain the identities of all interaction vertices they contain, including for selected subgraphs.
Examples
Using the setup in the CffSurface class example:
region_vertices = surface.verticesMethods
| Name | Description |
|---|---|
__repr__ |
Return the surface’s symbolic name, or its category for special surfaces. |
__repr__
CffSurface.__repr__() -> builtins.strReturn the surface’s symbolic name, or its category for special surfaces.
Examples
Using the setup in the CffSurface class example:
print(surface) # Symbolica denominator variable, for example feynkit_cff::η(0)