quantum-espresso/doc-def/INPUT_PH.def

448 lines
12 KiB
Modula-2

input_description -distribution {Quantum Espresso} -package PWscf -program ph.x {
toc {}
intro {
Input data format: { } = optional, [ ] = it depends, # = comment
Structure of the input data:
===============================================================================
title_line
&INPUTPH
...
/
xq(1) xq(2) xq(3)
[ irrep(1) irrep(2) ... irrep(nrapp) ] # if "nrapp" was specified
[ atom(1) atom(2) ... atom(nat_todo) ] # if "nat_todo" was specified
}
linecard {
var title_line -type CHARACTER {
info {
Title of the job, i.e., a line that is reprinted on output.
}
}
}
namelist INPUTPH {
dimension amass -start 1 -end ntyp -type REAL {
default { 0.0 }
info {
Atomic mass [amu] of each atomic type.
If not specified, masses are read from data file.
}
}
var outdir -type CHARACTER {
default { './' }
info { Scratch directory. }
}
var prefix -type CHARACTER {
default { 'pwscf' }
info {
Prepended to input/output filenames; must be the same
used in the calculation of unperturbed system.
}
}
var niter_ph -type INTEGER {
default { 100 }
info {
Maximum number of iterations in a scf step.
}
}
var tr2_ph -type REAL {
default { 1e-12 }
info { Threshold for self-consistency. }
}
var alpha_mix(niter) -type REAL {
default { alpha_mix(1)=0.7 }
info {
Mixing factor (for each iteration) for updating
the scf potential:
vnew(in) = alpha_mix*vold(out) + (1-alpha_mix)*vold(in)
}
}
var nmix_ph -type INTEGER {
default { 4 }
info { Number of iterations used in potential mixing. }
}
var iverbosity -type INTEGER {
default { 0 }
info {
0 = short output
1 = verbose output
}
}
var reduce_io -type LOGICAL {
default { .false. }
info { Reduce I/O to the strict minimum. }
}
var max_seconds -type REAL {
default { 1.d7 }
info { Maximum allowed run time before the job stops smoothly. }
}
var fildyn -type CHARACTER {
default { 'matdyn' }
info { File where the dynamical matrix is written. }
}
var fildrho -type CHARACTER {
default { ' ' }
info { File where the charge density responses are written. }
}
var fildvscf -type CHARACTER {
default { ' ' }
info {
File where the the potential variation is written
(for later use in electron-phonon calculation).
}
}
var epsil -type LOGICAL {
default { .false. }
info {
If .true. in a q=0 calculation for a non metal the
macroscopic dielectric constant of the system is
computed. Do not set epsil to .true. if you have a
metallic system or q/=0: the code will complain and stop.
}
}
var lrpa -type LOGICAL {
default { .false. }
info {
If .true. the dielectric constant is calculated at the
RPA level with DV_xc=0.
}
}
var lnoloc -type LOGICAL {
default { .false. }
info {
If .true. the dielectric constant is calculated without
local fields, i.e. by setting DV_H=0 and DV_xc=0.
}
}
var trans -type LOGICAL {
default { .true. }
info {
If .true. the phonons are computed.
If trans .and. epsil are .true. effective charges are
calculated.
}
}
var lraman -type LOGICAL {
default { .false. }
info {
If .true. calculate non-resonant Raman coefficients
using second-order response as in:
M. Lazzeri and F. Mauri, Phys. Rev. Lett. 90, 036401 (2003).
}
}
group {
label { Optional variables for Raman: }
var eth_rps -type REAL {
default { 1.0d-9 }
info { Threshold for calculation of Pc R |psi>. }
}
var eth_ns -type REAL {
default { 1.0e-12 }
info { Threshold for non-scf wavefunction calculation. }
}
var dek -type REAL {
default { 1.0e-3 }
info { Delta_xk used for wavefunction derivation wrt k.}
}
}
var recover -type LOGICAL {
default { .false. }
info { If .true. restart from an interrupted run.}
}
var elph -type LOGICAL {
default { .false. }
info {
If .true. electron-phonon lambda coefficients are computed.
For metals only, requires gaussian smearing.
If elph .and. trans, the lambdas are calculated in the same
run, using the same k-point grid for phonons and lambdas
If elph.and..not.trans, the lambdas are calculated using
previously saved DeltaVscf in fildvscf, previously saved
dynamical matrix, and the present punch file. This allows
the use of a different (larger) k-point grid.
}
}
var zue -type LOGICAL {
default { .false. }
info {
If .true. in a q=0 calculation for a non metal the
effective charges are computed from the phonon
density responses. Note that if trans.and.epsil
effective charges are calculated using a different
algorithm. The results should be the same within
numerical noise.
}
}
var elop -type LOGICAL {
default { .false. }
info {
If .true. calculate electro-optic tensor.
}
}
var fpol -type LOGICAL {
default { .false. }
info {
If .true. calculate dynamic polarizabilities
( experimantal stage, see example33 for calculation
of methane ).
}
}
var lnscf -type LOGICAL {
default { .false. }
info {
If .true. the run makes first a pw.x nscf calculation.
The pw.x data file should not be produced using
"calculation='phonon'" in this case.}
}
var ldisp -type LOGICAL {
default { .false. }
info {
If .true. the run calculates phonons for a grid of
q-points specified by nq1, nq2, nq3 - for direct
calculation of the entire phonon dispersion.
The pw.x data file should not be produced using
"calculation='phonon'" in this case.
}
}
vargroup -type INTEGER {
var nq1
var nq2
var nq3
default { 0,0,0 }
info {
Parameters of the Monkhorst-Pack grid (no offset) used
when ldisp=.true. Same meaning as for nk1, nk2, nk3
in the input of pw.x.
}
}
vargroup -type INTEGER {
var iq1
var iq2
var iq3
default { 0,0,0 }
info {
These go together with nq1, nq2, nq3 and allow to choose
just one point out of the Monkhorst-Pack grid with ldisp=.true.
Note the the actual point chosen is something like
(iq1-1)/nq1, (iq2-1)/nq2, (iq3-1)/nq3 (so, check the output
for what you get). Also make sure that PW left *.wfc
files behind (no 'phonon' is needed though).
}
}
group {
label { Specification of irreducible representation }
var nrapp -type INTEGER {
default { 0, i.e. use all irreps }
info {
Choose the subset of irreducible representations (irreps)
for which the linear response calculation is performed:
"nrapp" irreps, specified in input (see below) are used.
IMPORTANT:
* nrapp must be <= 3*nat
* do not specify "nat_todo" together with "nrapp"
}
}
var start_irr -type INTEGER {
default { 1 }
see { last_irr }
info {
Perform calculations only from start_irr to last_irr
irreducible representations.
IMPORTANT:
* start_irr must be <= 3*nat
* do not specify "nat_todo" or "nrapp" together with
"start_irr", "last_irr"
}
}
var last_irr -type INTEGER {
default { 3*nat }
see { start_irr }
info {
Perform calculations only from start_irr to last_irr
irreducible representations.
IMPORTANT:
* start_irr must be <= 3*nat
* do not specify "nat_todo" or "nrapp" together with
"start_irr", "last_irr"
}
}
var nat_todo -type INTEGER {
default { 0, i.e. displace all atoms }
info {
Choose the subset of atoms to be used in the linear response
calculation: "nat_todo" atoms, specified in input (see below)
are displaced.
IMPORTANT:
* nat_todo <= nat
* do not specify "nrapp" together with "nat_todo"
}
}
var modenum -type INTEGER {
default { 0 }
info {
For single-mode phonon calculation : modenum is the index of the
irreducible representation (irrep) into which the reducible
representation formed by the 3*nat atomic displacements are
decomposed in order to perform the phonon calculation.
}
}
}
group {
label { q-point specification }
var start_q -type INTEGER {
default { 1 }
see { last_q }
info {
Used only when ldisp=.true..
Computes only the q points from start_q to last_q.
IMPORTANT:
* start_q must be <= nqs (number of q points found)
* do not specify "nat_todo" or "nrapp" together with
"start_q", "last_q"
}
}
var last_q -type INTEGER {
default { number of q points }
see { start_q }
info {
Used only when ldisp=.true..
Computes only the q points from start_q to last_q.
IMPORTANT
* last_q must be <= nqs (number of q points)
* do not specify "nat_todo" or "nrapp" together with
"start_q", "last_q"
}
}
}
}
group {
linecard {
list xq_list -type REAL {
format { xq(1) xq(2) xq(3) }
info {
The phonon wavevector, in units of 2pi/a0
(a0 = lattice parameter).
Not used if ldisp=.true.
}
}
}
}
choose {
when -test "nrapp was specified" {
linecard {
list irrep_list -type INTEGER {
format { irrep(1) irrep(2) ... irrep(nrapp) }
info {
The list of indices of irreps used in the calculation
if "nrapp" is specified.
}
}
}
}
elsewhen -test "nat_todo was specified" {
linecard {
list nat_todo_list -type INTEGER {
format { atom(1) atom(2) ... atom(nat_todo) }
info {
Contains the list of indices of atoms used in the
calculation if "nat_todo" is specified.
}
}
}
}
}
section -title { ADDITIONAL INFORMATION } {
text {
NB: The program ph.x writes on the tmp_dir/prefix.phsave directory a
file for each representation of each q point. This file is called
data-file.xml.#iq.#irr where #iq is the number of the q point and #irr
is the number of the representation. These files contain the
contribution to the dynamical matrix of the irr representation for the
iq point. If recover=.true. ph.x does not recalculate the
representations already saved in the tmp_dir/prefix.phsave directory.
This mechanism allows:
1) To recover the ph.x calculation even if the recover file is
corrupted. You just remove the recover files from the tmp_dir
directory.
2) To split a phonon calculation in several machines (or set of
nodes). Each machine calculates a subset of the representations
and saves its data-file.xml.#iq.#irr files on its
tmp_dir/prefix.phsave directory. Then you collect all the
data-file.xml.#iq.#irr files in one directory and run ph.x.
NB: If you split the q points in different machines, just use start_q
and last_q variables. If you plan to split also the irreducible
representations use start_irr, last_irr. If different machines
generate different displacement patterns the splitting on the
representations will not work. In order to force ph.x to use the same
patterns, run ph.x with start_irr=0, last_irr=0. This will produce a
set of files data-file.xml.#iq and the file data-file.xml. Copy these
files in all the tmp_dir/prefix.phsave directories where you plan to
run ph.x and then run ph.x with different start_irr, last_irr.
}
}
}