forked from deepmodeling/abacus-develop
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparameters.yaml
More file actions
4614 lines (4515 loc) · 204 KB
/
parameters.yaml
File metadata and controls
4614 lines (4515 loc) · 204 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Auto-generated by: abacus --generate-parameters-yaml
# Do not edit manually.
parameters:
- name: suffix
category: System variables
type: String
description: |
In each run, ABACUS will generate a subdirectory in the working directory. This subdirectory contains all the information of the run. The subdirectory name has the format: OUT.suffix, where the suffix is the name you can pick up for your convenience.
default_value: ABACUS
unit: ""
availability: ""
- name: ntype
category: System variables
type: Integer
description: |
Number of different atom species in the calculation.
default_value: "0"
unit: ""
availability: ""
- name: calculation
category: System variables
type: String
description: |
Specify the type of calculation.
* scf: perform self-consistent electronic structure calculations
* nscf: perform non-self-consistent electronic structure calculations. A charge density file is required
* relax: perform structure relaxation calculations, the relax_nmax parameter depicts the maximal number of ionic iterations
* cell-relax: perform cell relaxation calculations
* md: perform molecular dynamics simulations
* get_pchg: obtain partial (band-decomposed) charge densities (for LCAO basis only). See out_pchg for more information
* get_wf: obtain real space wave functions (for LCAO basis only). See out_wfc_norm and out_wfc_re_im for more information
* get_s: obtain the overlap matrix formed by localized orbitals (for LCAO basis with multiple k points). the file name is SR.csr with file format being the same as that generated by out_mat_hs2
* gen_bessel: generates projectors, i.e., a series of Bessel functions, for the DeePKS method (for LCAO basis only)
* gen_opt_abfs: generate opt-ABFs as discussed in this article
* test_memory: obtain a rough estimation of memory consumption for the calculation
* test_neighbour: obtain information of neighboring atoms (for LCAO basis only), please specify a positive search_radius manually
default_value: scf
unit: ""
availability: ""
- name: esolver_type
category: System variables
type: String
description: |
Choose the energy solver.
* ksdft: Kohn-Sham density functional theory
* ofdft: orbital-free density functional theory
* tdofdft: time-dependent orbital-free density functional theory
* sdft: stochastic density functional theory
* tddft: real-time time-dependent density functional theory (RT-TDDFT)
* lj: Leonard Jones potential
* dp: DeeP potential
* nep: Neuroevolution Potential
* ks-lr: Kohn-Sham density functional theory + LR-TDDFT (Under Development Feature)
* lr: LR-TDDFT with given KS orbitals (Under Development Feature)
default_value: ksdft
unit: ""
availability: ""
- name: symmetry
category: System variables
type: String
description: |
Takes value 1, 0 or -1.
* -1: No symmetry will be considered. It is recommended to set -1 for non-colinear + soc calculations, where time reversal symmetry is broken sometimes.
* 0: Only time reversal symmetry would be considered in symmetry operations, which implied k point and -k point would be treated as a single k point with twice the weight.
* 1: Symmetry analysis will be performed to determine the type of Bravais lattice and associated symmetry operations. (point groups, space groups, primitive cells, and irreducible k-points)
[NOTE] When symmetry is enabled (value 1), k-points are reduced to the irreducible Brillouin zone (IBZ). For explicit k-point lists with custom weights (see KPT file), the custom weights are preserved during symmetry reduction. For Monkhorst-Pack grids, uniform weights are used.
default_value: default
unit: ""
availability: ""
- name: symmetry_prec
category: System variables
type: Real
description: |
The accuracy for symmetry analysis. Typically, the default value is good enough, but if the lattice parameters or atom positions in STRU file are not accurate enough, this value should be enlarged.
[NOTE] Note: if calculation==cell_relax, this value can be dynamically changed corresponding to the variation of accuracy of the lattice parameters and atom positions during the relaxation.
default_value: "1.0e-6"
unit: Bohr
availability: ""
- name: symmetry_autoclose
category: System variables
type: Boolean
description: |
Control how to deal with error in symmetry analysis due to inaccurate lattice parameters or atom positions in STRU file, especially useful when calculation==cell-relax
* False: quit with an error message
* True: automatically set symmetry to 0 and continue running without symmetry analysis
default_value: "True"
unit: ""
availability: symmetry==1
- name: cal_force
category: System variables
type: Boolean
description: |
If set to True, calculate the force at the end of the electronic iteration.
default_value: "False"
unit: ""
availability: ""
- name: kpar
category: System variables
type: Integer
description: |
Divide all processors into kpar groups, and k points will be distributed among each group. The value taken should be less than or equal to the number of k points as well as the number of MPI processes.
default_value: "1"
unit: ""
availability: ""
- name: bndpar
category: System variables
type: Integer
description: |
Divide all processors into bndpar groups, and bands (only stochastic orbitals now) will be distributed among each group. It should be larger than 0.
default_value: "1"
unit: ""
availability: ""
- name: latname
category: System variables
type: String
description: |
Specifies the type of Bravias lattice. When set to none, the three lattice vectors are supplied explicitly in STRU file.
Available options are:
* none: free structure
* sc: simple cubic
* fcc: face-centered cubic
* bcc: body-centered cubic
* hexagonal: hexagonal
* trigonal: trigonal
* st: simple tetragonal
* bct: body-centered tetragonal
* so: orthorhombic
* baco: base-centered orthorhombic
* fco: face-centered orthorhombic
* bco: body-centered orthorhombic
* sm: simple monoclinic
* bacm: base-centered monoclinic
* triclinic: triclinic
default_value: none
unit: ""
availability: ""
- name: init_wfc
category: System variables
type: String
description: |
The type of the starting wave functions.
Available options are:
* atomic: from atomic pseudo wave functions. If they are not enough, other wave functions are initialized with random numbers.
* atomic+random: add small random numbers on atomic pseudo-wavefunctions
* file: from binary files wf*.dat, which are output by setting out_wfc_pw to 2.
* random: random numbers
* nao: from numerical atomic orbitals. If they are not enough, other wave functions are initialized with random numbers.
* nao+random: add small random numbers on numerical atomic orbitals
[NOTE] Only the file option is useful for the lcao basis set, which is mostly used when calculation is set to get_wf and get_pchg.
default_value: atomic
unit: ""
availability: ""
- name: init_chg
category: System variables
type: String
description: |
This variable is used for both plane wave set and localized orbitals set. It indicates the type of starting density.
* atomic: the density is starting from the summation of the atomic density of single atoms.
* file: the density will be read in from a binary file charge-density.dat first. If it does not exist, the charge density will be read in from cube files.
* wfc: the density will be calculated by wavefunctions and occupations.
* dm: the density will be calculated by real space density matrix(DMR) of LCAO base.
* hr: the real space Hamiltonian matrix(HR) will be read in from file hrs1_nao.csr in directory read_file_dir.
* auto: Abacus first attempts to read the density from a file; if not found, it defaults to using atomic density.
default_value: atomic
unit: ""
availability: ""
- name: init_vel
category: System variables
type: Boolean
description: |
* True: read the atom velocity (atomic unit : 1 a.u. = 21.877 Angstrom/fs) from the atom file (STRU) and determine the initial temperature md_tfirst. If md_tfirst is unset or less than zero, init_vel is autoset to be true.
* False: assign value to atom velocity using Gaussian distributed random numbers.
default_value: "False"
unit: ""
availability: ""
- name: mem_saver
category: System variables
type: Integer
description: |
Save memory when performing nscf calculations.
* 0: no memory saving techniques are used.
* 1: a memory saving technique will be used for many k point calculations.
default_value: "0"
unit: ""
availability: Used only for nscf calculations with plane wave basis set.
- name: cal_stress
category: System variables
type: Boolean
description: |
If set to True, calculate the stress at the end of the electronic iteration.
default_value: "False"
unit: ""
availability: ""
- name: diago_proc
category: System variables
type: Integer
description: |
* 0: it will be set to the number of MPI processes.
* >0: it specifies the number of processes used for carrying out diagonalization. Must be less than or equal to total number of MPI processes.
default_value: "0"
unit: ""
availability: Used only for plane wave basis set.
- name: nbspline
category: System variables
type: Integer
description: |
If set to a natural number, a Cardinal B-spline interpolation will be used to calculate Structure Factor. nbspline represents the order of B-spline basis and a larger one can get more accurate results but cost more. It is turned off by default.
default_value: "-1"
unit: ""
availability: ""
- name: kspacing
category: System variables
type: Vector of Real (1 or 3 values)
description: |
Set the smallest allowed spacing between k points, unit in 1/bohr. It should be larger than 0.0, and suggest smaller than 0.25. When you have set this value > 0.0, then the KPT file is unnecessary. The default value 0.0 means that ABACUS will read the applied KPT file.
[NOTE] If gamma_only is set to be true, kspacing is invalid.
default_value: "0.0"
unit: ""
availability: ""
- name: min_dist_coef
category: System variables
type: Real
description: |
A factor related to the allowed minimum distance between two atoms. At the beginning, ABACUS will check the structure, and if the distance of two atoms is shorter than min_dist_coef*(standard covalent bond length), we think this structure is unreasonable.
default_value: "0.2"
unit: ""
availability: ""
- name: device
category: System variables
type: String
description: |
Specifies the computing device for ABACUS.
Available options are:
* cpu: for CPUs via Intel, AMD, or Other supported CPU devices
* gpu: for GPUs via CUDA or ROCm.
[NOTE] ks_solver must also be set to the algorithms supported. lcao_in_pw currently does not support gpu.
default_value: cpu
unit: ""
availability: ""
- name: precision
category: System variables
type: String
description: |
Specifies the precision when performing scf calculation.
* single: single precision
* double: double precision
default_value: double
unit: ""
availability: Used only for plane wave basis set.
- name: timer_enable_nvtx
category: System variables
type: Boolean
description: |
Controls whether NVTX profiling labels are emitted by the timer. This feature is only effective on CUDA platforms.
* True: Enable NVTX profiling labels in the timer.
* False: Disable NVTX profiling labels in the timer.
default_value: "False"
unit: ""
availability: ""
- name: cell_factor
category: System variables
type: Real
description: |
Used in the construction of the pseudopotential tables. For cell-relax calculations, this is automatically set to 2.0.
default_value: "1.2"
unit: ""
availability: ""
- name: dm_to_rho
category: System variables
type: Boolean
description: |
Reads density matrix in npz format and calculates electron density.
default_value: "False"
unit: ""
availability: ""
- name: chg_extrap
category: System variables
type: String
description: |
Charge extrapolation method for MD and relaxation calculations.
default_value: default
unit: ""
availability: ""
- name: ecutwfc
category: Plane wave related variables
type: Real
description: |
Energy cutoff for plane wave functions. Note that even for localized orbitals basis, you still need to setup an energy cutoff for this system. Because our local pseudopotential parts and the related force are calculated from plane wave basis set.
[NOTE] ecutwfc and ecutrho can be set simultaneously. If only one parameter is set, abacus will automatically set another parameter based on the 4-time relationship.
default_value: "50 for PW basis, 100 for LCAO basis"
unit: Ry
availability: ""
- name: ecutrho
category: Plane wave related variables
type: Real
description: |
Energy cutoff for charge density and potential. For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress.
default_value: "4*ecutwfc"
unit: Ry
availability: ""
- name: nx
category: Plane wave related variables
type: Integer
description: |
If set to a positive number, specifies the number of FFT grid points in x direction. If set to 0, the number will be calculated from ecutrho.
[NOTE] You must specify all three dimensions (nx, ny, nz) for this setting to be used.
default_value: "0"
unit: ""
availability: ""
- name: ny
category: Plane wave related variables
type: Integer
description: |
If set to a positive number, specifies the number of FFT grid points in y direction. If set to 0, the number will be calculated from ecutrho.
[NOTE] You must specify all three dimensions (nx, ny, nz) for this setting to be used.
default_value: "0"
unit: ""
availability: ""
- name: nz
category: Plane wave related variables
type: Integer
description: |
If set to a positive number, specifies the number of FFT grid points in z direction. If set to 0, the number will be calculated from ecutrho.
[NOTE] You must specify all three dimensions (nx, ny, nz) for this setting to be used.
default_value: "0"
unit: ""
availability: ""
- name: ndx
category: Plane wave related variables
type: Integer
description: |
If set to a positive number, specifies the number of FFT grid points for the dense part of charge density in x direction. If set to 0, the number will be calculated from ecutwfc.
[NOTE] You must specify all three dimensions (ndx, ndy, ndz) for this setting to be used. These parameters must be used combined with nx, ny, nz. If nx, ny, nz are unset, ndx, ndy, ndz are used as nx, ny, nz.
default_value: "0"
unit: ""
availability: ""
- name: ndy
category: Plane wave related variables
type: Integer
description: |
If set to a positive number, specifies the number of FFT grid points for the dense part of charge density in y direction. If set to 0, the number will be calculated from ecutwfc.
[NOTE] You must specify all three dimensions (ndx, ndy, ndz) for this setting to be used. These parameters must be used combined with nx, ny, nz. If nx, ny, nz are unset, ndx, ndy, ndz are used as nx, ny, nz.
default_value: "0"
unit: ""
availability: ""
- name: ndz
category: Plane wave related variables
type: Integer
description: |
If set to a positive number, specifies the number of FFT grid points for the dense part of charge density in z direction. If set to 0, the number will be calculated from ecutwfc.
[NOTE] You must specify all three dimensions (ndx, ndy, ndz) for this setting to be used. These parameters must be used combined with nx, ny, nz. If nx, ny, nz are unset, ndx, ndy, ndz are used as nx, ny, nz.
default_value: "0"
unit: ""
availability: ""
- name: pw_seed
category: Plane wave related variables
type: Integer
description: |
Specify the random seed to initialize wave functions. Only positive integers are available.
default_value: "0"
unit: ""
availability: Only used for plane wave basis.
- name: diag_subspace
category: Plane wave related variables
type: Integer
description: |
The method to diagonalize subspace in dav_subspace method.
* 0: by LAPACK
* 1: by GenELPA
* 2: by ScaLAPACK
default_value: "0"
unit: ""
availability: ""
- name: erf_ecut
category: Plane wave related variables
type: Real
description: |
Used in variable-cell molecular dynamics (or in stress calculation). See erf_sigma for details.
default_value: "0.0"
unit: Ry
availability: ""
- name: fft_mode
category: Plane wave related variables
type: Integer
description: |
Set the mode of FFTW.
* 0: FFTW_ESTIMATE
* 1: FFTW_MEASURE
* 2: FFTW_PATIENT
* 3: FFTW_EXHAUSTIVE
default_value: "0"
unit: ""
availability: ""
- name: erf_height
category: Plane wave related variables
type: Real
description: |
Used in variable-cell molecular dynamics (or in stress calculation). See erf_sigma for details.
default_value: "0.0"
unit: Ry
availability: ""
- name: erf_sigma
category: Plane wave related variables
type: Real
description: |
In order to recover the accuracy of a constant energy cutoff calculation, the kinetic functional is modified, which is used in variable-cell molecular dynamics (or in stress calculation).
default_value: "0.1"
unit: Ry
availability: ""
- name: stru_file
category: Input files
type: String
description: |
The name of the structure file containing various information about atom species, including pseudopotential files, local orbitals files, cell information, atom positions, and whether atoms should be allowed to move.
default_value: STRU
unit: ""
availability: ""
- name: kpoint_file
category: Input files
type: String
description: |
The name of the k-point file that includes the k-point information of Brillouin zone.
default_value: KPT
unit: ""
availability: ""
- name: pseudo_dir
category: Input files
type: String
description: |
The directory of pseudopotential files. This parameter is combined with the pseudopotential filenames in the STRU file to form the complete pseudopotential file paths.
default_value: "\"\""
unit: ""
availability: ""
- name: orbital_dir
category: Input files
type: String
description: |
The directory to save numerical atomic orbitals. This parameter is combined with orbital filenames in the STRU file to form the complete orbital file paths.
default_value: "\"\""
unit: ""
availability: ""
- name: read_file_dir
category: Input files
type: String
description: |
Location of files, such as the electron density (chgs1.cube), required as a starting point.
default_value: OUT.$suffix
unit: ""
availability: ""
- name: restart_load
category: Input files
type: Boolean
description: |
If restart_save is set to true and an electronic iteration is finished, calculations can be restarted from the charge density file, which are saved in the former calculation.
default_value: "False"
unit: ""
availability: Used only when numerical atomic orbitals are employed as basis set.
- name: basis_type
category: Electronic structure
type: String
description: |
Choose the basis set.
* pw: Using plane-wave basis set only.
* lcao: Using localized atomic orbital sets.
* lcao_in_pw: Expand the localized atomic set in plane-wave basis, non-self-consistent field calculation not tested.
default_value: pw
unit: ""
availability: ""
- name: ks_solver
category: Electronic structure
type: String
description: |
Choose the diagonalization methods for the Hamiltonian matrix expanded in a certain basis set.
For plane-wave basis,
* cg: The conjugate-gradient (CG) method.
* bpcg: The BPCG method, which is a block-parallel Conjugate Gradient (CG) method, typically exhibits higher acceleration in a GPU environment.
* dav: The Davidson algorithm.
* dav_subspace: The Davidson algorithm without orthogonalization operation, this method is the most recommended for efficiency. pw_diag_ndim can be set to 2 for this method.
For numerical atomic orbitals basis,
* lapack: Use LAPACK to diagonalize the Hamiltonian, only used for serial version
* genelpa: Use GEN-ELPA to diagonalize the Hamiltonian.
* scalapack_gvx: Use Scalapack to diagonalize the Hamiltonian.
* cusolver: Use CUSOLVER to diagonalize the Hamiltonian, at least one GPU is needed.
* cusolvermp: Use CUSOLVER to diagonalize the Hamiltonian, supporting multi-GPU devices. Note that you should set the number of MPI processes equal to the number of GPUs.
* elpa: The ELPA solver supports both CPU and GPU. By setting the device to GPU, you can launch the ELPA solver with GPU acceleration (provided that you have installed a GPU-supported version of ELPA, which requires you to manually compile and install ELPA, and the ABACUS should be compiled with -DUSE_ELPA=ON and -DUSE_CUDA=ON). The ELPA solver also supports multi-GPU acceleration.
If you set ks_solver=genelpa for basis_type=pw, the program will stop with an error message:
``text genelpa can not be used with plane wave basis. ``
Then the user has to correct the input file and restart the calculation.
default_value: ""
unit: ""
availability: ""
- name: nbands
category: Electronic structure
type: Integer
description: |
The number of Kohn-Sham orbitals to calculate. It is recommended to setup this value, especially when smearing techniques are utilized, more bands should be included.
default_value: ""
unit: ""
availability: ""
- name: nelec
category: Electronic structure
type: Real
description: |
* 0.0: The total number of electrons will be calculated by the sum of valence electrons (i.e. assuming neutral system).
* >0.0: this denotes the total number of electrons in the system. Must be less than 2*nbands.
default_value: "0.0"
unit: ""
availability: ""
- name: nelec_delta
category: Electronic structure
type: Real
description: |
The total number of electrons will be calculated by nelec+nelec_delta.
default_value: "0.0"
unit: ""
availability: ""
- name: nupdown
category: Electronic structure
type: Real
description: |
* 0.0: no constrain apply to system.
* >0.0: The different number of electrons between spin-up and spin-down channels. The range of value must be in [-nelec ~ nelec]. It is one type of constrainted DFT method, two Fermi energies will be calculated.
default_value: "0.0"
unit: ""
availability: ""
- name: dft_functional
category: Electronic structure
type: String
description: |
In our package, the XC functional can either be set explicitly using the dft_functional keyword in INPUT file. If dft_functional is not specified, ABACUS will use the xc functional indicated in the pseudopotential file. On the other hand, if dft_functional is specified, it will overwrite the functional from pseudopotentials and performs calculation with whichever functional the user prefers. We further offer two ways of supplying exchange-correlation functional. The first is using 'short-hand' names. A complete list of 'short-hand' expressions can be found in the source code. Supported density functionals are:
* LDA functionals
* LDA (equivalent with PZ and SLAPZNOGXNOGC), PWLDA
* GGA functionals
* PBE (equivalent with SLAPWPBXPBC), PBESOL, REVPBE, WC, BLYP, BP(referred to BP86), PW91, HCTH, OLYP, BLYP_LR
* meta-GGA functionals
* SCAN (require LIBXC)
* Hybrid functionals
* PBE0, HF
* If LIBXC is available, additional short-hand names of hybrid functionals are supported: HSE(referred to HSE06), B3LYP, LC_PBE, LC_WPBE, LRC_WPBE, LRC_WPBEH, CAM_PBEH, WP22, CWP22, MULLER (equivalent with POWER)
* Hybrid meta-GGA functionals
* SCAN0 (require LIBXC)
The other way is only available when compiling with LIBXC, and it allows for supplying exchange-correlation functionals as combinations of LIBXC keywords for functional components, joined by a plus sign, for example, dft_functional='LDA_X_1D_EXPONENTIAL+LDA_C_1D_CSC'.
default_value: Used the same as DFT functional as specified in the pseudopotential files.
unit: ""
availability: ""
- name: xc_temperature
category: Electronic structure
type: Real
description: |
Specifies temperature when using temperature-dependent XC functionals (KSDT and so on).
default_value: "0.0"
unit: Ry
availability: ""
- name: xc_exch_ext
category: Electronic structure
type: Integer followed by Real values
description: |
Customized parameterization on the exchange part of XC functional. The first value should be the LibXC ID of the original functional, and latter values are external parameters. Default values are those of Perdew-Burke-Ernzerhof (PBE) functional. For more information on LibXC ID of functionals, please refer to LibXC. For parameters of functionals of interest, please refer to the source code of LibXC, such as PBE functional interface in LibXC: gga_x_pbe.c.
[NOTE] Solely setting this keyword will take no effect on XC functionals. One should also set dft_functional to the corresponding functional to apply the customized parameterization. Presently this feature can only support parameterization on one exchange functional.
default_value: 101 0.8040 0.2195149727645171
unit: ""
availability: ""
- name: xc_corr_ext
category: Electronic structure
type: Integer followed by Real values
description: |
Customized parameterization on the correlation part of XC functional. The first value should be the LibXC ID of the original functional, and latter values are external parameters. Default values are those of Perdew-Burke-Ernzerhof (PBE) functional. For more information on LibXC ID of functionals, please refer to LibXC. For parameters of functionals of interest, please refer to the source code of LibXC, such as PBE functional interface in LibXC: gga_c_pbe.c.
[NOTE] Solely setting this keyword will take no effect on XC functionals. One should also set dft_functional to the corresponding functional to apply the customized parameterization. Presently this feature can only support parameterization on one correlation functional.
default_value: 130 0.06672455060314922 0.031090690869654895034 1.0
unit: ""
availability: ""
- name: pseudo_rcut
category: Electronic structure
type: Real
description: |
Cut-off of radial integration for pseudopotentials.
default_value: "15"
unit: Bohr
availability: ""
- name: pseudo_mesh
category: Electronic structure
type: Boolean
description: |
* 0: Use a mesh for radial integration of pseudopotentials.
* 1: Use the mesh that is consistent with quantum espresso
default_value: "0"
unit: ""
availability: ""
- name: nspin
category: Electronic structure
type: Integer
description: |
The number of spin components of wave functions.
* 1: Spin degeneracy
* 2: Collinear spin polarized.
* 4: For the case of noncollinear polarized, nspin will be automatically set to 4 without being specified by the user.
default_value: "1"
unit: ""
availability: ""
- name: smearing_method
category: Electronic structure
type: String
description: |
It indicates which occupation and smearing method is used in the calculation.
* fixed: fixed occupations (available for non-coductors only)
* gauss or gaussian: Gaussian smearing method.
* mp: methfessel-paxton smearing method; recommended for metals.
* mp2: 2-nd methfessel-paxton smearing method; recommended for metals.
* mv or cold: marzari-vanderbilt smearing method.
* fd: Fermi-Dirac smearing method: and smearing_sigma below is the temperature (in Ry).
default_value: gauss
unit: ""
availability: ""
- name: smearing_sigma
category: Electronic structure
type: Real
description: |
Energy range for smearing.
default_value: "0.015"
unit: Ry
availability: ""
- name: smearing_sigma_temp
category: Electronic structure
type: Real
description: |
Energy range for smearing, smearing_sigma = 1/2 kB smearing_sigma_temp.
default_value: "2 * smearing_sigma / kB."
unit: K
availability: ""
- name: mixing_type
category: Electronic structure
type: String
description: |
Charge mixing methods.
* plain: Just simple mixing.
* pulay: Standard Pulay method. P. Pulay Chemical Physics Letters, (1980)
* broyden: Simplified modified Broyden method. D.D. Johnson Physical Review B (1988)
In general, the convergence of the Broyden method is slightly faster than that of the Pulay method.
default_value: broyden
unit: ""
availability: ""
- name: mixing_beta
category: Electronic structure
type: Real
description: |
In general, the formula of charge mixing can be written as rho_new = rho_old + mixing_beta * drho, where rho_new represents the new charge density after charge mixing, rho_old represents the charge density in previous step, drho is obtained through various mixing methods, and mixing_beta is set by this parameter. A lower value of 'mixing_beta' results in less influence of drho on rho_new, making the self-consistent field (SCF) calculation more stable. However, it may require more steps to achieve convergence. We recommend the following options:
* 0.8: nspin=1
* 0.4: nspin=2 and nspin=4
* 0: keep charge density unchanged, usually used for restarting with init_chg=file or testing.
* 0.1 or less: if convergence of SCF calculation is difficult to reach, please try 0 < mixing_beta < 0.1.
Note: For low-dimensional large systems, the setup of mixing_beta=0.1, mixing_ndim=20, and mixing_gg0=1.0 usually works well.
default_value: "0.8 for nspin=1, 0.4 for nspin=2 and nspin=4."
unit: ""
availability: ""
- name: mixing_beta_mag
category: Electronic structure
type: Real
description: |
Mixing parameter of magnetic density.
default_value: "4*mixing_beta, but the maximum value is 1.6."
unit: ""
availability: ""
- name: mixing_ndim
category: Electronic structure
type: Integer
description: |
It indicates the mixing dimensions in Pulay or Broyden. Pulay and Broyden method use the density from previous mixing_ndim steps and do a charge mixing based on this density.
For systems that are difficult to converge, one could try increasing the value of 'mixing_ndim' to enhance the stability of the self-consistent field (SCF) calculation.
default_value: "8"
unit: ""
availability: ""
- name: mixing_restart
category: Electronic structure
type: Real
description: |
If the density difference between input and output drho is smaller than mixing_restart, SCF will restart at next step which means SCF will restart by using output charge density from perivos iteration as input charge density directly, and start a new mixing. Notice that mixing_restart will only take effect once in one SCF.
default_value: "0"
unit: ""
availability: ""
- name: mixing_dmr
category: Electronic structure
type: Boolean
description: |
At n-th iteration which is calculated by drho<mixing_restart, SCF will start a mixing for real-space density matrix by using the same coefficiences as the mixing of charge density.
default_value: "false"
unit: ""
availability: "Only for mixing_restart >= 0.0"
- name: mixing_gg0
category: Electronic structure
type: Real
description: |
Whether to perfom Kerker scaling for charge density.
* >0: The high frequency wave vectors will be suppressed by multiplying a scaling factor. Setting mixing_gg0 = 1.0 is normally a good starting point. Kerker preconditioner will be automatically turned off if mixing_beta <= 0.1.
* 0: No Kerker scaling is performed.
For systems that are difficult to converge, particularly metallic systems, enabling Kerker scaling may aid in achieving convergence.
default_value: "1.0"
unit: ""
availability: ""
- name: mixing_gg0_mag
category: Electronic structure
type: Real
description: |
Whether to perfom Kerker preconditioner of magnetic density. Note: we do not recommand to open Kerker preconditioner of magnetic density unless the system is too hard to converge.
default_value: "0.0"
unit: ""
availability: ""
- name: mixing_gg0_min
category: Electronic structure
type: Real
description: |
The minimum kerker coefficient.
default_value: "0.1"
unit: ""
availability: ""
- name: mixing_angle
category: Electronic structure
type: Real
description: |
Normal broyden mixing can give the converged result for a given magnetic configuration. If one is not interested in the energies of a given magnetic configuration but wants to determine the ground state by relaxing the magnetic moments' directions, one cannot rely on the standard Broyden mixing algorithm. To enhance the ability to find correct magnetic configuration for non-colinear calculations, ABACUS implements a promising mixing method proposed by J. Phys. Soc. Jpn. 82 (2013) 114706. Here, mixing_angle is the angle mixing parameter. In fact, only mixing_angle=1.0 is implemented currently.
* <=0: Normal broyden mixing
* >0: Angle mixing for the modulus with mixing_angle=1.0
default_value: "-10.0"
unit: ""
availability: Only relevant for non-colinear calculations nspin=4.
- name: mixing_tau
category: Electronic structure
type: Boolean
description: |
Whether to mix the kinetic energy density.
* True: The kinetic energy density will also be mixed. It seems for general cases, SCF converges fine even without this mixing. However, if there is difficulty in converging SCF for meta-GGA, it might be helpful to turn this on.
* False: The kinetic energy density will not be mixed.
default_value: "False"
unit: ""
availability: Only relevant for meta-GGA calculations.
- name: mixing_dftu
category: Electronic structure
type: Boolean
description: |
Whether to mix the occupation matrices.
* True: The occupation matrices will also be mixed by plain mixing. From experience this is not very helpful if the +U calculation does not converge.
* False: The occupation matrices will not be mixed.
default_value: "False"
unit: ""
availability: Only relevant for DFT+U calculations.
- name: gamma_only
category: Electronic structure
type: Boolean
description: |
Whether to use gamma_only algorithm.
* 0: more than one k-point is used and the ABACUS is slower compared to the gamma only algorithm.
* 1: ABACUS uses gamma only, the algorithm is faster and you don't need to specify the k-points file.
Note: If gamma_only is set to 1, the KPT file will be overwritten. So make sure to turn off gamma_only for multi-k calculations.
default_value: "0"
unit: ""
availability: Only used in localized orbitals set
- name: scf_nmax
category: Electronic structure
type: Integer
description: |
This variable indicates the maximal iteration number for electronic iterations.
default_value: "100"
unit: ""
availability: ""
- name: scf_thr
category: Electronic structure
type: Real
description: |
It's the density threshold for electronic iteration. It represents the charge density error between two sequential densities from electronic iterations. Usually for local orbitals, usually 1e-6 may be accurate enough.
default_value: "1.0e-9 (plane-wave basis), or 1.0e-7 (localized atomic orbital basis)."
unit: "Ry if scf_thr_type=1, dimensionless if scf_thr_type=2"
availability: ""
- name: scf_ene_thr
category: Electronic structure
type: Real
description: |
It's the energy threshold for electronic iteration. It represents the total energy error between two sequential densities from electronic iterations.
default_value: "-1.0. If the user does not set this parameter, it will not take effect."
unit: eV
availability: ""
- name: scf_thr_type
category: Electronic structure
type: Integer
description: |
Choose the calculation method of convergence criterion.
* 1: the criterion is defined in reciprocal space, which is used in SCF of PW basis with unit Ry.
* 2: the criterion is defined in real space, where is the number of electron, which is used in SCF of LCAO with unit dimensionless.
default_value: "1 (plane-wave basis), or 2 (localized atomic orbital basis)."
unit: ""
availability: ""
- name: scf_os_stop
category: Electronic structure
type: Boolean
description: |
For systems that are difficult to converge, the SCF process may exhibit oscillations in charge density, preventing further progress toward the specified convergence criteria and resulting in continuous oscillation until the maximum number of steps is reached; this greatly wastes computational resources. To address this issue, this function allows ABACUS to terminate the SCF process early upon detecting oscillations, thus reducing subsequent meaningless calculations. The detection of oscillations is based on the slope of the logarithm of historical drho values. To this end, Least Squares Method is used to calculate the slope of the logarithmically taken drho for the previous scf_os_ndim iterations. If the calculated slope is larger than scf_os_thr, stop the SCF.
* 0: The SCF will continue to run regardless of whether there is oscillation or not.
* 1: If the calculated slope is larger than scf_os_thr, stop the SCF.
default_value: "false"
unit: ""
availability: ""
- name: scf_os_thr
category: Electronic structure
type: Real
description: |
The slope threshold to determine if the SCF is stuck in a charge density oscillation. If the calculated slope is larger than scf_os_thr, stop the SCF.
default_value: "-0.01"
unit: ""
availability: ""
- name: scf_os_ndim
category: Electronic structure
type: Integer
description: |
To determine the number of old iterations' drho used in slope calculations.
default_value: mixing_ndim
unit: ""
availability: ""
- name: sc_os_ndim
category: Electronic structure
type: Integer
description: |
To determine the number of old iterations to judge oscillation, it occured, more accurate lambda with DeltaSpin method would be calculated, only for PW base.
default_value: "5"
unit: ""
availability: ""
- name: lspinorb
category: Electronic structure
type: Boolean
description: |
Whether to consider spin-orbit coupling (SOC) effect in the calculation.
* True: Consider spin-orbit coupling effect. When enabled:
* nspin is automatically set to 4 (noncollinear spin representation)
* Symmetry is automatically disabled (SOC breaks inversion symmetry)
* Requires full-relativistic pseudopotentials with has_so=true in the UPF header
* False: Do not consider spin-orbit coupling effect.
* Common Error: "no soc upf used for lspinorb calculation" - ensure you are using full-relativistic pseudopotentials
default_value: "False"
unit: ""
availability: ""
- name: noncolin
category: Electronic structure
type: Boolean
description: |
Whether to allow non-collinear magnetic moments, where magnetization can point in arbitrary directions (x, y, z components) rather than being constrained to the z-axis.
* True: Allow non-collinear polarization. When enabled:
* nspin is automatically set to 4
* Wave function dimension is doubled (npol=2), and the number of occupied states is doubled
* Charge density has 4 components (Pauli spin matrices)
* Cannot be used with gamma_only=true
* Can be combined with lspinorb=true for SOC effects with non-collinear magnetism
* False: Do not allow non-collinear polarization (magnetization constrained to z-axis).
* Relationship with lspinorb:
* noncolin=0, lspinorb=1: SOC with z-axis magnetism only (for non-magnetic materials with SOC)
* noncolin=1, lspinorb=0: Non-collinear magnetism without SOC
* noncolin=1, lspinorb=1: Both non-collinear magnetism and SOC
default_value: "False"
unit: ""
availability: ""
- name: soc_lambda
category: Electronic structure
type: Real
description: |
Modulates the strength of spin-orbit coupling effect. Sometimes, for some real materials, both scalar-relativistic and full-relativistic pseudopotentials cannot describe the exact spin-orbit coupling. Artificial modulation may help in such cases.
soc_lambda, which has value range [0.0, 1.0], is used to modulate SOC effect:
* soc_lambda 0.0: Scalar-relativistic case (no SOC)
* soc_lambda 1.0: Full-relativistic case (full SOC)
* Intermediate values: Partial-relativistic SOC (interpolation between scalar and full)
Use case: When experimental or high-level theoretical results suggest that the SOC effect is weaker or stronger than what full-relativistic pseudopotentials predict, you can adjust this parameter to match the target behavior.
default_value: "1.0"
unit: ""
availability: Only works when lspinorb=true
- name: dfthalf_type
category: Electronic structure
type: Integer
description: |
DFT-1/2 type:
* 0: DFT-1/2 is off.
* 1: Shell DFT-1/2 method is used.
default_value: "0"
unit: ""
availability: ""
- name: pw_diag_thr
category: Plane wave related variables
type: Real
description: |
Only used when you use ks_solver = cg/dav/dav_subspace/bpcg. It indicates the threshold for the first electronic iteration, from the second iteration the pw_diag_thr will be updated automatically. For nscf calculations with planewave basis set, pw_diag_thr should be <= 1e-3.
default_value: "0.01"
unit: ""
availability: ""
- name: diago_smooth_ethr
category: Plane wave related variables
type: Boolean
description: |
If TRUE, the smooth threshold strategy, which applies a larger threshold (10e-5) for the empty states, will be implemented in the diagonalization methods. (This strategy should not affect total energy, forces, and other ground-state properties, but computational efficiency will be improved.) If FALSE, the smooth threshold strategy will not be applied.
default_value: "false"
unit: ""
availability: ""
- name: use_k_continuity
category: Plane wave related variables
type: Boolean
description: |
If TRUE, the wavefunctions at k-point will be initialized from the converged wavefunctions at the nearest k-point, which can speed up the SCF convergence. Only works for PW basis.
default_value: "false"
unit: ""
availability: Used only for plane wave basis set.
- name: pw_diag_nmax
category: Plane wave related variables
type: Integer
description: |
Only useful when you use ks_solver = cg/dav/dav_subspace/bpcg. It indicates the maximal iteration number for cg/david/dav_subspace/bpcg method.
default_value: "40"
unit: ""
availability: ""
- name: pw_diag_ndim
category: Plane wave related variables
type: Integer
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.
default_value: "4"
unit: ""
availability: ""
- name: diago_cg_prec
category: Plane wave related variables
type: Integer
description: |
Preconditioner type for conjugate gradient diagonalization method.
default_value: "1"
unit: ""
availability: ""
- name: nb2d
category: System variables
type: Integer
description: |
In LCAO calculations, the Hamiltonian and overlap matrices are distributed across 2D processor grid. This parameter controls the 2D block size for distribution.
default_value: "0"
unit: ""
availability: ""
- name: lmaxmax
category: Numerical atomic orbitals related variables
type: Integer
description: |
If not equals to 2, then the maximum l channels on LCAO is set to lmaxmax. If 2, then the number of l channels will be read from the LCAO data sets. Normally no input should be supplied for this variable so that it is kept as its default.
default_value: "2."
unit: ""
availability: ""
- name: lcao_ecut
category: Numerical atomic orbitals related variables
type: Real
description: |
Energy cutoff (in Ry) for two-center integrals in LCAO. The two-center integration table are obtained via a k space integral whose upper limit is about sqrt(lcao_ecut).
default_value: ecutwfc
unit: ""
availability: ""
- name: lcao_dk
category: Numerical atomic orbitals related variables
type: Real
description: |
the interval of k points for two-center integrals. The two-center integration table are obtained via a k space integral on a uniform grid with spacing lcao_dk.
default_value: "0.01"
unit: Bohr
availability: ""
- name: lcao_dr
category: Numerical atomic orbitals related variables
type: Real
description: |
r spacing of the integration table of two-center integrals.
default_value: "0.01"
unit: Bohr