diff --git a/CPV/Doc/Makefile b/CPV/Doc/Makefile
index 93cb6cbf06..5be81254ee 100644
--- a/CPV/Doc/Makefile
+++ b/CPV/Doc/Makefile
@@ -1,4 +1,4 @@
-VERSION = 6.7
+VERSION := $(shell awk -F\' '/version_number/{print $$2}' ../../include/qe_version.h )
HELPDOC = ../../dev-tools/helpdoc -version $(VERSION)
LATEX = pdflatex
LATEX2HTML = latex2html
diff --git a/CPV/src/exx_module.f90 b/CPV/src/exx_module.f90
index c38f92d55e..6f3c73be14 100644
--- a/CPV/src/exx_module.f90
+++ b/CPV/src/exx_module.f90
@@ -285,10 +285,10 @@ SUBROUTINE exx_initialize()
& The exx_me_rcut_self should be set smaller than half the minimum cell length',1)
!
IF(fftx_ntgrp(dffts).GT.1) CALL errore('exx_module','EXX calculation error : &
- & taskgroup (-ntg) > 1 needed for zeta>1 calculations currently broken and will&
- & be fixed in an up-coming major update. Please contact Robert A. DiStasio Jr.&
+ & taskgroup (-ntg) > 1 needed for zeta>1 calculations currently unavailable and will&
+ & become available in the next major update. Please contact Robert A. DiStasio Jr.&
& (distasio@cornell.edu) if you should need assistance reverting to an earlier&
- & version with working taskgroup supoprt.',1)
+ & version with working taskgroup support.',1)
!
IF(nproc_image.GE.nbsp) THEN
!
diff --git a/FFTXlib/fft_helper_subroutines.f90 b/FFTXlib/fft_helper_subroutines.f90
index bff301728d..75a171d7aa 100644
--- a/FFTXlib/fft_helper_subroutines.f90
+++ b/FFTXlib/fft_helper_subroutines.f90
@@ -16,6 +16,12 @@ MODULE fft_helper_subroutines
& tg_reduce_rho_5
END INTERFACE
+ INTERFACE c2psi_gamma
+ MODULE PROCEDURE c2psi_gamma_cpu
+#ifdef __CUDA
+ MODULE PROCEDURE c2psi_gamma_gpu
+#endif
+ END INTERFACE
PRIVATE
PUBLIC :: fftx_threed2oned, fftx_oned2threed
PUBLIC :: tg_reduce_rho
@@ -293,7 +299,7 @@ SUBROUTINE fftx_add_field( r, f, desc )
END SUBROUTINE
- SUBROUTINE c2psi_gamma( desc, psi, c, ca )
+ SUBROUTINE c2psi_gamma_cpu( desc, psi, c, ca )
!
! Copy wave-functions from 1D array (c_bgrp) to 3D array (psi) in Fourier space
!
@@ -326,6 +332,48 @@ SUBROUTINE c2psi_gamma( desc, psi, c, ca )
END IF
END SUBROUTINE
+#ifdef __CUDA
+ SUBROUTINE c2psi_gamma_gpu( desc, psi, c, ca )
+ !
+ ! Copy wave-functions from 1D array (c_bgrp) to 3D array (psi) in Fourier space,
+ ! GPU implementation.
+ !
+ USE fft_param
+ USE fft_types, ONLY : fft_type_descriptor
+ TYPE(fft_type_descriptor), INTENT(in) :: desc
+ complex(DP), DEVICE, INTENT(OUT) :: psi(:)
+ complex(DP), DEVICE, INTENT(IN) :: c(:)
+ complex(DP), DEVICE, OPTIONAL, INTENT(IN) :: ca(:)
+ complex(DP), parameter :: ci=(0.0d0,1.0d0)
+ integer :: ig
+ integer, device, pointer :: nlm_d(:), nl_d(:)
+
+ nlm_d => desc%nlm_d
+ nl_d => desc%nl_d
+ !
+ psi = 0.0d0
+ !
+ ! nlm and nl array: hold conversion indices form 3D to
+ ! 1-D vectors. Columns along the z-direction are stored
+ ! contigiously
+ ! c array: stores the Fourier expansion coefficients
+ ! Loop for all local g-vectors (ngw)
+ IF( PRESENT(ca) ) THEN
+ !$cuf kernel do (1)
+ do ig = 1, desc%ngw
+ psi( nlm_d( ig ) ) = CONJG( c( ig ) ) + ci * conjg( ca( ig ))
+ psi( nl_d( ig ) ) = c( ig ) + ci * ca( ig )
+ end do
+ ELSE
+ !$cuf kernel do (1)
+ do ig = 1, desc%ngw
+ psi( nlm_d( ig ) ) = CONJG( c( ig ) )
+ psi( nl_d( ig ) ) = c( ig )
+ end do
+ END IF
+ END SUBROUTINE
+#endif
+
SUBROUTINE c2psi_k( desc, psi, c, igk, ngk)
!
! Copy wave-functions from 1D array (c/evc) ordered according (k+G) index igk
diff --git a/GUI/PWgui/NEWS b/GUI/PWgui/NEWS
index b24874980b..da2eab3dff 100644
--- a/GUI/PWgui/NEWS
+++ b/GUI/PWgui/NEWS
@@ -1,7 +1,10 @@
+Version: 6.7
+ * hp.x module added
+
Version: 6.2
* d3.x module disabled
-Version: 5.0svn
+Version: 5.0
* adding bands.x and dos.x modules
* note the syntax change for projwfc.x, bands.x, and dos.x,
where the &INPUTPP namelist was changed to &PROJWFC, &BANDS,
diff --git a/GUI/PWgui/README b/GUI/PWgui/README
index 950d97e855..03bac93f73 100644
--- a/GUI/PWgui/README
+++ b/GUI/PWgui/README
@@ -44,6 +44,7 @@ Currently, the following PWscf programs (modules) are supported:
* bands.x
* dos.x
* ld1.x (atomic)
+ * hp.x
Directory structure of the PWgui source package:
@@ -106,4 +107,4 @@ following:
--
-Anton Kokalj (tone.kokalj@ijs.si), Mon Jan 23 12:28:40 CET 2012
+Anton Kokalj (tone.kokalj@ijs.si), 29 Nov 2020
diff --git a/GUI/PWgui/VERSION b/GUI/PWgui/VERSION
index 4074fe2027..341291e535 100644
--- a/GUI/PWgui/VERSION
+++ b/GUI/PWgui/VERSION
@@ -1 +1 @@
-6.6
+6.7
diff --git a/GUI/PWgui/doc/pwdocs/Makefile b/GUI/PWgui/doc/pwdocs/Makefile
index 9127c9b33d..7157715d39 100644
--- a/GUI/PWgui/doc/pwdocs/Makefile
+++ b/GUI/PWgui/doc/pwdocs/Makefile
@@ -9,7 +9,8 @@ INPUT_FILES_HTML = \
INPUT_PROJWFC.html \
INPUT_BANDS.html \
INPUT_DOS.html \
- INPUT_LD1.html
+ INPUT_LD1.html \
+ INPUT_HP.html
INPUT_FILES_TXT = $(INPUT_FILES_HTML:.html=.txt)
LINK_FILES = $(INPUT_FILES_TXT)
@@ -39,6 +40,7 @@ input_html: links
./htmlise.sh INPUT_BANDS.txt > INPUT_BANDS.html
./htmlise.sh INPUT_DOS.txt > INPUT_DOS.html
./htmlise.sh INPUT_LD1.txt > INPUT_LD1.html
+ ./htmlise.sh INPUT_HP.txt > INPUT_HP.html
make_user_guide: links
rm -rf user_guide/
diff --git a/GUI/PWgui/images/pwgui-logo.gif b/GUI/PWgui/images/pwgui-logo.gif
index 7a4902d4d8..3266397000 100644
Binary files a/GUI/PWgui/images/pwgui-logo.gif and b/GUI/PWgui/images/pwgui-logo.gif differ
diff --git a/GUI/PWgui/images/pwgui-logo.xcf.bz2 b/GUI/PWgui/images/pwgui-logo.xcf.bz2
index bb414cdca6..6dd5888bc8 100644
Binary files a/GUI/PWgui/images/pwgui-logo.xcf.bz2 and b/GUI/PWgui/images/pwgui-logo.xcf.bz2 differ
diff --git a/GUI/PWgui/modules/atomic/atomic-help.tcl b/GUI/PWgui/modules/atomic/atomic-help.tcl
index 3bac82c445..8a825f669a 100644
--- a/GUI/PWgui/modules/atomic/atomic-help.tcl
+++ b/GUI/PWgui/modules/atomic/atomic-help.tcl
@@ -354,7 +354,7 @@ help lsd -helpfmt helpdoc -helptext {
1 ... spin-polarized calculation
BEWARE:
-not allowed if iswitch=3 (PP generation) or with full
+not allowed if "iswitch"=3 (PP generation) or with full
relativistic calculation
@@ -525,7 +525,7 @@ help verbosity -helpfmt helpdoc -helptext {
'low' or 'high'
-if 'high' with iswitch=2,3 prints separately core and
+if 'high' with "iswitch"=2,3 prints separately core and
valence contributions to the energies. Print the
frozen-core energy.
@@ -777,12 +777,12 @@ help pseudotype -helpfmt helpdoc -helptext {
1 ... norm-conserving, single-projector PP
- IMPORTANT: if pseudotype=1 all calculations are done
+ IMPORTANT: if pseudotype=1 all calculations are done
using the SEMILOCAL form, not the separable nonlocal form
2 ... norm-conserving PP in separable form (obsolescent)
All calculations are done using SEPARABLE non-local form
- IMPORTANT: multiple projectors allowed but not properly
+ IMPORTANT: multiple projectors allowed but not properly
implemented, use only if you know what you are doing
3 ... ultrasoft PP or PAW
@@ -1423,7 +1423,7 @@ help nconf -helpfmt helpdoc -helptext {
Description:
- the number of configurations to be tested. For iswitch = 4 nconf=2
+ the number of configurations to be tested. For "iswitch"=4 nconf=2
@@ -1438,7 +1438,7 @@ help file_pseudo -helpfmt helpdoc -helptext {
Type: CHARACTER
Default: ' '
-
Status: ignored if iswitch=3
+
Status: ignored if "iswitch"=3
Description:
@@ -1453,7 +1453,7 @@ the old RRKJ format is first tried;
* otherwise, the old NC format is read.
-IMPORTANT: in the latter case, all calculations are done
+IMPORTANT: in the latter case, all calculations are done
using the SEMILOCAL form, not the separable nonlocal form.
Use the UPF format if you want to test the separable form!
@@ -1515,9 +1515,10 @@ help configts -helpfmt helpdoc -helptext {
Description:
-A string containing the test valence electronic
-configuration nc, nc=1,nconf. Same syntax as for "config".
-If configts(i) is not set, the electron configuration
+A string array containing the test electronic configuration.
+"configts"(nc), nc=1,"nconf", has the same syntax as for "config"
+but only VALENCE states must be included.
+If "configts"(i) is not set, the electron configuration
is read from the cards following the namelist.
@@ -1581,7 +1582,7 @@ help rcutv -helpfmt helpdoc -helptext {
Cutoff distance (CUT) for the inclusion of LDA-1/2 potential.
- Needed (mandatory) only if iswitch = 4
+Needed (mandatory) only if "iswitch" = 4
diff --git a/GUI/PWgui/modules/dos/dos.tcl b/GUI/PWgui/modules/dos/dos.tcl
index ce7c7cf3cd..b8046103fa 100644
--- a/GUI/PWgui/modules/dos/dos.tcl
+++ b/GUI/PWgui/modules/dos/dos.tcl
@@ -7,7 +7,7 @@ module Dos\#auto -title "PWSCF GUI: module Dos.x" -script {
namelist dos -name "DOS" {
optional {
var prefix {
- -label "Prefix of punch file saved by program PW.X (prefix):"
+ -label "Prefix of outdir files saved by program PW.X (prefix):"
-fmt %S -validate string
}
diff --git a/GUI/PWgui/modules/hp/commands.tcl b/GUI/PWgui/modules/hp/commands.tcl
new file mode 100644
index 0000000000..aaf6276e82
--- /dev/null
+++ b/GUI/PWgui/modules/hp/commands.tcl
@@ -0,0 +1,13 @@
+# ------------------------------------------------------------------------
+#
+# ------------------------------------------------------------------------
+proc ::pwscf::hpReadFilter {moduleObj channel} {
+
+ # hp.x formatted input file should have the &INPUTHP namelist
+
+ set status [::pwscf::readFilter::findNamelists $moduleObj $channel INPUTHP errMsg]
+ if { $status == 0 } {
+ $moduleObj readFileWrongFormat hp.x $errMsg
+ }
+ return [readFilter::default $moduleObj $channel {logical {ntyp {skip_type equiv_type perturb_only_atom}}}]
+}
diff --git a/GUI/PWgui/modules/hp/hp-event.tcl b/GUI/PWgui/modules/hp/hp-event.tcl
new file mode 100644
index 0000000000..a50ae061d9
--- /dev/null
+++ b/GUI/PWgui/modules/hp/hp-event.tcl
@@ -0,0 +1,31 @@
+tracevar ntyp w {
+ set ntyp [varvalue ntyp]
+ foreach w {skip_type equiv_type perturb_only_atom} {
+ widgetconfigure $w -end $ntyp
+ }
+}
+
+tracevar only_q w {
+ if { [vartextvalue only_q] == "Yes" } {
+ groupwidget start_last_q enable
+ widget sum_pertq enable
+ } else {
+ groupwidget start_last_q disable
+ widget sum_pertq disable
+ }
+}
+
+tracevar start_q w {
+ if { [varvalue start_q] != "" } {
+ varset only_q -value .true.
+ groupwidget start_last_q enable
+ widget sum_pertq enable
+ }
+}
+tracevar last_q w {
+ if { [varvalue last_q] != "" } {
+ varset only_q -value .true.
+ groupwidget start_last_q enable
+ widget sum_pertq enable
+ }
+}
diff --git a/GUI/PWgui/modules/hp/hp-help.tcl b/GUI/PWgui/modules/hp/hp-help.tcl
new file mode 100644
index 0000000000..6165b13db1
--- /dev/null
+++ b/GUI/PWgui/modules/hp/hp-help.tcl
@@ -0,0 +1,551 @@
+
+#
+# Help-file automatically created by helpdoc utility
+#
+# !!! DO NOT EDIT: CHANGES WILL BE LOST !!!
+#
+
+
+# ------------------------------------------------------------------------
+help prefix -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help outdir -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help iverbosity -helpfmt helpdoc -helptext {
+
+- Variable: iverbosity
+
+
- Type: INTEGER
+
- Default: 1
+
+
- Description:
+
+
+= 1 : minimal output
+= 2 : as above + symmetry matrices, final response
+ matrices chi0 and chi1 and their inverse matrices,
+ full U matrix
+= 3 : as above + various detailed info about the NSCF
+ calculation at k and k+q
+= 4 : as above + response occupation matrices at every
+ iteration and for every q point in the star
+
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help max_seconds -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+grouphelp {nq1 nq2 nq3} -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help skip_equivalence_q -helpfmt helpdoc -helptext {
+
+- Variable: skip_equivalence_q
+
+
- Type: LOGICAL
+
- Default: .false.
+
+
- Description:
+
+
+If .true. then the HP code will skip the equivalence
+analysis of q points, and thus the full grid of q points
+will be used. Otherwise the symmetry is used to determine
+equivalent q points (star of q), and then perform
+calculations only for inequivalent q points.
+
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help determine_num_pert_only -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help find_atpert -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help docc_thr -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help skip_type -helpfmt helpdoc -helptext {
+
+- Variables: skip_type(i), i=1,ntyp
+
+
- Type: LOGICAL
+
- Default: skip_type(i) = .false.
+
+
- See: equiv_type
+
+
- Description:
+
+
+"skip_type"(i), where i runs over types of atoms.
+If "skip_type"(i)=.true. then no linear-response
+calculation will be performed for the i-th atomic type:
+in this case "equiv_type"(i) must be specified, otherwise
+the HP code will stop. This option is useful if the
+system has atoms of the same type but opposite spin
+pollarizations (anti-ferromagnetic case).
+This keyword cannot be used when "find_atpert" = 1.
+
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help equiv_type -helpfmt helpdoc -helptext {
+
+- Variables: equiv_type(i), i=1,ntyp
+
+
- Type: INTEGER
+
- Default: equiv_type(i) = 0
+
+
- See: skip_type
+
+
- Description:
+
+
+"equiv_type"(i), where i runs over types of atoms.
+"equiv_type"(i)=j, will make type i equivalent to type j
+(useful when nspin=2). Such a merging of types is done
+only at the post-processing stage.
+This keyword cannot be used when "find_atpert" = 1.
+
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help perturb_only_atom -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help start_q -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help last_q -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help sum_pertq -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help compute_hp -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help conv_thr_chi -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help thresh_init -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help ethr_nscf -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help niter_max -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help nmix -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help num_neigh -helpfmt helpdoc -helptext {
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help lmin -helpfmt helpdoc -helptext {
+
+- Variable: lmin
+
+
- Type: INTEGER
+
- Default: 2
+
+
- Description:
+
+
+Minimum value of the orbital quantum number of the Hubbard
+atoms starting from which (and up to the maximum l in the
+system) Hubbard V will be written to the file parameters.out.
+"lmin" refers to the orbital quantum number of the atom
+corresponding to the first site-index in Hubbard_V(:,:,:).
+This keyword is used only when lda_plus_u_kind = 2 and only
+in the post-processing stage. Example: "lmin"=1 corresponds to
+writing to file V between e.g. oxygen (with p states) and its
+neighbors, and including V between transition metals (with d
+states) and their neighbors. Instead, when "lmin"=2 only the
+latter will be written to parameters.out.
+
+
+
+}
+
+
+# ------------------------------------------------------------------------
+help rmax -helpfmt helpdoc -helptext {
+
+
+}
+
diff --git a/GUI/PWgui/modules/hp/hp.tcl b/GUI/PWgui/modules/hp/hp.tcl
new file mode 100644
index 0000000000..9e775bf2bc
--- /dev/null
+++ b/GUI/PWgui/modules/hp/hp.tcl
@@ -0,0 +1,205 @@
+source commands.tcl
+
+module HP\#auto -title "PWSCF GUI: module HP.x" -script {
+
+ readfilter ::pwscf::hpReadFilter
+
+ #
+ # Namelist: INPUTHP
+ #
+
+ namelist inputhp -name "INPUTHP" {
+
+ separator -label "--- Control specs ---"
+
+ var prefix {
+ -label "Prefix of outdir files saved by program PW.X (prefix):"
+ -fmt %S -validate string
+ }
+
+ var outdir {
+ -label "Outdir directory where PW.X files resides (outdir):"
+ -widget entrydirselectquote
+ -fmt %S -validate string
+ }
+
+ var iverbosity {
+ -label "Verbosity (iverbosity):"
+ -textvalue { "1 = low" "2 = medium" "3 = high" "4 = highest" }
+ -value { 1 2 3 4 }
+ -validate int
+ -widget optionmenu
+ }
+
+ var max_seconds {
+ -label "Maximum CPU time \[in seconds\] (max_seconds):"
+ -validate posint
+ }
+
+ separator -label "--- Q-points ---"
+
+ group q_points {
+ packwidgets left
+ var nq1 -label "nq1:" -widget spinint -validate posint
+ var nq2 -label "nq2:" -widget spinint -validate posint
+ var nq3 -label "nq3:" -widget spinint -validate posint
+ }
+
+ var skip_equivalence_q {
+ -label "Skip the equivalence analysis of q points (skip_equivalence_q):"
+ -widget radiobox
+ -textvalue { Yes No }
+ -value { .true. .false. }
+ }
+
+
+ group qp -decor normal {
+ auxilvar only_q {
+ -label "Computes only the q points from start_q to last_q:"
+ -widget radiobox
+ -textvalue { Yes No }
+ -value { .true. .false. }
+ }
+ group start_last_q {
+ packwidgets left
+ var start_q {
+ -label "First q-point (start_q):"
+ -validate int
+ }
+ var last_q {
+ -label "Last q-point (last_q):"
+ -validate int
+ }
+ }
+ var sum_pertq {
+ -label "Collect pieces of the response occupation matrices (sum_pertq):"
+ -widget radiobox
+ -textvalue { Yes No }
+ -value { .true. .false. }
+ }
+ }
+
+ separator -label "--- Perturbations ---"
+
+ var determine_num_pert_only {
+ -label "Determine the number of perturbations (determine_num_pert_only):"
+ -widget radiobox
+ -textvalue { Yes No }
+ -value { .true. .false. }
+ }
+
+ var find_atpert {
+ -label "Method for searching which atoms must be perturbed (find_atpert):"
+ -textvalue {
+ "1 = find atoms by analyzing unperturbed occupations"
+ "2 = find atoms from different Hubbard atomic types"
+ "3 = find atoms by symmetry"
+ }
+ -value { 1 2 3 }
+ -widget optionmenu
+ }
+
+ var docc_thr {
+ -label "Threshold for a comparison of unperturbed occupations (docc_thr):"
+ -validate fortranreal
+ }
+
+ separator -label "--- Atom types specs ---"
+
+ group ntyp_vars {
+ auxilvar ntyp {
+ -label "Number of type of atoms:"
+ -validate posint
+ -widget spinint
+ -default 1
+ }
+
+ dimension skip_type {
+ -label "Skip i-th atom-type in linear-response calculation (skip_type):"
+ -widget radiobox
+ -textvalue { Yes No }
+ -value { .true. .false. }
+ -start 1 -end 1
+ }
+
+ dimension equiv_type {
+ -label "Make atom-type i equivalent to atom-type j (equiv_type):"
+ -validate posint
+ -start 1 -end 1
+ }
+
+ dimension perturb_only_atom {
+ -label "Perturb only i-th atom types (perturb_only_atom):"
+ -widget radiobox
+ -textvalue { .true. .false. }
+ -value { .true. .false. }
+ -start 1 -end 1
+ }
+ }
+
+ separator -label "--- Miscellaneous ---"
+
+ var compute_hp {
+ -label "Collect pieces of the chi0 and chi matrices (compute_hp):"
+ -widget radiobox
+ -textvalue { Yes No }
+ -value { .true. .false. }
+ }
+
+ var conv_thr_chi {
+ -label "Convergence threshold for the response function chi (conv_thr_chi):"
+ -validate fortranreal
+ }
+
+ var thresh_init {
+ -label "Threshold for the 1st iteration of the linear system (thresh_init):"
+ -validate fortranreal
+ }
+
+ var ethr_nscf {
+ -label "Threshold for the convergence of eigenvalues in NSCF (ethr_nscf):"
+ -validate fortranreal
+ }
+
+ var niter_max {
+ -label "Maximum number of iterations for linear-response calc. (niter_max):"
+ -validate int
+ }
+
+ var alpha_mix {
+ -variable alpha_mix(1)
+ -label "Mixing parameter (alpha_mix(1)):"
+ -validate fortranreal
+ }
+
+ var nmix {
+ -label "Number of iterations to use in Broyden mixing (nmix):"
+ -validate int
+ }
+
+ var num_neigh {
+ -label "Number of neighbors of every Hubbard atom to consider for V (num_neigh):"
+ -validate int
+ }
+
+ var lmin {
+ -label "Minimum orbital quantum number of the Hubbard atoms (lmin):"
+ -validate int
+ }
+
+ var rmax {
+ -label "Maximum neighbor distance (in Bohr) between two atoms (rmax):"
+ -validate fortranreal
+ }
+ }
+
+ # ----------------------------------------------------------------------
+ # take care of specialties
+ # ----------------------------------------------------------------------
+ source hp-event.tcl
+
+ # ------------------------------------------------------------------------
+ # source the HELP file
+ # ------------------------------------------------------------------------
+ source hp-help.tcl
+}
diff --git a/GUI/PWgui/modules/ph/ph-help.tcl b/GUI/PWgui/modules/ph/ph-help.tcl
index 1d0d87da33..71f58422c0 100644
--- a/GUI/PWgui/modules/ph/ph-help.tcl
+++ b/GUI/PWgui/modules/ph/ph-help.tcl
@@ -248,9 +248,9 @@ help fildrho -helpfmt helpdoc -helptext {
File where the charge density responses are written. Note that the file
- will actually be saved as ${outdir}/_ph0/${prefix}.${fildrho}1
- where ${outdir}, ${prefix} and ${fildrho} are the values of the
- corresponding input variables
+will actually be saved as ${outdir}/_ph0/${prefix}.${fildrho}1
+where ${outdir}, ${prefix} and ${fildrho} are the values of the
+corresponding input variables
@@ -291,6 +291,10 @@ If .true. in a q=0 calculation for a non metal the
macroscopic dielectric constant of the system is
computed. Do not set "epsil" to .true. if you have a
metallic system or q/=0: the code will complain and stop.
+
+Note: the input value of "epsil" will be ignored if "ldisp"=.true.
+(the code will automatically set "epsil" to .false. for metals,
+to .true. for insulators: see routine PHonon/PH/prepare_q.f90).
diff --git a/GUI/PWgui/modules/pw/pw-event.tcl b/GUI/PWgui/modules/pw/pw-event.tcl
index e8b67ab431..ce2549ca2a 100644
--- a/GUI/PWgui/modules/pw/pw-event.tcl
+++ b/GUI/PWgui/modules/pw/pw-event.tcl
@@ -560,7 +560,7 @@ tracevar ion_velocities w {
# ------------------------------------------------------------------------
postprocess {
varset calculation -value 'scf'
- varset gate -value {}
+ varset gate -value {}
varset ibrav -value {}
varset how_lattice -value celldm
varset nspin -value {}
diff --git a/GUI/PWgui/modules/pw/pw-help.tcl b/GUI/PWgui/modules/pw/pw-help.tcl
index aa5b267563..a083c9663e 100644
--- a/GUI/PWgui/modules/pw/pw-help.tcl
+++ b/GUI/PWgui/modules/pw/pw-help.tcl
@@ -144,8 +144,8 @@ an interrupted calculation. Do not use to start a new one, or to
perform a non-scf calculations. Works only if the calculation was
cleanly stopped using variable "max_seconds", or by user request
with an "exit file" (i.e.: create a file "prefix".EXIT, in directory
-"outdir"; see variables "prefix", "outdir"). Overrides "startingwfc"
-and "startingpot".
+"outdir"; see variables "prefix", "outdir"). The default for
+"startingwfc" and "startingpot" is set to 'file'.
@@ -170,7 +170,7 @@ This flag controls the way wavefunctions are stored to disk :
.TRUE. collect wavefunctions from all processors, store them
into the output data directory "outdir"/"prefix".save
The resulting format is portable to a different number
- of processor, or different kind of parallelization
+ of processors, or different kind of parallelization
.FALSE. OBSOLETE - NO LONGER IMPLEMENTED
do not collect wavefunctions, leave them in temporary
@@ -456,7 +456,9 @@ optimization step are not controlled by this option )
save charge to disk at each SCF step,
keep wavefunctions on disk (in "distributed" format),
save mixing data as well.
-Do not use this option unless you have a good reason to
+Do not use this option unless you have a good reason!
+It is no longer needed to specify 'high' in order to be able
+to restart from an interrupted calculation (see "restart_mode")
@@ -492,10 +494,7 @@ do not save anything to disk
Default is 'low' for the scf case, 'medium' otherwise.
-Note that the needed RAM increases as disk I/O decreases!
-It is no longer needed to specify 'high' in order to be able
-to restart from an interrupted calculation (see "restart_mode")
-but you cannot restart in "disk_io"=='nowf' or 'none'
+Note that the needed RAM increases as disk I/O decreases
@@ -1080,31 +1079,36 @@ help starting_magnetization -helpfmt helpdoc -helptext {
Variables: starting_magnetization(i), i=1,ntyp
Type: REAL
+
Default: 0
+
Description:
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.
-In the spin-orbit case starting with zero
+polarized (LSDA or noncollinear/spin-orbit) calculation.
+Allowed values range between -1 (all spins down for the
+valence electrons of atom type 'i') to 1 (all spins up).
+If you expect a nonzero magnetization in your ground state,
+you MUST either specify a nonzero value for at least one
+atomic type, or constrain the magnetization using variable
+"tot_magnetization" for LSDA, "constrained_magnetization"
+for noncollinear/spin-orbit calculations. If you don't,
+you will get a nonmagnetic (zero magnetization) state.
+In order to perform LSDA calculations for an antiferromagnetic
+state, define two different atomic species corresponding to
+sublattices of the same atomic type.
+
+NOTE 1: "starting_magnetization" is ignored in most BUT NOT ALL
+cases in non-scf calculations: it is safe to keep the same
+values for the scf and subsequent non-scf calculation.
+
+NOTE 2: If you fix the magnetization with
+"tot_magnetization", do not specify "starting_magnetization".
+
+NOTE 3: In the noncollinear/spin-orbit case, starting with zero
starting_magnetization on all atoms imposes time reversal
-symmetry. The magnetization is never calculated and
-kept zero (the internal variable domag is .FALSE.).
+symmetry. The magnetization is never calculated and is
+set to zero (the internal variable domag is set to .FALSE.).
@@ -1907,13 +1911,14 @@ is not configured there.
Description:
-Specify "lda_plus_u" = .TRUE. to enable DFT+U calculations
+Specify "lda_plus_u" = .TRUE. to enable DFT+U, DFT+U+V, or DFT+U+J calculations.
See: Anisimov, Zaanen, and Andersen, "PRB 44, 943 (1991)";
Anisimov et al., "PRB 48, 16929 (1993)";
Liechtenstein, Anisimov, and Zaanen, "PRB 52, R5467 (1994)".
-You must specify, for each species with a U term, the value of
-U and (optionally) alpha, J of the Hubbard model (all in eV):
-see "lda_plus_u_kind", "Hubbard_U", "Hubbard_alpha", "Hubbard_J"
+You must specify, for each Hubbard atom, the value of
+U and (optionally) V, J, alpha of the Hubbard model (all in eV):
+see "lda_plus_u_kind", "Hubbard_U", "Hubbard_V",
+"Hubbard_J", "Hubbard_alpha"
@@ -1930,18 +1935,32 @@ help lda_plus_u_kind -helpfmt helpdoc -helptext {
Description:
-
-Specifies the type of calculation:
-
- 0 DFT+U simplified version of Cococcioni and de Gironcoli,
- "PRB 71, 035105 (2005)", using "Hubbard_U"
-
- 1 DFT+U rotationally invariant scheme of Liechtenstein et al.,
- using "Hubbard_U" and "Hubbard_J"
-
- 2 DFT+U+V simplified version of Campo Jr and Cococcioni,
- J. Phys.: Condens. Matter 22, 055602 (2010), using "Hubbard_V"
-
+
+ Specifies the type of calculation:
+
+
+- 0 :
+
+DFT+U simplified version of Cococcioni and de Gironcoli,
+"PRB 71, 035105 (2005)", using "Hubbard_U"
+
+
+
+- 1 :
+
+DFT+U rotationally invariant scheme of Liechtenstein et al.,
+using "Hubbard_U" and "Hubbard_J"
+
+
+
+- 2 :
+
+DFT+U+V simplified version of Campo Jr and Cococcioni,
+J. Phys.: Condens. Matter 22, 055602 (2010), "doi:10.1088/0953-8984/22/5/055602",
+using "Hubbard_V"
+
+
+
}
@@ -1996,9 +2015,14 @@ help Hubbard_alpha -helpfmt helpdoc -helptext {
Hubbard_alpha(i) is the perturbation (on atom i, in eV)
-used to compute U with the linear-response method of
+used to compute U (and V) with the linear-response method of
Cococcioni and de Gironcoli, "PRB 71, 035105 (2005)"
-(only for "lda_plus_u_kind"=0)
+(only for "lda_plus_u_kind"=0 and 2).
+
+Note: Hubbard U and V can be computed using the HP code
+which is based on density-functional perturbation theory,
+and it gives exactly the same result as the method of
+Cococcioni and de Gironcoli.
@@ -2019,7 +2043,7 @@ help Hubbard_beta -helpfmt helpdoc -helptext {
Hubbard_beta(i) is the perturbation (on atom i, in eV)
used to compute J0 with the linear-response method of
Cococcioni and de Gironcoli, "PRB 71, 035105 (2005)"
-(only for "lda_plus_u_kind"=0). See also
+(only for "lda_plus_u_kind"=0 and 2). See also
"PRB 84, 115108 (2011)".
@@ -2346,8 +2370,8 @@ LAMBDA * SUM_{i,itype} ( magnetic_moment(i,itype) - mcons(i,itype) )**2
where i runs over the cartesian components (or just z
in the collinear case) and itype over the types (1-ntype).
mcons(:,:) array is defined from starting_magnetization,
-(and angle1, angle2 in the non-collinear case). lambda is
-a real number
+(also from angle1, angle2 in the noncollinear case).
+lambda is a real number
@@ -3088,7 +3112,7 @@ help uniqueb -helpfmt helpdoc -helptext {
Used only for monoclinic lattices. If .TRUE. the b
unique ibrav (-12 or -13) are used, and symmetry
equivalent positions are chosen assuming that the
-two fold axis or the mirror normal is parallel to the
+twofold axis or the mirror normal is parallel to the
b axis. If .FALSE. it is parallel to the c axis.
diff --git a/GUI/PWgui/modules/pw/pw.tcl b/GUI/PWgui/modules/pw/pw.tcl
index 3e50b2873f..68c94754ad 100644
--- a/GUI/PWgui/modules/pw/pw.tcl
+++ b/GUI/PWgui/modules/pw/pw.tcl
@@ -667,12 +667,13 @@ module PW -title "PWSCF GUI: module PW.x" -script {
group hubbard -decor none {
var lda_plus_u_kind {
- -label "type of LDA + U calculation (lda_plus_u_kind):"
+ -label "Type of LDA + U calculation (lda_plus_u_kind):"
-textvalue {
"simplified version of Cococcioni and de Gironcoli"
"rotationally invariant scheme of Liechtenstein et al."
+ "DFT+U+V simplified version of Campo Jr and Cococcioni"
}
- -value {0 1}
+ -value {0 1 2}
-widget radiobox
}
diff --git a/GUI/PWgui/src/modutil.itcl b/GUI/PWgui/src/modutil.itcl
index 7f6bd22ba5..cc8bfcda41 100644
--- a/GUI/PWgui/src/modutil.itcl
+++ b/GUI/PWgui/src/modutil.itcl
@@ -159,6 +159,27 @@ proc ::pwscf::readFilter::purifyCardLine {cardLine} {
}
+proc ::pwscf::readFilter::ntypIndex {line varList {maxIndex 0}} {
+ # PURPOSE
+ # search for the largest index of var()-dimension in $line and
+ # return the largest index found, where "var" is a collection of
+ # variables specified by $varList; $line is a line of input
+
+ foreach var $varList {
+ foreach field [split $line =] {
+ set pattern [subst -nocommands -nobackslashes {${var}\([0-9]+\)}]
+ if { [regexp -nocase \
+ [subst -nocommands -nobackslashes {${var}\([0-9]+\)}] \
+ $field matchVar] } {
+ regexp {[0-9]+} $matchVar index
+ if { $index > $maxIndex } {
+ set maxIndex $index
+ }
+ }
+ }
+ }
+ return $maxIndex
+}
proc ::pwscf::readFilter::amassIndex {line {maxIndex 0}} {
# PURPOSE
# search for the largest index of amass()-dimension in $line and
@@ -186,7 +207,11 @@ proc ::pwscf::readFilter::default {moduleObj channel {filterMode logical} {replL
# Variable: filterMode
# Description:
# mode=amass search for largest amass(*) index and assign the
- # ntyp variables
+ # ntyp variable
+ #
+ #
+ # mode={ntyp varList} search for largest index in the list of
+ # variables specified by var(*) and assign the ntyp variable
#
# mode=logical repleace all possible values of Fortran logical
# variables with .true. or .false.
@@ -201,12 +226,21 @@ proc ::pwscf::readFilter::default {moduleObj channel {filterMode logical} {replL
# Description: replList are double list of the form
# { {replaceFromList1 replaceToItem1} {replaceFromList2 replaceToItem2} ... }
#
- set amass 0
- set logical 0
+ set amass 0
+ set logical 0
set verbosity 0
- if { [string match "*amass*" $filterMode] } { set amass 1 }
- if { [string match "*logical*" $filterMode] } { set logical 1 }
+ set ntyp 0
+ if { [string match "*amass*" $filterMode] } { set amass 1 }
+ if { [string match "*logical*" $filterMode] } { set logical 1 }
if { [string match "*verbosity*" $filterMode] } { set verbosity 1 }
+ if { [string match "*ntyp*" $filterMode] } {
+ foreach mode $filterMode {
+ if { [lindex $mode 0] == "ntyp" } {
+ set ntyp 1
+ set varList [lindex $mode 1]
+ }
+ }
+ }
set maxIndex 0
set output {}
@@ -215,6 +249,9 @@ proc ::pwscf::readFilter::default {moduleObj channel {filterMode logical} {replL
if { $amass } {
set maxIndex [amassIndex $_line $maxIndex]
}
+ if { $ntyp } {
+ set maxIndex [ntypIndex $_line $varList $maxIndex]
+ }
if { $logical } {
set _line [logicalFlag $_line]
}
@@ -233,7 +270,8 @@ proc ::pwscf::readFilter::default {moduleObj channel {filterMode logical} {replL
}
append output $_line\n
}
- if { $maxIndex > 0 && $amass } {
+
+ if { $maxIndex > 0 && ( $amass || $ntyp ) } {
$moduleObj varset ntyp -value $maxIndex
}
# close the old channel
diff --git a/GUI/PWgui/src/pwscf.itcl b/GUI/PWgui/src/pwscf.itcl
index 42875a8684..f8451830d9 100644
--- a/GUI/PWgui/src/pwscf.itcl
+++ b/GUI/PWgui/src/pwscf.itcl
@@ -74,27 +74,32 @@ $gui addModule module neb "NEB.X's neb.dat" [file join $env(PWGUI) modules neb n
}
$gui addModule module ph "PH.X" [file join $env(PWGUI) modules ph ph.tcl] {
- {{PH.X Input Files} {*.ph.in *.ph.inp}}
+ {{PH.X Input Files} {*.ph.in *.ph.inp *.in *.inp}}
}
$gui addModule module pp "PP.X" [file join $env(PWGUI) modules pp pp.tcl] {
- {{PP.X Input Files} {*.pp.in *.pp.inp}}
+ {{PP.X Input Files} {*.pp.in *.pp.inp *.in *.inp}}
}
$gui addModule module pr "ProjWFC.X" [file join $env(PWGUI) modules projwfc projwfc.tcl] {
- {{ProjWFC.X Input Files} {*.pr.in *.pr.inp}}
+ {{ProjWFC.X Input Files} {*.pr.in *.pr.inp *.in *.inp}}
}
$gui addModule module bands "Bands.X" [file join $env(PWGUI) modules bands bands.tcl] {
- {{Bands.X Input Files} {*.bands.in *.bands.inp}}
+ {{Bands.X Input Files} {*.bands.in *.bands.inp *.in *.inp}}
}
$gui addModule module dos "Dos.X" [file join $env(PWGUI) modules dos dos.tcl] {
- {{Dos.X Input Files} {*.dos.in *.dos.inp}}
+ {{Dos.X Input Files} {*.dos.in *.dos.inp *.in *.inp}}
}
#$gui addModule module d3 "D3.X" [file join $env(PWGUI) modules d3 d3.tcl] {
-# {{D3.X Input Files} {*.d3.in *.d3.inp}}
+# {{D3.X Input Files} {*.d3.in *.d3.inp *.in *.inp}}
#}
$gui addModule module ld "LD1.X" [file join $env(PWGUI) modules atomic atomic.tcl] {
- {{LD1.X Input Files} {*.ld1.in *.ld1.inp}}
+ {{LD1.X Input Files} {*.ld1.in *.ld1.inp *.in *.inp}}
}
+$gui addModule module hp "HP.X" [file join $env(PWGUI) modules hp hp.tcl] {
+ {{HP.X Input Files} {*.hp.in *.hp.inp *.in *.inp}}
+}
+
+
#$gui addModule cascade pwscf "PWscf files ..." {
# $gui addModule command ...
# ...
@@ -124,6 +129,7 @@ $gui addHelp help bands "Bands.X Input Syntax" [file join $env(PWGUI) doc p
$gui addHelp help dos "Dos.X Input Syntax" [file join $env(PWGUI) doc pwdocs INPUT_DOS.html] none
#$gui addHelp help d3 "D3.X Input Syntax" [file join $env(PWGUI) doc pwdocs INPUT_D3.html] none
$gui addHelp help ld "LD1.X Input Syntax" [file join $env(PWGUI) doc pwdocs INPUT_LD1.html] none
+$gui addHelp help hp "HP.X Input Syntax" [file join $env(PWGUI) doc pwdocs INPUT_HP.html] none
$gui addHelp separator
diff --git a/GUI/PWgui/src/tclIndex b/GUI/PWgui/src/tclIndex
index e5ea5db391..c086145d8a 100644
--- a/GUI/PWgui/src/tclIndex
+++ b/GUI/PWgui/src/tclIndex
@@ -7,16 +7,6 @@
# a script that loads the command.
set auto_index(::pwscf::_uniqueTabname) [list source [file join $dir auxil.itcl]]
-set auto_index(::pwscf::view::inputByPager) [list source [file join $dir view.itcl]]
-set auto_index(::pwscf::view::structByXcrysden) [list source [file join $dir view.itcl]]
-set auto_index(::pwscf::view::defaultPager) [list source [file join $dir view.itcl]]
-set auto_index(::pwscf::settings) [list source [file join $dir settings.itcl]]
-set auto_index(::pwscf::_settingsOK) [list source [file join $dir settings.itcl]]
-set auto_index(::pwscf::_settingsApply) [list source [file join $dir settings.itcl]]
-set auto_index(::pwscf::_settingsSave) [list source [file join $dir settings.itcl]]
-set auto_index(::pwscf::_settingsSave_Unix) [list source [file join $dir settings.itcl]]
-set auto_index(::pwscf::_settingsSaveToFile) [list source [file join $dir settings.itcl]]
-set auto_index(::pwscf::_settingsModule) [list source [file join $dir settings.itcl]]
set auto_index(::pwscf::edit::inputByEditor) [list source [file join $dir edit.itcl]]
set auto_index(::pwscf::edit::defaultEditor) [list source [file join $dir edit.itcl]]
set auto_index(::pwscf::edit::_defaultEditorCancel) [list source [file join $dir edit.itcl]]
@@ -24,32 +14,43 @@ set auto_index(::pwscf::edit::_defaultEditorClose) [list source [file join $dir
set auto_index(::pwscf::edit::_defaultEditorDone) [list source [file join $dir edit.itcl]]
set auto_index(::pwscf::edit::_defaultEditorSave) [list source [file join $dir edit.itcl]]
set auto_index(::pwscf::edit::_defaultEditorSaveAs) [list source [file join $dir edit.itcl]]
-set auto_index(::pwscf::run::run) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::runAs) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::runAndXC) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::runAsAndXC) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::defaultStdOutPager) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::_init) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::getProg) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::_configureModule) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::_configApply) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::_cancel) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::_mkdirOutdir) [list source [file join $dir run.itcl]]
-set auto_index(::pwscf::run::_displayXC) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::init) [list source [file join $dir init.itcl]]
+set auto_index(::pwscf::checkCmd) [list source [file join $dir init.itcl]]
set auto_index(::pwscf::menustate::editable) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::menustate::xcrysden) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::menustate::runnable) [list source [file join $dir menustate.itcl]]
set auto_index(::pwscf::menustate::runnableXC) [list source [file join $dir menustate.itcl]]
-set auto_index(::pwscf::init) [list source [file join $dir init.itcl]]
-set auto_index(::pwscf::checkCmd) [list source [file join $dir init.itcl]]
set auto_index(::pwscf::readFilter::replaceFlag) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::replaceVarFlag) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::logicalFlag) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::verbosityFlag) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::purifyCardLine) [list source [file join $dir modutil.itcl]]
+set auto_index(::pwscf::readFilter::ntypIndex) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::amassIndex) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::default) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::findNamelists) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::findCards) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::readFilter::findNamelistsAndCards) [list source [file join $dir modutil.itcl]]
set auto_index(::pwscf::selectFileRoot) [list source [file join $dir modutil.itcl]]
+set auto_index(::pwscf::run::run) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::runAs) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::runAndXC) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::runAsAndXC) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::defaultStdOutPager) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::_init) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::getProg) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::_configureModule) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::_configApply) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::_cancel) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::_mkdirOutdir) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::run::_displayXC) [list source [file join $dir run.itcl]]
+set auto_index(::pwscf::settings) [list source [file join $dir settings.itcl]]
+set auto_index(::pwscf::_settingsOK) [list source [file join $dir settings.itcl]]
+set auto_index(::pwscf::_settingsApply) [list source [file join $dir settings.itcl]]
+set auto_index(::pwscf::_settingsSave) [list source [file join $dir settings.itcl]]
+set auto_index(::pwscf::_settingsSave_Unix) [list source [file join $dir settings.itcl]]
+set auto_index(::pwscf::_settingsSaveToFile) [list source [file join $dir settings.itcl]]
+set auto_index(::pwscf::_settingsModule) [list source [file join $dir settings.itcl]]
+set auto_index(::pwscf::view::inputByPager) [list source [file join $dir view.itcl]]
+set auto_index(::pwscf::view::structByXcrysden) [list source [file join $dir view.itcl]]
+set auto_index(::pwscf::view::defaultPager) [list source [file join $dir view.itcl]]
diff --git a/GUI/QE-modes/Doc/Makefile b/GUI/QE-modes/Doc/Makefile
index fc4a71feb5..950ea91300 100644
--- a/GUI/QE-modes/Doc/Makefile
+++ b/GUI/QE-modes/Doc/Makefile
@@ -1,7 +1,7 @@
LATEX = pdflatex
LATEX2HTML = latex2html
-VERSION = 6.6
+VERSION = 6.7
PDFS = user_guide.pdf
AUXS = $(PDFS:.pdf=.aux)
diff --git a/GUI/QE-modes/Doc/user_guide.pdf b/GUI/QE-modes/Doc/user_guide.pdf
index ca2fa1d446..17ceb755f0 100644
Binary files a/GUI/QE-modes/Doc/user_guide.pdf and b/GUI/QE-modes/Doc/user_guide.pdf differ
diff --git a/GUI/QE-modes/Doc/user_guide.tex b/GUI/QE-modes/Doc/user_guide.tex
index abd6903ae5..31375c1805 100644
--- a/GUI/QE-modes/Doc/user_guide.tex
+++ b/GUI/QE-modes/Doc/user_guide.tex
@@ -52,7 +52,7 @@
\author{}
\date{}
-\def\qeImage{../../../Doc/quantum_espresso.pdf}
+\def\qeImage{../../../Doc/quantum_espresso.png}
\title{
\includegraphics[width=5cm]{\qeImage} \\
diff --git a/GUI/QE-modes/Makefile b/GUI/QE-modes/Makefile
index f3291a67b6..a0e829e629 100644
--- a/GUI/QE-modes/Makefile
+++ b/GUI/QE-modes/Makefile
@@ -1,5 +1,5 @@
TOPDIR = $(shell cd ../..; pwd)
-VERSION = 6.6
+VERSION = 6.7
GEN_MODE = $(TOPDIR)/dev-tools/gen-emacs-mode
LATEX = pdflatex
diff --git a/HP/Doc/INPUT_HP.def b/HP/Doc/INPUT_HP.def
index 9651ef2501..622b41d8b8 100644
--- a/HP/Doc/INPUT_HP.def
+++ b/HP/Doc/INPUT_HP.def
@@ -114,46 +114,47 @@ input_description -distribution {Quantum Espresso} -package PWscf -program hp.x
info {
Threshold for a comparison of unperturbed occupations
which is needed for the selection of atoms which must
- be perturbed. Can be used only when find_atpert = 1.
+ be perturbed. Can be used only when @ref find_atpert = 1.
}
}
- var skip_type -type LOGICAL {
- default { .false. }
+ dimension skip_type -start 1 -end ntyp -type LOGICAL {
+ default { skip_type(i) = .false. }
see { equiv_type }
info {
- skip_type(i), where i runs over types of atoms.
- If skip_type(i)=.true. then no linear-response
+ @ref skip_type(i), where i runs over types of atoms.
+ If @ref skip_type(i)=.true. then no linear-response
calculation will be performed for the i-th atomic type:
- in this case equiv_type(i) must be specified, otherwise
+ in this case @ref equiv_type(i) must be specified, otherwise
the HP code will stop. This option is useful if the
system has atoms of the same type but opposite spin
pollarizations (anti-ferromagnetic case).
- This keyword cannot be used when find_atpert = 1.
+ This keyword cannot be used when @ref find_atpert = 1.
}
}
- var equiv_type -type INTEGER {
- default { 0 }
+ dimension equiv_type -start 1 -end ntyp -type INTEGER {
+ default { equiv_type(i) = 0 }
see { skip_type }
info {
- equiv_type(i), where i runs over types of atoms.
- equiv_type(i)=j, will make type i equivalent to type j
+ @ref equiv_type(i), where i runs over types of atoms.
+ @ref equiv_type(i)=j, will make type i equivalent to type j
(useful when nspin=2). Such a merging of types is done
only at the post-processing stage.
- This keyword cannot be used when find_atpert = 1.
+ This keyword cannot be used when @ref find_atpert = 1.
}
}
- var perturb_only_atom -type LOGICAL {
- default { .false. }
+ dimension perturb_only_atom -start 1 -end ntyp -type LOGICAL {
+ default { perturb_only_atom(i) = .false. }
see { compute_hp }
info {
- If perturb_only_atom(i)=.true. then only the i-th
+ If @ref perturb_only_atom(i)=.true. then only the i-th
atom will be perturbed and considered in the run.
This variable is useful when one wants to split
- the whole calculation on parts. Note: this variable
- has a higher priority than skip_type.
+ the whole calculation on parts.
+
+ @b Note: this variable has a higher priority than @ref skip_type.
}
}
@@ -161,8 +162,9 @@ input_description -distribution {Quantum Espresso} -package PWscf -program hp.x
default { 1 }
see { last_q, sum_pertq }
info {
- Computes only the q points from start_q to last_q.
- IMPORTANT: start_q must be smaller or equal to
+ Computes only the q points from @ref start_q to @ref last_q.
+
+ @b IMPORTANT: @ref start_q must be smaller or equal to
the total number of q points found.
}
}
@@ -171,8 +173,9 @@ input_description -distribution {Quantum Espresso} -package PWscf -program hp.x
default { number of q points }
see { start_q, sum_pertq }
info {
- Computes only the q points from start_q to last_q.
- IMPORTANT: last_q must be smaller or equal to
+ Computes only the q points from @ref start_q to @ref last_q.
+
+ @b IMPORTANT: @ref last_q must be smaller or equal to
the total number of q points found.
}
}
@@ -184,7 +187,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program hp.x
If it is set to .true. then the HP code will collect
pieces of the response occupation matrices for all
q points. This variable should be used only when
- start_q, last_q and perturb_only_atom are used.
+ @ref start_q, @ref last_q and @ref perturb_only_atom are used.
}
}
@@ -199,7 +202,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program hp.x
tmp_dir/HP/prefix.chi.i.dat. Note that all files
prefix.chi.i.dat (where i runs over all perturbed
atoms) must be placed in one folder tmp_dir/HP/.
- compute_hp=.true. must be used only when the
+ @ref compute_hp=.true. must be used only when the
calculation was parallelized over perturbations.
}
}
@@ -247,7 +250,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program hp.x
info {
Mixing parameter (for the i-th iteration) for updating
the response SCF potential using the modified Broyden
- method: D.D. Johnson, PRB 38, 12807 (1988).
+ method. See: D.D. Johnson, PRB 38, 12807 (1988).
}
}
@@ -255,7 +258,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program hp.x
default { 4 }
info {
Number of iterations used in potential mixing
- using the modified Broyden method
+ using the modified Broyden method. See:
D.D. Johnson, PRB 38, 12807 (1988).
}
}
@@ -277,13 +280,13 @@ input_description -distribution {Quantum Espresso} -package PWscf -program hp.x
Minimum value of the orbital quantum number of the Hubbard
atoms starting from which (and up to the maximum l in the
system) Hubbard V will be written to the file parameters.out.
- lmin refers to the orbital quantum number of the atom
+ @ref lmin refers to the orbital quantum number of the atom
corresponding to the first site-index in Hubbard_V(:,:,:).
This keyword is used only when lda_plus_u_kind = 2 and only
- in the post-processing stage. Example: lmin=1 corresponds to
+ in the post-processing stage. Example: @ref lmin=1 corresponds to
writing to file V between e.g. oxygen (with p states) and its
neighbors, and including V between transition metals (with d
- states) and their neighbors. Instead, when lmin=2 only the
+ states) and their neighbors. Instead, when @ref lmin=2 only the
latter will be written to parameters.out.
}
}
diff --git a/HP/Doc/INPUT_HP.html b/HP/Doc/INPUT_HP.html
index a22731c2e1..28a60ee292 100644
--- a/HP/Doc/INPUT_HP.html
+++ b/HP/Doc/INPUT_HP.html
@@ -46,7 +46,7 @@
Input File Description
Program:
- hp.x / PWscf / Quantum Espresso (version: 6.6)
+ hp.x / PWscf / Quantum Espresso (version: 6.7)
|
@@ -58,7 +58,7 @@ TABLE OF CONTENTS
INTRODUCTION
&INPUTHP
-prefix | outdir | iverbosity | max_seconds | nq1 | nq2 | nq3 | skip_equivalence_q | determine_num_pert_only | find_atpert | docc_thr | skip_type | equiv_type | perturb_only_atom | start_q | last_q | sum_pertq | compute_hp | conv_thr_chi | thresh_init | ethr_nscf | niter_max | alpha_mix(i) | nmix | num_neigh | lmin | rmax
+prefix | outdir | iverbosity | max_seconds | nq1 | nq2 | nq3 | skip_equivalence_q | determine_num_pert_only | find_atpert | docc_thr | skip_type | equiv_type | perturb_only_atom | start_q | last_q | sum_pertq | compute_hp | conv_thr_chi | thresh_init | ethr_nscf | niter_max | alpha_mix(i) | nmix | num_neigh | lmin | rmax
@@ -204,7 +204,8 @@ TABLE OF CONTENTS
|
If .true. determines the number of perturbations
(i.e. which atoms will be perturbed) and exits smoothly
-without performing any calculation.
+without performing any calculation. For DFT+U+V, it also
+determines the indices of inter-site couples.
|
@@ -248,18 +249,18 @@ TABLE OF CONTENTS
Threshold for a comparison of unperturbed occupations
which is needed for the selection of atoms which must
-be perturbed. Can be used only when find_atpert = 1.
+be perturbed. Can be used only when find_atpert = 1.
|
-
+
-skip_type |
+skip_type(i), i=1,ntyp |
LOGICAL |
Default: |
- .false.
+ | skip_type(i) = .false.
|
@@ -267,25 +268,25 @@ TABLE OF CONTENTS
equiv_type |
-skip_type(i), where i runs over types of atoms.
-If skip_type(i)=.true. then no linear-response
+skip_type(i), where i runs over types of atoms.
+If skip_type(i)=.true. then no linear-response
calculation will be performed for the i-th atomic type:
-in this case equiv_type(i) must be specified, otherwise
+in this case equiv_type(i) must be specified, otherwise
the HP code will stop. This option is useful if the
system has atoms of the same type but opposite spin
pollarizations (anti-ferromagnetic case).
-This keyword cannot be used when find_atpert = 1.
+This keyword cannot be used when find_atpert = 1.
|
-
+
-equiv_type |
+equiv_type(i), i=1,ntyp |
INTEGER |
Default: |
- 0
+ | equiv_type(i) = 0
|
@@ -293,22 +294,22 @@ TABLE OF CONTENTS
skip_type |
-equiv_type(i), where i runs over types of atoms.
-equiv_type(i)=j, will make type i equivalent to type j
+equiv_type(i), where i runs over types of atoms.
+equiv_type(i)=j, will make type i equivalent to type j
(useful when nspin=2). Such a merging of types is done
only at the post-processing stage.
-This keyword cannot be used when find_atpert = 1.
+This keyword cannot be used when find_atpert = 1.
|
-
+
-perturb_only_atom |
+perturb_only_atom(i), i=1,ntyp |
LOGICAL |
Default: |
- .false.
+ | perturb_only_atom(i) = .false.
|
@@ -316,15 +317,16 @@ TABLE OF CONTENTS
compute_hp |
-If perturb_only_atom(i)=.true. then only the i-th
+If perturb_only_atom(i)=.true. then only the i-th
atom will be perturbed and considered in the run.
This variable is useful when one wants to split
-the whole calculation on parts. Note: this variable
-has a higher priority than skip_type.
+the whole calculation on parts.
+
+Note: this variable has a higher priority than skip_type.
|
-
+
start_q |
INTEGER |
@@ -341,13 +343,14 @@ TABLE OF CONTENTS
-Computes only the q points from start_q to last_q.
-IMPORTANT: start_q must be smaller or equal to
+Computes only the q points from start_q to last_q.
+
+IMPORTANT: start_q must be smaller or equal to
the total number of q points found.
|
-
+
last_q |
INTEGER |
@@ -364,13 +367,14 @@ TABLE OF CONTENTS
-Computes only the q points from start_q to last_q.
-IMPORTANT: last_q must be smaller or equal to
+Computes only the q points from start_q to last_q.
+
+IMPORTANT: last_q must be smaller or equal to
the total number of q points found.
|
-
+
sum_pertq |
LOGICAL |
@@ -390,11 +394,11 @@ TABLE OF CONTENTS
If it is set to .true. then the HP code will collect
pieces of the response occupation matrices for all
q points. This variable should be used only when
-start_q, last_q and perturb_only_atom are used.
+start_q, last_q and perturb_only_atom are used.
-
+
compute_hp |
LOGICAL |
@@ -416,12 +420,12 @@ TABLE OF CONTENTS
tmp_dir/HP/prefix.chi.i.dat. Note that all files
prefix.chi.i.dat (where i runs over all perturbed
atoms) must be placed in one folder tmp_dir/HP/.
-compute_hp=.true. must be used only when the
+compute_hp=.true. must be used only when the
calculation was parallelized over perturbations.
-
+
conv_thr_chi |
REAL |
@@ -438,7 +442,7 @@ TABLE OF CONTENTS
-
+
thresh_init |
REAL |
@@ -457,7 +461,7 @@ TABLE OF CONTENTS
-
+
ethr_nscf |
REAL |
@@ -475,7 +479,7 @@ TABLE OF CONTENTS
-
+
niter_max |
INTEGER |
@@ -491,7 +495,7 @@ TABLE OF CONTENTS
-
+
alpha_mix(i) |
REAL |
@@ -504,11 +508,11 @@ TABLE OF CONTENTS
Mixing parameter (for the i-th iteration) for updating
the response SCF potential using the modified Broyden
-method: D.D. Johnson, PRB 38, 12807 (1988).
+method. See: D.D. Johnson, PRB 38, 12807 (1988).
|
-
+
nmix |
INTEGER |
@@ -520,12 +524,12 @@ TABLE OF CONTENTS
Number of iterations used in potential mixing
-using the modified Broyden method
+using the modified Broyden method. See:
D.D. Johnson, PRB 38, 12807 (1988).
|
-
+
num_neigh |
INTEGER |
@@ -544,7 +548,7 @@ TABLE OF CONTENTS
-
+
lmin |
INTEGER |
@@ -558,18 +562,18 @@ TABLE OF CONTENTS
Minimum value of the orbital quantum number of the Hubbard
atoms starting from which (and up to the maximum l in the
system) Hubbard V will be written to the file parameters.out.
-lmin refers to the orbital quantum number of the atom
+lmin refers to the orbital quantum number of the atom
corresponding to the first site-index in Hubbard_V(:,:,:).
This keyword is used only when lda_plus_u_kind = 2 and only
-in the post-processing stage. Example: lmin=1 corresponds to
+in the post-processing stage. Example: lmin=1 corresponds to
writing to file V between e.g. oxygen (with p states) and its
neighbors, and including V between transition metals (with d
-states) and their neighbors. Instead, when lmin=2 only the
+states) and their neighbors. Instead, when lmin=2 only the
latter will be written to parameters.out.
-
+
rmax |
REAL |
@@ -592,7 +596,7 @@ TABLE OF CONTENTS
- This file has been created by helpdoc utility on Fri Jul 17 10:28:25 CEST 2020.
+ This file has been created by helpdoc utility on Sun Nov 29 14:20:03 CET 2020.