next up previous contents
Next: 3.4 Optimization and dynamics Up: 3 Using PWscf Previous: 3.2 Data files   Contents

Subsections

3.3 Electronic structure calculations

3.3.0.1 Single-point (fixed-ion) SCF calculation

Set calculation='scf' (this is actually the default). Namelists &IONS and &CELL will be ignored. For LSDA spin-polarized calculations (that is: with a fixed quantization axis for magnetization), set nspin=2. Note that the number of k-points will be internally doubled (one set of k-points for spin-up, one set for spin-down). See Example 01.

3.3.0.2 Band structure calculation

First perform a SCF calculation as above; then do a non-SCF calculation with the desired k-point grid and number nbnd of bands. Use calculation='bands' if you are interested in calculating only the Kohn-Sham states for the given set of k-points (e.g. along symmetry lines: see for instance http://www.cryst.ehu.es/cryst/get_kvec.html). Specify instead calculation='nscf' if you are interested in further processing of the results of non-SCF calculations (for instance, in DOS calculations). In the latter case, you should specify a uniform grid of points. For DOS calculations you should choose occupations='tetrahedra', together with an automatically generated uniform k-point grid (card K_POINTS with option ``automatic''). Specify nosym=.true. to avoid generation of additional k-points in low symmetry cases. Variables prefix and outdir, which determine the names of input or output files, should be the same in the two runs. See Examples 01, 06, 07,

NOTA BENE: Since v.4.1, both atomic positions and the scf potential are read from the data file so that consistency is guaranteed.

3.3.0.3 Noncollinear magnetization, spin-orbit interactions

The following input variables are relevant for noncollinear and spin-orbit calculations:

noncolin
lspinorb
starting_magnetization (one for each type of atoms)
To make a spin-orbit calculation noncolin must be true. If starting_magnetization is set to zero (or not given) the code makes a spin-orbit calculation without spin magnetization (it assumes that time reversal symmetry holds and it does not calculate the magnetization). The states are still two-component spinors but the total magnetization is zero.

If starting_magnetization is different from zero, it makes a noncollinear spin polarized calculation with spin-orbit interaction. The final spin magnetization might be zero or different from zero depending on the system. Note that the code will look only for symmetries that leave the starting magnetization unchanged.

Furthermore to make a spin-orbit calculation you must use fully relativistic pseudopotentials at least for the atoms in which you think that spin-orbit interaction is large. If all the pseudopotentials are scalar relativistic the calculation becomes equivalent to a noncollinear calculation without spin orbit. (Andrea Dal Corso, 2007-07-27) See Example 06 for noncollinear magnetism, Example 07 (and references quoted therein) for spin-orbit interactions.

3.3.0.4 DFT+U

DFT+U (formerly known as LDA+U) calculation can be performed within a simplified rotationally invariant form of the U Hubbard correction. Note that for all atoms having a U value there should be an item in function flib/set_hubbard_l.f90 and one in subroutine PW/src/tabd.f90, defining respectively the angular momentum and the occupancy of the orbitals with the Hubbard correction. If your Hubbard-corrected atoms are not there, you need to edit these files and to recompile.

See Example 08 and its README.

3.3.0.5 Dispersion Interactions (DFT-D)

For DFT-D (DFT + semiempirical dispersion interactions), see the description of input variables london*, sample files PW/tests/vdw.*, and the comments in source file Modules/mm_dispersion.f90.

3.3.0.6 Hartree-Fock and Hybrid functionals

Since v.5.0, calculations in the Hartree-Fock approximation, or using hybrid XC functionals that include some Hartree-Fock exchange, no longer require a special preprocessing before compilation. See EXX_example/ and its README file.

3.3.0.7 Dispersion interaction with non-local functional (vdW-DF)

See example vdwDF_example and references quoted in file README therein.

3.3.0.8 Polarization via Berry Phase

See Example 04, its file README, the documentation in the header of PW/src/bp_c_phase.f90.

3.3.0.9 Finite electric fields

There are two different implementations of macroscopic electric fields in pw.x: via an external sawtooth potential (input variable tefield=.true.) and via the modern theory of polarizability (lelfield=.true.). The former is useful for surfaces, especially in conjunction with dipolar corrections (dipfield=.true.): see examples/dipole_example for an example of application. Electric fields via modern theory of polarization are documented in example 10. The exact meaning of the related variables, for both cases, is explained in the general input documentation.

3.3.0.10 Orbital magnetization

Modern theory of orbital magnetization [Phys. Rev. Lett. 95, 137205 (2005)] for insulators. The calculation is performed by setting input variable lorbm=.true. in nscf run. If finite electric field is present (lelfield=.true.) only Kubo terms are computed [see New J. Phys. 12, 053032 (2010) for details].


next up previous contents
Next: 3.4 Optimization and dynamics Up: 3 Using PWscf Previous: 3.2 Data files   Contents
Filippo Spiga 2016-01-09