sft_wick.vertices — Vertices and Vertex Instances

Vertex definitions and vertex instantiation.

A Vertex is a template for an interaction term in S_int. A VertexInstance is a concrete instantiation with freshly assigned indices.

class sft_wick.vertices.Vertex(fields, coupling, local=True, equal_time=False, already_R_contracted=False)[source]

Bases: object

A vertex (interaction term) in S_int.

Examples

# Local vertex: int F_{ijk} phi_i(x) phi_j(x) psi_k(x) dx Vertex(fields=[phi, phi, psi], coupling=’F’)

# Non-local vertex: iint K_{ij}(x,x’) psi_i(x) psi_j(x’) dx dx’ Vertex(fields=[psi, psi], coupling=’K’, local=False)

Parameters:
fields: tuple[Field, ...]
coupling: str
local: bool = True
equal_time: bool = False
already_R_contracted: bool = False
property n_fields: int
property n_physical: int
property n_response: int
class sft_wick.vertices.VertexInstance(vertex, field_operators, coupling_symbol, spatial_variables, component_indices, copy_id, equal_time_aliases=())[source]

Bases: object

A concrete instance of a vertex with freshly-assigned indices.

Created during perturbative expansion when we instantiate copies of S_int.

Parameters:
vertex: Vertex
field_operators: list[FieldOperator]
coupling_symbol: Symbol
spatial_variables: list[str]
component_indices: list[str]
copy_id: int
equal_time_aliases: tuple[tuple[str, str], ...] = ()
classmethod instantiate(vertex, idx_ctx, copy_id)[source]

Create a concrete vertex instance with fresh indices.

For a local vertex: all fields share one spatial variable. For a non-local vertex: each field gets its own spatial variable.

Parameters:
Return type:

VertexInstance