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)
微信扫一扫