iblep-real-fixgauge
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-fixgauge 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-fixgauge reads binary gauge configurations and writes four derived
outputs: the original field converted to NERSC format, a stout-smeared field,
a Coulomb-gauge-fixed smeared field, and the corresponding gauge transformation.
Inputs
- A JLQCD gauge configuration as a binary blob.
Outputs
- File:
ckpoint_lat- The original gauge configuration, converted to a checksummed NERSC format. - File:
ckpoint_lat_stout- The stout-smeared gauge configuration, in NERSC format. - File:
ckpoint_lat_coulomb- The Coulomb-gauge-fixed stout-smeared gauge configuration, in NERSC format. - File:
ckpoint_lat_coulomb_xform- The gauge transformation used to perform the gauge fixing.
Workflow description
This programme generates three versions of the gauge field, each written in NERSC format, plus the Coulomb-gauge transformation:
- Original field: the input binary configuration is written out unchanged apart from conversion to NERSC format.
- Stout smearing: the gauge fields are stout-smeared with \(N=3\) steps and \(\rho = 0.1\), then saved in NERSC format.
- Coulomb gauge fixing (after smearing): starting from the stout-smeared configuration, the gluon fields are fixed to Coulomb gauge and saved in NERSC format. The corresponding gauge transformation (color matrices) is also stored.
Tip
Setting gaugeFix.fourier to false provides a substantial speed-up. For
production runs we used two-node GPU jobs, which were significantly faster
than the CPU version.
Prerequisites
No prior preprocessing is required. The only dependency is access to the gauge configurations. At the time of writing, the original binary files are stored on Tursa at:
/mnt/lustre/tursafs1/home/dp391/shared/data/configs/jlqcd/SymDW_sHtTanh_b2.0_smr3_64x128x08_b4.47_M1.00_mud0.0030_ms0.0150
Four gauge fields are missing, corresponding to the following trajectories:
- 2210
- 2510
- 2960
- 3110
Input JSON
The current test input is:
{
"ensembleLabel": "iblep-real-test",
"ensembleId": "iblep",
"format": "IEEE64BIG",
"global": {
"database": {
"applicationDb": "",
"restoreSchedule": false,
"resultDb": "",
"statDbBase": "",
"statDbPeriodMs": 1000
},
"runId": "iblep-real-fixgauge-test",
"scheduler": "naive",
"trajCounter": {"start": 0, "end": 0, "step": 1}
},
"paths": {
"binaryInput": "fixtures/random_gauge.bin",
"nerscOutput": "data/gauge/nersc/ckpoint_lat",
"stoutOutput": "data/gauge/stout/ckpoint_lat_stout",
"coulombOutput": "data/gauge/coulomb/ckpoint_lat_coulomb",
"transformationOutput": "data/gauge/coulomb/ckpoint_lat_coulomb_xform"
},
"stout": {"rho": 0.1, "steps": 3},
"gaugeFix": {
"alpha": 0.05,
"fourier": false,
"maxIterations": 1000000,
"omegaTolerance": 1e-8,
"phiTolerance": 1e-8
},
"saveParameters": "data/modules.fixgauge.xml"
}
format describes the binary input representation. ensembleId and
ensembleLabel are written into the NERSC metadata. The global block has the
same Hadrons meaning as in the other workflows, while saveParameters records
the fully expanded module graph.