quantum-espresso/Doc/INPUT_CPVIB

182 lines
6.9 KiB
Plaintext

=============================================================================
Program CPVIB
=============================================================================
Calculates the vibrational modes, Born effective charges and infrared
cross-section for isolated molecules/clusters in vacuum.
The programs uses the CP code as the underlying DFT engine
for wave function relaxation (SCF) and the frozen phonon method for
construction of the energy hessian (dynamical matrix),
i.e. displace each atom in all three cartesian directions to construct
the numerical first derivative of the forces.
INPUT:
=====
The program uses two mandatory input files (optional files are discussed
further below):
1. The regular CP input file, which presumably was used to generate a
ground state nuclear configuration (local minimum).
2. A file "prefix.vib.inp", where prefix is defined in the CP input
file.
prefix.vib.inp contains two name lists:
&INPUT_VIB
...
/
&ISOTOPES
...
/
------------------------------------------------------------------------------
INPUT_VIB namelist:
displacement real ( default = 0.05 )
displacement step, a uniform value for all atoms
save_freq integer ( default = 1 )
Save restart information every save_freq displacements.
Since it is usually a small file, containing mainly
the intermediate hessian, it is suggested not to
change the default.
restart_label character ( default = 'auto' )
'from_scratch': starts a new calculation
'restart' : continue a previous calculation
a file 'prefix.vib.restart' must be present
'auto' : if a file 'prefix.vib.restart' is present
the program will pick it up and continue
the previous calculation, or if absent,
it will start a new calculation
trans_inv_flag logical ( default = .true. )
impose translational invariance on the energy hessian
to ensure that the modes associated with a rigid
translation would have zero frequency
trans_inv_max_iter integer ( default = 50 )
the maximal number of steps in the iterative procedure
that removes the rigid translation modes
trans_inv_conv_thr real ( default = 1.0D-15 )
the threshhold for convergence of the iterative procedure
for removal of the rigid translation modes
trans_rot_inv_flag logical ( default = .true. )
remove also the rigid rotation modes
animate logical ( default = .false. )
generate xyz animation files for all normal modes
------------------------------------------------------------------------------
ISOTOPES namelist:
isotope(i) real ( default = mass specified in ATOMIC_SPECIES name
list of the CP input )
Used to change the mass (in AMU) of atom i. The same could
be achieved (in principle) if the particular atom i was
defined as a different species in the CP input, having the
same pseudo potential but a different mass. However, this
is useful if you haven't done it apriory, but you want to
get the isotope shift without repeating the whole calculation.
------------------------------------------------------------------------------
Additional information about the input/output files:
===================================================
1. After the energy hessian is calculated, the program will write
the analysis results to 'prefix.vib.analysis'.
The minimal output is:
* raw (but symmetrized) hessian
* diagonal mass matrix
* harmonic frequencies and the associated effective
spring constant and effective mode mass
* raw Born charge tensors for each atom
* the sum over the Born charges (minus total system charge)
this quantity should ideally be zero (acoustic sum rule).
* infrared intensity of each normal mode.
If trans_inv_flag==.true. then the same information as above is repeated
but this time with imposed translational invariance on the energy
hessian. In addition, the Born charges are symmetrized and
the acoustic sum rule is imposed.
if trans_rot_inv_flag==.true. then also rotational modes are projected
out.
A brief description of the methods:
==================================
1. The energy hessian is constructed by a simple difference formula for
the numerical first derivative of the forces.
2. The condition for translational invariance of the hessian is described
(for instance) in Gonze and Lee, Phys. Rev. B 55(16), 1997, 10355-10368.
However, simple enforcement of translational invariance breaks the
symmetry of the hessian. Here symmetrization and translational
invariance are repeatedly applied until convergence, i.e., until
the largest change in any matrix element of the hessian is smaller
than trans_inv_conv_thr parameter.
A more sophisticated and general algorithm was suggested by
Nicolas Mounet and Nicola Marzari (Ref. ???) and is already implemented
in QE-3.0.
3. The algorithm for removal of rotational rigid modes follows closely the
one implemented in Gaussian03 electronic structure package, as described
in their white papers (www.gaussian.com).
Warning messeges:
================
1.
from calc_hessian : info # -1
Warning: Reference structure is not converged!!!
Issued when the total energy of a perturbed configuration is lower than the
reference energy of the ground-state configuration. In some cases it is an
indication of insufficient structural relaxation, and further relaxation
is required. However, for very soft (low frequency) modes it is very difficult
to converge the structure properly. The soft modes include also the 'zero'
frequency modes associated with rigid translation and rotation. In practice
these are never zero, for numerical reasons, but could be projected out
of the final results.
2.
from calc_hessian : info # -1
Warning: consistency check
Numerical second derivative of the total energy, compared to
first derivative of the forces, for diagonal hessian element,
deviate by more then 10%:
Energy second derivative : -0.0003
Force first derivative : 0.0004
The matrix elements of the energy hessian are evaluated by a simple two-point
formula for the first derivative of the forces. For diagonal matrix elements
we can compare with the (less accurate) second numerical derivative of the
total energy, as a consistency check. If the difference between the two estimates
is larger than 10% (arbitrarily chosen) the code will issue the above warning,
but only if the matrix element is estimated to be larger than 1.0E-4.
Very small matrix elements are again associated with soft modes and are hard to
compute accurately.
In some cases the 'problems' causing the warnings are harmless. However one should always
verify it for each case.
How to improve the results:
==========================
1. better reference structure
2. tighter SCF convergence