返回 Skill 列表
extension
分类: 开发与工程无需 API Key

dqmc-generate

创建具有指定物理参数的HDF5模拟文件,用于DQMC。在设置新的模拟时使用,指定晶格大小、相互作用强度U、化学势mu、温度(通过dt和L)、或蒙特卡洛扫描次数。

person作者: jakexiaohubgithub

Generate Simulation Files

Inputs

| Input | Required | Default | Description | |-------|----------|---------|-------------| | Nx, Ny | No | 8 | Lattice dimensions | | U | No | 6.0 | On-site interaction strength | | mu | No | 0.0 | Chemical potential | | tp | No | 0.0 | Next-nearest neighbor hopping | | dt | No | 0.1 | Imaginary time step | | L | No | 40 | Number of time slices (beta = L*dt) | | n_sweep_warm | No | 200 | Warmup sweeps | | n_sweep_meas | No | 2000 | Measurement sweeps | | Nfiles | No | 1 | Number of independent bins | | prefix | No | sim | Output path prefix | | period_uneqlt | No | 0 | Unequal-time period (0=disabled) |

Outputs

  • {prefix}_0.h5, {prefix}_1.h5, ... - HDF5 simulation files
  • {prefix}.h5.params - common params HDF5 file

Procedure

Option A: CLI (simple cases)

dqmc-util gen Nx=6 Ny=6 U=4.0 mu=0.0 dt=0.1 L=50 Nfiles=4 prefix=data/run/bin

Option B: Python (parameter scans)

from dqmc_util import gen_1band_hub

gen_1band_hub.create_batch(
    prefix="data/run/bin", Nfiles=4,
    Nx=6, Ny=6, U=4.0, mu=0.0, tp=0.0, dt=0.1, L=50
)

Choosing dt and L for a target temperature T:

import numpy as np
T = 0.25  # target temperature
U = 4.0
beta = 1.0 / T
dt = min((0.05/U)**0.5, beta / 10)  # Trotter error constraint
L = int(np.ceil(beta / dt / 5) * 5)  # L must be divisible by n_matmul and period_eqlt (defaults: 5)
dt = beta / L  # recalculate exact dt

Validation

  • [ ] Files created: ls {prefix}_*.h5 {prefix}.h5.params
  • [ ] Trotter error check: U * dt^2 <= 0.05

Failure Modes

| Symptom | Cause | Recovery | |---------|-------|----------| | "File exists" error | Previous files not cleaned | Remove old files or use overwrite=1 argument | | ValueError: L must be divisible ... | L must be multiple of n_matmul and period_eqlt | Adjust value of L and dt, keeping their product (beta) constant |

Do Not

  • Overwrite existing simulation files without confirmation
  • Ignore the Trotter error bound (U * dt^2 <= 0.05)