From 09ce40ac422bfb3bafde61485d6335f90792548f Mon Sep 17 00:00:00 2001
From: Peter Doak <11856692+PDoakORNL@users.noreply.github.com>
Date: Fri, 22 May 2026 22:42:33 +0000
Subject: [PATCH 1/9] Update tc tutorial templates to use kagome-style threaded
solver
- Change accumulators from 5 to 3
- Add shared-walk-and-accumulation-thread: true
- Update README to reflect 3 accumulators
---
tutorials/tc/input_sp.json.in | 3 ++-
tutorials/tc/input_tp.json.in | 3 ++-
tutorials/tc/preconfigured/README.md | 2 +-
3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/tutorials/tc/input_sp.json.in b/tutorials/tc/input_sp.json.in
index aba3c98be..a26005429 100644
--- a/tutorials/tc/input_sp.json.in
+++ b/tutorials/tc/input_sp.json.in
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/input_tp.json.in b/tutorials/tc/input_tp.json.in
index 7bbb7ec99..b42ac72d5 100644
--- a/tutorials/tc/input_tp.json.in
+++ b/tutorials/tc/input_tp.json.in
@@ -65,7 +65,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/README.md b/tutorials/tc/preconfigured/README.md
index 7d81158b7..5f060c634 100644
--- a/tutorials/tc/preconfigured/README.md
+++ b/tutorials/tc/preconfigured/README.md
@@ -1,5 +1,5 @@
This directory contains ready-to-use input files and jobs scripts for the [Tc tutorial](https://github.com/CompFUSE/DCA/wiki/Tutorial:-Tc).
-The files are preconfigured to run the example with a single process (no MPI) using the threaded Monte Carlo solver with 3 walkers and 5 accumulators.
+The files are preconfigured to run the example with a single process (no MPI) using the threaded Monte Carlo solver with 3 walkers and 3 accumulators.
The total number of measurements is 100 000.
The temperature steps are given by
From 002980379a9735165eb03aaeb2b68ceddc076b5c Mon Sep 17 00:00:00 2001
From: Peter Doak <11856692+PDoakORNL@users.noreply.github.com>
Date: Fri, 22 May 2026 22:42:35 +0000
Subject: [PATCH 2/9] Add gen_temps.awk to regenerate tc/preconfigured inputs
---
tutorials/tc/gen_temps.awk | 94 ++++++++++++++++++++++++++++++++++++++
1 file changed, 94 insertions(+)
create mode 100755 tutorials/tc/gen_temps.awk
diff --git a/tutorials/tc/gen_temps.awk b/tutorials/tc/gen_temps.awk
new file mode 100755
index 000000000..6683c6c46
--- /dev/null
+++ b/tutorials/tc/gen_temps.awk
@@ -0,0 +1,94 @@
+#!/usr/bin/awk -f
+# Generates the tc/preconfigured input files from the templates input_sp.json.in and input_tp.json.in.
+# Run this script from tutorials/tc/.
+
+BEGIN {
+ # Temperature series from high to low.
+ n_temps = 9
+ temps[1] = 1
+ temps[2] = 0.75
+ temps[3] = 0.5
+ temps[4] = 0.25
+ temps[5] = 0.125
+ temps[6] = 0.1
+ temps[7] = 0.09
+ temps[8] = 0.08
+ temps[9] = 0.07
+
+ # Pre-computed beta = 1/T values matching the existing preconfigured files.
+ betas[1] = 1
+ betas[2] = 1.33333
+ betas[3] = 2
+ betas[4] = 4
+ betas[5] = 8
+ betas[6] = 10
+ betas[7] = 11.1111
+ betas[8] = 12.5
+ betas[9] = 14.2857
+
+ # Temperatures that also need a two-particle (tp) input file.
+ has_tp[6] = 1
+ has_tp[7] = 1
+ has_tp[8] = 1
+ has_tp[9] = 1
+
+ # Fixed physical parameters.
+ dens = 0.95
+ hubbardU = 6
+ vec1 = "[2, 0]"
+ vec2 = "[0, 2]"
+
+ for (i = 1; i <= n_temps; i++) {
+ t = temps[i]
+
+ # Previous temperature for self-energy restart ("zero" for the highest T).
+ prev = (i == 1) ? "zero" : temps[i - 1]
+
+ # DCA iterations: 8 for the first temperature, 6 otherwise.
+ iters_sp = (i == 1) ? 8 : 6
+
+ dir = "preconfigured/T=" t
+ cmd = "mkdir -p " dir
+ system(cmd)
+
+ # Generate input_sp.json.
+ sp_in = "input_sp.json.in"
+ sp_out = dir "/input_sp.json"
+ while ((getline line < sp_in) > 0) {
+ gsub(/BETA/, betas[i], line)
+ gsub(/DENS/, dens, line)
+ gsub(/HUBBARDU/, hubbardU, line)
+ gsub(/VEC1/, vec1, line)
+ gsub(/VEC2/, vec2, line)
+ gsub(/CURRENT_TEMP/, t, line)
+ gsub(/PREVIOUS_TEMP/, prev, line)
+ # Fix the initial self-energy for the highest temperature.
+ gsub(/"\.\/T=zero\/dca_sp\.hdf5"/, "\"zero\"", line)
+ gsub(/ITERS/, iters_sp, line)
+ print line > sp_out
+ }
+ close(sp_in)
+ close(sp_out)
+
+ # Generate input_tp.json for temperatures that need it.
+ if (has_tp[i]) {
+ tp_in = "input_tp.json.in"
+ tp_out = dir "/input_tp.json"
+ while ((getline line < tp_in) > 0) {
+ gsub(/BETA/, betas[i], line)
+ gsub(/DENS/, dens, line)
+ gsub(/HUBBARDU/, hubbardU, line)
+ gsub(/VEC1/, vec1, line)
+ gsub(/VEC2/, vec2, line)
+ gsub(/CURRENT_TEMP/, t, line)
+ # PREVIOUS_TEMP is not used in the tp template, but substitute
+ # with the current temperature for safety.
+ gsub(/PREVIOUS_TEMP/, t, line)
+ gsub(/ITERS/, 1, line)
+ print line > tp_out
+ }
+ close(tp_in)
+ close(tp_out)
+ }
+ }
+}
From fd35747ac5f3f9321549e32b0dbe2d104827d725 Mon Sep 17 00:00:00 2001
From: Peter Doak <11856692+PDoakORNL@users.noreply.github.com>
Date: Fri, 22 May 2026 22:42:38 +0000
Subject: [PATCH 3/9] Regenerate tc/preconfigured inputs from updated templates
---
tutorials/tc/preconfigured/T=0.07/input_sp.json | 3 ++-
tutorials/tc/preconfigured/T=0.07/input_tp.json | 3 ++-
tutorials/tc/preconfigured/T=0.08/input_sp.json | 3 ++-
tutorials/tc/preconfigured/T=0.08/input_tp.json | 3 ++-
tutorials/tc/preconfigured/T=0.09/input_sp.json | 3 ++-
tutorials/tc/preconfigured/T=0.09/input_tp.json | 3 ++-
tutorials/tc/preconfigured/T=0.1/input_sp.json | 3 ++-
tutorials/tc/preconfigured/T=0.1/input_tp.json | 3 ++-
tutorials/tc/preconfigured/T=0.125/input_sp.json | 3 ++-
tutorials/tc/preconfigured/T=0.25/input_sp.json | 3 ++-
tutorials/tc/preconfigured/T=0.5/input_sp.json | 3 ++-
tutorials/tc/preconfigured/T=0.75/input_sp.json | 3 ++-
tutorials/tc/preconfigured/T=1/input_sp.json | 3 ++-
13 files changed, 26 insertions(+), 13 deletions(-)
diff --git a/tutorials/tc/preconfigured/T=0.07/input_sp.json b/tutorials/tc/preconfigured/T=0.07/input_sp.json
index a028bd057..a0a06c0e5 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_sp.json
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.07/input_tp.json b/tutorials/tc/preconfigured/T=0.07/input_tp.json
index 2fd28ecf3..ccf4c6200 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_tp.json
@@ -65,7 +65,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.08/input_sp.json b/tutorials/tc/preconfigured/T=0.08/input_sp.json
index b6b02ab3d..c6ca33b93 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_sp.json
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.08/input_tp.json b/tutorials/tc/preconfigured/T=0.08/input_tp.json
index 0c465ec05..3d13c2b37 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_tp.json
@@ -65,7 +65,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.09/input_sp.json b/tutorials/tc/preconfigured/T=0.09/input_sp.json
index b57e2e6f1..993694a68 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_sp.json
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.09/input_tp.json b/tutorials/tc/preconfigured/T=0.09/input_tp.json
index a971589e0..21b7d4d2d 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_tp.json
@@ -65,7 +65,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.1/input_sp.json b/tutorials/tc/preconfigured/T=0.1/input_sp.json
index ad6b3da99..43ce4e5aa 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_sp.json
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.1/input_tp.json b/tutorials/tc/preconfigured/T=0.1/input_tp.json
index b987c9e2b..14a2f2667 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_tp.json
@@ -65,7 +65,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.125/input_sp.json b/tutorials/tc/preconfigured/T=0.125/input_sp.json
index a984c7bff..bbfb6f195 100644
--- a/tutorials/tc/preconfigured/T=0.125/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.125/input_sp.json
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.25/input_sp.json b/tutorials/tc/preconfigured/T=0.25/input_sp.json
index 821c8cef0..8ee38754d 100644
--- a/tutorials/tc/preconfigured/T=0.25/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.25/input_sp.json
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.5/input_sp.json b/tutorials/tc/preconfigured/T=0.5/input_sp.json
index e85404d5e..b6649df9d 100644
--- a/tutorials/tc/preconfigured/T=0.5/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.5/input_sp.json
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.75/input_sp.json b/tutorials/tc/preconfigured/T=0.75/input_sp.json
index 97d0eda1c..64767fbf9 100644
--- a/tutorials/tc/preconfigured/T=0.75/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.75/input_sp.json
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=1/input_sp.json b/tutorials/tc/preconfigured/T=1/input_sp.json
index 29210fb69..9be112b61 100644
--- a/tutorials/tc/preconfigured/T=1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=1/input_sp.json
@@ -63,7 +63,8 @@
"threaded-solver": {
"walkers": 3,
- "accumulators": 5
+ "accumulators": 3,
+ "shared-walk-and-accumulation-thread": true
}
},
From f2b9f71f4121cb89d13026ea046997c2b59c36b8 Mon Sep 17 00:00:00 2001
From: Peter Doak <11856692+PDoakORNL@users.noreply.github.com>
Date: Sat, 23 May 2026 12:58:31 +0000
Subject: [PATCH 4/9] Add local workstation job scripts using mpiexec
---
.../job.local.analysis_U=6_d=0.95_Nc=4.sh | 17 +++++++++++++
.../job.local.dca_U=6_d=0.95_Nc=4.sh | 25 +++++++++++++++++++
2 files changed, 42 insertions(+)
create mode 100755 tutorials/tc/preconfigured/job.local.analysis_U=6_d=0.95_Nc=4.sh
create mode 100755 tutorials/tc/preconfigured/job.local.dca_U=6_d=0.95_Nc=4.sh
diff --git a/tutorials/tc/preconfigured/job.local.analysis_U=6_d=0.95_Nc=4.sh b/tutorials/tc/preconfigured/job.local.analysis_U=6_d=0.95_Nc=4.sh
new file mode 100755
index 000000000..e77adcd84
--- /dev/null
+++ b/tutorials/tc/preconfigured/job.local.analysis_U=6_d=0.95_Nc=4.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Run analysis on a local workstation (no scheduler, single process).
+# NOTE: Do not use mpiexec/multi-process with the threaded solver; a code bug
+# causes incorrect density measurements when MPI is combined with
+# shared-walk-and-accumulation-thread.
+
+RUN_DCA="../../applications/analysis/main_analysis"
+
+date
+
+$RUN_DCA ./T=0.1/input_tp.json
+$RUN_DCA ./T=0.09/input_tp.json
+$RUN_DCA ./T=0.08/input_tp.json
+$RUN_DCA ./T=0.07/input_tp.json
+
+date
diff --git a/tutorials/tc/preconfigured/job.local.dca_U=6_d=0.95_Nc=4.sh b/tutorials/tc/preconfigured/job.local.dca_U=6_d=0.95_Nc=4.sh
new file mode 100755
index 000000000..285d2b3dd
--- /dev/null
+++ b/tutorials/tc/preconfigured/job.local.dca_U=6_d=0.95_Nc=4.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# Run all tc calculations on a local workstation (no scheduler, single process).
+# NOTE: Do not use mpiexec/multi-process with the threaded solver; a code bug
+# causes incorrect density measurements when MPI is combined with
+# shared-walk-and-accumulation-thread.
+
+RUN_DCA="../../applications/dca/main_dca"
+date
+
+$RUN_DCA ./T=1/input_sp.json
+$RUN_DCA ./T=0.75/input_sp.json
+$RUN_DCA ./T=0.5/input_sp.json
+$RUN_DCA ./T=0.25/input_sp.json
+$RUN_DCA ./T=0.125/input_sp.json
+$RUN_DCA ./T=0.1/input_sp.json
+$RUN_DCA ./T=0.1/input_tp.json
+$RUN_DCA ./T=0.09/input_sp.json
+$RUN_DCA ./T=0.09/input_tp.json
+$RUN_DCA ./T=0.08/input_sp.json
+$RUN_DCA ./T=0.08/input_tp.json
+$RUN_DCA ./T=0.07/input_sp.json
+$RUN_DCA ./T=0.07/input_tp.json
+
+date
From b86725fbbcfa60d4b8545ba08b4b31e15b4d8b1b Mon Sep 17 00:00:00 2001
From: Peter Doak <11856692+PDoakORNL@users.noreply.github.com>
Date: Sat, 23 May 2026 14:18:19 +0000
Subject: [PATCH 5/9] Update tc tutorial to 6 walkers/6 accumulators,
single-process only
---
tutorials/tc/input_sp.json.in | 4 ++--
tutorials/tc/input_tp.json.in | 4 ++--
tutorials/tc/preconfigured/README.md | 2 +-
tutorials/tc/preconfigured/T=0.07/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.07/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.08/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.08/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.09/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.09/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.1/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.1/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.125/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.25/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.5/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.75/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=1/input_sp.json | 4 ++--
16 files changed, 31 insertions(+), 31 deletions(-)
diff --git a/tutorials/tc/input_sp.json.in b/tutorials/tc/input_sp.json.in
index a26005429..887258de3 100644
--- a/tutorials/tc/input_sp.json.in
+++ b/tutorials/tc/input_sp.json.in
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/input_tp.json.in b/tutorials/tc/input_tp.json.in
index b42ac72d5..3ee031c3a 100644
--- a/tutorials/tc/input_tp.json.in
+++ b/tutorials/tc/input_tp.json.in
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/README.md b/tutorials/tc/preconfigured/README.md
index 5f060c634..b097c517e 100644
--- a/tutorials/tc/preconfigured/README.md
+++ b/tutorials/tc/preconfigured/README.md
@@ -1,5 +1,5 @@
This directory contains ready-to-use input files and jobs scripts for the [Tc tutorial](https://github.com/CompFUSE/DCA/wiki/Tutorial:-Tc).
-The files are preconfigured to run the example with a single process (no MPI) using the threaded Monte Carlo solver with 3 walkers and 3 accumulators.
+The files are preconfigured to run the example with a single process (no MPI) using the threaded Monte Carlo solver with 6 walkers and 6 accumulators.
The total number of measurements is 100 000.
The temperature steps are given by
diff --git a/tutorials/tc/preconfigured/T=0.07/input_sp.json b/tutorials/tc/preconfigured/T=0.07/input_sp.json
index a0a06c0e5..70c54aff4 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.07/input_tp.json b/tutorials/tc/preconfigured/T=0.07/input_tp.json
index ccf4c6200..128a457b3 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.08/input_sp.json b/tutorials/tc/preconfigured/T=0.08/input_sp.json
index c6ca33b93..8aa42306e 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.08/input_tp.json b/tutorials/tc/preconfigured/T=0.08/input_tp.json
index 3d13c2b37..6c8f12132 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.09/input_sp.json b/tutorials/tc/preconfigured/T=0.09/input_sp.json
index 993694a68..0472d7e69 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.09/input_tp.json b/tutorials/tc/preconfigured/T=0.09/input_tp.json
index 21b7d4d2d..038df3dc1 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.1/input_sp.json b/tutorials/tc/preconfigured/T=0.1/input_sp.json
index 43ce4e5aa..a374cae4a 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.1/input_tp.json b/tutorials/tc/preconfigured/T=0.1/input_tp.json
index 14a2f2667..a6bb08109 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.125/input_sp.json b/tutorials/tc/preconfigured/T=0.125/input_sp.json
index bbfb6f195..85e76eba6 100644
--- a/tutorials/tc/preconfigured/T=0.125/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.125/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.25/input_sp.json b/tutorials/tc/preconfigured/T=0.25/input_sp.json
index 8ee38754d..d26975967 100644
--- a/tutorials/tc/preconfigured/T=0.25/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.25/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.5/input_sp.json b/tutorials/tc/preconfigured/T=0.5/input_sp.json
index b6649df9d..6f6fe65a3 100644
--- a/tutorials/tc/preconfigured/T=0.5/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.5/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.75/input_sp.json b/tutorials/tc/preconfigured/T=0.75/input_sp.json
index 64767fbf9..3f50307a6 100644
--- a/tutorials/tc/preconfigured/T=0.75/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.75/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=1/input_sp.json b/tutorials/tc/preconfigured/T=1/input_sp.json
index 9be112b61..a2b32ed99 100644
--- a/tutorials/tc/preconfigured/T=1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=1/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 3,
- "accumulators": 3,
+ "walkers": 6,
+ "accumulators": 6,
"shared-walk-and-accumulation-thread": true
}
},
From 0f63aa8f00b68474478e7537cf6996f3191f3c9d Mon Sep 17 00:00:00 2001
From: Peter Doak <11856692+PDoakORNL@users.noreply.github.com>
Date: Tue, 26 May 2026 14:46:28 +0000
Subject: [PATCH 6/9] Switch tc tutorial to 1 walker/1 accumulator per MPI rank
with shared=true
The multi-thread per rank configuration (3+ walkers/accumulators with
shared-walk-and-accumulation-thread) triggers a code bug causing expansion
order explosion and chemical potential divergence. shared=false is being
removed from the codebase. The only viable working configuration is:
- walkers: 1
- accumulators: 1
- shared-walk-and-accumulation-thread: true
- MPI parallelism across ranks (mpiexec -n 4) for workstation runs
---
tutorials/tc/input_sp.json.in | 4 ++--
tutorials/tc/input_tp.json.in | 4 ++--
tutorials/tc/preconfigured/README.md | 2 +-
tutorials/tc/preconfigured/T=0.07/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.07/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.08/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.08/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.09/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.09/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.1/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.1/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.125/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.25/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.5/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.75/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=1/input_sp.json | 4 ++--
.../preconfigured/job.local.analysis_U=6_d=0.95_Nc=4.sh | 9 ++++-----
.../tc/preconfigured/job.local.dca_U=6_d=0.95_Nc=4.sh | 9 ++++-----
18 files changed, 39 insertions(+), 41 deletions(-)
diff --git a/tutorials/tc/input_sp.json.in b/tutorials/tc/input_sp.json.in
index 887258de3..c80e15470 100644
--- a/tutorials/tc/input_sp.json.in
+++ b/tutorials/tc/input_sp.json.in
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/input_tp.json.in b/tutorials/tc/input_tp.json.in
index 3ee031c3a..8d537712a 100644
--- a/tutorials/tc/input_tp.json.in
+++ b/tutorials/tc/input_tp.json.in
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/README.md b/tutorials/tc/preconfigured/README.md
index b097c517e..4623f0da7 100644
--- a/tutorials/tc/preconfigured/README.md
+++ b/tutorials/tc/preconfigured/README.md
@@ -1,5 +1,5 @@
This directory contains ready-to-use input files and jobs scripts for the [Tc tutorial](https://github.com/CompFUSE/DCA/wiki/Tutorial:-Tc).
-The files are preconfigured to run the example with a single process (no MPI) using the threaded Monte Carlo solver with 6 walkers and 6 accumulators.
+The files are preconfigured to run the example with a single process (no MPI) using the threaded Monte Carlo solver with 1 walker and 1 accumulator per MPI rank.
The total number of measurements is 100 000.
The temperature steps are given by
diff --git a/tutorials/tc/preconfigured/T=0.07/input_sp.json b/tutorials/tc/preconfigured/T=0.07/input_sp.json
index 70c54aff4..0e0c7cb1f 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.07/input_tp.json b/tutorials/tc/preconfigured/T=0.07/input_tp.json
index 128a457b3..76ac11edb 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.08/input_sp.json b/tutorials/tc/preconfigured/T=0.08/input_sp.json
index 8aa42306e..9ddaaca53 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.08/input_tp.json b/tutorials/tc/preconfigured/T=0.08/input_tp.json
index 6c8f12132..e43f6d51e 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.09/input_sp.json b/tutorials/tc/preconfigured/T=0.09/input_sp.json
index 0472d7e69..5b3ec6053 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.09/input_tp.json b/tutorials/tc/preconfigured/T=0.09/input_tp.json
index 038df3dc1..4fc5a0489 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.1/input_sp.json b/tutorials/tc/preconfigured/T=0.1/input_sp.json
index a374cae4a..1805bd80a 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.1/input_tp.json b/tutorials/tc/preconfigured/T=0.1/input_tp.json
index a6bb08109..f0d02e8f0 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.125/input_sp.json b/tutorials/tc/preconfigured/T=0.125/input_sp.json
index 85e76eba6..f96b1ddd7 100644
--- a/tutorials/tc/preconfigured/T=0.125/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.125/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.25/input_sp.json b/tutorials/tc/preconfigured/T=0.25/input_sp.json
index d26975967..01c0ee97e 100644
--- a/tutorials/tc/preconfigured/T=0.25/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.25/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.5/input_sp.json b/tutorials/tc/preconfigured/T=0.5/input_sp.json
index 6f6fe65a3..36b07849e 100644
--- a/tutorials/tc/preconfigured/T=0.5/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.5/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.75/input_sp.json b/tutorials/tc/preconfigured/T=0.75/input_sp.json
index 3f50307a6..f2958e94f 100644
--- a/tutorials/tc/preconfigured/T=0.75/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.75/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=1/input_sp.json b/tutorials/tc/preconfigured/T=1/input_sp.json
index a2b32ed99..795ff7517 100644
--- a/tutorials/tc/preconfigured/T=1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=1/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 6,
- "accumulators": 6,
+ "walkers": 1,
+ "accumulators": 1,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/job.local.analysis_U=6_d=0.95_Nc=4.sh b/tutorials/tc/preconfigured/job.local.analysis_U=6_d=0.95_Nc=4.sh
index e77adcd84..fede977cf 100755
--- a/tutorials/tc/preconfigured/job.local.analysis_U=6_d=0.95_Nc=4.sh
+++ b/tutorials/tc/preconfigured/job.local.analysis_U=6_d=0.95_Nc=4.sh
@@ -1,11 +1,10 @@
#!/bin/bash
-# Run analysis on a local workstation (no scheduler, single process).
-# NOTE: Do not use mpiexec/multi-process with the threaded solver; a code bug
-# causes incorrect density measurements when MPI is combined with
-# shared-walk-and-accumulation-thread.
+# Run analysis on a local workstation (no scheduler) using MPI.
+# The threaded solver is configured for 1 walker + 1 accumulator per MPI rank.
-RUN_DCA="../../applications/analysis/main_analysis"
+RUNNER="mpiexec -n 4"
+RUN_DCA="${RUNNER} ../../applications/analysis/main_analysis"
date
diff --git a/tutorials/tc/preconfigured/job.local.dca_U=6_d=0.95_Nc=4.sh b/tutorials/tc/preconfigured/job.local.dca_U=6_d=0.95_Nc=4.sh
index 285d2b3dd..8c1ad4c8a 100755
--- a/tutorials/tc/preconfigured/job.local.dca_U=6_d=0.95_Nc=4.sh
+++ b/tutorials/tc/preconfigured/job.local.dca_U=6_d=0.95_Nc=4.sh
@@ -1,11 +1,10 @@
#!/bin/bash
-# Run all tc calculations on a local workstation (no scheduler, single process).
-# NOTE: Do not use mpiexec/multi-process with the threaded solver; a code bug
-# causes incorrect density measurements when MPI is combined with
-# shared-walk-and-accumulation-thread.
+# Run all tc calculations on a local workstation (no scheduler) using MPI.
+# The threaded solver is configured for 1 walker + 1 accumulator per MPI rank.
-RUN_DCA="../../applications/dca/main_dca"
+RUNNER="mpiexec -n 4"
+RUN_DCA="${RUNNER} ../../applications/dca/main_dca"
date
$RUN_DCA ./T=1/input_sp.json
From b14b0dafb2ca163108d3e6e5ebcf92b5b9178d4e Mon Sep 17 00:00:00 2001
From: Peter Doak <11856692+PDoakORNL@users.noreply.github.com>
Date: Tue, 26 May 2026 17:10:45 +0000
Subject: [PATCH 7/9] Add unit tests for
CT_AUX_HS_configuration::get_first_non_interacting_spin_index
Tests cover:
- Empty configuration returns 0
- All-annihilatable config returns size() sentinel
- Manually marking first entry non-annihilatable returns 0
- Inserting non-interacting vertex is found correctly
Uses existing G0Setup test fixture with bilayer lattice and StubRng.
---
.../ctaux/structs/CMakeLists.txt | 7 +
.../structs/ct_aux_hs_configuration_test.cpp | 142 ++++++++++++++++++
2 files changed, 149 insertions(+)
create mode 100644 test/unit/phys/dca_step/cluster_solver/ctaux/structs/ct_aux_hs_configuration_test.cpp
diff --git a/test/unit/phys/dca_step/cluster_solver/ctaux/structs/CMakeLists.txt b/test/unit/phys/dca_step/cluster_solver/ctaux/structs/CMakeLists.txt
index 33414c352..82d0b22ca 100644
--- a/test/unit/phys/dca_step/cluster_solver/ctaux/structs/CMakeLists.txt
+++ b/test/unit/phys/dca_step/cluster_solver/ctaux/structs/CMakeLists.txt
@@ -6,3 +6,10 @@ dca_add_gtest(read_write_config_test
INCLUDE_DIRS ${DCA_INCLUDE_DIRS};${PROJECT_SOURCE_DIR}
LIBS FFTW::Double ${DCA_LIBS}
)
+
+dca_add_gtest(ct_aux_hs_configuration_test
+ FAST
+ GTEST_MAIN
+ INCLUDE_DIRS ${DCA_INCLUDE_DIRS};${PROJECT_SOURCE_DIR}
+ LIBS FFTW::Double ${DCA_LIBS}
+ )
diff --git a/test/unit/phys/dca_step/cluster_solver/ctaux/structs/ct_aux_hs_configuration_test.cpp b/test/unit/phys/dca_step/cluster_solver/ctaux/structs/ct_aux_hs_configuration_test.cpp
new file mode 100644
index 000000000..8f1b5979c
--- /dev/null
+++ b/test/unit/phys/dca_step/cluster_solver/ctaux/structs/ct_aux_hs_configuration_test.cpp
@@ -0,0 +1,142 @@
+// Copyright (C) 2025 UT-Battelle, LLC
+// All rights reserved.
+//
+// See LICENSE for terms of usage.
+// See CITATION.md for citation guidelines, if DCA++ is used for scientific publications.
+//
+// Unit tests for CT_AUX_HS_configuration, focusing on get_first_non_interacting_spin_index.
+
+#include "dca/phys/dca_step/cluster_solver/ctaux/structs/ct_aux_hs_configuration.hpp"
+
+#include
+
+#include "dca/testing/gtest_h_w_warning_blocking.h"
+
+#include "dca/math/random/std_random_wrapper.hpp"
+#include "dca/phys/dca_step/cluster_solver/ctaux/structs/cv.hpp"
+
+using Scalar = double;
+
+#include "test/mock_mcconfig.hpp"
+namespace dca {
+namespace config {
+using McOptions = MockMcOptions;
+} // namespace config
+} // namespace dca
+
+#include "test/unit/phys/dca_step/cluster_solver/test_setup.hpp"
+
+constexpr char input_name[] =
+ DCA_SOURCE_DIR "/test/unit/phys/dca_step/cluster_solver/ctaux/structs/input.json";
+
+using CtauxHsConfigurationTest =
+ dca::testing::G0Setup;
+using Parameters = CtauxHsConfigurationTest::Parameters;
+
+TEST_F(CtauxHsConfigurationTest, EmptyConfig) {
+ dca::phys::solver::ctaux::CV::get_H_interaction() = data_->H_interactions;
+
+ std::vector random(200);
+ for (auto& x : random)
+ x = static_cast(std::rand()) / RAND_MAX;
+ Parameters::random_number_generator rng(random);
+ dca::phys::solver::ctaux::CT_AUX_HS_configuration config(parameters_, rng);
+
+ // Empty configuration: method returns 0 (same as size() since both are 0).
+ EXPECT_EQ(0, config.get_first_non_interacting_spin_index(dca::phys::e_UP));
+ EXPECT_EQ(0, config.get_first_non_interacting_spin_index(dca::phys::e_DN));
+}
+
+TEST_F(CtauxHsConfigurationTest, AllAnnihilatableReturnsSize) {
+ dca::phys::solver::ctaux::CV::get_H_interaction() = data_->H_interactions;
+
+ std::vector random(200);
+ for (auto& x : random)
+ x = static_cast(std::rand()) / RAND_MAX;
+ Parameters::random_number_generator rng(random);
+ dca::phys::solver::ctaux::CT_AUX_HS_configuration config(parameters_, rng);
+ config.initialize();
+
+ // After initialize(), all vertices are interacting (annihilatable).
+ // Method should return size() as the "not found" sentinel.
+ const int up_size = config.get(dca::phys::e_UP).size();
+ const int dn_size = config.get(dca::phys::e_DN).size();
+
+ EXPECT_EQ(up_size, config.get_first_non_interacting_spin_index(dca::phys::e_UP));
+ EXPECT_EQ(dn_size, config.get_first_non_interacting_spin_index(dca::phys::e_DN));
+}
+
+TEST_F(CtauxHsConfigurationTest, FirstEntryNonAnnihilatable) {
+ dca::phys::solver::ctaux::CV::get_H_interaction() = data_->H_interactions;
+
+ std::vector random(200);
+ for (auto& x : random)
+ x = static_cast(std::rand()) / RAND_MAX;
+ Parameters::random_number_generator rng(random);
+ dca::phys::solver::ctaux::CT_AUX_HS_configuration config(parameters_, rng);
+ config.initialize();
+
+ // Mark the vertex referenced by configuration_e_UP[0] as non-annihilatable.
+ const auto& up = config.get(dca::phys::e_UP);
+ if (!up.empty()) {
+ int target_idx = up[0].get_configuration_index();
+ config[target_idx].set_annihilatable(false);
+
+ // The first entry is now non-annihilatable, so the method should return 0.
+ EXPECT_EQ(0, config.get_first_non_interacting_spin_index(dca::phys::e_UP));
+ EXPECT_FALSE(config[target_idx].is_annihilatable());
+ }
+
+ // Mark the vertex referenced by configuration_e_DN[0] as non-annihilatable.
+ const auto& dn = config.get(dca::phys::e_DN);
+ if (!dn.empty()) {
+ int target_idx = dn[0].get_configuration_index();
+ config[target_idx].set_annihilatable(false);
+
+ EXPECT_EQ(0, config.get_first_non_interacting_spin_index(dca::phys::e_DN));
+ EXPECT_FALSE(config[target_idx].is_annihilatable());
+ }
+}
+
+TEST_F(CtauxHsConfigurationTest, InsertNoninteractingVertex) {
+ dca::phys::solver::ctaux::CV::get_H_interaction() = data_->H_interactions;
+
+ std::vector random(200);
+ for (auto& x : random)
+ x = static_cast(std::rand()) / RAND_MAX;
+ Parameters::random_number_generator rng(random);
+ dca::phys::solver::ctaux::CT_AUX_HS_configuration config(parameters_, rng);
+ config.initialize();
+
+ int old_size = config.size();
+
+ // Insert a non-interacting vertex (mark_annihilatable = false).
+ config.insert_random_noninteracting_vertex(false);
+
+ EXPECT_EQ(old_size + 1, config.size());
+ EXPECT_FALSE(config[old_size].is_annihilatable());
+
+ // Verify e_UP: the first non-annihilatable index should point to a non-annihilatable vertex,
+ // and all entries before it must be annihilatable.
+ const auto& up = config.get(dca::phys::e_UP);
+ int first_up = config.get_first_non_interacting_spin_index(dca::phys::e_UP);
+ if (first_up < static_cast(up.size())) {
+ int config_idx = up[first_up].get_configuration_index();
+ EXPECT_FALSE(config[config_idx].is_annihilatable());
+ for (int i = 0; i < first_up; ++i) {
+ EXPECT_TRUE(config[up[i].get_configuration_index()].is_annihilatable());
+ }
+ }
+
+ // Same check for e_DN.
+ const auto& dn = config.get(dca::phys::e_DN);
+ int first_dn = config.get_first_non_interacting_spin_index(dca::phys::e_DN);
+ if (first_dn < static_cast(dn.size())) {
+ int config_idx = dn[first_dn].get_configuration_index();
+ EXPECT_FALSE(config[config_idx].is_annihilatable());
+ for (int i = 0; i < first_dn; ++i) {
+ EXPECT_TRUE(config[dn[i].get_configuration_index()].is_annihilatable());
+ }
+ }
+}
From 85e58ac44e4ce4bff7af343d509edf182eeaf90c Mon Sep 17 00:00:00 2001
From: Peter Doak <11856692+PDoakORNL@users.noreply.github.com>
Date: Tue, 26 May 2026 20:17:27 +0000
Subject: [PATCH 8/9] Fix Matrix::resize debug zeroing and update tutorial
max-submatrix-size
- Fix critical memory-corruption bug in Matrix::resize debug path:
The column-major indexing was using row-major stride
(i * new_size.second + j instead of i + j * leadingDimension()),
causing zeros to be written to the wrong locations and corrupting
existing matrix data. Also expanded the zeroing to cover all newly
exposed elements, not just the bottom-right corner.
In CT-AUX, this corruption produced incorrect determinant ratios,
which caused the expansion order (number of vertices k) to spike
to nonphysical values, eventually grinding the solver to a halt.
- Update tutorial input templates (input_sp.json.in, input_tp.json.in)
to use max-submatrix-size=256 instead of 16 for reasonable performance.
- Regenerate all preconfigured tutorial inputs from the updated templates.
---
include/dca/linalg/matrix.hpp | 13 +++++++++----
.../cluster_solver/ctaux/ctaux_walker.hpp | 16 ++++++++--------
.../stdthread_qmci_cluster_solver.hpp | 2 +-
tutorials/tc/input_sp.json.in | 2 +-
tutorials/tc/input_tp.json.in | 2 +-
tutorials/tc/preconfigured/T=0.07/input_sp.json | 2 +-
tutorials/tc/preconfigured/T=0.07/input_tp.json | 2 +-
tutorials/tc/preconfigured/T=0.08/input_sp.json | 2 +-
tutorials/tc/preconfigured/T=0.08/input_tp.json | 2 +-
tutorials/tc/preconfigured/T=0.09/input_sp.json | 2 +-
tutorials/tc/preconfigured/T=0.09/input_tp.json | 2 +-
tutorials/tc/preconfigured/T=0.1/input_sp.json | 2 +-
tutorials/tc/preconfigured/T=0.1/input_tp.json | 2 +-
tutorials/tc/preconfigured/T=0.125/input_sp.json | 2 +-
tutorials/tc/preconfigured/T=0.25/input_sp.json | 2 +-
tutorials/tc/preconfigured/T=0.5/input_sp.json | 2 +-
tutorials/tc/preconfigured/T=0.75/input_sp.json | 2 +-
tutorials/tc/preconfigured/T=1/input_sp.json | 2 +-
18 files changed, 33 insertions(+), 28 deletions(-)
diff --git a/include/dca/linalg/matrix.hpp b/include/dca/linalg/matrix.hpp
index 8325b008a..d1d9b4da7 100644
--- a/include/dca/linalg/matrix.hpp
+++ b/include/dca/linalg/matrix.hpp
@@ -401,10 +401,15 @@ void Matrix::resize(std::pair new_size
// This is slow but still thinking about what to do here, the legacy behavior is fine if
// we're just overwriting the new sections but not if its assumed they are 0, not all client
// code is clear about this.
- if constexpr (device_name == linalg::DeviceType::CPU)
- for (int i = size_.first; i < new_size.first; ++i)
- for (int j = size_.second; j < new_size.second; ++j)
- *(data_ + i * new_size.second + j) = 0;
+ if constexpr (device_name == linalg::DeviceType::CPU) {
+ const int ld = leadingDimension();
+ for (int j = 0; j < new_size.second; ++j)
+ for (int i = size_.first; i < new_size.first; ++i)
+ data_[i + j * ld] = 0;
+ for (int j = size_.second; j < new_size.second; ++j)
+ for (int i = 0; i < size_.first; ++i)
+ data_[i + j * ld] = 0;
+ }
size_ = new_size;
}
#endif
diff --git a/include/dca/phys/dca_step/cluster_solver/ctaux/ctaux_walker.hpp b/include/dca/phys/dca_step/cluster_solver/ctaux/ctaux_walker.hpp
index 54c117ddc..730fd9396 100644
--- a/include/dca/phys/dca_step/cluster_solver/ctaux/ctaux_walker.hpp
+++ b/include/dca/phys/dca_step/cluster_solver/ctaux/ctaux_walker.hpp
@@ -518,7 +518,7 @@ CtauxWalker::CtauxWalker(Parameters& parameters_ref,
}
}
-
+
template
void CtauxWalker::printSummary() const {
// std::defaultfloat is only supported by GCC 5 or later.
@@ -940,11 +940,11 @@ int CtauxWalker::generateDelayedSpinsAbortAtBennett(
assert(single_spin_updates_proposed ==
currently_proposed_creations_ + currently_proposed_annihilations_ + num_statics);
-// #ifndef NDEBUG
-// if (single_spin_updates_proposed >= max_num_delayed_spins) {
-// std::cout << "single_spin_updates_proposed = " << single_spin_updates_proposed << " max_num_delayed_spins = " << max_num_delayed_spins << '\n';
-// }
-// #endif
+#ifndef NDEBUG
+ if (single_spin_updates_proposed > max_num_delayed_spins) {
+ std::cout << "single_spin_updates_proposed = " << single_spin_updates_proposed << " max_num_delayed_spins = " << max_num_delayed_spins << '\n';
+ }
+#endif
return single_spin_updates_proposed;
}
@@ -1403,7 +1403,7 @@ void CtauxWalker::add_delayed_spin(int& delayed_inde
#ifndef NDEBUG
isDebugTestMinMax(false, true, ratio_HS_field_DN, Gamma_index_HS_field_DN, Gamma_up_CPU, Gamma_up_diag_max, Gamma_up_diag_min, trace_depth);
#endif
-
+
Gamma_up_size += 1;
}
else {
@@ -1459,7 +1459,7 @@ void CtauxWalker::add_delayed_spin(int& delayed_inde
std::cerr << "Gamma_index_HS_field_UP = " << Gamma_index_HS_field_UP << " Gamma_dn_size = " << Gamma_dn_size << '\n';
}
#endif
-
+
ratio_HS_field_UP = ctaux_tools.solve_Gamma_blocked(Gamma_index_HS_field_UP, Gamma_dn_CPU,
exp_delta_V_HS_field_UP,
Gamma_dn_diag_max, Gamma_dn_diag_min);
diff --git a/include/dca/phys/dca_step/cluster_solver/stdthread_qmci/stdthread_qmci_cluster_solver.hpp b/include/dca/phys/dca_step/cluster_solver/stdthread_qmci/stdthread_qmci_cluster_solver.hpp
index 676a72559..75fee3a43 100644
--- a/include/dca/phys/dca_step/cluster_solver/stdthread_qmci/stdthread_qmci_cluster_solver.hpp
+++ b/include/dca/phys/dca_step/cluster_solver/stdthread_qmci/stdthread_qmci_cluster_solver.hpp
@@ -641,7 +641,7 @@ void StdThreadQmciClusterSolver::startWalkerAndAccumulator(int id,
catch (...) {
throw std::runtime_error("something mysterious went wrong in walker thread!");
}
-
+
++walk_finished_;
if (BaseClass::writer_ && BaseClass::writer_->isADIOS2())
BaseClass::writer_->flush();
diff --git a/tutorials/tc/input_sp.json.in b/tutorials/tc/input_sp.json.in
index c80e15470..01faf2093 100644
--- a/tutorials/tc/input_sp.json.in
+++ b/tutorials/tc/input_sp.json.in
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
diff --git a/tutorials/tc/input_tp.json.in b/tutorials/tc/input_tp.json.in
index 8d537712a..920575aaf 100644
--- a/tutorials/tc/input_tp.json.in
+++ b/tutorials/tc/input_tp.json.in
@@ -74,7 +74,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
},
diff --git a/tutorials/tc/preconfigured/T=0.07/input_sp.json b/tutorials/tc/preconfigured/T=0.07/input_sp.json
index 0e0c7cb1f..2193ce9e1 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_sp.json
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
diff --git a/tutorials/tc/preconfigured/T=0.07/input_tp.json b/tutorials/tc/preconfigured/T=0.07/input_tp.json
index 76ac11edb..1664dae9a 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_tp.json
@@ -74,7 +74,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
},
diff --git a/tutorials/tc/preconfigured/T=0.08/input_sp.json b/tutorials/tc/preconfigured/T=0.08/input_sp.json
index 9ddaaca53..03febd669 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_sp.json
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
diff --git a/tutorials/tc/preconfigured/T=0.08/input_tp.json b/tutorials/tc/preconfigured/T=0.08/input_tp.json
index e43f6d51e..3ee83aff0 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_tp.json
@@ -74,7 +74,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
},
diff --git a/tutorials/tc/preconfigured/T=0.09/input_sp.json b/tutorials/tc/preconfigured/T=0.09/input_sp.json
index 5b3ec6053..4f5407cf3 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_sp.json
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
diff --git a/tutorials/tc/preconfigured/T=0.09/input_tp.json b/tutorials/tc/preconfigured/T=0.09/input_tp.json
index 4fc5a0489..703b12223 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_tp.json
@@ -74,7 +74,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
},
diff --git a/tutorials/tc/preconfigured/T=0.1/input_sp.json b/tutorials/tc/preconfigured/T=0.1/input_sp.json
index 1805bd80a..ef93ee0b9 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_sp.json
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
diff --git a/tutorials/tc/preconfigured/T=0.1/input_tp.json b/tutorials/tc/preconfigured/T=0.1/input_tp.json
index f0d02e8f0..4b792b47b 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_tp.json
@@ -74,7 +74,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
},
diff --git a/tutorials/tc/preconfigured/T=0.125/input_sp.json b/tutorials/tc/preconfigured/T=0.125/input_sp.json
index f96b1ddd7..2abba830b 100644
--- a/tutorials/tc/preconfigured/T=0.125/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.125/input_sp.json
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
diff --git a/tutorials/tc/preconfigured/T=0.25/input_sp.json b/tutorials/tc/preconfigured/T=0.25/input_sp.json
index 01c0ee97e..722ecd9cc 100644
--- a/tutorials/tc/preconfigured/T=0.25/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.25/input_sp.json
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
diff --git a/tutorials/tc/preconfigured/T=0.5/input_sp.json b/tutorials/tc/preconfigured/T=0.5/input_sp.json
index 36b07849e..5ca86d220 100644
--- a/tutorials/tc/preconfigured/T=0.5/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.5/input_sp.json
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
diff --git a/tutorials/tc/preconfigured/T=0.75/input_sp.json b/tutorials/tc/preconfigured/T=0.75/input_sp.json
index f2958e94f..f0f25b1c3 100644
--- a/tutorials/tc/preconfigured/T=0.75/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.75/input_sp.json
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
diff --git a/tutorials/tc/preconfigured/T=1/input_sp.json b/tutorials/tc/preconfigured/T=1/input_sp.json
index 795ff7517..ed790b820 100644
--- a/tutorials/tc/preconfigured/T=1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=1/input_sp.json
@@ -72,7 +72,7 @@
"expansion-parameter-K": 1.,
"initial-configuration-size": 16,
"initial-matrix-size": 16,
- "max-submatrix-size": 16,
+ "max-submatrix-size": 256,
"neglect-Bennett-updates": false,
"additional-time-measurements": false
}
From 53ce74ea592359563819a667b80b7d7b43a3b0a9 Mon Sep 17 00:00:00 2001
From: Peter Doak <11856692+PDoakORNL@users.noreply.github.com>
Date: Thu, 28 May 2026 20:44:15 +0000
Subject: [PATCH 9/9] Set tutorial threaded solver to 4 shared
walker/accumulator threads
Update both input templates (input_sp.json.in, input_tp.json.in) to use
4 walkers and 4 accumulators with shared-walk-and-accumulation-thread: true.
Regenerate all preconfigured tutorial inputs from the updated templates.
---
tutorials/tc/input_sp.json.in | 4 ++--
tutorials/tc/input_tp.json.in | 4 ++--
tutorials/tc/preconfigured/T=0.07/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.07/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.08/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.08/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.09/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.09/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.1/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.1/input_tp.json | 4 ++--
tutorials/tc/preconfigured/T=0.125/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.25/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.5/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=0.75/input_sp.json | 4 ++--
tutorials/tc/preconfigured/T=1/input_sp.json | 4 ++--
15 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/tutorials/tc/input_sp.json.in b/tutorials/tc/input_sp.json.in
index 01faf2093..c2cf939cb 100644
--- a/tutorials/tc/input_sp.json.in
+++ b/tutorials/tc/input_sp.json.in
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/input_tp.json.in b/tutorials/tc/input_tp.json.in
index 920575aaf..c0449e6c5 100644
--- a/tutorials/tc/input_tp.json.in
+++ b/tutorials/tc/input_tp.json.in
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.07/input_sp.json b/tutorials/tc/preconfigured/T=0.07/input_sp.json
index 2193ce9e1..ad7374621 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.07/input_tp.json b/tutorials/tc/preconfigured/T=0.07/input_tp.json
index 1664dae9a..9e62aac57 100644
--- a/tutorials/tc/preconfigured/T=0.07/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.07/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.08/input_sp.json b/tutorials/tc/preconfigured/T=0.08/input_sp.json
index 03febd669..ae94d391e 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.08/input_tp.json b/tutorials/tc/preconfigured/T=0.08/input_tp.json
index 3ee83aff0..27eb1e01d 100644
--- a/tutorials/tc/preconfigured/T=0.08/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.08/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.09/input_sp.json b/tutorials/tc/preconfigured/T=0.09/input_sp.json
index 4f5407cf3..554a7bbed 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.09/input_tp.json b/tutorials/tc/preconfigured/T=0.09/input_tp.json
index 703b12223..81d2ec6d7 100644
--- a/tutorials/tc/preconfigured/T=0.09/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.09/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.1/input_sp.json b/tutorials/tc/preconfigured/T=0.1/input_sp.json
index ef93ee0b9..ae76a74b1 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.1/input_tp.json b/tutorials/tc/preconfigured/T=0.1/input_tp.json
index 4b792b47b..509f26989 100644
--- a/tutorials/tc/preconfigured/T=0.1/input_tp.json
+++ b/tutorials/tc/preconfigured/T=0.1/input_tp.json
@@ -64,8 +64,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.125/input_sp.json b/tutorials/tc/preconfigured/T=0.125/input_sp.json
index 2abba830b..7246f83aa 100644
--- a/tutorials/tc/preconfigured/T=0.125/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.125/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.25/input_sp.json b/tutorials/tc/preconfigured/T=0.25/input_sp.json
index 722ecd9cc..0d2ba569a 100644
--- a/tutorials/tc/preconfigured/T=0.25/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.25/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.5/input_sp.json b/tutorials/tc/preconfigured/T=0.5/input_sp.json
index 5ca86d220..396e93bff 100644
--- a/tutorials/tc/preconfigured/T=0.5/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.5/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=0.75/input_sp.json b/tutorials/tc/preconfigured/T=0.75/input_sp.json
index f0f25b1c3..2c183760e 100644
--- a/tutorials/tc/preconfigured/T=0.75/input_sp.json
+++ b/tutorials/tc/preconfigured/T=0.75/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},
diff --git a/tutorials/tc/preconfigured/T=1/input_sp.json b/tutorials/tc/preconfigured/T=1/input_sp.json
index ed790b820..9a76f1cfb 100644
--- a/tutorials/tc/preconfigured/T=1/input_sp.json
+++ b/tutorials/tc/preconfigured/T=1/input_sp.json
@@ -62,8 +62,8 @@
"measurements": 100000,
"threaded-solver": {
- "walkers": 1,
- "accumulators": 1,
+ "walkers": 4,
+ "accumulators": 4,
"shared-walk-and-accumulation-thread": true
}
},