updating pw.x module

git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@7662 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
kokalj 2011-04-06 10:24:25 +00:00
parent a66a3dd9e3
commit 18a7227064
4 changed files with 190 additions and 834 deletions

View File

@ -80,18 +80,6 @@ proc ::pwscf::pwLoadAtomCoor {moduleObj} {
pwLoadAtomCoor:_read $moduleObj $file atomic_coordinates
}
}
proc ::pwscf::pwLoadAtomCoorInter {ith moduleObj} {
set file [pwLoadAtomCoor:_init $moduleObj]
if { $file != "" } {
pwLoadAtomCoor:_read $moduleObj $file atomic_coordinates_${ith}_inter
}
}
proc ::pwscf::pwLoadAtomCoorLast {moduleObj} {
set file [pwLoadAtomCoor:_init $moduleObj]
if { $file != "" } {
pwLoadAtomCoor:_read $moduleObj $file atomic_coordinates_last
}
}
proc ::pwscf::pwLoadAtomCoor:_init {moduleObj} {
variable pwscf

View File

@ -101,31 +101,6 @@ tracevar calculation w {
"(Beeman) dynamics of the new Wentzcovitch extended lagrangian <w>"
}
}
'neb' {
set enable {ions path neb constraints_card}
set disable {cell vc_md}
widget opt_scheme enable
widgetconfigure opt_scheme -textvalues {
"optimization algorithm based on molecular dynamics <quick-min>"
"Broyden method <broyden>"
"Alternate Broyden method <broyden2>"
"steepest descent <sd>"
}
}
'smd' {
set enable {ions path constraints_card}
set disable {cell vc_md neb}
widget opt_scheme enable
widgetconfigure opt_scheme -textvalues {
"optimization algorithm based on molecular dynamics <quick-min>"
"Broyden method <broyden>"
"Alternate Broyden method <broyden2>"
"steepest descent <sd>"
"finite temperature langevin dynamics <langevin>"
}
}
}
foreach group $enable {
@ -140,44 +115,13 @@ tracevar calculation w {
varset ion_dynamics -value [varvalue ion_dynamics]
varset ion_temperature -value [varvalue ion_temperature]
varset cell_dynamics -value [varvalue cell_dynamics]
varset opt_scheme -value [varvalue opt_scheme]
varset CI_scheme -value [varvalue CI_scheme]
varset constraints_enable -value [varvalue constraints_enable]
# take care of NEB || SMD coordinates
set ni [varvalue path_inter_nimages]; if { $ni == "" } { set ni 0 }
if { $calc == "'neb'" || $calc == "'smd'" } {
widget path_inter_nimages enable
widgetconfigure atomic_coordinates -caption "Enter atomic coordinates for the FIRST image:"
keywordconfigure first_image enable
keywordconfigure last_image enable
for {set i 1} {$i <= $ni} {incr i} {
keywordconfigure intermediate_image_$i enable
widget atomic_coordinates_${i}_inter create
widgetconfigure atomic_coordinates_${i}_inter -rows $nat
}
widget atomic_coordinates_last_image create
} else {
widget path_inter_nimages disable
widgetconfigure atomic_coordinates -caption "Enter atomic coordinates:"
keywordconfigure first_image disable
keywordconfigure last_image disable
for {set i 1} {$i <= $ni} {incr i} {
keywordconfigure intermediate_image_$i disable
widget atomic_coordinates_${i}_inter forget
}
widget atomic_coordinates_last_image forget
}
widgetconfigure atomic_coordinates -caption "Enter atomic coordinates:"
}
# ------------------------------------------------------------------------
# Page: SYSTEM
# ------------------------------------------------------------------------
@ -423,22 +367,6 @@ tracevar ion_dynamics w {
#}
}
tracevar opt_scheme w {
if { [regexp smd [varvalue calculation]] && [regexp langevin [varvalue opt_scheme]] } {
widget temp_req enable
} else {
widget temp_req disable
}
}
tracevar CI_scheme w {
if { [varvalue calculation] == "'neb'" && [varvalue CI_scheme] == "'manual'" } {
groupwidget climbing_images enable
} else {
groupwidget climbing_images disable
}
}
tracevar n_fe_step w {
widgetconfigure fe_step -end [varvalue n_fe_step]
}
@ -447,42 +375,6 @@ tracevar n_fe_step w {
# Page: CELL_PARAMETERS, ATOMIC_SPECIES, ATOMIC_POSITIONS
# ------------------------------------------------------------------------
tracevar path_inter_nimages w {
# Note: this is a bit complicated ...
set nat [varvalue nat]
set ni [varvalue path_inter_nimages]
set ni_old [varvalue old_path_inter_nimages]
if { $nat == "" } { set nat 1 }
if { $ni == "" } { set ni 0 }
if { $ni_old == "" } { set ni_old 0 }
if { $ni_old > $ni } {
# delete tables ...
for {set i $ni_old} { $i > $ni } {incr i -1} {
keywordconfigure intermediate_image_$i disable
widget atomic_coordinates_${i}_inter forget
}
} elseif { $ni_old < $ni } {
# create tables ...
widget atomic_coordinates_last forget ; # this forces the right pack-order
for {set i 1} {$i <= $ni} {incr i} {
keywordconfigure intermediate_image_$i enable
widget atomic_coordinates_${i}_inter create
widgetconfigure atomic_coordinates_${i}_inter -rows $nat
}
widget atomic_coordinates_last_image create
}
# remember current value of path_inter_nimages
varset old_path_inter_nimages -value $ni
}
#
# ------------------------------------------------------------------------
@ -546,38 +438,6 @@ tracevar constraints_enable w {
tracevar nconstr w {
set nc [varvalue nconstr]
widgetconfigure constraints_table -rows $nc
#set nc_old [varvalue old_nconstr]
#if { $nc_old == "" } { set nc_old 0 }
#if { $nc == "" } { set nc 0 }
#if { $nc < 0 } { set nc 0 }
#if { $nc_old < 0 } { set nc_old 0 }
#
#if { $nc_old > $nc } {
# for {set i $nc_old} { $i > $nc } {incr i -1} {
# puts stderr "*** i= $i nc=$nc old=$nc_old forget"
# widget constraint_type.$i forget
# widget constraint.$i forget
# widget constr.${i}_1 forget
# widget constr.${i}_2 forget
# widget constr.${i}_3 forget
# widget constr.${i}_4 forget
# widget constr_target_$i forget
# }
#} elseif { $nc_old < $nc } {
# for {set i $nc} {$i > $nc_old} {incr i -1} {
# puts stderr "*** i= $i create"
# widget constraint_type.$i create
# widget constraint.$i create
# widget constr.${i}_1 create
# widget constr.${i}_2 create
# widget constr.${i}_3 create
# widget constr.${i}_4 create
# widget constr_target_$i create
# }
#}
#
#varset old_nconstr -value $nc
}
tracevar assume_isolated w {
@ -595,15 +455,7 @@ tracevar assume_isolated w {
# ------------------------------------------------------------------------
# POST-PROCESSING: assign default values for "traced" variables, ...
# ------------------------------------------------------------------------
postprocess {
# BEWARE: it is assumed that 50 intermediate images is the
# largest allowed number (this is dirty)
varset old_path_inter_nimages -value 50
varset path_inter_nimages -value 0
#varset old_nconstr -value 50
#varset nconstr -value 0
postprocess {
varset calculation -value 'scf'
varset how_lattice -value celldm
varset ibrav -value {}
@ -612,7 +464,6 @@ postprocess {
varset lda_plus_u -value {}
varset occupations -value {}
varset diagonalization -value {}
varset CI_scheme -value {}
varset ion_dynamics -value {}
varset K_POINTS_flags -value automatic
varset CELL_PARAMETERS_flags -value cubic

View File

@ -24,9 +24,7 @@ a string describing the task to be performed:
'relax',
'md',
'vc-relax',
'vc-md',
'neb',
'smd'
'vc-md'
(vc = variable-cell).
</pre></blockquote>
@ -130,7 +128,6 @@ help nstep -helpfmt helpdoc -helptext {
<br><li> <em>Type: </em>INTEGER</li>
<br><li> <em>Default: </em>
1 if calculation = 'scf', 'nscf', 'bands';
0 if calculation = 'neb', 'smd';
50 for the other cases
</li>
<br><li> <em>Description:</em>
@ -833,20 +830,24 @@ help starting_magnetization -helpfmt helpdoc -helptext {
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
starting spin polarization (values between -1 and 1)
on atomic type 'i' in a spin-polarized calculation.
Breaks the symmetry and provides a starting point for
self-consistency. The default value is zero, BUT a value
MUST be specified for AT LEAST one atomic type in spin
polarized calculations. Note that if start from zero
initial magnetization, you will get zero final magnetization
in any case. If you desire to start from an antiferromagnetic
state, you may need to define two different atomic species
starting spin polarization on atomic type 'i' in a spin
polarized calculation. Values range between -1 (all spins
down for the valence electrons of atom type 'i') to 1
(all spins up). Breaks the symmetry and provides a starting
point for self-consistency. The default value is zero, BUT a
value MUST be specified for AT LEAST one atomic type in spin
polarized calculations, unless you constrain the magnetization
(see "tot_magnetization" and "constrained_magnetization").
Note that if you start from zero initial magnetization, you
will invariably end up in a nonmagnetic (zero magnetization)
state. If you want to start from an antiferromagnetic state,
you may need to define two different atomic species
corresponding to sublattices of the same atomic type.
starting_magnetization is ignored if you are performing a
non-scf calculation, if you are restarting from a previous
run, or restarting from an interrupted run.
If you fix the magnetization with "tot_magnetization",
you should not specify starting_magnetization.
If you are restarting from a previous run, or from an
interrupted run, starting_magnetization is ignored.
</pre></blockquote>
</ul>
@ -1004,6 +1005,25 @@ symmetry in k-point generation
}
# ------------------------------------------------------------------------
help no_t_rev -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>no_t_rev</b></big>
</li>
<br><li> <em>Type: </em>LOGICAL</li>
<br><li> <em>Default: </em> .FALSE.
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
if (.TRUE.) disable the usage of symmetry operations that
require time reversal.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help force_symmorphic -helpfmt helpdoc -helptext {
<ul>
@ -1035,8 +1055,8 @@ help occupations -helpfmt helpdoc -helptext {
'smearing': gaussian smearing for metals
requires a value for degauss
'tetrahedra' : for calculation of DOS in metals
(see PRB49, 16223 (1994))
'tetrahedra' : especially suited for calculation of DOS
(see P.E. Bloechl, PRB49, 16223 (1994))
Requires uniform grid of k-points,
automatically generated (see below)
Not suitable (because not variational) for
@ -1046,7 +1066,76 @@ help occupations -helpfmt helpdoc -helptext {
'from_input' : The occupation are read from input file.
Presently works only with one k-point
(LSDA allowed).
(LSDA, noncolinear allowed).
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help one_atom_occupations -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>one_atom_occupations</b></big>
</li>
<br><li> <em>Type: </em>LOGICAL</li>
<br><li> <em>Default: </em> .FALSE.
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
This flag is used for isolated atoms (nat=1) together with
occupations='from_input'. If it is .TRUE., the wavefunctions
are ordered as the atomic starting wavefunctions, independently
from their eigenvalue. The occupations indicate which atomic
states are filled.
The order of the states is written inside the UPF
pseudopotential file.
In the scalar relativistic case:
S -&gt; l=0, m=0
P -&gt; l=1, z, x, y
D -&gt; l=2, r^2-3z^2, xz, yz, xy, x^2-y^2
In the noncollinear magnetic case (with or without spin-orbit),
each group of states is doubled. For instance:
P -&gt; l=1, z, x, y for spin up, l=1, z, x, y for spin down.
Up and down is relative to the direction of the starting
magnetization.
In the case with spin-orbit and time-reversal
(starting_magnetization=0.0) the atomic wavefunctions are
radial functions multiplied by spin-angle functions.
For instance:
P -&gt; l=1, j=1/2, m_j=-1/2,1/2. l=1, j=3/2,
m_j=-3/2, -1/2, 1/2, 3/2.
In the magnetic case with spin-orbit the atomic wavefunctions
can be forced to be spin-angle functions by setting
starting_spin_angle to .TRUE..
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help starting_spin_angle -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>starting_spin_angle</b></big>
</li>
<br><li> <em>Type: </em>LOGICAL</li>
<br><li> <em>Default: </em> .FALSE.
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
In the spin-orbit case when domag=.TRUE., by default,
the starting wavefunctions are initialized as in scalar
relativistic noncollinear case without spin-orbit.
By setting starting_spin_angle=.TRUE. this behaviour can
be changed and the initial wavefunctions are radial
functions multiplied by spin-angle functions.
When domag=.FALSE. the initial wavefunctions are always
radial functions multiplied by spin-angle functions
independently from this flag.
When lspinorb is .FALSE. this flag is not used.
</pre></blockquote>
</ul>
@ -1465,17 +1554,14 @@ Currently available choices:
no constraint
'total':
total magnetization is constrained
If nspin=4 (noncolin=.True.) constraint is imposed by
total magnetization is constrained by
adding a penalty functional to the total energy:
LAMBDA * SUM_{i} ( magnetization(i) - fixed_magnetization(i) )**2
where the sum over i runs over the three components of
the magnetization. Lambda is a real number (see below).
If nspin=2 constraint is imposed by defining two Fermi
energies for spin up and down.
Only fixed_magnetization(3) can be defined in this case.
Noncolinear case only. Use "tot_magnetization" for LSDA
'atomic':
atomic magnetization are constrained to the defined
@ -1853,6 +1939,26 @@ help diagonalization -helpfmt helpdoc -helptext {
}
# ------------------------------------------------------------------------
help ortho_para -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>ortho_para</b></big>
</li>
<br><li> <em>Type: </em>INTEGER</li>
<br><li> <em>Default: </em> 0
</li>
<br><li> <em>Status: </em> OBSOLETE: use command-line option " -ndiag XX" instead
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help diago_thr_init -helpfmt helpdoc -helptext {
<ul>
@ -1987,7 +2093,7 @@ help startingpot -helpfmt helpdoc -helptext {
</li>
<blockquote><pre>
'atomic': starting potential from atomic charge superposition
( default for scf, *relax, *md, neb, smd )
( default for scf, *relax, *md )
'file' : start from existing "charge-density.xml" file
( default, only possibility for nscf, bands )
@ -2063,10 +2169,6 @@ help ion_dynamics -helpfmt helpdoc -helptext {
<blockquote><pre>
Specify the type of ionic dynamics.
For constrained dynamics or constrained optimisations add the
CONSTRAINTS card (when the card is present the SHAKE algorithm is
automatically used).
For different type of calculation different possibilities are
allowed and different default values apply:
@ -2076,10 +2178,13 @@ CASE ( calculation = 'relax' )
for structural relaxation
'damp' : use damped (quick-min Verlet)
dynamics for structural relaxation
Can be used for constrained
optimisation: see CONSTRAINTS card
CASE ( calculation = 'md' )
'verlet' : (default) use Verlet algorithm to integrate
Newton's equation
Newton's equation. For constrained
dynamics, see CONSTRAINTS card
'langevin' ion dynamics is over-damped Langevin
CASE ( calculation = 'vc-relax' )
@ -2261,6 +2366,9 @@ help ion_temperature -helpfmt helpdoc -helptext {
'andersen' control ionic temperature using Andersen thermostat
see parameters "tempw" and "nraise"
'initial' initialize ion velocities to temperature "tempw"
and leave uncontrolled further on
'not_controlled' (default) ionic temperature is not controlled
</pre></blockquote>
</ul>
@ -2397,7 +2505,7 @@ help upscale -helpfmt helpdoc -helptext {
<li> <em>Variable: </em><big><b>upscale</b></big>
</li>
<br><li> <em>Type: </em>REAL</li>
<br><li> <em>Default: </em> 10.D0
<br><li> <em>Default: </em> 100.D0
</li>
<br><li> <em>Description:</em>
</li>
@ -2529,223 +2637,6 @@ Parameters used in line search based on the Wolfe conditions.
}
# ------------------------------------------------------------------------
help num_of_images -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>num_of_images</b></big>
</li>
<br><li> <em>Type: </em>INTEGER</li>
<br><li> <em>Default: </em> 0
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
Number of points used to discretize the path
(it must be larger than 3).
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help opt_scheme -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>opt_scheme</b></big>
</li>
<br><li> <em>Type: </em>CHARACTER</li>
<br><li> <em>Default: </em> 'quick-min'
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
Specify the type of optimization scheme:
'sd' : steepest descent
'broyden' : quasi-Newton Broyden's second method (suggested)
'broyden2' : another variant of the quasi-Newton Broyden's
second method to be tested and compared with the
previous one.
'quick-min' : an optimisation algorithm based on the
projected velocity Verlet scheme
'langevin' : finite temperature langevin dynamics of the
string (smd only). It is used to compute the
average path and the free-energy profile.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help CI_scheme -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>CI_scheme</b></big>
</li>
<br><li> <em>Type: </em>CHARACTER</li>
<br><li> <em>Default: </em> 'no-CI'
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
Specify the type of Climbing Image scheme:
'no-CI' : climbing image is not used
'auto' : original CI scheme. The image highest in energy
does not feel the effect of springs and is
allowed to climb along the path
'manual' : images that have to climb are manually selected.
See also CLIMBING_IMAGES card
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help first_last_opt -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>first_last_opt</b></big>
</li>
<br><li> <em>Type: </em>LOGICAL</li>
<br><li> <em>Default: </em> .FALSE.
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
Also the first and the last configurations are optimized
"on the fly" (these images do not feel the effect of the springs).
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help temp_req -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>temp_req</b></big>
</li>
<br><li> <em>Type: </em>REAL</li>
<br><li> <em>Default: </em> 0.D0 Kelvin
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
Temperature used for the langevin dynamics of the string.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help ds -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>ds</b></big>
</li>
<br><li> <em>Type: </em>REAL</li>
<br><li> <em>Default: </em> 1.D0
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
Optimisation step length ( Hartree atomic units ).
If opt_scheme="broyden", ds is used as a guess for the
diagonal part of the Jacobian matrix.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
grouphelp {k_max k_min} -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variables: </em><big><b>k_max, k_min</b></big>
</li>
<br><li> <em>Type: </em>REAL</li>
<br><li> <em>Default: </em> 0.1D0 Hartree atomic units
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
Set them to use a Variable Elastic Constants scheme
elastic constants are in the range [ k_min, k_max ]
this is useful to rise the resolution around the saddle point.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help path_thr -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>path_thr</b></big>
</li>
<br><li> <em>Type: </em>REAL</li>
<br><li> <em>Default: </em> 0.05D0 eV / Angstrom
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
The simulation stops when the error ( the norm of the force
orthogonal to the path in eV/A ) is less than path_thr.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help use_masses -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>use_masses</b></big>
</li>
<br><li> <em>Type: </em>LOGICAL</li>
<br><li> <em>Default: </em> .FALSE.
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
If. TRUE. the optimisation of the path is performed using
mass-weighted coordinates. Useful together with quick-min
optimization scheme, if some bonds are much stiffer than
others. By assigning a larger (fictitious) mass to atoms
with stiff bonds, one may use a longer time step "ds"
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help use_freezing -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>use_freezing</b></big>
</li>
<br><li> <em>Type: </em>LOGICAL</li>
<br><li> <em>Default: </em> .FALSE.
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
If. TRUE. the images are optimised according to their error:
only those images with an error larger than half of the largest
are optimised. The other images are kept frozen.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help cell_dynamics -helpfmt helpdoc -helptext {
<ul>
@ -2880,103 +2771,7 @@ xy = only the x and y axis are moved, angles are unchanged
xz = only the x and z axis are moved, angles are unchanged
yz = only the y and z axis are moved, angles are unchanged
xyz = x, y and z axis are moved, angles are unchanged
xyt = x1, x2, y2 (i.e. lower xy triangle of the 2 vectors)
xys = x1, y1, x2, y2 (i.e. xy square of the 2 vectors)
xyzt = x1, x2, y2, x3, y3, z3 (i.e. lower xyz triangle of
the 3 vectors)
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help ecutcoarse -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>ecutcoarse</b></big>
</li>
<br><li> <em>Type: </em>REAL</li>
<br><li> <em>Default: </em> 100
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
kinetic energy cutoff defining the grid used for
the open boundary correction.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help mixing_charge_compensation -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>mixing_charge_compensation</b></big>
</li>
<br><li> <em>Type: </em>REAL</li>
<br><li> <em>Default: </em> 1.0
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
scf mixing parameter for the correcting potential.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help n_charge_compensation -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>n_charge_compensation</b></big>
</li>
<br><li> <em>Type: </em>INTEGER</li>
<br><li> <em>Default: </em> 5
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
the correcting potential is updated (mixed) every
n_charge_compensation iteration only.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help comp_thr -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>comp_thr</b></big>
</li>
<br><li> <em>Type: </em>REAL</li>
<br><li> <em>Default: </em> 1.d-4
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
inclusion of dcc correction begins when scf convergence
is better than comp_thr.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help nlev -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variable: </em><big><b>nlev</b></big>
</li>
<br><li> <em>Type: </em>INTEGER</li>
<br><li> <em>Default: </em> 4
</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
number of depth levels used by the multigrid solver.
shape = all axis and angles, keeping the volume fixed
</pre></blockquote>
</ul>
@ -2991,7 +2786,10 @@ help atomic_species -helpfmt helpdoc -helptext {
<br><li> <em>Type: </em>CHARACTER</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre> label of the atom
<blockquote><pre>
label of the atom. Acceptable syntax:
chemical symbol X (1 or 2 characters, case-insensitive)
or "Xn", n=0,..., 9; "X_*", "X-*" (e.g. C1, As_h)
</pre></blockquote>
</ul><ul>
<li> <em>Variable: </em><big><b>Mass_X</b></big>
@ -3094,7 +2892,7 @@ NOTE: each atomic coordinate can also be specified as a simple algebrical expres
<blockquote><pre>
component i of the force for this atom is multiplied by if_pos(i),
which must be either 0 or 1. Used to keep selected atoms and/or
selected components fixed in neb, smd, MD dynamics or
selected components fixed in MD dynamics or
structural optimization run.
</pre></blockquote>
</ul>
@ -3102,13 +2900,6 @@ structural optimization run.
}
# ------------------------------------------------------------------------
help atomic_coordinates_last_image -helpfmt helpdoc -helptext {
}
# ------------------------------------------------------------------------
help K_POINTS_flags -helpfmt helpdoc -helptext {
<h2>Description of K_POINTS card's flags</h2><pre>
@ -3256,25 +3047,6 @@ In alat units if celldm(1) was specified or in a.u. otherwise.
}
# ------------------------------------------------------------------------
help climbing_images_list -helpfmt helpdoc -helptext {
<ul>
<li> <em>Variables: </em><big><b> index1, index2, ... indexN
</b></big>
</li>
<br><li> <em>Type: </em>INTEGER</li>
<br><li> <em>Description:</em>
</li>
<blockquote><pre>
index1, index2, ..., indexN are indices of the images to which the
Climbing-Image procedure apply. If more than one image is specified
they must be separated by a comma.
</pre></blockquote>
</ul>
}
# ------------------------------------------------------------------------
help nconstr -helpfmt helpdoc -helptext {
<ul>

View File

@ -32,8 +32,6 @@ module PW -title "PWSCF GUI: module PW.x" -script {
"Ionic relaxation with Variable-Cell <vc-relax>"
"Molecular dynamics <md>"
"Molecular dynamics with Variable-Cell <vc-md>"
"Nudged Elastic Band <neb>"
"String Method Dynamics <smd>"
}
-value {
'scf'
@ -43,8 +41,6 @@ module PW -title "PWSCF GUI: module PW.x" -script {
'vc-relax'
'md'
'vc-md'
'neb'
'smd'
}
-default "Self-Consistent-Field <scf>"
}
@ -108,7 +104,7 @@ module PW -title "PWSCF GUI: module PW.x" -script {
high default low minimal none
}
-value {
'high' 'default' 'low' 'minimal' 'none'
'high' 'default' 'low' 'none'
}
-widget optionmenu
}
@ -358,6 +354,13 @@ module PW -title "PWSCF GUI: module PW.x" -script {
-value { .true. .false. }
}
var no_t_rev {
-label "Disable the symmetry operations that require time reversal (no_t_rev):"
-widget radiobox
-textvalue { Yes No }
-value { .true. .false. }
}
var force_symmorphic {
-label "Force the symmetry group to be symmorphic (force_symmorphic):"
-widget radiobox
@ -393,6 +396,22 @@ module PW -title "PWSCF GUI: module PW.x" -script {
}
}
var one_atom_occupations {
-text "For isolated atoms only (nat=1)"
-label "Order the wavefunctions as the atomic starting wavefunctions (one_atom_occupations):"
-widget radiobox
-textvalue { Yes No }
-value { .true. .false. }
}
var starting_spin_angle {
-text "For spin-orbit case when domag=.TRUE."
-label "Multiply the initial radial wavefunctions by spin-angle functions (starting_spin_angle):"
-widget radiobox
-textvalue { Yes No }
-value { .true. .false. }
}
var degauss {
-label "Gaussian spreading for BZ integration \[in Ry\] (degauss):"
-validate fortrannonnegreal
@ -419,8 +438,8 @@ module PW -title "PWSCF GUI: module PW.x" -script {
var nspin {
-label "Perform spin-polarized calculation (nspin):"
-textvalue {No Yes}
-value {1 2}
-textvalue {No Yes "Yes noncollinear"}
-value {1 2 4}
-widget radiobox
}
@ -608,7 +627,7 @@ module PW -title "PWSCF GUI: module PW.x" -script {
-textvalue {
"Makov-Payne <makov-payne>"
"Martyna-Tuckerman <martyna-tuckerman>"
"Density CounterCharge <dcc>"
"Density Counter Charge <dcc>"
"No correction <none>"
}
-value {'makov-payne' 'martyna-tuckerman' 'dcc' 'none'}
@ -737,7 +756,7 @@ module PW -title "PWSCF GUI: module PW.x" -script {
}
-widget optionmenu
}
var diago_thr_init {
-label "Convergence threshold for 1st iterative diagonalization (diago_thr_init):"
-validate fortranreal
@ -789,6 +808,14 @@ module PW -title "PWSCF GUI: module PW.x" -script {
-textvalue { Yes No }
-value { .true. .false. }
}
separator -label "--- Obsolete variables ---"
var ortho_para {
-text "OBSOLETE: use command-line option \" -ndiag XX\" instead"
-label "(ortho_para):"
-validate integer
}
}
}
}
@ -895,6 +922,7 @@ module PW -title "PWSCF GUI: module PW.x" -script {
"reduce ionic temperature via delta_t&nraise <reduce-T>"
"\"soft\" Berendsen velocity rescaling via tempw&nraise <berendsen>"
"use Andersen thermostat via tempw&nraise <andersen>"
"initialize to temperature \"tempw\" and leave uncontrolled <initial>"
"not controlled <not_controlled>"
}
-value {
@ -904,6 +932,7 @@ module PW -title "PWSCF GUI: module PW.x" -script {
'reduce-T'
'berendsen'
'andersen'
'initial'
'not_controlled'
}
}
@ -928,13 +957,6 @@ module PW -title "PWSCF GUI: module PW.x" -script {
-validate integer
}
#var monitor_constr {
# -label "Only monitor (not impose) constraints (monitor_constr):"
# -widget radiobox
# -textvalue { Yes No }
# -value { .true. .false. }
#}
var refold_pos {
-label "Refolded ions at each step into the supercell (refold_pos):"
-widget radiobox
@ -978,111 +1000,7 @@ module PW -title "PWSCF GUI: module PW.x" -script {
var w_1 -label "w_1:" -validate fortranreal
var w_2 -label "w_2:" -validate fortranreal
}
}
separator -label "--- Nudget Elastic Band (NEB) and String Method Dynamics (SMD) ---"
group path {
var num_of_images {
-label "Number of images used to discretize the path (num_of_images):"
-widget spinint
-validate posint
}
var first_last_opt {
-label "Optimize also the first and the last configurations (first_last_opt):"
-textvalue { Yes No }
-value { .TRUE. .FALSE. }
-widget radiobox
}
var opt_scheme {
-label "Type of optimization scheme (opt_scheme):"
-value {
'quick-min'
'broyden'
'broyden2'
'sd'
'langevin'
}
-textvalue {
"optimization algorithm based on molecular dynamics <quick-min>"
"Broyden method <broyden>"
"Alternate Broyden method <broyden2>"
"steepest descent <sd>"
"finite temperature langevin dynamics <langevin>"
}
-widget optionmenu
}
#var damp {
# -label "Damping coefficent for damped-dyn (damp):"
# -validate fortranreal
#}
var temp_req {
-label "Temperature used for langevin dynamics of the string (temp_req):"
-validate fortranposreal
}
var ds {
-label "Optimization step length (ds):"
-validate fortranposreal
}
var path_thr {
-label "Convergence threshold for path optimization (path_thr):"
-validate fortranposreal
}
var use_freezing {
-label "Only the images with larger errors are optimised (use_freezing):"
-textvalue { Yes No }
-value { .TRUE. .FALSE. }
-widget radiobox
}
var use_masses {
-label "The optimisation is done with mass-weighted coordinates (use_masses):"
-textvalue { Yes No }
-value { .TRUE. .FALSE. }
-widget radiobox
}
#var write_save {
# -label "Write a prefix.save file for each image (write_save):"
# -textvalue { Yes No }
# -value { .TRUE. .FALSE. }
# -widget radiobox
#}
}
group neb {
var CI_scheme {
-label "Type of Climbing Image (CI) scheme (CI_scheme):"
-textvalue {
"do not use climbing image <no-CI>"
"image highest in energy is allowed to climb <auto>"
"climbing images are manually selected <manual>"
}
-value {
'no-CI'
'auto'
'manual'
}
-widget optionmenu
}
group elastic_constants -name "Elastic Constants for NEB spring:" -decor normal {
packwidgets left
var k_max -label "k_max:" -validate fortranposreal
var k_min -label "k_min:" -validate fortranposreal
}
}
}
}
}
}
@ -1144,7 +1062,6 @@ module PW -title "PWSCF GUI: module PW.x" -script {
-label "Which of the cell parameters should be moved (cell_dofree):"
-textvalue {
"all = all axis and angles are propagated"
"volume = the cell is simply rescaled, without changing the shape"
"x = only the x axis is moved"
"y = only the y axis is moved"
"z = only the z axis is moved"
@ -1152,54 +1069,16 @@ module PW -title "PWSCF GUI: module PW.x" -script {
"xz = only the x and z axis are moved, angles are unchanged"
"yz = only the y and z axis are moved, angles are unchanged"
"xyz = x, y and z axis are moved, angles are unchanged"
"xyt = x1, x2, y2 (i.e. lower xy triangle of the 2 vectors)"
"xys = x1, y1, x2, y2 (i.e. xy square of the 2 vectors)"
"xyzt = x1, x2, y2, x3, y3, z3 (i.e. lower xyz triangle of the 3 vectors)"
"shape = all axis and angles, keeping the volume fixed"
}
-value {
'all' 'volume' 'x' 'y' 'z' 'xy' 'xz' 'yz' 'xyz' 'xyt' 'xys' 'xyzt'
'all' 'x' 'y' 'z' 'xy' 'xz' 'yz' 'xyz' 'shape'
}
-widget optionmenu
}
}
}
########################################################################
## ##
## &EE NAMELIST ##
## ##
########################################################################
page eePage -name "EE" {
namelist ee -name "EE" {
var ecutcoarse {
-validate fortranposreal
-label "Kinetic energy cutoff for the open boundary (ecutcoarse):"
}
var mixing_charge_compensation {
-validate fortranreal
-label "Scf mixing parameter for the correcting potential (mixing_charge_compensation):"
}
var n_charge_compensation {
-validate posint
-label "Iteration interval for updating the correcting potential (n_charge_compensation):"
}
var comp_thr {
-validate fortranposreal
-label "Scf convergence treshold for starting the dcc correction (comp_thr):"
}
var nlev {
-validate posint
-label "Number of depth levels used by the multigrid solver (nlev):"
}
}
}
########################################################################
## ##
@ -1264,17 +1143,6 @@ module PW -title "PWSCF GUI: module PW.x" -script {
}
}
scriptvar old_path_inter_nimages
auxilvar path_inter_nimages {
-label "Number of intermediate images:"
-widget spinint
-validate nonnegint
-default 0
}
# first_image
keyword first_image first_image\n; # only for calculation == 'neb' || 'smd'
table atomic_coordinates {
-caption "Enter atomic coordinates:"
-head {Atomic-label X-Coordinate Y-Coordinate Z-Coordinate if_pos(1) if_pos(2) if_pos(3)}
@ -1291,46 +1159,7 @@ module PW -title "PWSCF GUI: module PW.x" -script {
loaddata atomic_coordinates ::pwscf::pwLoadAtomCoor \
"Load atomic coordinates from file ..."
# intermediate_image
# BEWARE: it is assumed that 50 intermediate images is the
# largest allowed number (this is dirty)
for {set i 1} {$i <= 50} {incr i} {
keyword intermediate_image_$i intermediate_image\n
table atomic_coordinates_${i}_inter [subst {
-caption "Enter atomic coordinates for INTERMEDIATE image \#.$i:"
-head {Atomic-label X-Coordinate Y-Coordinate Z-Coordinate}
-validate {string fortranreal fortranreal fortranreal}
-cols 4
-rows 1
-outfmt {" %3s" " %14.9f" %14.9f %14.9f}
-widgets {entry entry entry entry}
-onvalues 1
-offvalues 0
}]
loaddata atomic_coordinates_${i}_inter [list ::pwscf::pwLoadAtomCoorInter $i] \
"Load atomic coordinates from file ..."
}
# last_image
keyword last_image last_image\n
table atomic_coordinates_last_image {
-caption "Enter atomic coordinates for LAST image:"
-head {Atomic-label X-Coordinate Y-Coordinate Z-Coordinate}
-validate {string fortranreal fortranreal fortranreal}
-cols 4
-rows 1
-outfmt {" %3s" " %14.9f" %14.9f %14.9f}
-widgets {entry entry entry entry}
-onvalues 1
-offvalues 0
}
loaddata atomic_coordinates_last_image ::pwscf::pwLoadAtomCoorLast \
"Load atomic coordinates from file ..."
}
}
########################################################################
@ -1398,23 +1227,11 @@ module PW -title "PWSCF GUI: module PW.x" -script {
########################################################################
## ##
## PAGE: CLIMBING_IMAGES & CONSTRAINTS & OCCUPATIONS ##
## PAGE: CONSTRAINTS & OCCUPATIONS ##
## ##
########################################################################
page otherPage -name "Other Cards" {
# CARD: CLIMBING_IMAGES
group climbing_images -name "Card: CLIMBING_IMAGES" -decor normal {
keyword climbing_images_key CLIMBING_IMAGES\n
line climbing_images_line -decor none {
var climbing_images_list {
-label "List of climbing images, separated by a comma:"
-infmt %S
}
}
}
# CARD: CONSTRAINTS
group constraints_group -name "Card: CONSTRAINTS" -decor normal {
@ -1455,80 +1272,8 @@ module PW -title "PWSCF GUI: module PW.x" -script {
-outfmt {" %s " %S}
-infmt {%d %S}
}
#scriptvar old_nconstr
#for {set i 1} {$i <= 50} {incr i} {
# line constraint.$i -decor none [subst {
# var constraint_type.$i {
# -label "Type of constraint:"
# -widget optionmenu
# -value {
# 'type_coord'
# 'atom_coord'
# 'distance'
# 'planar_angle'
# 'torsional_angle'
# 'bennett_proj'
# }
# }
#
# packwidgets left
# var constr.${i}_1 -label "constr(1,$i):" -validate fortranreal
# var constr.${i}_2 -label "constr(2,$i):" -validate fortranreal
# var constr.${i}_3 -label "constr(3,$i):" -validate fortranreal
# var constr.${i}_4 -label "constr(4,$i):" -validate fortranreal
#
# packwidgets bottom
# var constr_target_$i {
# -label "Target for the constrain:"
# -validate fortranreal
# }
# }]
#}
}
}
# # CARD: COLLECTIVE_VARS
#
# group collective_vars_group -name "Card: COLLECTIVE_VARS" -decor normal {
#
# auxilvar collective_vars_enable {
# -label "Use collective variables:"
# -value {Yes No}
# -widget radiobox
# -default No
# }
#
# group collective_vars_card -decor none {
#
# keyword collective_vars COLLECTIVE_VARS\n
#
# line collective_vars_line1 -decor none {
# var ncolvar {
# -label "Number of collective variables:"
# -validate posint
# -widget spinint
# -default 1
# -outfmt " %d "
# }
# var colvar_tol {
# -label "Tolerance for keeping the collective variables satisfied:"
# -validate fortranposreal
# }
# }
#
# table collective_vars_table {
# -caption "Enter data for collective variables:\n colvar-type colvar(1,.) colvar(2,.) ... \n\n(see the definition of constr in the CONSTRAINTS card.)"
# -head {colvar-type colvar-specifications ... ... ... ...}
# -validate {string fortranreal}
# -cols 6
# -rows 1
# -optionalcols 3
# -widgets {{optionmenu {'type_coord' 'atom_coord' 'distance' 'planar_angle' 'torsional_angle' 'bennett_proj'}} entry}
# -outfmt {" %s " %S}
# -infmt {%d %S}
# }
# }
# }
# CARD: OCCUPATIONS