quantum-espresso/CPV/examples/example08/README

106 lines
4.5 KiB
Plaintext

This example shows how to perform Born-Oppeheimer molecular dynamics
using the conjugate-gradient minimization of the electronic states.
It uses also the ensemble DFT for dealing with partial occupations
of the electronic states.
The example shows a simple Silicon dimer.
The systems has 8 valence electrons, described by 8 states (nspin=1).
For every ionic step, it fully minimized the electronic enthalpy
(electronic energy if ensemble-DFT is not used)
The conjugate-gradient algorith REQUIRES Gram-Schmidt orho-normalization.
Ensemble-DFT is implemented only for conjugate gradient minimization
of the electronic states and Born-Oppenheimer molecular dynamics
(NOT FOR Car-Parrinello), it supports Ultrasoft pseudopotentials.
For Ensemble DFT see:
N. Marzari, D. Vanderbilt, and M. C. Payne
"Ensemble Density-Functional Theory for Ab Initio
Molecular Dynamics of Metals and Finite-Temperature Insulators"
Phys. Rev. Lett. 79, 1337-1340 (1997)
Note that here we start a conjugate gradient minimizatio from
scratch, directly with preconditioning on the electron masses
(emass=1000.d0,emass_cutoff = 4.d0). This should not be done
for larger systems (Just use maxiter=5 for doing some c.g.
iteration with no mass preconditioning and then do restart
with mass preconditioning)
The concerned parameters are:
FOR CONJUGATE GRADIENT:
tcg LOGICAL ( default = .FALSE. )
if .TRUE. perform a conjugate gradient minimization of the
electronic states for every ionic step.
It requires Gram-Schmidt orthogonalization of the electronic
states.
maxiter INTEGER ( default = 100 )
maximum number of conjugate gradient iterations for
conjugate gradient minimizations of electronic states
conv_thr REAL ( default = 1.D-6 )
convergence criterion for energy in the case of
conjugate gradient minimization of the electronic states
passop REAL ( default = 0.3D0 )
small step used in the conjugate gradient minimization
of the electronic states.
FOR ENSEMBLE-DFT
occupations CHARACTER
a string describing the occupation of the electronic states.
In the case of conjugate gradient style of minimization
of the electronic states, if occupations is set to 'ensemble',
this allows ensemble dft calculations for metallic systems
smearing CHARACTER
a string describing the kind of occupations for electronic states
in the case of ensemble dft (occupations == 'ensemble' );
now only Fermi-Dirac ('fd') case is implemented
degauss REAL ( default = 0.D0 )
parameter for the smearing function, only used for ensemble dft
calculations
n_inner INTEGER ( default = 2 )
number of internal cycles for every conjugate gradient
iteration only for ensemble dft
The output file is slightly different from the Car-Parrinello case:
It reports Kohn-Sham eigenstates energies and occupancies:
eigenvalues at k-point: 0.000 0.000 0.000
-10.79 -9.16 -4.57 -3.85 -3.85 -2.54 -2.54 -0.25
Occupations :
1.999925 1.999182 1.484846 1.000959 1.000959 0.252111 0.252111 0.009907
At every steps, it reports:
nfi tempp E -T.S-mu.nbsp +K_p #Iter
Step 10 13 -7.57738 -7.71516 -7.71504 9
Step 11 15 -7.57743 -7.71519 -7.71504 10
Step 12 19 -7.57748 -7.71522 -7.71504 6
Step 13 22 -7.57754 -7.71525 -7.71504 6
where nfi is a counter of the ionic steps, tempp is the ionic temperature,
E is the electronic energy at the minimum of the electronic enthalpy,
-T.S-mu.nbsp is the electronic enthalpy (electronic energy -TS , S=entropy)
, and +K_p is the electronic enthalpy plus the ionic kinetic energy,
#Iter is the number of iterations which were needed to minimized
the electronic enthalpy with the conjugate gradient algorithm.
NB: from one ionic step to the following, a linear extrapolation is
used to provide an estimate for the electronic wave-functions,
every 10 steps, this procedure is restarted.
A more powerful scheme will be implemented in the future.