File: node9.html

package info (click to toggle)
espresso 6.7-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 311,068 kB
  • sloc: f90: 447,429; ansic: 52,566; sh: 40,631; xml: 37,561; tcl: 20,077; lisp: 5,923; makefile: 4,503; python: 4,379; perl: 1,219; cpp: 761; fortran: 618; java: 568; awk: 128
file content (228 lines) | stat: -rw-r--r-- 8,135 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<!--Converted with LaTeX2HTML 2019.2 (Released June 5, 2019) -->
<HTML lang="EN">
<HEAD>
<TITLE>4.2 Relax the system</TITLE>
<META NAME="description" CONTENT="4.2 Relax the system">
<META NAME="keywords" CONTENT="user_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="viewport" CONTENT="width=device-width, initial-scale=1.0">
<META NAME="Generator" CONTENT="LaTeX2HTML v2019.2">

<LINK REL="STYLESHEET" HREF="user_guide.css">

<LINK REL="next" HREF="node10.html">
<LINK REL="previous" HREF="node8.html">
<LINK REL="next" HREF="node10.html">
</HEAD>

<BODY >
<!--Navigation Panel-->
<A
 HREF="node10.html">
<IMG WIDTH="37" HEIGHT="24" ALT="next" SRC="next.png"></A> 
<A
 HREF="node7.html">
<IMG WIDTH="26" HEIGHT="24" ALT="up" SRC="up.png"></A> 
<A
 HREF="node8.html">
<IMG WIDTH="63" HEIGHT="24" ALT="previous" SRC="prev.png"></A> 
<A ID="tex2html67"
  HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALT="contents" SRC="contents.png"></A>  
<BR>
<B> Next:</B> <A
 HREF="node10.html">4.3 CP dynamics</A>
<B> Up:</B> <A
 HREF="node7.html">4 Using CP</A>
<B> Previous:</B> <A
 HREF="node8.html">4.1 Reaching the electronic</A>
 &nbsp; <B>  <A ID="tex2html68"
  HREF="node1.html">Contents</A></B> 
<BR>
<BR>
<!--End of Navigation Panel-->

<H2><A ID="SECTION00052000000000000000">
4.2 Relax the system</A>
</H2>

<P>
Once your system is in the GS, depending on how you have prepared the starting
atomic configuration:

<OL>
<LI>if you have set the atomic positions "by hand" and/or from a classical code, 
check the forces on atoms, and if they are large (<!-- MATH
 $\sim 0.1 \div 1.0$
 -->
∼0.1÷1.0
atomic units), you should perform an ionic minimization, otherwise the
system could break up during the dynamics.
</LI>
<LI>if you have taken the positions from a previous run or a previous ab-initio 
simulation, check the forces, and if they are too small (<!-- MATH
 $\sim 10^{-4}$
 -->
∼10<SUP>-4</SUP> 
atomic units), this means that atoms are already in equilibrium positions 
and, even if left free, they will not move. Then you need to randomize 
positions a little bit (see below).
</LI>
</OL>

<P>
Let us consider case 1). There are 
different strategies to relax the system, but the most used 
are again steepest-descent or damped-dynamics for ions and electrons. 
You could also mix electronic and ionic minimization scheme freely, 
i.e. ions in steepest-descent and electron in with damped-dynamics or vice versa.
<table width="90%">    <tr><td align="right" valign="top">(a)</td><td valign="top">&nbsp;suppose we want to perform steepest-descent for ions. Then we should specify 
the following section for ions:
<PRE> 
         &amp;ions
           ion_dynamics = 'sd'
         /
</PRE> 
Change also the ionic masses to accelerate the minimization:
<PRE> 
         ATOMIC_SPECIES
          C 2.0d0 c_blyp_gia.pp
          H 2.00d0 h.ps
</PRE> 
while leaving other input parameters unchanged.
<EM>Note</EM> that if the forces are really high (&gt; 1.0 atomic units), you
should always use steepest descent for the first (∼100
relaxation steps. </td></tr>
<tr><td align="right" valign="top">(b)</td><td valign="top">&nbsp;As the system approaches the equilibrium positions, the steepest 
descent scheme slows down, so is better to switch to damped dynamics:
<PRE> 
         &amp;ions
           ion_dynamics = 'damp',
           ion_damping = 0.2,
           ion_velocities = 'zero'
         /
</PRE>
A  value of <TT>ion_damping</TT> around 0.05 is good for many systems. 
It is also better to specify to restart with zero ionic and electronic 
velocities, since we have changed the masses.

<P>
Change further the ionic masses to accelerate the minimization:
<PRE> 
           ATOMIC_SPECIES
           C 0.1d0 c_blyp_gia.pp
           H 0.1d0 h.ps
</PRE></td></tr>
<tr><td align="right" valign="top">(c)</td><td valign="top">&nbsp;when the system is really close to the equilibrium, the damped dynamics 
slow down too, especially because, since we are moving electron and ions 
together, the ionic forces are not properly correct, then it is often better 
to perform a ionic step every N electronic steps, or to move ions only when
electron are in their GS (within the chosen threshold).

<P>
This can be specified by adding, in the ionic section, the 
<TT>ion_nstepe</TT>
parameter, then the &amp;IONS namelist become as follows:
<PRE> 
         &amp;ions
           ion_dynamics = 'damp',
           ion_damping = 0.2,
           ion_velocities = 'zero',
           ion_nstepe = 10
         /
</PRE>
Then we specify in the &amp;CONTROL namelist:
<PRE> 
           etot_conv_thr = 1.d-6,
           ekin_conv_thr = 1.d-5,
           forc_conv_thr = 1.d-3
</PRE>
As a result, the code checks every 10 electronic steps whether
the electronic system satisfies the two thresholds 
<TT>etot_conv_thr</TT>, <TT>ekin_conv_thr</TT>: if it does, 
the ions are advanced by one step.
The process thus continues until the forces become smaller than
<TT>forc_conv_thr</TT>.

<P>
<EM>Note</EM> that to fully relax the system you need many runs, and different 
strategies, that you should mix and change in order to speed-up the convergence.
The process is not automatic, but is strongly based on experience, and trial 
and error.

<P>
Remember also that the convergence to the equilibrium positions depends on 
the energy threshold for the electronic GS, in fact correct forces (required
to move ions toward the minimum) are obtained only when electrons are in their 
GS. Then a small threshold on forces could not be satisfied, if you do not 
require an even smaller threshold on total energy.
</td></tr></table>

<P>
Let us now move to case 2: randomization of positions.

<P>
If you have relaxed the system or if the starting system is already in
the equilibrium positions, then you need to displace ions from the equilibrium 
positions, otherwise they will not move in a dynamics simulation.
After the randomization you should bring electrons on the GS again,
in order to start a dynamic with the correct forces and with electrons 
in the GS. Then you should switch off the ionic dynamics and activate 
the randomization for each species, specifying the amplitude of the 
randomization itself. This could be done with the following 
&amp;IONS namelist:
<PRE>
          &amp;ions
            ion_dynamics = 'none',
            tranp(1) = .TRUE.,
            tranp(2) = .TRUE.,
            amprp(1) = 0.01
            amprp(2) = 0.01
          /
</PRE>
In this way a random displacement (of max 0.01 a.u.) is added to atoms of 
species 1 and 2. All other input parameters could remain the same.
Note that the difference in the total energy (etot) between relaxed and
randomized positions can be used to estimate the temperature that will
be reached by the system. In fact, starting with zero ionic velocities,
all the difference is potential energy, but in a dynamics simulation, the
energy will be equipartitioned between kinetic and potential, then to
estimate the temperature take the difference in energy (de), convert it
in Kelvin, divide for the number of atoms and multiply by 2/3.
Randomization could be useful also while we are relaxing the system,
especially when we suspect that the ions are in a local minimum or in
an energy plateau.

<P>
<HR>
<!--Navigation Panel-->
<A
 HREF="node10.html">
<IMG WIDTH="37" HEIGHT="24" ALT="next" SRC="next.png"></A> 
<A
 HREF="node7.html">
<IMG WIDTH="26" HEIGHT="24" ALT="up" SRC="up.png"></A> 
<A
 HREF="node8.html">
<IMG WIDTH="63" HEIGHT="24" ALT="previous" SRC="prev.png"></A> 
<A ID="tex2html67"
  HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALT="contents" SRC="contents.png"></A>  
<BR>
<B> Next:</B> <A
 HREF="node10.html">4.3 CP dynamics</A>
<B> Up:</B> <A
 HREF="node7.html">4 Using CP</A>
<B> Previous:</B> <A
 HREF="node8.html">4.1 Reaching the electronic</A>
 &nbsp; <B>  <A ID="tex2html68"
  HREF="node1.html">Contents</A></B> 
<!--End of Navigation Panel-->

</BODY>
</HTML>