Initializing SCF

Initializing SCF#

Good initializing would abate the number of iteration steps in SCF. Charge density should be initialed for constructing the initial hamiltonian operator.

In PW basis, wavefunction should be initialized for iterate diagonalization method. In LCAO basis, wavefunction can be read to calculate initial charge density. The wavefunction itself does not have to be initialized.

Charge Density#

init_chg is used for choosing the method of charge density initialization.

  • atomic : initial charge density by atomic charge density from pseudopotential file under keyword PP_RHOATOM

  • file : initial charge density from files produced by previous calculations with out_chg 1.

  • auto: Abacus first attempts to read the density from a file; if not found, it defaults to using atomic density.

  • dm (LCAO only): initial charge density from density matrix files in CSR format. For nspin=1, reads dmrs1_nao.csr. For nspin=2 (spin-polarized), reads both dmrs1_nao.csr (spin-up) and dmrs2_nao.csr (spin-down). These files are generated by previous calculations with out_dmr 1. This method is particularly useful for restarting spin-polarized calculations.

  • hr (LCAO only): initial charge density from Hamiltonian matrix files in CSR format. The Hamiltonian is read from file, then diagonalized to obtain wavefunctions and charge density. For nspin=1, reads hrs1_nao.csr. For nspin=2 (spin-polarized), reads both hrs1_nao.csr (spin-up) and hrs2_nao.csr (spin-down). These files are generated by previous calculations with out_hsr 1.

Wavefunction#

init_wfc selects how wavefunction coefficients are initialized. The available options and behavior depend on basis_type.

For basis_type=pw, the available options are:

  • atomic: Use atomic pseudo wavefunctions from PP_PSWFC. If no PP_PSWFC states are available, all bands are initialized randomly. If the number of atomic states is smaller than nbands, the remaining bands are initialized randomly.

  • atomic+random: If there are at least nbands atomic states, apply an approximately 5% multiplicative random perturbation to the atomic initialization. If there are fewer atomic states than nbands, use the atomic states and initialize the remaining bands randomly, as for atomic.

  • random: Initialize all bands with random coefficients.

  • nao: Use numerical atomic orbitals. If the number of NAO states is smaller than nbands, the remaining bands are initialized randomly.

  • nao+random: Apply an approximately 5% multiplicative random perturbation to the NAO initialization; any bands not covered by NAO states are first initialized randomly.

  • file: Read binary wf*_pw.dat files generated with out_wfc_pw=2 from read_file_dir. The files must match the current k points, nbands, plane-wave layout, and lattice.

For basis_type=lcao, only init_wfc=file triggers reading existing wavefunctions. LCAO wavefunctions initialize the density matrix and real-space charge density. ABACUS reads text wf*_nao.txt files generated with out_wfc_lcao=1 from read_file_dir; binary files generated with out_wfc_lcao=2 are not supported. The files must use a compatible NAO basis, match the current k-point and spin setup, and contain enough bands. Normal init_wfc=file reading matches files written with the default out_app_flag=true, which have no geometry-step index. Files written under WFC/ with a g* geometry-step index when out_app_flag=false are not matched automatically.

For basis_type=lcao_in_pw, init_wfc is automatically set to nao.

For calculation=get_wf or calculation=get_pchg, init_wfc is automatically set to file. If basis_type=lcao_in_pw is also used, the final value is nao.