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.mdsource content
Analyze Results
Inputs
- Directory containing
files (completed simulations)bin_*.h5 - Observable names (see table below)
Outputs
- Dictionary with parameters and
tuples for each observable(mean, stderr)
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:
| Name | Description | Requires |
|---|---|---|
| Fermion sign | - |
| Density <n> | - |
| Double occupancy <n_up n_down> | - |
, | Green's function (real/k-space) | - |
, | Density correlator / structure factor | - |
, | Spin-z correlator / structure factor | - |
| Spin-x correlator | - |
| S-wave pair structure factor | - |
, | Zero-freq susceptibilities | |
| D-wave pair susceptibility | |
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
| Symptom | Cause | Recovery |
|---|---|---|
| KeyError for observable | Observable not computed | Check setting |
| "No files found" | Wrong path or no | Verify directory structure |
| Large error bars | Insufficient statistics | Run more sweeps or bins |