Claude Code Plugins

Community-maintained marketplace

Feedback

dqmc-dev

@edwnh/dqmc
16
0

Workflow for modifying DQMC C code, adding new measurements, and running tests. Use when editing source code, implementing new observables, debugging, or validating code changes.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name dqmc-dev
description Workflow for modifying DQMC C code, adding new measurements, and running tests. Use when editing source code, implementing new observables, debugging, or validating code changes.

Code Development

Build & Test

# Build
make               # -> build/dqmc
make clean         # remove build/

# Test
cd test && make && ./test_greens

Smoke Test

After any code change:

dqmc-util gen Nx=4 Ny=4 U=4 dt=0.1 L=20 n_sweep_warm=50 n_sweep_meas=100
build/dqmc sim_0.h5
dqmc-util summary sim_0.h5

Adding New Measurements

  1. Add to X-macro list in src/rc/sim_types.h:

    // Add to MEAS_EQLT_LIST (or MEAS_UNEQLT_LIST for unequal-time)
    #define MEAS_EQLT_LIST \
        /* ... */ \
        X(my_meas, num_ij)  // pick an appropriate size expression
    
  2. Implement measurement kernel in src/rc/meas.c

  3. Add analysis function in dqmc_util/analyze_hub.py (and update reshaping/symmetrization if needed):

    @observable(
        description="my new observable",
        requires=("meas_eqlt/n_sample", "meas_eqlt/sign", "meas_eqlt/my_meas"),
    )
    def _my_meas(ctx):
        return core.jackknife_noniid(
            ctx.data["meas_eqlt/n_sample"],
            ctx.data["meas_eqlt/sign"],
            ctx.data["meas_eqlt/my_meas"],
        )
    

Key Code Patterns

Dual compilation: Files in src/rc/ compile twice. Use RC(name) macro for real/complex dispatch.

Memory: Use my_calloc() for 64-byte aligned allocations.

Profiling: Wrap with profile_begin(name) / profile_end(name).

Definition of Done

  • make succeeds without warnings
  • cd test && make && ./test_greens passes
  • Smoke run completes
  • If touching measurements: verify via dqmc-util summary