Analyse des résultats DQMC

VérifiéSûr

Extrait des observables physiques avec estimations d'erreur à partir de simulations DQMC terminées. Utilisez-le pour calculer la densité, la double occupation, les corrélations de spin, les facteurs de structure ou toute autre quantité mesurée à partir des données de simulation.

Spar Skills Guide Bot
Data & IAAvancé
6002/06/2026
Claude Code
#quantum-monte-carlo#hubbard-model#observables#error-analysis#simulation-results

Recommandé pour

Notre avis

Extrait des observables physiques avec leurs incertitudes à partir de simulations DQMC terminées.

Points forts

  • Calcule directement la moyenne et l'erreur standard à partir des données groupées en blocs.
  • Prend en charge une large gamme d'observables (densité, double occupation, corrélations de spin, facteurs de structure).
  • Peut traiter plusieurs répertoires de simulation et agréger les résultats.
  • Valide la sévérité du problème de signe en vérifiant l'incertitude sur le signe.

Limites

  • Nécessite des fichiers HDF5 préexistants issus d'une simulation DQMC terminée.
  • N'effectue pas d'analyse statistique supplémentaire au-delà du regroupement par blocs.
  • Certaines observables (susceptibilités) nécessitent un paramètre spécifique (period_uneqlt > 0) pour être disponibles.
Quand l'utiliser

Utilisez cette compétence lorsque vous devez extraire rapidement des grandeurs mesurées avec leurs barres d'erreur à partir de résultats de simulation DQMC.

Quand l'éviter

Ne l'utilisez pas pour le traitement de données brutes avant le regroupement par blocs, ni pour des simulations qui ne sont pas terminées.

Analyse de sécurité

Sûr
Score qualité92/100

The skill only performs local file reading and statistical analysis on simulation data. There are no network calls, shell commands, destructive operations, or data exfiltration risks.

Aucun point d'attention détecté

Exemples

Basic observable extraction
I have a DQMC simulation output in 'data/run/', can you extract the fermion sign and density with error bars?
Multi-directory aggregation
Collect all observables from multiple subdirectories under 'simulations/' and compute the average double occupancy with error bars.
Derived quantity computation
Compute the magnetic moment squared from the spin correlator for the run in 'data/run/' using the zzr observable.

name: dqmc-analyze description: 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.

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:

| Name | Description | Requires | |------|-------------|----------| | 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

| Symptom | Cause | Recovery | |---------|-------|----------| | KeyError for observable | Observable not computed | Check period_uneqlt setting | | "No files found" | Wrong path or no bin_*.h5 | Verify directory structure | | Large error bars | Insufficient statistics | Run more sweeps or bins |

Skills similaires