You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/advanced/input_files/input-main.md
+8-1Lines changed: 8 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,6 +66,7 @@
66
66
-[use\_k\_continuity](#use_k_continuity)
67
67
-[pw\_diag\_nmax](#pw_diag_nmax)
68
68
-[pw\_diag\_ndim](#pw_diag_ndim)
69
+
-[pw\_diag\_rr\_step](#pw_diag_rr_step)
69
70
-[diago\_cg\_prec](#diago_cg_prec)
70
71
-[Numerical atomic orbitals related variables](#numerical-atomic-orbitals-related-variables)
71
72
-[lmaxmax](#lmaxmax)
@@ -1085,9 +1086,15 @@
1085
1086
1086
1087
-**Type**: Integer
1087
1088
-**Availability**: *[`basis_type`](#basis_type)==pw and [`ks_solver`](#ks_solver) in [dav, dav_subspace, ppcg]*
1088
-
-**Description**: Only useful when you use ks_solver = dav, dav_subspace, or ppcg. It indicates dimension of workspace(number of wavefunction packets, at least 2 needed) for the Davidson method, and the PPCG block size/Rayleigh-Ritz interval for the PPCG method. A larger value may yield a smaller number of iterations in the algorithm but uses more memory and more CPU time in subspace diagonalization.
1089
+
-**Description**: Only useful when you use ks_solver = dav, dav_subspace, or ppcg. It indicates dimension of workspace(number of wavefunction packets, at least 2 needed) for the Davidson method, and the block size for the PPCG method. A larger value may yield a smaller number of iterations in the algorithm but uses more memory and more CPU time in subspace diagonalization.
1089
1090
-**Default**: 4
1090
1091
1092
+
### pw_diag_rr_step
1093
+
1094
+
-**Type**: Integer
1095
+
-**Availability**: *[`basis_type`](#basis_type)==pw and [`ks_solver`](#ks_solver) == ppcg*- **Description**: Only useful when you use ks_solver = ppcg. It controls how often (in subspace iterations) H and S are re-applied to reset the accumulated rounding drift after the Rayleigh-Ritz rotation. A larger value reduces the number of H/S applications and thus the wall time without changing the iteration count in well-conditioned cases; a smaller value is more robust against rounding drift in ill-conditioned problems.
Copy file name to clipboardExpand all lines: docs/parameters.yaml
+9-1Lines changed: 9 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1009,10 +1009,18 @@ parameters:
1009
1009
category: Plane wave related variables
1010
1010
type: Integer
1011
1011
description: |
1012
-
Only useful when you use ks_solver = dav, dav_subspace, or ppcg. It indicates dimension of workspace(number of wavefunction packets, at least 2 needed) for the Davidson method, and the PPCG block size/Rayleigh-Ritz interval for the PPCG method. A larger value may yield a smaller number of iterations in the algorithm but uses more memory and more CPU time in subspace diagonalization.
1012
+
Only useful when you use ks_solver = dav, dav_subspace, or ppcg. It indicates dimension of workspace(number of wavefunction packets, at least 2 needed) for the Davidson method, and the block size for the PPCG method. A larger value may yield a smaller number of iterations in the algorithm but uses more memory and more CPU time in subspace diagonalization.
1013
1013
default_value: "4"
1014
1014
unit: ""
1015
1015
availability: "basis_type==pw and ks_solver in [dav, dav_subspace, ppcg]"
1016
+
- name: pw_diag_rr_step
1017
+
category: Plane wave related variables
1018
+
type: Integer
1019
+
description: |
1020
+
Only useful when you use ks_solver = ppcg. It controls how often (in subspace iterations) H and S are re-applied to reset the accumulated rounding drift after the Rayleigh-Ritz rotation. A larger value reduces the number of H/S applications and thus the wall time without changing the iteration count in well-conditioned cases; a smaller value is more robust against rounding drift in ill-conditioned problems.
1021
+
default_value: "16"
1022
+
unit: ""
1023
+
availability: "basis_type==pw and ks_solver==ppcg"
Copy file name to clipboardExpand all lines: source/source_io/module_parameter/read_inp_estruc.cpp
+13-1Lines changed: 13 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1104,13 +1104,25 @@ Use case: When experimental or high-level theoretical results suggest that the S
1104
1104
item.annotation = "dimension of workspace for iterative PW diagonalization";
1105
1105
item.category = "Plane wave related variables";
1106
1106
item.type = "Integer";
1107
-
item.description = "Only useful when you use ks_solver = dav, dav_subspace, or ppcg. It indicates dimension of workspace(number of wavefunction packets, at least 2 needed) for the Davidson method, and the PPCG block size/Rayleigh-Ritz interval for the PPCG method. A larger value may yield a smaller number of iterations in the algorithm but uses more memory and more CPU time in subspace diagonalization.";
1107
+
item.description = "Only useful when you use ks_solver = dav, dav_subspace, or ppcg. It indicates dimension of workspace(number of wavefunction packets, at least 2 needed) for the Davidson method, and the block size for the PPCG method. A larger value may yield a smaller number of iterations in the algorithm but uses more memory and more CPU time in subspace diagonalization.";
1108
1108
item.default_value = "4";
1109
1109
item.unit = "";
1110
1110
item.set_availability("basis_type==pw and ks_solver in [dav, dav_subspace, ppcg]");
1111
1111
read_sync_int(input.pw_diag_ndim);
1112
1112
this->add_item(item);
1113
1113
}
1114
+
{
1115
+
Input_Item item("pw_diag_rr_step");
1116
+
item.annotation = "Rayleigh-Ritz re-application interval for PPCG";
1117
+
item.category = "Plane wave related variables";
1118
+
item.type = "Integer";
1119
+
item.description = "Only useful when you use ks_solver = ppcg. It controls how often (in subspace iterations) H and S are re-applied to reset the accumulated rounding drift after the Rayleigh-Ritz rotation. A larger value reduces the number of H/S applications and thus the wall time without changing the iteration count in well-conditioned cases; a smaller value is more robust against rounding drift in ill-conditioned problems.";
1120
+
item.default_value = "16";
1121
+
item.unit = "";
1122
+
item.set_availability("basis_type==pw and ks_solver==ppcg");
0 commit comments