iblep-real-props
graph LR
%%%%%%%%%%%%%%%%%%%%%%%
%% Highlight definition
%%%%%%%%%%%%%%%%%%%%%%%
classDef highlight fill:#083008,stroke:#20B030,stroke-width:4px
%%%%%%%%%%%%%%%%%%%%%%%
%% Graph
%%%%%%%%%%%%%%%%%%%%%%%
iblep-disc-loops -->|Propagators| iblep-disc-burgershort;
iblep-disc-loops -.->|Tadpoles| iblep-conn-lep;
iblep-disc-loops -.->|Tadpoles| iblep-conn-omega;
iblep-disc-burgerlong;
iblep-conn-emfieldft;
iblep-real-fixgauge -->|Gauge field| iblep-real-props;
iblep-real-props -->|Propagators| iblep-real-threept;
class iblep-real-props highlight
%%%%%%%%%%%%%%%%%%%%%%%
%% Interaction
%%%%%%%%%%%%%%%%%%%%%%%
click iblep-disc-loops "../../../workflows/disc/iblep-disc-loops/";
click iblep-disc-burgershort "../../../workflows/disc/iblep-disc-burgershort/";
click iblep-disc-burgerlong "../../../workflows/disc/iblep-disc-burgerlong/";
click iblep-conn-lep "../../../workflows/conn/iblep-conn-lep/";
click iblep-conn-omega "../../../workflows/conn/iblep-conn-omega/";
click iblep-conn-emfieldft "../../../workflows/conn/iblep-conn-emfieldft/";
click iblep-real-fixgauge "../../../workflows/real/iblep-real-fixgauge/";
click iblep-real-props "../../../workflows/real/iblep-real-props/";
click iblep-real-threept "../../../workflows/real/iblep-real-threept/";
iblep-real-props computes the quark propagators required by iblep-real-threept and also produces the associated two-point correlation functions.
Prerequisites and outputs
Inputs
- Gauge fields from iblep-real-fixgauge.
Outputs
- Files: Lattice propagators in Scidac format.
- Files: HDF5 files containing two-point functions.
Workflow
The program loops over each flavor and source, and computes two classes of propagators,
- Jacobi-smeared propagators with a \(Z_2 \otimes Z_2\) time-wall source, solving to all lattice points with zero twist.
- Point-source propagators from the spatial location \((0, 0, 0)\) (at the chosen source timeslice), solving to all lattice points with three different twists.
For the twist angles we use \(0, \pm \theta\) so that photon momenta can be accessed in all spatial momenta.
Note
The \(Z_2 \otimes Z_2\) source prepares an initial state at rest, \(\vec{p} = 0\).
After all propagators for a given source timeslice have been solved, the code computes a set of two-point functions:
- Flavour combinations: \((l_1, l_1)\), \((l_1, s_1)\), \((s_1, s_1)\), \((h_q, h_q)\), \((h_q, h_0)\), \((h_q, l_1)\), \((h_q, s_1)\). Here \(h_q\) denotes a heavy quark.
- Source/sink types: smeared-smeared, smeared-point, point-point, and point-smeared.
- Dirac structures: all \(\Gamma\) structures are included.
Tip
The twist angle is chosen to fill kinematic gaps not covered by Fourier momenta alone.
computeLightProps, computeHeavyProps, computeJacobi, computePoint, and
compute2pt control which work is performed.
The switches have the following effects:
| Switch | Effect |
|---|---|
computePoint |
Include the point source block. |
computeJacobi |
Include the jacobi_smeared source block. |
computeLightProps |
Solve and save the l1 and s1 propagators. |
computeHeavyProps |
Solve and save every flavour listed in hq. |
compute2pt |
Contract two-point functions; when a solve class is disabled, load its propagators from props. |
Two-point functions (HDF5)
The two-point functions for a charm-light meson using Jacobi smearing, with a source at timeslice 127, are written to:
twoPt_h0l1_src_jaobi_smeared_tSrc_127.2310.h5
This file contains one group per sink type, e.g.
/2pt_tSrc_127_q1_h0_q2_l1_src_jacobi_smeared_snk_jacobi_smeared/2pt_tSrc_127_q1_h0_q2_l1_src_jacobi_smeared_snk_point
Each group contains subgroups for all \(\Gamma\)-matrix combinations.
Propagators (binary)
Binary propagators follow the naming pattern:
Prop_flavor_h0_mass_0.210476_twist_0.000000_0.000000_0.027116_0.000000_source_point_t_48.2310.bin
This encodes the quark flavour and bare mass, the twist angle \((\theta_x,\theta_y,\theta_z,\theta_t)\), and the source type and source timeslice.
How to Run
An example input file is shown below for ensemble fud3sa, trajectory 2310.
Key fields:
solveLightProps: iftrue, perform the light and strange solves; iffalse, load the propagators from disk.solveHeavyProps: iftrue, perform the heavy-quark solves; iffalse, load the propagators from disk.action: scaled DWF action parameters.l1,s1,hq: bare quark masses.sm: Jacobi smearing parameters.jacobi_smeared: source-time range and twist angles for Jacobi-smeared solves.point: source-time range and twist angles for point-source solves.
Tip
The solveLightProps and solveHeavyProps flags exist to support workflows where additional two-point functions are added without re-solving propagators.
Warning
Due to walltime constraints, it is recommended to split the full set of sources (and sink choices) across multiple jobs.
Two-point functions
For source
and sink gamma matrices \(\Gamma_{\rm src}\) and \(\Gamma_{\rm snk}\), the Hadrons
Meson module computes
The workflow requests the complete Hadrons gamma-pair basis and produces both point and Jacobi-smeared sinks for each enabled source. These correlators supply the masses, energies and source/sink overlaps needed to normalize the three-point functions; the HDF5 output does not replace the underlying propagator files.
The result database records:
| Column | Meaning |
|---|---|
meson |
Ordered flavour labels \(f_1f_2\). |
src, snk |
Source and sink constructions. |
tSrc |
Source timeslice. |
mom |
Sink momentum; currently 0 0 0. |
dataset |
Hadrons dataset name in the associated result group. |
Each Meson dataset contains complex time correlators, as with iblep-conn-lep.
Minimal test configuration
This is the current small test configuration from
parameters/iblep-real/test/props.json:
{
"setup": "test",
"compute2pt": false,
"computeJacobi": true,
"computePoint": true,
"computeLightProps": true,
"computeHeavyProps": false,
"global": {
"database": { "applicationDb": "", "restoreSchedule": false, "resultDb": "data/result.db", "statDbBase": "", "statDbPeriodMs": 1000 },
"runId": "iblep-real-props-test",
"scheduler": "naive",
"trajCounter": { "start": 0, "end": 0, "step": 1 }
},
"gauge": "fixtures/random_gauge.nersc",
"props": "data/props",
"twoPt": "data/twoPoint",
"l1": 0.003,
"s1": 0.015,
"hq": [],
"saveParameters": "data/modules.props.xml",
"sm": { "iterations": 8, "orthog": 3, "width": 3 },
"jacobi_smeared": { "tSrc": { "start": 0, "stop": 0, "step": 1 }, "twist": ["0.0 0.0 0.0 0.0"] },
"point": { "tSrc": { "start": 4, "stop": 4, "step": 1 }, "twist": ["0.0 0.0 0.0 0.0"] }
}
For production, select a named setup and
extend hq and the source/twist ranges. The valence masses and
twists remain explicit tuning inputs.