qlat.contract_field — Site-Level HVP Tensor Contraction¶
Source: qlat/qlat/contract_field.py
Note: Update this document when updating the source file.
Outline¶
contract_chvp_16(prop1, prop2)— full 16-component HVP field.
Overview¶
This module computes the conserved-point hadronic vacuum polarization
(HVP) tensor with all 16 spin-color polarization combinations
(mu * 4 + nu, where mu, nu ∈ {0,1,2,3}) at every lattice site.
Unlike contract_hvp.contract_chvp3_field which returns a LatData
correlator on a single time slice, contract_chvp_16 returns a full
lattice Field with 16 complex components per site. This is useful
when spatial or point-by-point information is needed.
The underlying C++ function implements:
chvp_16(x, mu*4+nu) = tr(g5_herm(prop2(x)) * gamma[mu] * prop1(x) * gamma[nu])
where mu is the sink polarization and nu is the source polarization.
API Reference¶
contract_chvp_16(prop1, prop2)¶
Compute the 16-component HVP tensor field.
Parameter |
Type |
Description |
|---|---|---|
|
|
First propagator |
|
|
Second propagator |
Returns: Field(ElemTypeComplexD) — field with 16 complex components
per site, indexed as mu * 4 + nu.
Decorated with: @timer
Component Index Convention¶
Index |
mu |
nu |
|---|---|---|
0 |
0 |
0 |
1 |
0 |
1 |
… |
… |
… |
15 |
3 |
3 |
Examples¶
import qlat as q
q.begin_with_mpi([1, 1, 1, 4])
total_site = q.Coordinate([4, 4, 4, 8])
geo = q.Geometry(total_site)
rs = q.RngState("seed")
prop1 = q.Prop(geo)
prop1.set_rand(rs.split("prop1"))
prop2 = q.Prop(geo)
prop2.set_rand(rs.split("prop2"))
chvp = q.contract_chvp_16(prop1, prop2)
print(chvp.multiplicity) # 16
q.end_with_mpi()