The DFT solver, as written
gaas.viv
Ordinary Viv that sets the globals the engine reads. Generated by dft/ref/make_deck.py; the pseudopotential parameters come from CP2K's table, never typed.
# Gallium arsenide, zincblende: two species, and NO inversion symmetry, so the # density's Fourier coefficients are genuinely complex. # # dft/run.sh gaas it iterative engine: dft/pwdft_it.viv + dft/gaas_it_check.viv # # GENERATED by dft/ref/make_deck.py from dft/ref/materials.py -- do not edit by hand. # GTH/HGH pseudopotentials, LDA (Pade). GENERATED by dft/pseudo/make_pseudo.py # from CP2K's GTH_POTENTIALS table -- do not edit by hand. # S. Goedecker, M. Teter, J. Hutter, PRB 54, 1703 (1996) # C. Hartwigsen, S. Goedecker, J. Hutter, PRB 58, 3641 (1998) # species 0: Ga GTH-PADE-q3 # species 1: As GTH-PADE-q5 NSPEC = 2.0 GTH_NLOC = 4.0 #: GTH_NLOC coefficients C1..C4 of the local part GTH_NL = 4.0 #: GTH_NL angular momentum channels, l = 0 .. 3 GTH_NPMAX = 3.0 #: GTH_NPMAX at most this many projectors in one channel ZION = zeros(NSPEC) RLOC = zeros(NSPEC) CLOC = zeros(NSPEC, GTH_NLOC) NPRJ = zeros(NSPEC, GTH_NL) #: NPRJ projectors per (species, l) RPRJ = zeros(NSPEC, GTH_NL) #: RPRJ projector radius r_l per (species, l) HPRJ = zeros(NSPEC, GTH_NL, GTH_NPMAX, GTH_NPMAX) #: HPRJ the coupling matrix h^l_ij per (species, l) ZION[0] = 3.0 RLOC[0] = 0.56 NPRJ[0, 0] = 3.0 RPRJ[0, 0] = 0.61079074 HPRJ[0, 0, 0, 0] = 2.36932516 HPRJ[0, 0, 0, 1] = 0.09644314 HPRJ[0, 0, 0, 2] = -0.1346245 HPRJ[0, 0, 1, 0] = 0.09644314 HPRJ[0, 0, 1, 1] = -0.24901512 HPRJ[0, 0, 1, 2] = 0.34759896 HPRJ[0, 0, 2, 0] = -0.1346245 HPRJ[0, 0, 2, 1] = 0.34759896 HPRJ[0, 0, 2, 2] = -0.55179624 NPRJ[0, 1] = 2.0 RPRJ[0, 1] = 0.70459583 HPRJ[0, 1, 0, 0] = 0.74630529 HPRJ[0, 1, 0, 1] = 0.21683799 HPRJ[0, 1, 1, 0] = 0.21683799 HPRJ[0, 1, 1, 1] = -0.51313234 NPRJ[0, 2] = 1.0 RPRJ[0, 2] = 0.98257967 HPRJ[0, 2, 0, 0] = 0.07543656 ZION[1] = 5.0 RLOC[1] = 0.52 NPRJ[1, 0] = 3.0 RPRJ[1, 0] = 0.45640025 HPRJ[1, 0, 0, 0] = 4.56076106 HPRJ[1, 0, 0, 1] = -0.65545935 HPRJ[1, 0, 0, 2] = -0.33517391 HPRJ[1, 0, 1, 0] = -0.65545935 HPRJ[1, 0, 1, 1] = 1.69238876 HPRJ[1, 0, 1, 2] = 0.86541531 HPRJ[1, 0, 2, 0] = -0.33517391 HPRJ[1, 0, 2, 1] = 0.86541531 HPRJ[1, 0, 2, 2] = -1.37380421 NPRJ[1, 1] = 2.0 RPRJ[1, 1] = 0.55056168 HPRJ[1, 1, 0, 0] = 1.81224664 HPRJ[1, 1, 0, 1] = 0.27329186 HPRJ[1, 1, 1, 0] = 0.27329186 HPRJ[1, 1, 1, 1] = -0.64672658 NPRJ[1, 2] = 1.0 RPRJ[1, 2] = 0.68528272 HPRJ[1, 2, 0, 0] = 0.31237276 # --- the crystal: an fcc lattice --------------------------------------------- ALAT = 10.68 #: ALAT lattice constant, bohr A = [[0.0, ALAT / 2.0, ALAT / 2.0], [ALAT / 2.0, 0.0, ALAT / 2.0], [ALAT / 2.0, ALAT / 2.0, 0.0]] #: A primitive vectors, one per ROW NAT = 2.0 ATSPEC = [0.0, 1.0] #: ATSPEC species index of each atom ATFRAC = [[0.125, 0.125, 0.125], [-0.125, -0.125, -0.125]] #: ATFRAC positions, fractions of A # --- the calculation -------------------------------------------------------- ECUT = 14.0 #: ECUT plane-wave cutoff, hartree NBANDS = 8.0 #: NBANDS bands computed at every k-point SMEAR = 0.0 #: SMEAR Fermi-Dirac width, hartree; 0 for an insulator NKMESH = 2.0 #: NKMESH the k-mesh is NKMESH^3, shifted (dft/kmesh.viv) MIX = 0.6 #: MIX the damping in the Anderson mixer (dft/pw_common.viv) SCF_TOL = 1.0e-9 MAXIT = 80.0 NITER = 3.0 #: NITER LOBPCG steps per k-point per SCF iteration (iterative engine) NITER_BANDS = 60.0 #: NITER_BANDS at most this many LOBPCG steps per band-path point, from a cold start EIG_TOL = 1.0e-5 #: EIG_TOL residual norm |H psi - eps psi| every band that matters must reach # --- the band path: L -> Gamma -> X ------------------------------------------ NCORNER = 3.0 CORNER = [[0.5, 0.5, 0.5], [0.0, 0.0, 0.0], [0.5, 0.0, 0.5]] NSEG = 30.0 #: NSEG points per path segment; the figure has 2 NSEG + 1