Workflow for modifying the DQMC C code, adding new measurements, and running tests. Use this when editing source code, implementing new observables, debugging, or validating code changes.
# Build
make # -> build/dqmc
make clean # remove build/
# Test
cd test && make && ./test_greens
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
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
Implement measurement kernel in src/rc/meas.c
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"],
)
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).
make succeeds without warningscd test && make && ./test_greens passesdqmc-util summarySearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer