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
+27-11Lines changed: 27 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,7 @@
21
21
-[kspacing](#kspacing)
22
22
-[min\_dist\_coef](#min_dist_coef)
23
23
-[device](#device)
24
+
-[nb2d](#nb2d)
24
25
-[precision](#precision)
25
26
-[Variables related to input files](#variables-related-to-input-files)
26
27
-[stru\_file](#stru_file)
@@ -40,12 +41,12 @@
40
41
-[diago\_smooth\_ethr](#diago_smooth_ethr)
41
42
-[pw\_diag\_nmax](#pw_diag_nmax)
42
43
-[pw\_diag\_ndim](#pw_diag_ndim)
44
+
-[diag\_subspace](#diag_subspace)
43
45
-[erf\_ecut](#erf_ecut)
44
46
-[fft\_mode](#fft_mode)
45
47
-[erf\_height](#erf_height)
46
48
-[erf\_sigma](#erf_sigma)
47
49
-[Numerical atomic orbitals related variables](#numerical-atomic-orbitals-related-variables)
48
-
-[nb2d](#nb2d)
49
50
-[lmaxmax](#lmaxmax)
50
51
-[lcao\_ecut](#lcao_ecut)
51
52
-[lcao\_dk](#lcao_dk)
@@ -667,6 +668,19 @@ If only one value is set (such as `kspacing 0.5`), then kspacing values of a/b/c
667
668
- cg/bpcg/dav ks_solver: required by the `single` precision options
668
669
-**Default**: double
669
670
671
+
### nb2d
672
+
673
+
-**Type**: Integer
674
+
-**Description**: When using elpa or scalapack to solver the eigenvalue problem, the data should be distributed by the two-dimensional block-cyclic distribution. This paramter specifies the size of the block. It is valid for:
675
+
-[ks_solver](#ks_solver) is genelpa or scalapack_gvx. If nb2d is set to 0, then it will be automatically set in the program according to the size of atomic orbital basis:
676
+
- if size <= 500: nb2d = 1
677
+
- if 500 < size <= 1000: nb2d = 32
678
+
- if size > 1000: nb2d = 64;
679
+
-[ks_solver](#ks_solver) is dav_subspace, and [diag_subspace](#diag_subspace) is 1 or 2. It is the block size for the diagonization of subspace. If it is set to 0, then it will be automatically set in the program according to the number of band:
680
+
- if number of band > 500: nb2d = 32
681
+
- if number of band < 500: nb2d = 16
682
+
-**Default**: 0
683
+
670
684
[back to top](#full-list-of-input-keywords)
671
685
672
686
## Variables related to input files
@@ -794,7 +808,18 @@ These variables are used to control the plane wave related parameters.
794
808
795
809
-**Type**: Integer
796
810
-**Description**: Only useful when you use `ks_solver = dav` or `ks_solver = dav_subspace`. It indicates dimension of workspace(number of wavefunction packets, at least 2 needed) for the Davidson 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.
797
-
-**Default**: 4
811
+
-**Default**: 4
812
+
813
+
### diag_subspace
814
+
815
+
-**Type**: Integer
816
+
-**Description**: The method to diagonalize subspace in dav_subspace method. The available options are:
817
+
- 0: by LAPACK
818
+
- 1: by GenELPA
819
+
- 2: by ScaLAPACK
820
+
LAPACK only solve in one core, GenELPA and ScaLAPACK can solve in parallel. If the system is small (such as the band number is less than 100), LAPACK is recommended. If the system is large and MPI parallel is used, then GenELPA or ScaLAPACK is recommended, and GenELPA usually has better performance. For GenELPA and ScaLAPACK, the block size can be set by [nb2d](#nb2d).
821
+
822
+
-**Default**: 0
798
823
799
824
### erf_ecut
800
825
@@ -837,15 +862,6 @@ These variables are used to control the plane wave related parameters.
837
862
838
863
These variables are used to control the numerical atomic orbitals related parameters.
839
864
840
-
### nb2d
841
-
842
-
-**Type**: Integer
843
-
-**Description**: In LCAO calculations, we arrange the total number of processors in an 2D array, so that we can partition the wavefunction matrix (number of bands*total size of atomic orbital basis) and distribute them in this 2D array. When the system is large, we group processors into sizes of nb2d, so that multiple processors take care of one row block (a group of atomic orbitals) in the wavefunction matrix. If set to 0, nb2d will be automatically set in the program according to the size of atomic orbital basis:
0 commit comments