Skip to content

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:

  1. Original field: the input binary configuration is written out unchanged apart from conversion to NERSC format.
  2. Stout smearing: the gauge fields are stout-smeared with \(N=3\) steps and \(\rho = 0.1\), then saved in NERSC format.
  3. 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.