Claude-skill-registry dqmc-analyze

Extract physical observables with error estimates from completed DQMC simulations. Use when computing density, double occupancy, spin correlations, structure factors, or any measured quantity from simulation data.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/dqmc-analyze" ~/.claude/skills/majiayu000-claude-skill-registry-dqmc-analyze && rm -rf "$T"
manifest: skills/data/dqmc-analyze/SKILL.md
source content

Analyze Results

Inputs

  • Directory containing
    bin_*.h5
    files (completed simulations)
  • Observable names (see table below)

Outputs

  • Dictionary with parameters and
    (mean, stderr)
    tuples for each observable

Procedure

Basic analysis:

from dqmc_util import analyze_hub

data = analyze_hub.get("data/run/", "sign", "den", "zzr")

print(f"sign = {data['sign'][0]:.4f} +/- {data['sign'][1]:.4f}")
print(f"density = {data['den'][0]:.4f} +/- {data['den'][1]:.4f}")

Available observables:

NameDescriptionRequires
sign
Fermion sign-
den
Density <n>-
docc
Double occupancy <n_up n_down>-
gr
,
gk
Green's function (real/k-space)-
nnr
,
nnq
Density correlator / structure factor-
zzr
,
zzq
Spin-z correlator / structure factor-
xxr
Spin-x correlator-
swq0
S-wave pair structure factor-
nnrw0
,
zzrw0
Zero-freq susceptibilities
period_uneqlt > 0
dwq0t
D-wave pair susceptibility
period_uneqlt > 0

Collect from multiple directories:

import os

def collect_results(base_dir, observables):
    results = []
    for subdir in sorted(os.listdir(base_dir)):
        path = os.path.join(base_dir, subdir)
        if os.path.isdir(path):
            try:
                results.append(analyze_hub.get(path + "/", *observables))
            except Exception as e:
                print(f"Skipping {path}: {e}")
    return results

Compute derived quantities:

# Magnetic moment squared from spin correlator
path = "data/run/"
data = analyze_hub.get(path, "zzr")
mz2 = 4 * data["zzr"][0][0, 0]       # [0] = mean, shape (Ny, Nx)
mz2_err = 4 * data["zzr"][1][0, 0]   # [1] = stderr

Validation

  • Errorbar on sign is significantly less than mean. Otherwise, sign problem is too severe.
  • Errorbars on observable are reasonable (not >> mean)

Failure Modes

SymptomCauseRecovery
KeyError for observableObservable not computedCheck
period_uneqlt
setting
"No files found"Wrong path or no
bin_*.h5
Verify directory structure
Large error barsInsufficient statisticsRun more sweeps or bins