Pwscf¶
Units¶
From http://www.quantum-espresso.org/input-syntax/INPUT_PW.html:
“All quantities whose dimensions are not explicitly specified are in
RYDBERG ATOMIC UNITS”. See also constants.py
.
- matdyn.x and phonon dos:
With dos=.true., matdyn.x calculates the phonon density of states. The frequency axis in the output file is f in cm^-1. Note that THIS IS NOT THE ANGULAR FREQUENCY omega = 2*pi*f!!! Therefore, if you calculate with this frequency as in “hbar*omega”, then use f*2*pi!
Atomic coordinates¶
In PWscf terms, alat = celldm(1) = lattice constant “a” in a.u. . A length in a.u. means a unit or Bohr = a0 = 0.52917720859 Angstrom.
To calculate the PDOS, atomic coordinates from MD trajectories have to be in cartesian coordinates. You may have to transform them before using them to calculate the PDOS. See
test/test_pdos.py
test/test_pdos_coord_trans.py
This is necessary if you have “ATOMIC_POSITIONS crystal”.
The scale (or unit: Bohr, Angstrom, …, defined by celldm(1) or CELL_PARAMETERS) does not matter, b/c currently the integral area under the PDOS curve is normalized in pydos.*_pdos(). But coords MUST be cartesian!
For your convenience, here is a list of all possible formats (from the Pwscf help):
allowed ATOMIC_POSITIONS units:
alat : atomic positions are in cartesian coordinates,
in units of the lattice parameter "a" (default)
bohr : atomic positions are in cartesian coordinate,
in atomic units (i.e. Bohr)
angstrom: atomic positions are in cartesian coordinates,
in Angstrom
crystal : atomic positions are in crystal coordinates, i.e.
in relative coordinates of the primitive lattice vectors
Note: crystal coords are also called fractional coordinates (e.g. in Cif files).
summary:
ATOMIC_POSITIONS angstrom -> cartesian angstrom
ATOMIC_POSITIONS bohr -> cartesian a.u.
ATOMIC_POSITIONS -> cartesian alat
ATOMIC_POSITIONS alat -> cartesian alat
ATOMIC_POSITIONS crystal -> crystal alat or crystal a.u. (see below)
The unit of CELL_PARAMETERS is only important for ATOMIC_POSITIONS crystal:
if celldm(1) present -> CELL_PARAMETERS in alat -> crystal alat
=> CELL_PARAMETERS = real cell parameter divided by alat
if not -> CELL_PARAMETERS in a.u. -> crystal a.u.
=> CELL_PARAMETERS are in Rydberg atomic units, i.e. in Bohr.
Total force on atoms¶
Pwscf writes a “Total Force” after the “Forces acting on atoms” section . This value is kind of an RMS of the force matrix (f_ij, i=1,natoms j=1,2,3) printed. According to …/PW/forces.f90, variable “sumfor”, the “Total Force” is:
sqrt(sum_ij f_ij^2)
But this is not normalized to the number of atoms. Use crys.rms() or crys.rms3d() for MD runs where the RMS of each (f_ij) is:
sqrt( (sum_ij f_ij^2) / N )
with N = 3*natoms or N=natoms.