mirror of https://gitlab.com/QEF/q-e.git
78 lines
3.8 KiB
Plaintext
78 lines
3.8 KiB
Plaintext
The code phcg.x contained in the Gamma/ subdirectory is a specialized
|
|
phonon code, calculating phonon modes only at Gamma (q=0), and using
|
|
only Gamma (k=0) for the sum over the Brillouin Zone. It performs direct
|
|
minimization of the energy functional expanded at second order in the
|
|
atomic displacements. The code was written having molecular applications
|
|
in mind : Raman and IR spectra calculations in C60 (JCP100, p.8537, 1994)
|
|
and later in models of the GFP chromophore (Chem.Phys. 287/1-2, p.33, 2003).
|
|
|
|
The (non resonant) Raman cross sections are calculated by finite differences
|
|
of the dielectric tensor with respect to small atomic displacements. This
|
|
method is simple but slow. The Raman calculation using such as second-order
|
|
response, as implemented in code ph.x, should be much faster. The calculation
|
|
of Raman cross sections in phcg.x was retained for testing purposes, or for
|
|
some special cases (high-symmetry molecules for instance). Note that this
|
|
feature has not been tested since a long time, so it may not actually work.
|
|
|
|
Note that:
|
|
- the code reads a file produced by pw.x with Gamma point only and
|
|
Gamma-point special tricks (half of the plane waves and so on)
|
|
- Only nonmagnetic insulators, with nbnd=nelec/2, are implemented
|
|
- Ultrasoft PP's are not implemented
|
|
- the symmetry is used in a different way wrt all other PWscf codes:
|
|
only inequivalent atoms are displaced. This has an historical reason:
|
|
C60 has just 3 inequivalent atoms when put into in a cubic cell with
|
|
standard orientation (the isolated molecule has 1 inequivalent atom)
|
|
- the code saves partial and final results in files "restart_e" and
|
|
"restartph". Specify "recover=.true." in the input data in order to
|
|
restart from saved data.
|
|
|
|
Input:
|
|
title (a string of characters)
|
|
&inputph [variable1=value1, variable2=value2,...] /
|
|
displacement patterns (optional, see below)
|
|
|
|
Input variables as in the phonon code:
|
|
|
|
outdir
|
|
prefix
|
|
fildyn
|
|
epsil Note that effective charges are also computed if epsil=.true.,
|
|
trans
|
|
recover
|
|
tr2_ph Note that Conjugate-Gradient algorithm stops when
|
|
|| A\delta\psi - B || < tr2_ph, where A and B define
|
|
the DFT functional expanded at second order:
|
|
E^{(2)} = (1/2) (\delta\psi A \delta\psi) - B\delta\psi
|
|
|
|
Variables specific to this code:
|
|
|
|
asr use Acoustic Sum Rule to reduce by 3 the number of phonon
|
|
calculations to be performed (used only if trans=.true.)
|
|
nmodes use the specified displacement patterns, provided after the
|
|
namelist as nmodes vectors, each with 3*nat components
|
|
(nat=number of atoms); nmodes < 3*nat is allowed (I think).
|
|
If not set, uses all 3*nat displacement patterns (one atom
|
|
at the time, along x, or y, or z)
|
|
|
|
Raman-specific variables for this code:
|
|
|
|
raman perform a calculation of Raman cross sections by finite
|
|
differences
|
|
deltatau finite difference (a.u.): typically a small but not too
|
|
small amount, something like 0.01 a.u, or so
|
|
nderiv type of finite derivative formula: nderiv=2 is a simple
|
|
two-point formula (two calculations per displacement)
|
|
[ f (-deltatau) + f(+deltatau) - 2 f(0) ] / 2/ deltatau^2
|
|
nderiv=4 is a four-point formula (4 calculations/displacement)
|
|
first, last
|
|
calculate raman intensities only for phonon modes from the
|
|
"first" to the "last" (in increasing order of energy, as
|
|
produced by the code after diagonalization of the dynamical
|
|
matrix), using these phonon modes as displacement patterns.
|
|
Requires nderiv*(last-first+1) calculations of the dielectric
|
|
tensor. If not set, first calculate all derivatives of the
|
|
dielectric tensor wrt atomic displacements (nderiv*3*nat
|
|
calculations); then, Raman intensities for all phonon modes.
|
|
|