Keywords: user_guide

Next: 3.4 Optimization and dynamics Up: 3 Using PWscf Previous: 3.2 Data files Contents
Subsections

- - 3.3.0.1 Single-point (fixed-ion) SCF calculation
  - 3.3.0.2 Band structure calculation
  - 3.3.0.3 Noncollinear magnetization, spin-orbit interactions
  - 3.3.0.4 DFT+U
  - 3.3.0.5 Dispersion Interactions (DFT-D)
  - 3.3.0.6 Hartree-Fock and Hybrid functionals
  - 3.3.0.7 Dispersion interaction with non-local functional (vdW-DF)
  - 3.3.0.8 Polarization via Berry Phase
  - 3.3.0.9 Finite electric fields
  - 3.3.0.10 Orbital magnetization

## 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 1 (that is: `PW/examples/example01`).

#### 3.3.0.2 Band structure calculation

First perform a SCF calculation as above; then do a non-SCF calculation (at fixed potential, computed in the previous step) 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 1, 6, 7.

NOTA BENE: atomic positions are read from the data file of the scf step.

#### 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 both `noncolin` and `lspinorb` must be true. Furthermore you must use fully relativistic pseudopotentials at least for one atom. If all pseudopotentials are scalar-relativistic, the calculation is noncollinear but there is no spin-orbit coupling.

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, the code 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.

See example 6 for noncollinear magnetism, example 7 (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 `Modules/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 8 and its README.

#### 3.3.0.5 Dispersion Interactions (DFT-D)

For DFT-D (DFT + semiempirical dispersion interactions), see the description of input variable `vdw_corr` and related input variables; sample input files can be found in `test-suite/pw_vdw/vdw-d*.in`. For DFT-D2, see also the comments in source file `Modules/mm_dispersion.f90`. For DFT-D3, see the README in the `dft-d3/` directory.

#### 3.3.0.6 Hartree-Fock and Hybrid functionals

Hybrid functionals do not require anything special to be done, but note that: 1) they are much slower than plain GGA calculations, 2) non-scf and band calculations are not presently implemented, and 3) there are no pseudopotentials generated for hybrid functionals. See `EXX_example/` and its README file, and tests `pw_b3lyp`, `pw_pbe`, `pw_hse`.

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

See example `vdwDF_example`, references quoted in file `README` therein, tests `pw_vdW`.

#### 3.3.0.8 Polarization via Berry Phase

See example 4, 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: 3.4 Optimization and dynamics Up: 3 Using PWscf Previous: 3.2 Data files Contents