mirror of https://gitlab.com/QEF/q-e.git
Merge branch 'develop' into gpu-develop
This commit is contained in:
commit
832ee20aba
|
@ -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
|
||||
|
|
|
@ -285,10 +285,10 @@ CONTAINS
|
|||
& 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
|
||||
!
|
||||
|
|
|
@ -4,6 +4,12 @@ New in 6.7 version:
|
|||
* In vc-relax with Hubbard corrections, the final SCF calculation is done by
|
||||
reading atomic occupations from file produced during the vc-relax
|
||||
(rather then recomputing them from scratch).
|
||||
* EPW:
|
||||
(1) ZG package to generate special displacements for first-principles non-perturbative calculations
|
||||
at finite temperatures [Marios Zacharias and Feliciano Giustino, Phys. Rev. Research 2, 013357, (2020)].
|
||||
(2) Plotting of Fermi surface.
|
||||
For the full list of new features, bug fixes, and changes leading to backward incompatibility issues,
|
||||
please visit the Releases page of the EPW documentation site [https://docs.epw-code.org/doc/Releases.html].
|
||||
|
||||
Fixed in 6.7 version:
|
||||
* Some linkers yield "missing references to ddot_" in libbeef
|
||||
|
|
|
@ -55,17 +55,20 @@ STEPS for generating the "ZG-displacement" for the calculation of temperature-de
|
|||
temperature dependent properties. For help, please see the example folder by "tar -xvf example.tar.gz".
|
||||
In file "example/silicon/ZG_displacement_generation/inputs/ZG_444.in" we show the example for
|
||||
constructing a 4x4x4 ZG-configuration. One could potentially generate any supercell size
|
||||
by simply changing "dimx","dimy","dimz", and the list of q-points (see below).
|
||||
by simply changing "dimx","dimy","dimz", and the list of q-points (optional, see below).
|
||||
"ZG.in" has the standard format as a "matdyn.in" file for Quantum Espresso.
|
||||
Here we use the following input parameters:
|
||||
---------------------------------------------------------------------------------------
|
||||
i) "ZG_conf" : Logical flag that enables the creation of the ZG-displacement.
|
||||
(default .false.)
|
||||
(default .true.)
|
||||
"T" : Real number indicating the temperature at which the calculations will be performed.
|
||||
"T" essentially defines the amplitude of the normal coordinates.
|
||||
(default 0.00)
|
||||
"dimx","dimy","dimz" : Integers corresponding to the dimensionality of the supercell.
|
||||
(default 0,0,0)
|
||||
"dimx","dimy","dimz" : Integers corresponding to the dimensionality of the supercell i.e.:
|
||||
size of supercell will be [dimx * a(1), dimy * a(2), dimz * a(3)],
|
||||
where a(1), a(2), a(3) are the lattice vectors of the unit cell used
|
||||
to compute the phonons.
|
||||
(default 0, 0, 0)
|
||||
"atm_zg(1), etc.." : String describing the element of each atomic species
|
||||
(default "Element")
|
||||
"synch" : Logical flag that enables the synchronization of the modes.
|
||||
|
@ -86,7 +89,7 @@ STEPS for generating the "ZG-displacement" for the calculation of temperature-de
|
|||
(ii) only single phonon displacements are of interest (see below)
|
||||
(default .true.)
|
||||
"threshold" : Real number indicating the error at which the algorithm stops while it's
|
||||
looking for possible combinations of signs. Once this limit is reached
|
||||
looking for possible combinations of signs. Once this limit is reached,
|
||||
the ZG-displacement is constructed. The threshold is usually chosen
|
||||
to be less than 5% of the diagonal terms, i.e. those terms that contribute
|
||||
to the calculation of temperature-dependent properties.
|
||||
|
@ -96,16 +99,22 @@ STEPS for generating the "ZG-displacement" for the calculation of temperature-de
|
|||
"single_phonon_displ": Logical flag that allows to displace the nuclei along single phonon modes.
|
||||
Use output configurations to compute electron-phonon matrix elements with a direct
|
||||
supercell calculation. Set the displacement to the zero point by "T = 0".
|
||||
This generates the output files: "single_phonon-displacements.dat" and
|
||||
"single_phonon-velocities.dat".
|
||||
This finite displacement should carry precisely the effect of diagonal elements of [g(q)+g(-q)].
|
||||
Output files: "single_phonon-displacements.dat" and "single_phonon-velocities.dat".
|
||||
(default .false.)
|
||||
"qlist_AB.txt" : This file containes the q-list in crystal coordinates that appears in the "ZG_444.in" example after
|
||||
the input flags. It corresponds to the q-points commensurate to the supercell size. Only one
|
||||
of the q-point time-reversal partners is kept for the construction of the ZG-displacement.
|
||||
The calculations, for the moment, assume systems with time-reversal symmetry.
|
||||
"q_external" : Logical flag that allows the use of a q-point list specified by the user in the input file.
|
||||
If .false. the q-point list is specified by the supercell dimensions dimx, dimy, and dimz.
|
||||
If .true. the q-point list must be provided by the user (see "qlist_AB.txt").
|
||||
(default .false.)
|
||||
"qlist_AB.txt" : This file contains the external q-list in crystal coordinates as in the "ZG_444.in" example,
|
||||
after the input flags. It corresponds to the q-points commensurate to the supercell size.
|
||||
Only one of the q-point time-reversal partners is kept for the construction of the
|
||||
ZG-displacement. The calculations, for the moment, assume systems with time-reversal symmetry.
|
||||
For the generation of the "qlist_AB.txt" set the q-gird in file
|
||||
"example/silicon/input/qlist.in" and run "../../../src/create_qlist.x < qlist.in > qlist.out ".
|
||||
Paste the output of "qlist_AB.txt" to "ZG.in" after namelist &input.
|
||||
"example/silicon/input/qlist.in" and run "../../../src/create_qlist.x < qlist.in > qlist.out".
|
||||
One can modify the "create_qlist.f90" to generate a different path for consecutive q-points.
|
||||
Paste the output of "qlist_AB.txt" to "ZG.in" after namelist &input. Set the flag
|
||||
q_external = .true. for the code to read the list.
|
||||
|
||||
ii) To generate the ZG-displacement run "/path_to_your_espresso/bin/ZG.x <ZG_444.in> ZG_444.out".
|
||||
This generates three output files: the "equil_pos.txt", "ZG-configuration.dat" and "ZG-velocities.dat".
|
||||
|
@ -161,7 +170,6 @@ Steps:
|
|||
"JDOS_Gaus.x" located in the "src/JDOS" folder. Command: "/path_to/JDOS_Gaus.x <JDOS_Gaus.in > JDOS_Gaus.out".
|
||||
For extracting the band gap from the joint-density of states follow the procedure in Ref.[Phys. Rev. B 94, 075125, (2016)].
|
||||
|
||||
|
||||
5. Compare your results with the data in the directory 'example/silicon/JDOS/outputs/333'.
|
||||
Gnuplot commands are aslo given to facilitate comparison.
|
||||
|
||||
|
|
|
@ -73,13 +73,15 @@ PROGRAM ZG
|
|||
! supplied in input (default)
|
||||
! amass masses of atoms in the supercell (a.m.u.), one per atom type
|
||||
! (default: use masses read from file flfrc)
|
||||
! "q_in_band_form" and "q_in_cryst_coord" meaningful if "q_external"
|
||||
! (see below) is set to .true.
|
||||
! q_in_band_form IF .TRUE. the q points are given in band form:
|
||||
! Only the first and last point of one or more lines
|
||||
! are given. See below. (default: .FALSE.).
|
||||
! q_in_cryst_coord IF .TRUE. input q points are in crystalline
|
||||
! coordinates (default: .FALSE.)
|
||||
! loto_2d set to .true. to activate two-dimensional treatment of LO-TO
|
||||
! splitting.
|
||||
! loto_2d set to .true. to activate two-dimensional treatment of LO-TO
|
||||
! siplitting.
|
||||
!
|
||||
! IF (q_in_band_form) THEN
|
||||
! nq ! number of q points
|
||||
|
@ -101,7 +103,7 @@ PROGRAM ZG
|
|||
! Input cards to control "ZG_configuration" subroutine:
|
||||
!
|
||||
! "ZG_conf" : Logical flag that enables the creation of the ZG-displacement.
|
||||
! (default .false.)
|
||||
! (default .true.)
|
||||
! "T" : Real number indicating the temperature at which the calculations will be performed.
|
||||
! "T" essentially defines the amplitude of the normal coordinates.
|
||||
! (default 0.00)
|
||||
|
@ -137,34 +139,42 @@ PROGRAM ZG
|
|||
! "single_phonon_displ": Logical flag that allows to displace the nuclei along single phonon modes.
|
||||
! Use output configurations to compute electron-phonon matrix elements with a direct
|
||||
! supercell calculation. Set the displacement to the zero point by "T = 0".
|
||||
! This generates the output files: "single_phonon-displacements.dat" and
|
||||
! This finite displacement should carry precisely the effect of diagonal elements of [g(q)+g(-q)].
|
||||
! Output files: "single_phonon-displacements.dat" and
|
||||
! "single_phonon-velocities.dat".
|
||||
! (default .false.)
|
||||
! "qlist_AB.txt" : This file containes the q-list in crystal coordinates that appears in the "ZG_444.in" example after
|
||||
! the input flags. It corresponds to the q-points commensurate to the supercell size. Only one
|
||||
! of the q-point time-reversal partners is kept for the construction of the ZG-displacement.
|
||||
! The calculations, for the moment, assume systems with time-reversal symmetry.
|
||||
! "q_external" : Logical flag that allows the use of a q-point list specified by the user in the input file.
|
||||
! If .false. the q-point list is specified by the supercell dimensions dimx, dimy, and dimz.
|
||||
! If .false. any q-point list after the input flags is ignored.
|
||||
! If .true. the q-point list must be provided by the user (see "qlist_AB.txt").
|
||||
! (default .false.)
|
||||
! "qlist_AB.txt" : This file contains the external q-list in crystal coordinates as in the "ZG_444.in" example,
|
||||
! after the input flags. It corresponds to the q-points commensurate to the supercell size.
|
||||
! Only one of the q-point time-reversal partners is kept for the construction of the
|
||||
! ZG-displacement. The calculations, for the moment, assume systems with time-reversal symmetry.
|
||||
! For the generation of the "qlist_AB.txt" set the q-gird in file
|
||||
! "example/silicon/input/qlist.in" and run "../../../src/create_qlist.x < qlist.in > qlist.out ".
|
||||
! Paste the output of "qlist_AB.txt" to "ZG.in" after namelist &input.
|
||||
! "example/silicon/input/qlist.in" and run "../../../src/create_qlist.x < qlist.in > qlist.out".
|
||||
! One can modify the "create_qlist.f90" to generate a different path for consecutive q-points.
|
||||
! Paste the output of "qlist_AB.txt" to "ZG.in" after namelist &input. Set the flag
|
||||
! q_external = .true. for the code to read the list.
|
||||
!
|
||||
USE kinds, ONLY : DP
|
||||
USE mp, ONLY : mp_bcast
|
||||
USE mp_world, ONLY : world_comm
|
||||
USE mp_global, ONLY : mp_startup, mp_global_end
|
||||
USE environment, ONLY : environment_start, environment_end
|
||||
USE io_global, ONLY : ionode, ionode_id, stdout
|
||||
USE io_dyn_mat, ONLY : read_dyn_mat_param, read_dyn_mat_header, &
|
||||
read_ifc_param, read_ifc
|
||||
USE cell_base, ONLY : at, bg, celldm
|
||||
USE constants, ONLY : RY_TO_THZ, RY_TO_CMM1, amu_ry
|
||||
USE symm_base, ONLY : set_sym
|
||||
USE kinds, ONLY : DP
|
||||
USE mp, ONLY : mp_bcast
|
||||
USE mp_world, ONLY : world_comm
|
||||
USE mp_global, ONLY : mp_startup, mp_global_end
|
||||
USE environment, ONLY : environment_start, environment_end
|
||||
USE io_global, ONLY : ionode, ionode_id, stdout
|
||||
USE io_dyn_mat, ONLY : read_dyn_mat_param, read_dyn_mat_header, &
|
||||
read_ifc_param, read_ifc
|
||||
USE cell_base, ONLY : at, bg, celldm
|
||||
USE constants, ONLY : RY_TO_THZ, RY_TO_CMM1, amu_ry
|
||||
USE symm_base, ONLY : set_sym
|
||||
USE rap_point_group, ONLY : code_group
|
||||
USE bz_form, ONLY : transform_label_coord
|
||||
USE parser, ONLY : read_line
|
||||
USE rigid, ONLY : dyndiag, nonanal, nonanal_ifc
|
||||
USE bz_form, ONLY : transform_label_coord
|
||||
USE parser, ONLY : read_line
|
||||
USE rigid, ONLY : dyndiag, nonanal, nonanal_ifc
|
||||
|
||||
USE ifconstants, ONLY : frc, atm, zeu, tau_blk, ityp_blk, m_loc
|
||||
USE ifconstants, ONLY : frc, atm, zeu, tau_blk, ityp_blk, m_loc
|
||||
!
|
||||
IMPLICIT NONE
|
||||
!
|
||||
|
@ -204,13 +214,12 @@ PROGRAM ZG
|
|||
REAL(DP) :: delta
|
||||
REAL(DP), ALLOCATABLE :: xqaux(:,:)
|
||||
INTEGER, ALLOCATABLE :: nqb(:)
|
||||
INTEGER :: n, i, j, it, nq, nqx, na, nb, iout, nqtot, iout_dyn, iout_eig
|
||||
INTEGER :: n, i, j, it, nq, nqx, na, nb, nqtot
|
||||
LOGICAL, EXTERNAL :: has_xml
|
||||
INTEGER, ALLOCATABLE :: num_rap_mode(:,:)
|
||||
LOGICAL, ALLOCATABLE :: high_sym(:)
|
||||
LOGICAL :: q_in_band_form
|
||||
! .... variables for band plotting based on similarity of eigenvalues
|
||||
COMPLEX(DP), ALLOCATABLE :: tmp_z(:,:)
|
||||
COMPLEX(DP), ALLOCATABLE :: f_of_q(:,:,:,:)
|
||||
INTEGER :: location(1), isig
|
||||
CHARACTER(LEN=6) :: int_to_char
|
||||
|
@ -221,31 +230,28 @@ PROGRAM ZG
|
|||
CHARACTER(LEN=256) :: input_line, buffer
|
||||
CHARACTER(LEN= 10) :: point_label_type
|
||||
CHARACTER(len=80) :: k_points = 'tpiba'
|
||||
! mz_b
|
||||
!
|
||||
COMPLEX(DP), ALLOCATABLE :: z_nq_zg(:,:,:) ! nomdes, nmodes, nq
|
||||
REAL(DP), ALLOCATABLE :: q_nq_zg(:,:) ! 3, nq
|
||||
LOGICAL :: ZG_conf, synch, incl_qA
|
||||
LOGICAL :: ZG_conf, synch, incl_qA, q_external
|
||||
LOGICAL :: compute_error, single_phonon_displ
|
||||
INTEGER :: dimx, dimy, dimz, nloops
|
||||
REAL(DP) :: error_thresh, T
|
||||
CHARACTER(LEN=3) :: atm_zg(ntypx)
|
||||
! mz_e
|
||||
!
|
||||
!
|
||||
NAMELIST /input/ flfrc, amass, asr, at, &
|
||||
& ntyp, loto_2d, &
|
||||
& q_in_band_form, q_in_cryst_coord, &
|
||||
& point_label_type, &
|
||||
! mz_b we add the inputs for generating the ZG-configuration
|
||||
& ZG_conf, dimx, dimy, dimz, nloops, error_thresh, &
|
||||
NAMELIST /input/ flfrc, amass, asr, at, ntyp, loto_2d, &
|
||||
& q_in_band_form, q_in_cryst_coord, point_label_type, &
|
||||
! we add the inputs for generating the ZG-configuration
|
||||
& ZG_conf, dimx, dimy, dimz, nloops, error_thresh, q_external, &
|
||||
& compute_error, synch, atm_zg, T, incl_qA, single_phonon_displ
|
||||
! ZG_conf --> IF TRUE compute the ZG_configuration
|
||||
! mz_e
|
||||
!
|
||||
CALL mp_startup()
|
||||
CALL environment_start('ZG')
|
||||
!
|
||||
l1= 1
|
||||
l2 = 1
|
||||
l2= 1
|
||||
l3= 1
|
||||
IF (ionode) CALL input_from_file ( )
|
||||
!
|
||||
|
@ -263,20 +269,21 @@ PROGRAM ZG
|
|||
q_in_cryst_coord = .FALSE.
|
||||
point_label_type='SC'
|
||||
loto_2d=.FALSE.
|
||||
! mz_b
|
||||
ZG_conf = .FALSE.
|
||||
!
|
||||
ZG_conf = .TRUE.
|
||||
compute_error = .TRUE.
|
||||
single_phonon_displ = .FALSE.
|
||||
nloops = 15000
|
||||
error_thresh = 5.0E-02
|
||||
T = 0
|
||||
synch = .FALSE.
|
||||
q_external = .FALSE.
|
||||
incl_qA = .TRUE.
|
||||
single_phonon_displ = .FALSE.
|
||||
T = 0
|
||||
error_thresh = 5.0E-02
|
||||
dimx = 0
|
||||
dimy = 0
|
||||
dimz = 0
|
||||
nloops = 15000
|
||||
atm_zg = "Element"
|
||||
! mz_e
|
||||
!
|
||||
!
|
||||
!
|
||||
IF (ionode) READ (5, input,IOSTAT=ios)
|
||||
|
@ -292,25 +299,26 @@ PROGRAM ZG
|
|||
CALL mp_bcast(q_in_cryst_coord, ionode_id, world_comm)
|
||||
CALL mp_bcast(point_label_type, ionode_id, world_comm)
|
||||
CALL mp_bcast(loto_2d,ionode_id, world_comm)
|
||||
! mz_b
|
||||
!
|
||||
CALL mp_bcast(ZG_conf, ionode_id, world_comm)
|
||||
CALL mp_bcast(compute_error, ionode_id, world_comm)
|
||||
CALL mp_bcast(single_phonon_displ, ionode_id, world_comm)
|
||||
CALL mp_bcast(atm_zg, ionode_id, world_comm)
|
||||
CALL mp_bcast(nloops, ionode_id, world_comm)
|
||||
CALL mp_bcast(error_thresh, ionode_id, world_comm)
|
||||
CALL mp_bcast(T, ionode_id, world_comm)
|
||||
CALL mp_bcast(synch, ionode_id, world_comm)
|
||||
CALL mp_bcast(q_external, ionode_id, world_comm)
|
||||
CALL mp_bcast(incl_qA, ionode_id, world_comm)
|
||||
CALL mp_bcast(single_phonon_displ, ionode_id, world_comm)
|
||||
CALL mp_bcast(T, ionode_id, world_comm)
|
||||
CALL mp_bcast(error_thresh, ionode_id, world_comm)
|
||||
CALL mp_bcast(dimx, ionode_id, world_comm)
|
||||
CALL mp_bcast(dimy, ionode_id, world_comm)
|
||||
CALL mp_bcast(dimz, ionode_id, world_comm)
|
||||
CALL mp_bcast(nloops, ionode_id, world_comm)
|
||||
CALL mp_bcast(atm_zg, ionode_id, world_comm)
|
||||
!
|
||||
! To check that use specify supercell dimensions
|
||||
IF (ZG_conf) THEN
|
||||
IF ((dimx < 1) .OR. (dimy < 1) .OR. (dimz < 1)) CALL errore('ZG', 'reading supercell size', dimx)
|
||||
ENDIF
|
||||
! mz_e
|
||||
!
|
||||
!
|
||||
! read force constants
|
||||
!
|
||||
|
@ -369,17 +377,17 @@ PROGRAM ZG
|
|||
IF (SUM(ABS(at(:,:))) == 0.d0) THEN
|
||||
IF (l1.LE.0 .OR. l2.LE.0 .OR. l3.LE.0) CALL &
|
||||
& errore ('ZG',' wrong l1,l2 or l3', 1)
|
||||
at(:, 1) = at_blk(:, 1) *DBLE(l1)
|
||||
at(:, 2) = at_blk(:, 2) *DBLE(l2)
|
||||
at(:, 3) = at_blk(:, 3) *DBLE(l3)
|
||||
at(:, 1) = at_blk(:, 1) * DBLE(l1)
|
||||
at(:, 2) = at_blk(:, 2) * DBLE(l2)
|
||||
at(:, 3) = at_blk(:, 3) * DBLE(l3)
|
||||
ENDIF
|
||||
!
|
||||
CALL check_at(at, bg_blk, alat, omega)
|
||||
!
|
||||
! the supercell contains "nsc" times the original unit cell
|
||||
!
|
||||
nsc = NINT(omega/omega_blk)
|
||||
IF (ABS(omega/omega_blk-nsc) > eps) &
|
||||
nsc = NINT(omega / omega_blk)
|
||||
IF (ABS(omega / omega_blk-nsc) > eps) &
|
||||
CALL errore ('ZG', 'volume ratio not integer', 1)
|
||||
!
|
||||
! read/generate atomic positions of the (super)cell
|
||||
|
@ -399,103 +407,115 @@ PROGRAM ZG
|
|||
!
|
||||
! build the WS cell corresponding to the force constant grid
|
||||
!
|
||||
atws(:, 1) = at_blk(:, 1) *DBLE(nr1)
|
||||
atws(:, 2) = at_blk(:, 2) *DBLE(nr2)
|
||||
atws(:, 3) = at_blk(:, 3) *DBLE(nr3)
|
||||
atws(:, 1) = at_blk(:, 1) * DBLE(nr1)
|
||||
atws(:, 2) = at_blk(:, 2) * DBLE(nr2)
|
||||
atws(:, 3) = at_blk(:, 3) * DBLE(nr3)
|
||||
! initialize WS r-vectors
|
||||
CALL wsinit(rws, nrwsx, nrws, atws)
|
||||
!
|
||||
! end of (super)cell setup
|
||||
!
|
||||
!
|
||||
! read q-point list
|
||||
!
|
||||
IF (ionode) READ (5,*) nq
|
||||
CALL mp_bcast(nq, ionode_id, world_comm)
|
||||
ALLOCATE ( q(3, nq) )
|
||||
IF (.NOT.q_in_band_form) THEN
|
||||
DO n = 1, nq
|
||||
! mz_edits
|
||||
IF (ionode) READ (5,*) (q(i, n), i = 1, 3)
|
||||
! IF (ionode) READ (5,'(3F10.6)') q(:, n)
|
||||
! mz_done
|
||||
ENDDO
|
||||
CALL mp_bcast(q, ionode_id, world_comm)
|
||||
!
|
||||
IF (q_in_cryst_coord) CALL cryst_to_cart(nq,q, bg,+ 1)
|
||||
!
|
||||
! read q-point list
|
||||
!
|
||||
!
|
||||
IF (.NOT. q_external) THEN
|
||||
CALL qpoint_gen1(dimx, dimy, dimz, nq)
|
||||
! nq = ctrAB
|
||||
CALL mp_bcast(nq, ionode_id, world_comm)
|
||||
ALLOCATE ( q(3, nq) )
|
||||
CALL qpoint_gen2(dimx, dimy, dimz, nq, q)
|
||||
!
|
||||
CALL mp_bcast(q, ionode_id, world_comm)
|
||||
!
|
||||
CALL cryst_to_cart(nq, q, bg, +1) ! convert them to Cartesian
|
||||
ELSE
|
||||
ALLOCATE( nqb(nq) )
|
||||
ALLOCATE( xqaux(3, nq) )
|
||||
ALLOCATE( letter(nq) )
|
||||
ALLOCATE( label_list(nq) )
|
||||
npk_label= 0
|
||||
DO n = 1, nq
|
||||
CALL read_line( input_line, end_of_file = tend, error = terr )
|
||||
IF (tend) CALL errore('ZG','Missing lines', 1)
|
||||
IF (terr) CALL errore('ZG','Error reading q points', 1)
|
||||
DO j = 1, 256 ! loop over all characters of input_line
|
||||
IF ( (ICHAR(input_line(j:j)) < 58 .AND. & ! a digit
|
||||
ICHAR(input_line(j:j)) > 47) &
|
||||
.OR.ICHAR(input_line(j:j)) == 43 .OR. & ! the + sign
|
||||
ICHAR(input_line(j:j)) == 45 .OR. & ! the - sign
|
||||
ICHAR(input_line(j:j)) == 46 ) THEN ! a dot .
|
||||
!
|
||||
! This is a digit, therefore this line contains the coordinates of the
|
||||
! k point. We read it and EXIT from the loop on characters
|
||||
!
|
||||
READ(input_line,*) xqaux(1, n), xqaux(2, n), xqaux(3, n), &
|
||||
nqb(n)
|
||||
EXIT
|
||||
ELSEIF ((ICHAR(input_line(j:j)) < 123 .AND. &
|
||||
ICHAR(input_line(j:j)) > 64)) THEN
|
||||
!
|
||||
! This is a letter, not a space character. We read the next three
|
||||
! characters and save them in the letter array, save also which k point
|
||||
! it is
|
||||
!
|
||||
npk_label=npk_label+ 1
|
||||
READ(input_line(j:),'(a3)') letter(npk_label)
|
||||
label_list(npk_label) =n
|
||||
!
|
||||
! now we remove the letters from input_line and read the number of points
|
||||
! of the line. The next two line should account for the case in which
|
||||
! there is only one space between the letter and the number of points.
|
||||
!
|
||||
nch=3
|
||||
IF ( ICHAR(input_line(j+ 1:j+ 1)) ==32 .OR. &
|
||||
ICHAR(input_line(j+2:j+2)) ==32 ) nch=2
|
||||
buffer =input_line(j+nch:)
|
||||
READ(buffer,*, err =20, iostat=ios) nqb(n)
|
||||
20 IF (ios /= 0) CALL errore('ZG',&
|
||||
'problem reading number of points', 1)
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
ENDDO
|
||||
IF (q_in_cryst_coord) k_points ='crystal'
|
||||
IF ( npk_label > 0 ) &
|
||||
CALL transform_label_coord(ibrav, celldm, xqaux, letter, &
|
||||
label_list, npk_label, nq, k_points, point_label_type )
|
||||
|
||||
DEALLOCATE(letter)
|
||||
DEALLOCATE(label_list)
|
||||
|
||||
CALL mp_bcast(xqaux, ionode_id, world_comm)
|
||||
CALL mp_bcast(nqb, ionode_id, world_comm)
|
||||
IF (q_in_cryst_coord) CALL cryst_to_cart(nq,xqaux, bg,+ 1)
|
||||
nqtot=SUM(nqb(1:nq- 1)) + 1
|
||||
DO i = 1, nq- 1
|
||||
IF (nqb(i) == 0) nqtot=nqtot+ 1
|
||||
ENDDO
|
||||
DEALLOCATE(q)
|
||||
ALLOCATE(q(3, nqtot))
|
||||
ALLOCATE(wq(nqtot))
|
||||
CALL generate_k_along_lines(nq, xqaux, nqb, q, wq, nqtot)
|
||||
nq=nqtot
|
||||
DEALLOCATE(xqaux)
|
||||
DEALLOCATE(nqb)
|
||||
ENDIF
|
||||
!
|
||||
!
|
||||
IF (ionode) READ (5, *) nq
|
||||
CALL mp_bcast(nq, ionode_id, world_comm)
|
||||
ALLOCATE ( q(3, nq) )
|
||||
IF (.NOT.q_in_band_form) THEN
|
||||
DO n = 1, nq
|
||||
IF (ionode) READ (5, *) (q(i, n), i = 1, 3)
|
||||
! IF (ionode) READ (5,'(3F10.6)') q(:, n)
|
||||
ENDDO
|
||||
CALL mp_bcast(q, ionode_id, world_comm)
|
||||
!
|
||||
IF (q_in_cryst_coord) CALL cryst_to_cart(nq, q, bg, +1)
|
||||
ELSE
|
||||
ALLOCATE( nqb(nq) )
|
||||
ALLOCATE( xqaux(3, nq) )
|
||||
ALLOCATE( letter(nq) )
|
||||
ALLOCATE( label_list(nq) )
|
||||
npk_label= 0
|
||||
DO n = 1, nq
|
||||
CALL read_line( input_line, end_of_file = tend, error = terr )
|
||||
IF (tend) CALL errore('ZG','Missing lines', 1)
|
||||
IF (terr) CALL errore('ZG','Error reading q points', 1)
|
||||
DO j = 1, 256 ! loop over all characters of input_line
|
||||
IF ( (ICHAR(input_line(j:j)) < 58 .AND. & ! a digit
|
||||
ICHAR(input_line(j:j)) > 47) &
|
||||
.OR.ICHAR(input_line(j:j)) == 43 .OR. & ! the + sign
|
||||
ICHAR(input_line(j:j)) == 45 .OR. & ! the - sign
|
||||
ICHAR(input_line(j:j)) == 46 ) THEN ! a dot .
|
||||
!
|
||||
! This is a digit, therefore this line contains the coordinates of the
|
||||
! k point. We read it and EXIT from the loop on characters
|
||||
!
|
||||
READ(input_line,*) xqaux(1, n), xqaux(2, n), xqaux(3, n), &
|
||||
nqb(n)
|
||||
EXIT
|
||||
ELSEIF ((ICHAR(input_line(j:j)) < 123 .AND. &
|
||||
ICHAR(input_line(j:j)) > 64)) THEN
|
||||
!
|
||||
! This is a letter, not a space character. We read the next three
|
||||
! characters and save them in the letter array, save also which k point
|
||||
! it is
|
||||
!
|
||||
npk_label=npk_label+ 1
|
||||
READ(input_line(j:),'(a3)') letter(npk_label)
|
||||
label_list(npk_label) =n
|
||||
!
|
||||
! now we remove the letters from input_line and read the number of points
|
||||
! of the line. The next two line should account for the case in which
|
||||
! there is only one space between the letter and the number of points.
|
||||
!
|
||||
nch=3
|
||||
IF ( ICHAR(input_line(j+ 1:j+ 1)) ==32 .OR. &
|
||||
ICHAR(input_line(j+2:j+2)) ==32 ) nch=2
|
||||
buffer =input_line(j+nch:)
|
||||
READ(buffer,*, err =20, iostat=ios) nqb(n)
|
||||
20 IF (ios /= 0) CALL errore('ZG',&
|
||||
'problem reading number of points', 1)
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
ENDDO
|
||||
IF (q_in_cryst_coord) k_points ='crystal'
|
||||
IF ( npk_label > 0 ) &
|
||||
CALL transform_label_coord(ibrav, celldm, xqaux, letter, &
|
||||
label_list, npk_label, nq, k_points, point_label_type )
|
||||
|
||||
DEALLOCATE(letter)
|
||||
DEALLOCATE(label_list)
|
||||
|
||||
CALL mp_bcast(xqaux, ionode_id, world_comm)
|
||||
CALL mp_bcast(nqb, ionode_id, world_comm)
|
||||
IF (q_in_cryst_coord) CALL cryst_to_cart(nq,xqaux, bg,+ 1)
|
||||
nqtot=SUM(nqb(1 : nq - 1)) + 1
|
||||
DO i = 1, nq - 1
|
||||
IF (nqb(i) == 0) nqtot=nqtot+ 1
|
||||
ENDDO
|
||||
DEALLOCATE(q)
|
||||
ALLOCATE(q(3, nqtot))
|
||||
ALLOCATE(wq(nqtot))
|
||||
CALL generate_k_along_lines(nq, xqaux, nqb, q, wq, nqtot)
|
||||
nq = nqtot
|
||||
DEALLOCATE(xqaux)
|
||||
DEALLOCATE(nqb)
|
||||
ENDIF
|
||||
!
|
||||
ENDIF ! q_external, q-list
|
||||
!
|
||||
IF (asr /= 'no') THEN
|
||||
CALL set_asr (asr, nr1, nr2, nr3, frc, zeu, &
|
||||
|
@ -503,37 +523,37 @@ PROGRAM ZG
|
|||
ENDIF
|
||||
!
|
||||
ALLOCATE ( dyn(3, 3, nat, nat), dyn_blk(3, 3, nat_blk, nat_blk) )
|
||||
ALLOCATE ( z(3*nat, 3*nat), w2(3*nat, nq), f_of_q(3, 3, nat, nat) )
|
||||
! mz_b
|
||||
ALLOCATE ( z(3 * nat, 3 * nat), w2(3*nat, nq), f_of_q(3, 3, nat, nat) )
|
||||
!
|
||||
IF (ionode .AND. ZG_conf) THEN
|
||||
ALLOCATE ( z_nq_zg(3*nat, 3*nat, nq),q_nq_zg(3, nq))
|
||||
z_nq_zg(:,:,:) = (0.d0, 0.d0)
|
||||
q_nq_zg(:,:) = 0.d0
|
||||
ALLOCATE ( z_nq_zg(3 * nat, 3 * nat, nq), q_nq_zg(3, nq))
|
||||
z_nq_zg(:, :, :) = (0.d0, 0.d0)
|
||||
q_nq_zg(:, :) = 0.d0
|
||||
ENDIF
|
||||
! mz_e
|
||||
!
|
||||
|
||||
IF (xmlifc) CALL set_sym(nat, tau, ityp, nspin_mag, m_loc )
|
||||
|
||||
ALLOCATE(num_rap_mode(3*nat, nq))
|
||||
ALLOCATE(num_rap_mode(3 * nat, nq))
|
||||
ALLOCATE(high_sym(nq))
|
||||
num_rap_mode=- 1
|
||||
high_sym=.TRUE.
|
||||
|
||||
DO n= 1, nq
|
||||
DO n = 1, nq
|
||||
dyn(:,:,:,:) = (0.d0, 0.d0)
|
||||
|
||||
lo_to_split=.FALSE.
|
||||
f_of_q(:,:,:,:) = (0.d0,0.d0)
|
||||
lo_to_split = .FALSE.
|
||||
f_of_q(:,:,:,:) = (0.d0, 0.d0)
|
||||
|
||||
CALL setupmat (q(1,n), dyn, nat, at, bg, tau, itau_blk, nsc, alat, &
|
||||
dyn_blk, nat_blk, at_blk, bg_blk, tau_blk, omega_blk, &
|
||||
loto_2d, &
|
||||
epsil, zeu, frc, nr1,nr2,nr3, has_zstar, rws, nrws,f_of_q)
|
||||
epsil, zeu, frc, nr1,nr2,nr3, has_zstar, rws, nrws, f_of_q)
|
||||
|
||||
IF (.not.loto_2d) THEN
|
||||
qhat(1) = q(1, n) *at(1, 1) +q(2, n) *at(2, 1) +q(3, n) *at(3, 1)
|
||||
qhat(2) = q(1, n) *at(1, 2) +q(2, n) *at(2, 2) +q(3, n) *at(3, 2)
|
||||
qhat(3) = q(1, n) *at(1, 3) +q(2, n) *at(2, 3) +q(3, n) *at(3,3)
|
||||
qhat(1) = q(1, n) * at(1, 1) + q(2, n) * at(2, 1) + q(3, n) * at(3, 1)
|
||||
qhat(2) = q(1, n) * at(1, 2) + q(2, n) * at(2, 2) + q(3, n) * at(3, 2)
|
||||
qhat(3) = q(1, n) * at(1, 3) + q(2, n) * at(2, 3) + q(3, n) * at(3, 3)
|
||||
IF ( ABS( qhat(1) - NINT (qhat(1) ) ) <= eps .AND. &
|
||||
ABS( qhat(2) - NINT (qhat(2) ) ) <= eps .AND. &
|
||||
ABS( qhat(3) - NINT (qhat(3) ) ) <= eps ) THEN
|
||||
|
@ -578,41 +598,29 @@ PROGRAM ZG
|
|||
!
|
||||
END IF
|
||||
|
||||
! mz comments out !!!!!!!! if(iout_dyn.ne.0) call WRITE_dyn_on_file(q(1, n), dyn, nat, iout_dyn)
|
||||
|
||||
|
||||
CALL dyndiag(nat, ntyp, amass, ityp, dyn, w2(1, n), z)
|
||||
! mz_b fill a 3D matrix with all eigenvectors
|
||||
! fill a 3D matrix with all eigenvectors
|
||||
CALL mp_bcast(z, ionode_id, world_comm)
|
||||
IF (ionode .AND. ZG_conf) THEN
|
||||
z_nq_zg(:,:, n) = z(:,:)
|
||||
z_nq_zg(:, :, n) = z(:, :)
|
||||
q_nq_zg(:, n) = q(:, n)
|
||||
ENDIF
|
||||
! mz_e
|
||||
!!!!! mz comments out ! IF (ionode.and.iout_eig.ne.0) &
|
||||
!!!!! & CALL WRITE_eigenvectors(nat, ntyp, amass, ityp,q(1, n),w2(1, n), z, iout_eig)
|
||||
!
|
||||
! Cannot use the small group of \Gamma to analize the symmetry
|
||||
! of the mode IF there is an electric field.
|
||||
!
|
||||
IF (xmlifc.AND..NOT.lo_to_split) THEN
|
||||
WRITE(stdout,'(10x,"xq=", 3F8.4)') q(:, n)
|
||||
CALL find_representations_mode_q(nat, ntyp,q(:, n), &
|
||||
CALL find_representations_mode_q(nat, ntyp, q(:, n), &
|
||||
w2(:, n), z,tau, ityp, amass, num_rap_mode(:, n), nspin_mag)
|
||||
IF (code_group == code_group_old.OR.high_sym(n- 1)) high_sym(n) =.FALSE.
|
||||
code_group_old= code_group
|
||||
ENDIF
|
||||
!
|
||||
!
|
||||
|
||||
!!!!!!!!!mz IF (ionode.and.iout.ne.0) CALL WRITEmodes(nat,q(1, n),w2(1, n), z, iout)
|
||||
|
||||
!
|
||||
ENDDO !nq
|
||||
!
|
||||
IF(iout .NE. 0.and.ionode) CLOSE(unit=iout)
|
||||
IF(iout_dyn .NE. 0) CLOSE(unit=iout_dyn)
|
||||
IF(iout_eig .NE. 0) CLOSE(unit=iout_eig)
|
||||
!
|
||||
!
|
||||
!
|
||||
|
@ -621,20 +629,19 @@ PROGRAM ZG
|
|||
!
|
||||
!
|
||||
!
|
||||
!mz_b
|
||||
!
|
||||
CALL mp_bcast(w2, ionode_id, world_comm)
|
||||
IF ( ionode .AND. ZG_conf ) call ZG_configuration(nq, nat, ntyp, amass, &
|
||||
ityp, q_nq_zg, w2, z_nq_zg, ios, &
|
||||
dimx, dimy, dimz, nloops, error_thresh, synch,tau, alat, atm_zg, &
|
||||
ntypx, at, q_in_cryst_coord, q_in_band_form, T, incl_qA, &
|
||||
dimx, dimy, dimz, nloops, error_thresh, synch, tau, alat, atm_zg, &
|
||||
ntypx, at, q_in_cryst_coord, q_external, T, incl_qA, &
|
||||
compute_error, single_phonon_displ)
|
||||
!mz_e
|
||||
!
|
||||
!
|
||||
DEALLOCATE (z, w2, dyn, dyn_blk)
|
||||
! mz_b
|
||||
!
|
||||
IF (ionode .AND. ZG_conf) DEALLOCATE (z_nq_zg, q_nq_zg)
|
||||
! mz_e
|
||||
!
|
||||
!
|
||||
! for a2F
|
||||
!
|
||||
|
@ -2129,20 +2136,135 @@ SUBROUTINE find_representations_mode_q ( nat, ntyp, xq, w2, u, tau, ityp, &
|
|||
RETURN
|
||||
END SUBROUTINE find_representations_mode_q
|
||||
|
||||
!mz adds this routine
|
||||
SUBROUTINE qpoint_gen1(dimx, dimy, dimz, ctrAB)
|
||||
!
|
||||
use kinds, only: dp
|
||||
|
||||
IMPLICIT NONE
|
||||
! input
|
||||
INTEGER, intent(in) :: dimx, dimy, dimz
|
||||
INTEGER, intent(out) :: ctrAB
|
||||
!! REAL(DP), intent(out) :: q_AB(:,:)
|
||||
! local
|
||||
INTEGER :: i, j, k, n, ctr, nqs
|
||||
REAL(DP), ALLOCATABLE :: q_all(:,:)
|
||||
REAL(DP) :: q_B(3), q_A(3), eps
|
||||
!
|
||||
nqs = dimx * dimy * dimz
|
||||
eps = 1.0E-06
|
||||
!
|
||||
ALLOCATE(q_all(3, nqs))
|
||||
!
|
||||
DO i = 1, dimx
|
||||
DO j = 1, dimy
|
||||
DO k = 1, dimz
|
||||
! this is nothing but consecutive ordering
|
||||
n = (k - 1) + (j - 1) * dimz + (i - 1) * dimy * dimz + 1
|
||||
! q_all are the components of the complete grid in crystal axis
|
||||
q_all(1, n) = dble(i - 1) / dimx ! + dble(k1)/2/dimx
|
||||
q_all(2, n) = dble(j - 1) / dimy ! + dble(k2)/2/dimy
|
||||
q_all(3, n) = dble(k - 1) / dimz ! + dble(k3)/2/dimz ! k1 , k2 , k3 is for the shift
|
||||
ENDDO
|
||||
ENDDO
|
||||
ENDDO
|
||||
!
|
||||
ctr = 0
|
||||
ctrAB = 0
|
||||
DO i = 1, nqs
|
||||
q_A = q_all(:, i) + q_all(:, i) ! q_A to find if q belongs in A
|
||||
IF (((ABS(q_A(1)) .LT. eps) .OR. (abs(abs(q_A(1)) - 1) .LT. eps)) .AND. &
|
||||
((ABS(q_A(2)) .LT. eps) .OR. (abs(abs(q_A(2)) - 1) .LT. eps)) .AND. &
|
||||
((ABS(q_A(3)) .LT. eps) .OR. (abs(abs(q_A(3)) - 1) .LT. eps))) THEN
|
||||
ctrAB = ctrAB + 1
|
||||
ELSE
|
||||
DO j = i + 1, nqs
|
||||
q_B = q_all(:, i) + q_all(:, j)
|
||||
IF (((ABS(q_B(1)) .LT. eps) .OR. (abs(abs(q_B(1)) - 1) .LT. eps)) .AND. &
|
||||
((ABS(q_B(2)) .LT. eps) .OR. (abs(abs(q_B(2)) - 1) .LT. eps)) .AND. &
|
||||
((ABS(q_B(3)) .LT. eps) .OR. (abs(abs(q_B(3)) - 1) .LT. eps))) THEN
|
||||
ctr = ctr + 1
|
||||
ctrAB = ctrAB + 1
|
||||
END IF
|
||||
END DO
|
||||
END IF
|
||||
END DO
|
||||
!
|
||||
DEALLOCATE(q_all)
|
||||
!
|
||||
!
|
||||
END SUBROUTINE qpoint_gen1
|
||||
|
||||
SUBROUTINE qpoint_gen2(dimx, dimy, dimz, ctrAB, q_AB)
|
||||
!
|
||||
use kinds, only: dp
|
||||
|
||||
IMPLICIT NONE
|
||||
! input
|
||||
INTEGER, intent(in) :: dimx, dimy, dimz, ctrAB
|
||||
REAL(DP), intent(out) :: q_AB(3, ctrAB)
|
||||
! local
|
||||
INTEGER :: i, j, k, n, ctr, nqs
|
||||
REAL(DP), ALLOCATABLE :: q_all(:, :)
|
||||
REAL(DP) :: q_B(3), q_A(3), eps
|
||||
!
|
||||
nqs = dimx * dimy * dimz
|
||||
eps = 1.0E-06
|
||||
!
|
||||
ALLOCATE(q_all(3, nqs))
|
||||
DO i = 1, dimx
|
||||
DO j = 1, dimy
|
||||
DO k = 1, dimz
|
||||
! this is nothing but consecutive ordering
|
||||
n = (k - 1) + (j - 1) * dimz + (i - 1) * dimy * dimz + 1
|
||||
! q_all are the components of the complete grid in crystal axis
|
||||
q_all(1, n) = dble(i - 1) / dimx ! + dble(k1)/2/dimx
|
||||
q_all(2, n) = dble(j - 1) / dimy ! + dble(k2)/2/dimy
|
||||
q_all(3, n) = dble(k - 1) / dimz ! + dble(k3)/2/dimz ! k1 , k2 , k3 is for the shift
|
||||
ENDDO
|
||||
ENDDO
|
||||
ENDDO
|
||||
!
|
||||
ctr = 0
|
||||
DO i = 1, nqs
|
||||
q_A = q_all(:, i) + q_all(:, i) ! q_A to find if q belongs in A
|
||||
IF (((ABS(q_A(1)) .LT. eps) .OR. (abs(abs(q_A(1)) - 1) .LT. eps)) .AND. &
|
||||
((ABS(q_A(2)) .LT. eps) .OR. (abs(abs(q_A(2)) - 1) .LT. eps)) .AND. &
|
||||
((ABS(q_A(3)) .LT. eps) .OR. (abs(abs(q_A(3)) - 1) .LT. eps))) THEN
|
||||
ctr = ctr + 1
|
||||
q_AB(:, ctr) = q_all(:, i)
|
||||
! write(*,*) "A", q_AB(:, ctr)
|
||||
ELSE
|
||||
DO j = i + 1, nqs
|
||||
q_B = q_all(:, i) + q_all(:, j)
|
||||
IF (((ABS(q_B(1)) .LT. eps) .OR. (abs(abs(q_B(1)) - 1) .LT. eps)) .AND. &
|
||||
((ABS(q_B(2)) .LT. eps) .OR. (abs(abs(q_B(2)) - 1) .LT. eps)) .AND. &
|
||||
((ABS(q_B(3)) .LT. eps) .OR. (abs(abs(q_B(3)) - 1) .LT. eps))) THEN
|
||||
ctr = ctr + 1
|
||||
q_AB(:, ctr) = q_all(:, i)
|
||||
! write(*,*) q_AB(:, ctr)
|
||||
END IF
|
||||
END DO
|
||||
END IF
|
||||
END DO
|
||||
!
|
||||
DEALLOCATE(q_all)
|
||||
|
||||
END SUBROUTINE qpoint_gen2
|
||||
|
||||
SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
||||
dimx, dimy, dimz, nloops, error_thresh, synch,tau, alat, atm, &
|
||||
ntypx, at, q_in_cryst_coord, q_in_band_form, T, incl_qA, &
|
||||
dimx, dimy, dimz, nloops, error_thresh, synch, tau, alat, atm, &
|
||||
ntypx, at, q_in_cryst_coord, q_external, T, incl_qA, &
|
||||
compute_error, single_phonon_displ)
|
||||
!
|
||||
use kinds, only: dp
|
||||
use constants, only: amu_ry, ry_to_thz, ry_to_cmm1, H_PLANCK_SI, &
|
||||
K_BOLTZMANN_SI, AMU_SI, pi
|
||||
USE cell_base, ONLY : bg
|
||||
USE io_global, ONLY : ionode
|
||||
implicit none
|
||||
IMPLICIT NONE
|
||||
! input
|
||||
CHARACTER(LEN=3), intent(in) :: atm(ntypx)
|
||||
LOGICAL, intent(in) :: synch, q_in_cryst_coord, q_in_band_form
|
||||
LOGICAL, intent(in) :: synch, q_in_cryst_coord, q_external
|
||||
LOGICAL, intent(in) :: incl_qA, compute_error, single_phonon_displ
|
||||
INTEGER, intent(in) :: dimx, dimy, dimz, nloops
|
||||
INTEGER, intent(in) :: nq, nat, ntyp, ios, ntypx
|
||||
|
@ -2155,12 +2277,12 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
!
|
||||
! local
|
||||
CHARACTER(len=256) :: filename
|
||||
CHARACTER(len=256) :: pointer_etta, pointer_T
|
||||
CHARACTER(len=256) :: pointer_etta
|
||||
!
|
||||
INTEGER :: nat3, na, nta, ipol, i, j, k, qp, ii, p, kk
|
||||
INTEGER :: nq_tot, pn, combs, combs_all, sum_zg
|
||||
INTEGER, ALLOCATABLE :: Mx_mat(:,:), Mx_mat_or(:,:), M_mat(:,:), V_mat(:)
|
||||
INTEGER, ALLOCATABLE :: Rlist(:,:)
|
||||
INTEGER, ALLOCATABLE :: Mx_mat(:, :), Mx_mat_or(:, :), M_mat(:, :), V_mat(:)
|
||||
INTEGER, ALLOCATABLE :: Rlist(:, :)
|
||||
! nq_tot total number of q-points (including sets A, B, C)
|
||||
! pn combinations
|
||||
INTEGER :: ctr, ctr2, ctrA, ctrB, ctrAB
|
||||
|
@ -2176,15 +2298,15 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
REAL(DP), PARAMETER :: eps = 1.0d-6
|
||||
REAL(DP) :: hbar, ang, JOULE_TO_RY, u_rand, dotp, PE_nq, KE_nq
|
||||
! ALLOCATE TABLES
|
||||
REAL(DP), ALLOCATABLE :: equil_p(:,:,:), T_fact(:,:), DW_fact(:,:), qA(:,:), qB(:,:), DWp_fact(:,:), Tp_fact(:,:)
|
||||
REAL(DP), ALLOCATABLE :: equil_p(:, :, :), T_fact(:, :), DW_fact(:, :), qA(:, :), qB(:, :), DWp_fact(:, :), Tp_fact(:, :)
|
||||
! for displacements
|
||||
REAL(DP), ALLOCATABLE :: Cx_matA(:,:), Cx_matB(:,:), Cx_matAB(:,:), Bx_vect(:)
|
||||
REAL(DP), ALLOCATABLE :: Cx_matA(:, :), Cx_matB(:, :), Cx_matAB(:, :), Bx_vect(:)
|
||||
! for momenta/velocities
|
||||
REAL(DP), ALLOCATABLE :: Cpx_matA(:,:), Cpx_matB(:,:), Cpx_matAB(:,:)
|
||||
! matrices to account for the coupling terms between different phonon branches !
|
||||
REAL(DP), ALLOCATABLE :: sum_error_D(:,:), sum_diag_D(:,:), sum_error_B(:), sum_diag_B(:), sum_error_B2(:), sum_diag_B2(:)
|
||||
REAL(DP), ALLOCATABLE :: D_tau(:,:,:), P_tau(:,:,:), ratio_zg(:)! displacements and velocities
|
||||
REAL(DP), ALLOCATABLE :: R_mat(:,:), E_vect(:,:), D_vect(:,:), F_vect(:,:)
|
||||
REAL(DP), ALLOCATABLE :: sum_error_D(:, :), sum_diag_D(:, :), sum_error_B(:), sum_diag_B(:), sum_error_B2(:), sum_diag_B2(:)
|
||||
REAL(DP), ALLOCATABLE :: D_tau(:, :, :), P_tau(:, :, :), ratio_zg(:)! displacements and velocities
|
||||
REAL(DP), ALLOCATABLE :: R_mat(:, :), E_vect(:, :), D_vect(:, :), F_vect(:, :)
|
||||
! D_tau : atomic displacements
|
||||
! z_nq_A : eigenvectors for q-points in set A
|
||||
! z_nq_B : eigenvectors for q-points in set B
|
||||
|
@ -2195,13 +2317,13 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
!
|
||||
COMPLEX(DP) :: z_zg(3 * nat, 3 * nat, nq)
|
||||
COMPLEX(DP) :: imagi
|
||||
COMPLEX(DP), ALLOCATABLE :: z_nq_synch(:,:,:), z_nq_A(:,:,:), z_nq_B(:,:,:)
|
||||
COMPLEX(DP), ALLOCATABLE :: z_nq_synch(:, :, :), z_nq_A(:, :, :), z_nq_B(:, :, :)
|
||||
! singular value decomposition matrices U = R*conj(L)
|
||||
!
|
||||
INTEGER :: INFO, N_dim, M_dim, K_dim, L_dim , LWORK
|
||||
REAL(DP), ALLOCATABLE :: RWORK(:), S_svd(:)
|
||||
COMPLEX(DP), ALLOCATABLE :: M_over(:,:,:), U_svd(:,:,:), U_svd_d(:,:), dotp_mat(:,:)
|
||||
COMPLEX(DP), ALLOCATABLE :: L_svd(:,:), R_svd(:,:), WORK(:), U_svd_d_new(:,:)
|
||||
COMPLEX(DP), ALLOCATABLE :: M_over(:, :, :), U_svd(:, :, :), U_svd_d(:, :), dotp_mat(:, :)
|
||||
COMPLEX(DP), ALLOCATABLE :: L_svd(:, :), R_svd(:, :), WORK(:), U_svd_d_new(:, :)
|
||||
COMPLEX*16 dum( 1 ) ! for the ZGEEV
|
||||
!
|
||||
!
|
||||
|
@ -2285,11 +2407,15 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
ENDDO
|
||||
!
|
||||
! WRITE(*,*) "total vibrational energy per cell", 2*dotp/dimx/dimy/dimz, "Ry"
|
||||
IF (q_in_cryst_coord .EQV. .FALSE.) THEN
|
||||
! in both cases convert them to crystal
|
||||
CALL cryst_to_cart(nq, q, at, -1)
|
||||
ELSE
|
||||
CALL cryst_to_cart(nq, q, at, -1)
|
||||
IF (q_external) THEN
|
||||
IF (q_in_cryst_coord .EQV. .FALSE.) THEN
|
||||
! in both cases convert them to crystal
|
||||
CALL cryst_to_cart(nq, q, at, -1)
|
||||
ELSE
|
||||
CALL cryst_to_cart(nq, q, at, -1)
|
||||
ENDIF
|
||||
ELSE
|
||||
CALL cryst_to_cart(nq, q, at, -1)
|
||||
ENDIF
|
||||
! To distinguish between different sets of qpoints, A, B, C
|
||||
! to find how many points belong to set A and then allocate matrix accordingly
|
||||
|
@ -2421,7 +2547,6 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
DO ii = 1, pn - 1
|
||||
M_over = 0.d0
|
||||
! Construct the overlap matrix M_{\nu,\nu'}
|
||||
!WRITE(*,*) i
|
||||
S_svd = 0.d0
|
||||
DO p = 1, nat3
|
||||
DO j = 1, nat3
|
||||
|
@ -2447,21 +2572,18 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
DO qp = 1, nat3
|
||||
DO k = 1, nat3
|
||||
dotp_mat(qp, k) = CONJG(M_over(qp, qp, ii)) * CONJG(U_svd_d(k, ii))
|
||||
! WRITE(*,*) REAL(dotp_mat(qp, k)), aimag(dotp_mat(qp, k))
|
||||
ENDDO
|
||||
ENDDO
|
||||
dotp_mat = ABS(REAL(dotp_mat))
|
||||
DO qp = 1, nat3
|
||||
p = MAXLOC(REAL(dotp_mat(qp,:)), 1)
|
||||
!!! WRITE(*,*) p, "p_values"
|
||||
U_svd_d_new(qp, ii) = U_svd_d(p, ii)
|
||||
ENDDO
|
||||
DO qp = 1, nat3
|
||||
DO k = 1, nat3
|
||||
z_nq_synch(k, qp, ii + i + 1) = U_svd_d_new(qp, ii) *z_zg(k, qp, ii + i + 1)
|
||||
z_nq_synch(k, qp, ii + i + 1) = U_svd_d_new(qp, ii) * z_zg(k, qp, ii + i + 1)
|
||||
ENDDO
|
||||
ENDDO
|
||||
! overWRITE z_zg
|
||||
z_zg(:, :, ii + i + 1) = z_nq_synch(:, :, ii + i + 1)
|
||||
ENDDO ! ii-loop
|
||||
ENDDO ! i-loop
|
||||
|
@ -2503,17 +2625,15 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
dotp_mat = ABS(DBLE(dotp_mat))
|
||||
DO qp = 1, nat3
|
||||
p = MAXLOC(DBLE(dotp_mat(qp, :)), 1)
|
||||
!! WRITE(*,*) p, "p_values"
|
||||
U_svd_d_new(qp, ii) = U_svd_d(p, ii)
|
||||
ENDDO
|
||||
!!!!!
|
||||
! WRITE(*,*) "diago"
|
||||
!
|
||||
DO qp = 1, nat3
|
||||
DO k = 1, nat3
|
||||
z_nq_synch(k, qp, ii + ctr + 1) = U_svd_d_new(qp, ii) * z_zg(k, qp, ii + ctr + 1)
|
||||
ENDDO
|
||||
ENDDO
|
||||
! overWRITE z_zg
|
||||
! overwrite z_zg
|
||||
z_zg(:, :, ii + ctr + 1) = z_nq_synch(:, :, ii + ctr + 1)
|
||||
ENDDO ! ii-loop
|
||||
ENDIF ! mod(ctrAB, pn)
|
||||
|
@ -2563,7 +2683,7 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
combs = combs + i
|
||||
ENDDO
|
||||
combs_all = 2 * combs + nat3 !; % with x1^2, x2^2 ...
|
||||
!WRITE(*,*) combs, combs_all
|
||||
!
|
||||
! combs_all refere also to all possible pais ({\k,\a}, {\k' \a'})
|
||||
!
|
||||
ALLOCATE(ratio_zg(combs_all))
|
||||
|
@ -2581,7 +2701,6 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
! we just select possible permutations until the error is lower than a
|
||||
! threshold. The lower the threshold the longer the algorithm can take.
|
||||
! filename = 'ZG-configuration.txt'
|
||||
WRITE(pointer_T,'(f5.1)') T
|
||||
WRITE(pointer_etta,'(f5.3)') error_thresh
|
||||
filename = 'ZG-configuration_' // TRIM( pointer_etta ) // '.dat' !'.fp'
|
||||
OPEN (unit = 80, file = filename, status = 'unknown', form = 'formatted')
|
||||
|
@ -2592,19 +2711,19 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
! We also make the inherent choice that each column of Mx_mat_or has the same number of positive and negative signs
|
||||
Mx_mat_or = 0
|
||||
DO i = 1, 2 * pn / 4, 2
|
||||
Mx_mat_or(i,:) = M_mat(i,:)
|
||||
Mx_mat_or(i, :) = M_mat(i, :)
|
||||
ENDDO
|
||||
ctr = 1
|
||||
DO i = 2, 2 * pn / 4, 2
|
||||
Mx_mat_or(i,:) = M_mat(2 * pn + 1 - i,:)
|
||||
Mx_mat_or(i, :) = M_mat(2 * pn + 1 - i, :)
|
||||
ctr = ctr + 1
|
||||
ENDDO
|
||||
DO i = 2 * pn / 4 + 1, 2 * pn / 2, 2
|
||||
Mx_mat_or(i,:) = M_mat(i + 1,:)
|
||||
Mx_mat_or(i, :) = M_mat(i + 1, :)
|
||||
ctr = ctr + 1
|
||||
ENDDO
|
||||
DO i = 2 * pn / 4 + 2, 2 * pn / 2, 2
|
||||
Mx_mat_or(i,:) = M_mat(2 * pn + 2 - i,:)
|
||||
Mx_mat_or(i, :) = M_mat(2 * pn + 2 - i, :)
|
||||
ctr = ctr + 1
|
||||
ENDDO
|
||||
!
|
||||
|
@ -2615,8 +2734,8 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
! and ALLOCATE the M_x,y matrices ! so we DO not have specific order !
|
||||
call random_number(u_rand)
|
||||
ii = 1 + FLOOR(i * u_rand)
|
||||
Mx_mat(i,:) = Mx_mat_or(ii,:)
|
||||
Mx_mat_or(ii,:) = Mx_mat_or(i,:) ! so I DO not repeat this entry
|
||||
Mx_mat(i, :) = Mx_mat_or(ii, :)
|
||||
Mx_mat_or(ii, :) = Mx_mat_or(i, :) ! so I DO not repeat this entry
|
||||
ENDDO
|
||||
! DO q-points in sets A n B
|
||||
! based on the sets of signs we genereated from the above loop
|
||||
|
@ -2695,7 +2814,7 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
ctr = ctr + 1
|
||||
ENDDO
|
||||
ENDDO ! p loop
|
||||
! D_vect(:, ii) =MATMUL(R_mat, Bx_vect)
|
||||
! D_vect(:, ii) = MATMUL(R_mat, Bx_vect)
|
||||
! D_vect contains the diagonal and the non-diagonal terms (i.e. v = v' and v .neq. v')
|
||||
! E_vect contains only the diagonal terms (i.e. v = v')
|
||||
! F_vect contains the error (i.e.each entry is the contribution from v \neq v') at each q point to minimize
|
||||
|
@ -2707,7 +2826,7 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
!
|
||||
!
|
||||
!Compute error
|
||||
!WRITE(80,*) "Sum of diagonal terms per q-point:", SUM(sum_diag_D)/ctrAB
|
||||
!
|
||||
!
|
||||
IF (compute_error) THEN
|
||||
sum_error_D = 0.0d0
|
||||
|
@ -2743,7 +2862,7 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
dotp = dotp + q(i, ii) * Rlist(j, ii)!
|
||||
ENDDO ! ii
|
||||
sum_error_B2(ctr2) = sum_error_B2(ctr2) + cos(2.0d0 * pi * dotp) * F_vect(p, i)
|
||||
!WRITE(*,*) "cosss", cos(2.0d0*pi*dotp)
|
||||
!
|
||||
ENDDO ! i
|
||||
ctr2 = ctr2 + 1
|
||||
ENDDO ! p
|
||||
|
@ -2814,7 +2933,7 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
IF (ABS(qB(ctrB, 1)) < eps) qB(ctrB, 1) = 0.0
|
||||
IF (ABS(qB(ctrB, 2)) < eps) qB(ctrB, 2) = 0.0
|
||||
IF (ABS(qB(ctrB, 3)) < eps) qB(ctrB, 3) = 0.0
|
||||
!WRITE(*,*) "ohohoB", qB(ctrB,:)
|
||||
!
|
||||
ENDIF
|
||||
ENDDO
|
||||
!
|
||||
|
@ -2836,9 +2955,9 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
WRITE(80,'(A20, 1F6.2,A2)') 'Temperature is: ' , T ,' K'
|
||||
WRITE(80,*) "Atomic positions", nat * nq_tot
|
||||
WRITE(81,*) "ZG-Velocities (Ang/ps)"
|
||||
! Generate displacements and velocities
|
||||
! remember nq_tot is also equal to the number of cells
|
||||
! Here now I ll generate the displacements according to
|
||||
! Generate displacements and velocities.
|
||||
! Remember nq_tot is also equal to the number of cells
|
||||
! Here the displacements are generated according to
|
||||
! Np^(- 1/2)(Mo/Mk)^(1/2)[\sum_{q \in B} e^{1qR_p}e^v_{ka}(q)(x_{qv}+y_{q\nu})
|
||||
! z_zg(nat3, nat3, nq))
|
||||
!
|
||||
|
@ -2872,7 +2991,7 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
DO qp = 1, ctrA
|
||||
dotp = 0.0d0
|
||||
DO ii = 1, 3
|
||||
dotp = dotp + qA(qp, ii) * Rlist(p, ii)! + qlistA(q, 2) * Rlist(p, 2) +qlistA(q, 3) * Rlist(p, 3)
|
||||
dotp = dotp + qA(qp, ii) * Rlist(p, ii)!
|
||||
ENDDO
|
||||
DO j = 1, nat3
|
||||
D_tau(p, k, i) = D_tau(p, k, i) + SQRT(1.0d0 / nq_tot / amass(nta)) * cos(2.0d0 * pi * dotp) &
|
||||
|
@ -2884,7 +3003,7 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
ENDIF ! IF incl_qA
|
||||
!
|
||||
ctr = ctr + 1 ! for k and i
|
||||
IF (abs(D_tau(p, k, i)) .GT. 5) CALL errore('ZG', 'Displacement very large', D_tau(p, k, i) )
|
||||
IF (ABS(D_tau(p, k, i)) .GT. 5) CALL errore('ZG', 'Displacement very large', D_tau(p, k, i) )
|
||||
D_tau(p, k, i) = equil_p(p, k, i) + D_tau(p, k, i) ! add equil structure
|
||||
ENDDO ! end i for cart directions
|
||||
ENDDO ! end k loop over nat
|
||||
|
@ -2986,7 +3105,7 @@ SUBROUTINE ZG_configuration(nq, nat, ntyp, amass, ityp, q, w2, z_nq_zg, ios, &
|
|||
!
|
||||
!
|
||||
DEALLOCATE(T_fact, Tp_fact, DW_fact, DWp_fact)
|
||||
DEALLOCATE(equil_p, Rlist, D_tau,qA,qB, z_nq_A, z_nq_B)
|
||||
DEALLOCATE(equil_p, Rlist, D_tau, qA, qB, z_nq_A, z_nq_B)
|
||||
DEALLOCATE(Cx_matA, Cx_matB, Cx_matAB)
|
||||
DEALLOCATE(Cpx_matA, Cpx_matB, Cpx_matAB)
|
||||
DEALLOCATE(Mx_mat_or, Mx_mat, M_mat, V_mat, ratio_zg)
|
||||
|
@ -3109,13 +3228,13 @@ SUBROUTINE single_phonon(nq_tot, nat, ctrB, ctrA, nat3, ityp, ntyp, &
|
|||
nta = ityp(k)
|
||||
DO i = 1, 3 ! i is for cart directions
|
||||
D_tau(p, k, i) = D_tau(p, k, i) + SQRT(2.0d0 / nq_tot / amass(nta)) * DBLE(EXP(imagi * 2.0d0 * pi * dotp) &
|
||||
* z_nq_B(ctr, j, qp) * (1.d0 + imagi) * abs(Cx_matB(j, qp)))
|
||||
* z_nq_B(ctr, j, qp) * (1.d0 + imagi) * ABS(Cx_matB(j, qp)))
|
||||
P_tau(p, k, i) = P_tau(p, k, i) + SQRT(2.0d0 / nq_tot * amass(nta)) * DBLE(EXP(imagi * 2.0d0 * pi * dotp) &
|
||||
* z_nq_B(ctr, j, qp) * (1.d0 + imagi) * abs(Cpx_matB(j, qp))) / (amass(nta) * AMU_SI)
|
||||
* z_nq_B(ctr, j, qp) * (1.d0 + imagi) * ABS(Cpx_matB(j, qp))) / (amass(nta) * AMU_SI)
|
||||
! Here we calculate the momenta of the nuclei and finally
|
||||
!we divide by (amass(nta) *AMU_SI) to get the velocities.
|
||||
ctr = ctr + 1 ! for k and i
|
||||
IF (abs(D_tau(p, k, i)) .GT. 5) CALL errore('ZG', 'Displacement very large', D_tau(p, k, i) )
|
||||
IF (ABS(D_tau(p, k, i)) .GT. 5) CALL errore('ZG', 'Displacement very large', D_tau(p, k, i) )
|
||||
D_tau(p, k, i) = equil_p(p, k, i) + D_tau(p, k, i) ! add equil structure
|
||||
ENDDO ! i loop
|
||||
! write output data
|
||||
|
@ -3144,13 +3263,13 @@ SUBROUTINE single_phonon(nq_tot, nat, ctrB, ctrA, nat3, ityp, ntyp, &
|
|||
nta = ityp(k)
|
||||
DO i = 1, 3 ! i is for cart directions
|
||||
D_tau(p, k, i) = D_tau(p, k, i) + SQRT(2.0d0 / nq_tot / amass(nta)) * DBLE(EXP(imagi * 2.0d0 * pi * dotp) &
|
||||
* z_nq_A(ctr, j, qp) * (1.d0 + imagi) * abs(Cx_matA(j, qp)))
|
||||
* z_nq_A(ctr, j, qp) * (1.d0 + imagi) * ABS(Cx_matA(j, qp)))
|
||||
P_tau(p, k, i) = P_tau(p, k, i) + SQRT(2.0d0 / nq_tot * amass(nta)) * DBLE(EXP(imagi * 2.0d0 * pi * dotp) &
|
||||
* z_nq_A(ctr, j, qp) * (1.d0 + imagi) * abs(Cpx_matA(j, qp))) / (amass(nta) * AMU_SI)
|
||||
* z_nq_A(ctr, j, qp) * (1.d0 + imagi) * ABS(Cpx_matA(j, qp))) / (amass(nta) * AMU_SI)
|
||||
! Here we calculate the momenta of the nuclei and finally
|
||||
!we divide by (amass(nta) *AMU_SI) to get the velocities.
|
||||
ctr = ctr + 1 ! for k and i
|
||||
IF (abs(D_tau(p, k, i)) .GT. 5) CALL errore('ZG', 'Displacement very large', D_tau(p, k, i) )
|
||||
IF (ABS(D_tau(p, k, i)) .GT. 5) CALL errore('ZG', 'Displacement very large', D_tau(p, k, i) )
|
||||
D_tau(p, k, i) = equil_p(p, k, i) + D_tau(p, k, i) ! add equil structure
|
||||
ENDDO ! i loop
|
||||
! write output data
|
||||
|
@ -3162,36 +3281,6 @@ SUBROUTINE single_phonon(nq_tot, nat, ctrB, ctrA, nat3, ityp, ntyp, &
|
|||
ENDDO ! j loop
|
||||
ENDDO ! qp loop
|
||||
!
|
||||
! !Repeat for minus q now:
|
||||
! !
|
||||
! WRITE(85,'(A30, 3F8.4, A15, i)') "Phonon mode at q-point", -qB(qp, :), " and branch:", j
|
||||
! WRITE(86,'(A30, 3F8.4, A15, i)') "Phonon mode at q-point", -qB(qp, :), " and branch:", j
|
||||
! D_tau = 0.0d0
|
||||
! P_tau = 0.0d0
|
||||
! DO p = 1, nq_tot
|
||||
! dotp = 0.0d0
|
||||
! DO ii = 1, 3
|
||||
! dotp = dotp + -qB(qp, ii) * Rlist(p, ii)! dot product between q and R
|
||||
! ENDDO
|
||||
! ctr = 1
|
||||
! DO k = 1, nat ! k represents the atom
|
||||
! nta = ityp(k)
|
||||
! DO i = 1, 3 ! i is for cart directions
|
||||
! D_tau(p, k, i) = D_tau(p, k, i) + SQRT(2.0d0 / nq_tot / amass(nta)) * DBLE(EXP(imagi * 2.0d0 * pi * dotp) &
|
||||
! * CONJG(z_nq_B(ctr, j, qp)) * (1.d0 - imagi) * abs(Cx_matB(j, qp)))
|
||||
! P_tau(p, k, i) = P_tau(p, k, i) + SQRT(2.0d0 / nq_tot * amass(nta)) * DBLE(EXP(imagi * 2.0d0 * pi * dotp) &
|
||||
! * CONJG(z_nq_B(ctr, j, qp)) * (1.d0 - imagi) * abs(Cpx_matB(j, qp))) / (amass(nta) * AMU_SI)
|
||||
! ! Here we calculate the momenta of the nuclei and finally
|
||||
! !we divide by (amass(nta) *AMU_SI) to get the velocities.
|
||||
! ctr = ctr + 1 ! for k and i
|
||||
! D_tau(p, k, i) = equil_p(p, k, i) + D_tau(p, k, i) ! add equil structure
|
||||
! ENDDO ! i loop
|
||||
! ! write output data
|
||||
! WRITE(85,'(A6, 3F13.8)') atm(ityp(k)), D_tau(p, k, :)
|
||||
! WRITE(86,'(A6, 3F15.8)') atm(ityp(k)), P_tau(p, k,:) * 1.0E-12 ! multiply to obtain picoseconds
|
||||
! !
|
||||
! ENDDO ! k loop
|
||||
! ENDDO ! p loop
|
||||
!
|
||||
!
|
||||
DEALLOCATE(D_tau, P_tau)
|
||||
|
|
|
@ -724,15 +724,20 @@
|
|||
OPEN(iubvec, FILE = tempfile, ACTION = 'read', IOSTAT = ios)
|
||||
IF (ios /= 0) THEN
|
||||
!
|
||||
! if it doesn't exist, then we just set the bvec and wb to zero
|
||||
! HL 11/2020: The part below is commented since it makes sense to stop the calculation
|
||||
! in case that there is no *.bvec file with vme = .true. .
|
||||
!
|
||||
nnb = 1
|
||||
ALLOCATE(bvec(3, nnb, nkstot), STAT = ierr)
|
||||
IF (ierr /= 0) CALL errore('vmebloch2wan', 'Error allocating bvec', 1)
|
||||
ALLOCATE(wb(nnb), STAT = ierr)
|
||||
IF (ierr /= 0) CALL errore('vmebloch2wan', 'Error allocating wb', 1)
|
||||
bvec = zero
|
||||
wb = zero
|
||||
! !
|
||||
! ! if it doesn't exist, then we just set the bvec and wb to zero
|
||||
! !
|
||||
! nnb = 1
|
||||
! ALLOCATE(bvec(3, nnb, nkstot), STAT = ierr)
|
||||
! IF (ierr /= 0) CALL errore('vmebloch2wan', 'Error allocating bvec', 1)
|
||||
! ALLOCATE(wb(nnb), STAT = ierr)
|
||||
! IF (ierr /= 0) CALL errore('vmebloch2wan', 'Error allocating wb', 1)
|
||||
! bvec = zero
|
||||
! wb = zero
|
||||
CALL errore ('vmebloch2wan','You selected vme =.true. but error opening' // tempfile, 1)
|
||||
ELSE
|
||||
READ(iubvec,*) tempfile
|
||||
READ(iubvec,*) nkstot_tmp, nnb
|
||||
|
@ -780,7 +785,7 @@
|
|||
!
|
||||
IF (ios /= 0) THEN
|
||||
! if it doesn't exist, then we just set the mmn to zero
|
||||
CALL errore ('vmebloch2wan','error opening' // tempfile, 0)
|
||||
CALL errore ('vmebloch2wan','error opening' // tempfile, 1)
|
||||
ELSE
|
||||
!
|
||||
DO ik = 1, nkstot
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
PROGRAM epw
|
||||
!-----------------------------------------------------------------------
|
||||
!! author: Samuel Ponce', Roxana Margine, Carla Verdi, Feliciano Giustino
|
||||
!! version: v5.3
|
||||
!! version: v5.3.1
|
||||
!! license: GNU
|
||||
!! summary: EPW main driver
|
||||
!!
|
||||
|
@ -38,7 +38,7 @@
|
|||
CHARACTER(LEN = 12) :: code = 'EPW'
|
||||
!! Name of the program
|
||||
!
|
||||
version_number = '5.3.0'
|
||||
version_number = '5.3.1'
|
||||
!
|
||||
CALL init_clocks(.TRUE.)
|
||||
!
|
||||
|
|
|
@ -1362,7 +1362,7 @@
|
|||
IF (homogeneous) THEN
|
||||
! In case of k-point symmetry
|
||||
IF (mp_mesh_k .AND. etf_mem < 3) THEN
|
||||
IF (iterative_bte) THEN
|
||||
IF (iterative_bte .OR. ephwrite) THEN
|
||||
ALLOCATE(bztoibz_tmp(nkf1 * nkf2 * nkf3), STAT = ierr)
|
||||
IF (ierr /= 0) CALL errore('qwindow', 'Error allocating bztoibz_tmp', 1)
|
||||
bztoibz_tmp(:) = 0
|
||||
|
@ -1409,7 +1409,7 @@
|
|||
!
|
||||
! In case of k-point symmetry
|
||||
IF (mp_mesh_k .AND. etf_mem < 3) THEN
|
||||
IF (iterative_bte) THEN
|
||||
IF (iterative_bte .OR. ephwrite) THEN
|
||||
ALLOCATE(bztoibz_tmp(nkf1 * nkf2 * nkf3), STAT = ierr)
|
||||
IF (ierr /= 0) CALL errore('qwindow', 'Error allocating bztoibz_tmp', 1)
|
||||
bztoibz_tmp(:) = 0
|
||||
|
|
|
@ -1787,7 +1787,7 @@
|
|||
! SP - July 2020
|
||||
! We should not recompute bztoibz
|
||||
DO ikbz = 1, nkftot
|
||||
ixkff(ikbz) = ixkf(map_rebal(bztoibz(ikbz)))
|
||||
ixkff(ikbz) = ixkf(bztoibz(ikbz))
|
||||
ENDDO
|
||||
!
|
||||
ELSE
|
||||
|
|
|
@ -108,10 +108,22 @@
|
|||
IMPLICIT NONE
|
||||
!
|
||||
! Local variables
|
||||
CHARACTER(LEN = 255) :: dummy
|
||||
!! Copy of field read for parsing
|
||||
CHARACTER(LEN = 255) :: lvalue
|
||||
!! Parsed logical value
|
||||
LOGICAL :: random
|
||||
!! Random
|
||||
LOGICAL :: notfound
|
||||
!! If .TRUE., there is no "write_hr".
|
||||
INTEGER :: i
|
||||
!! Band index
|
||||
INTEGER :: pos
|
||||
!! Position in strings
|
||||
INTEGER :: pos1
|
||||
!! Position in strings
|
||||
INTEGER :: pos2
|
||||
!! Position in strings
|
||||
REAL(KIND = DP) :: et_tmp(nbnd, nkstot)
|
||||
!! eigenvalues on full coarse k-mesh
|
||||
!
|
||||
|
@ -156,11 +168,44 @@
|
|||
WRITE(iuwinfil, '("num_iter = ", i7)') num_iter
|
||||
IF (vme) WRITE(iuwinfil, '(a)') "write_bvec = .true."
|
||||
!
|
||||
! HL 11/2020: The code block below is necessary
|
||||
! until the bug fix in W90 is merged into its master branch.
|
||||
!
|
||||
IF (vme) THEN
|
||||
notfound = .TRUE.
|
||||
DO i = 1, nwanxx
|
||||
IF (wdata(i) /= ' ') THEN
|
||||
pos = INDEX(TRIM(ADJUSTL(wdata(i))), 'write_hr')
|
||||
IF (pos == 1) THEN
|
||||
dummy = wdata(i) (LEN('write_hr') + 1:)
|
||||
pos1 = INDEX(dummy, '!')
|
||||
pos2 = INDEX(dummy, '#')
|
||||
IF (pos1 == 0 .AND. pos2 == 0) lvalue = dummy
|
||||
IF (pos1 == 0 .AND. pos2 > 0) lvalue = dummy(:pos2 - 1)
|
||||
IF (pos2 == 0 .AND. pos1 > 0) lvalue = dummy(:pos1 - 1)
|
||||
IF (pos1 > 0 .AND. pos2 > 0) lvalue = dummy(:MIN(pos1, pos2) - 1)
|
||||
lvalue = TRIM(ADJUSTL(lvalue))
|
||||
IF (lvalue(1:1) == '=' .OR. lvalue(1:1) == ':') THEN
|
||||
lvalue = lvalue(2:)
|
||||
IF (INDEX(lvalue, 't') > 0) THEN
|
||||
notfound = .FALSE.
|
||||
ELSEIF (INDEX(lvalue, 'f') > 0) THEN
|
||||
wdata(i) = "write_hr = .true."
|
||||
notfound = .FALSE.
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDDO
|
||||
ENDIF
|
||||
!
|
||||
! Write any extra parameters to the prefix.win file
|
||||
DO i = 1, nwanxx
|
||||
IF (wdata(i) /= ' ') WRITE(iuwinfil, *) wdata(i)
|
||||
IF (wdata(i) /= ' ') WRITE(iuwinfil, *) TRIM(wdata(i))
|
||||
ENDDO
|
||||
!
|
||||
IF (vme .AND. notfound) WRITE(iuwinfil, *) "write_hr = .true."
|
||||
!
|
||||
CLOSE(iuwinfil)
|
||||
!
|
||||
ENDIF ! meta_ionode
|
||||
|
|
|
@ -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 @@ CONTAINS
|
|||
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 @@ CONTAINS
|
|||
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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1 +1 @@
|
|||
6.6
|
||||
6.7
|
||||
|
|
|
@ -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/
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 259 KiB After Width: | Height: | Size: 258 KiB |
Binary file not shown.
|
@ -354,7 +354,7 @@ help lsd -helpfmt helpdoc -helptext {
|
|||
1 ... spin-polarized calculation
|
||||
|
||||
<b>BEWARE:</b>
|
||||
not allowed if iswitch=3 (PP generation) or with full
|
||||
not allowed if "iswitch"=3 (PP generation) or with full
|
||||
relativistic calculation
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
@ -525,7 +525,7 @@ help verbosity -helpfmt helpdoc -helptext {
|
|||
<blockquote><pre>
|
||||
<b>'low'</b> or <b>'high'</b>
|
||||
|
||||
if <b>'high'</b> with iswitch=2,3 prints separately core and
|
||||
if <b>'high'</b> with "iswitch"=2,3 prints separately core and
|
||||
valence contributions to the energies. Print the
|
||||
frozen-core energy.
|
||||
</pre></blockquote>
|
||||
|
@ -777,12 +777,12 @@ help pseudotype -helpfmt helpdoc -helptext {
|
|||
</li>
|
||||
<blockquote><pre>
|
||||
1 ... norm-conserving, single-projector PP
|
||||
IMPORTANT: if pseudotype=1 all calculations are done
|
||||
<b>IMPORTANT:</b> 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
|
||||
<b>IMPORTANT:</b> 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 {
|
|||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre> the number of configurations to be tested. For iswitch = 4 nconf=2
|
||||
<blockquote><pre> the number of configurations to be tested. For "iswitch"=4 nconf=2
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
|
@ -1438,7 +1438,7 @@ help file_pseudo -helpfmt helpdoc -helptext {
|
|||
<br><li> <em>Type: </em>CHARACTER</li>
|
||||
<br><li> <em>Default: </em> ' '
|
||||
</li>
|
||||
<br><li> <em>Status: </em> ignored if iswitch=3
|
||||
<br><li> <em>Status: </em> ignored if "iswitch"=3
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
|
@ -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
|
||||
<b>IMPORTANT:</b> 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!
|
||||
</pre></blockquote>
|
||||
|
@ -1515,9 +1515,10 @@ help configts -helpfmt helpdoc -helptext {
|
|||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
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.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
@ -1581,7 +1582,7 @@ help rcutv -helpfmt helpdoc -helptext {
|
|||
</li>
|
||||
<blockquote><pre>
|
||||
Cutoff distance (CUT) for the inclusion of LDA-1/2 potential.
|
||||
Needed (mandatory) only if iswitch = 4
|
||||
Needed (mandatory) only if "iswitch" = 4
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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}}}]
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -0,0 +1,551 @@
|
|||
|
||||
#
|
||||
# Help-file automatically created by helpdoc utility
|
||||
#
|
||||
# !!! DO NOT EDIT: CHANGES WILL BE LOST !!!
|
||||
#
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help prefix -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>prefix</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>CHARACTER</li>
|
||||
<br><li> <em>Default: </em> 'pwscf'
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Prepended to input/output filenames; must be the same
|
||||
used in the calculation of unperturbed system.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help outdir -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>outdir</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>CHARACTER</li>
|
||||
<br><li> <em>Default: </em>
|
||||
value of the <tt>ESPRESSO_TMPDIR</tt> environment variable if set;
|
||||
<br> current directory ('./') otherwise
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Directory containing input, output, and scratch files;
|
||||
must be the same as specified in the calculation of
|
||||
the unperturbed system.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help iverbosity -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>iverbosity</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>INTEGER</li>
|
||||
<br><li> <em>Default: </em> 1
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
= 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
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help max_seconds -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>max_seconds</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>REAL</li>
|
||||
<br><li> <em>Default: </em> 1.d7
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Maximum allowed run time before the job stops smoothly.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
grouphelp {nq1 nq2 nq3} -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variables: </em><big><b>nq1, nq2, nq3</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>INTEGER</li>
|
||||
<br><li> <em>Default: </em> 1,1,1
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Parameters of the Monkhorst-Pack grid (no offset).
|
||||
Same meaning as for nk1, nk2, nk3 in the input of pw.x.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help skip_equivalence_q -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>skip_equivalence_q</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. 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.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help determine_num_pert_only -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>determine_num_pert_only</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>LOGICAL</li>
|
||||
<br><li> <em>Default: </em> .false.
|
||||
</li>
|
||||
<br><li> <em>See: </em> find_atpert
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
If .true. determines the number of perturbations
|
||||
(i.e. which atoms will be perturbed) and exits smoothly
|
||||
without performing any calculation. For DFT+U+V, it also
|
||||
determines the indices of inter-site couples.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help find_atpert -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>find_atpert</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>INTEGER</li>
|
||||
<br><li> <em>Default: </em> 1
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Method for searching of atoms which must be perturbed.
|
||||
1 = Find how many inequivalent Hubbard atoms there are
|
||||
by analyzing unperturbed occupations.
|
||||
2 = Find how many Hubbard atoms to perturb based on
|
||||
how many different Hubbard atomic types there are.
|
||||
Warning: atoms which have the same type but which
|
||||
are inequivalent by symmetry or which have different
|
||||
occupations will not be distinguished in this case
|
||||
(use option 1 or 3 instead).
|
||||
3 = Find how many inequivalent Hubbard atoms
|
||||
there are using symmetry. Atoms which have the
|
||||
same type but are not equivalent by symmetry will
|
||||
be distinguished in this case.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help docc_thr -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>docc_thr</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>REAL</li>
|
||||
<br><li> <em>Default: </em> 5.D-5
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
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.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help skip_type -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variables: </em><big><b>skip_type(i), i=1,ntyp</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>LOGICAL</li>
|
||||
<br><li> <em>Default: </em> skip_type(i) = .false.
|
||||
</li>
|
||||
<br><li> <em>See: </em> equiv_type
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
"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.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help equiv_type -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variables: </em><big><b>equiv_type(i), i=1,ntyp</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>INTEGER</li>
|
||||
<br><li> <em>Default: </em> equiv_type(i) = 0
|
||||
</li>
|
||||
<br><li> <em>See: </em> skip_type
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
"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.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help perturb_only_atom -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variables: </em><big><b>perturb_only_atom(i), i=1,ntyp</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>LOGICAL</li>
|
||||
<br><li> <em>Default: </em> perturb_only_atom(i) = .false.
|
||||
</li>
|
||||
<br><li> <em>See: </em> compute_hp
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
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.
|
||||
|
||||
<b>Note:</b> this variable has a higher priority than "skip_type".
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help start_q -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>start_q</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>INTEGER</li>
|
||||
<br><li> <em>Default: </em> 1
|
||||
</li>
|
||||
<br><li> <em>See: </em> last_q, sum_pertq
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Computes only the q points from "start_q" to "last_q".
|
||||
|
||||
<b>IMPORTANT:</b> "start_q" must be smaller or equal to
|
||||
the total number of q points found.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help last_q -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>last_q</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>INTEGER</li>
|
||||
<br><li> <em>Default: </em> number of q points
|
||||
</li>
|
||||
<br><li> <em>See: </em> start_q, sum_pertq
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Computes only the q points from "start_q" to "last_q".
|
||||
|
||||
<b>IMPORTANT:</b> "last_q" must be smaller or equal to
|
||||
the total number of q points found.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help sum_pertq -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>sum_pertq</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>LOGICAL</li>
|
||||
<br><li> <em>Default: </em> .false.
|
||||
</li>
|
||||
<br><li> <em>See: </em> start_q, last_q, perturb_only_atom
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
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.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help compute_hp -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>compute_hp</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>LOGICAL</li>
|
||||
<br><li> <em>Default: </em> .false.
|
||||
</li>
|
||||
<br><li> <em>See: </em> perturb_only_atom
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
If it is set to .true. then the HP code will collect
|
||||
pieces of the chi0 and chi matrices (which must have
|
||||
been produced in previous runs) and then compute
|
||||
Hubbard parameters. The HP code will look for files
|
||||
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
|
||||
calculation was parallelized over perturbations.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help conv_thr_chi -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>conv_thr_chi</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>REAL</li>
|
||||
<br><li> <em>Default: </em> 1.D-5
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Convergence threshold for the response function chi,
|
||||
which is defined as a trace of the response
|
||||
occupation matrix.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help thresh_init -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>thresh_init</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>REAL</li>
|
||||
<br><li> <em>Default: </em> 1.D-14
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Initial threshold for the solution of the linear
|
||||
system (first iteration). Needed to converge the
|
||||
bare (non-interacting) response function chi0.
|
||||
The specified value will be multiplied by the
|
||||
number of electrons in the system.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help ethr_nscf -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>ethr_nscf</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>REAL</li>
|
||||
<br><li> <em>Default: </em> 1.D-11
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Threshold for the convergence of eigenvalues during
|
||||
the iterative diagonalization of the Hamiltonian in
|
||||
the non-self-consistent-field (NSCF) calculation at
|
||||
k and k+q points. Note, this quantity is NOT extensive.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help niter_max -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>niter_max</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>INTEGER</li>
|
||||
<br><li> <em>Default: </em> 100
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Maximum number of iterations in the iterative
|
||||
solution of the linear-response Kohn-Sham equations.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help nmix -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>nmix</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 iterations used in potential mixing
|
||||
using the modified Broyden method. See:
|
||||
D.D. Johnson, "PRB 38, 12807 (1988)".
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help num_neigh -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>num_neigh</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>INTEGER</li>
|
||||
<br><li> <em>Default: </em> 6
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Number of nearest neighbors of every Hubbard atom which
|
||||
will be considered when writting Hubbard V parameters to
|
||||
the file parameters.out, which can be used in the
|
||||
subsequent DFT+U+V calculation. This keyword is used only
|
||||
when lda_plus_u_kind = 2 (post-processing stage).
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help lmin -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>lmin</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>INTEGER</li>
|
||||
<br><li> <em>Default: </em> 2
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
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.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
help rmax -helpfmt helpdoc -helptext {
|
||||
<ul>
|
||||
<li> <em>Variable: </em><big><b>rmax</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>REAL</li>
|
||||
<br><li> <em>Default: </em> 100.D0
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Maximum distance (in Bohr) between two atoms to search
|
||||
neighbors (used only at the postprocessing step when
|
||||
lda_plus_u_kind = 2). This keyword is useful when there
|
||||
are e.g. defects in the system.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
|
@ -248,9 +248,9 @@ help fildrho -helpfmt helpdoc -helptext {
|
|||
</li>
|
||||
<blockquote><pre>
|
||||
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 <b>${outdir}/_ph0/${prefix}.${fildrho}1</b>
|
||||
where <b>${outdir},</b> <b>${prefix}</b> and <b>${fildrho}</b> are the values of the
|
||||
corresponding input variables
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
|
@ -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).
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -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 {}
|
||||
|
|
|
@ -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'.
|
||||
</pre></dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
|
@ -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")
|
||||
</pre></dd>
|
||||
</dl>
|
||||
<dl style="margin-left: 1.5em;">
|
||||
|
@ -492,10 +494,7 @@ do not save anything to disk
|
|||
</dl>
|
||||
<pre>
|
||||
<b>Default</b> is <b>'low'</b> for the scf case, <b>'medium'</b> 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
|
||||
</pre>
|
||||
</blockquote>
|
||||
</ul>
|
||||
|
@ -1080,31 +1079,36 @@ help starting_magnetization -helpfmt helpdoc -helptext {
|
|||
<li> <em>Variables: </em><big><b>starting_magnetization(i), i=1,ntyp</b></big>
|
||||
</li>
|
||||
<br><li> <em>Type: </em>REAL</li>
|
||||
<br><li> <em>Default: </em> 0
|
||||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
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.
|
||||
|
||||
<b>NOTE 1:</b> "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.
|
||||
|
||||
<b>NOTE 2:</b> If you fix the magnetization with
|
||||
"tot_magnetization", do not specify "starting_magnetization".
|
||||
|
||||
<b>NOTE 3:</b> 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.).
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
|
@ -1907,13 +1911,14 @@ is not configured there.
|
|||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
Specify "lda_plus_u" = .TRUE. to enable DFT+U calculations
|
||||
Specify "lda_plus_u" = .TRUE. to enable <b>DFT+U,</b> <b>DFT+U+V,</b> or <b>DFT+U+J</b> 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"
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
|
@ -1930,18 +1935,32 @@ help lda_plus_u_kind -helpfmt helpdoc -helptext {
|
|||
</li>
|
||||
<br><li> <em>Description:</em>
|
||||
</li>
|
||||
<blockquote><pre>
|
||||
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"
|
||||
</pre></blockquote>
|
||||
<blockquote>
|
||||
<pre> Specifies the type of calculation:
|
||||
</pre>
|
||||
<dl style="margin-left: 1.5em;">
|
||||
<dt><tt><b>0</b> :</tt></dt>
|
||||
<dd><pre style="margin-top: 0em; margin-bottom: -1em;">
|
||||
DFT+U simplified version of Cococcioni and de Gironcoli,
|
||||
"PRB 71, 035105 (2005)", using "Hubbard_U"
|
||||
</pre></dd>
|
||||
</dl>
|
||||
<dl style="margin-left: 1.5em;">
|
||||
<dt><tt><b>1</b> :</tt></dt>
|
||||
<dd><pre style="margin-top: 0em; margin-bottom: -1em;">
|
||||
DFT+U rotationally invariant scheme of Liechtenstein et al.,
|
||||
using "Hubbard_U" and "Hubbard_J"
|
||||
</pre></dd>
|
||||
</dl>
|
||||
<dl style="margin-left: 1.5em;">
|
||||
<dt><tt><b>2</b> :</tt></dt>
|
||||
<dd><pre style="margin-top: 0em; margin-bottom: -1em;">
|
||||
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"
|
||||
</pre></dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
</ul>
|
||||
|
||||
}
|
||||
|
@ -1996,9 +2015,14 @@ help Hubbard_alpha -helpfmt helpdoc -helptext {
|
|||
</li>
|
||||
<blockquote><pre>
|
||||
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.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
||||
|
@ -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)".
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
@ -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
|
||||
</pre></dd>
|
||||
</dl>
|
||||
<dl style="margin-left: 1.5em;">
|
||||
|
@ -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.
|
||||
</pre></blockquote>
|
||||
</ul>
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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,6 +14,24 @@ 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::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::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]]
|
||||
|
@ -36,20 +44,13 @@ 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::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::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::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]]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
LATEX = pdflatex
|
||||
LATEX2HTML = latex2html
|
||||
|
||||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
|
||||
PDFS = user_guide.pdf
|
||||
AUXS = $(PDFS:.pdf=.aux)
|
||||
|
|
Binary file not shown.
|
@ -52,7 +52,7 @@
|
|||
\author{}
|
||||
\date{}
|
||||
|
||||
\def\qeImage{../../../Doc/quantum_espresso.pdf}
|
||||
\def\qeImage{../../../Doc/quantum_espresso.png}
|
||||
|
||||
\title{
|
||||
\includegraphics[width=5cm]{\qeImage} \\
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
TOPDIR = $(shell cd ../..; pwd)
|
||||
VERSION = 6.6
|
||||
VERSION = 6.7
|
||||
GEN_MODE = $(TOPDIR)/dev-tools/gen-emacs-mode
|
||||
LATEX = pdflatex
|
||||
|
||||
|
|
|
@ -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.
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
<tr><th style="margin: 3 3 3 10; background: #005789; background: linear-gradient(rgba(0,87,137,1),rgba(0,119,189,1)); color: #ffffee; ">
|
||||
<h1 style="margin: 10 10 10 15; text-align: left;"> Input File Description </h1>
|
||||
<h2 style="margin: 10 10 10 15; text-align: left;"> Program:
|
||||
hp.x / PWscf / Quantum Espresso<span style="font-weight: normal;"> (version: 6.6)</span>
|
||||
hp.x / PWscf / Quantum Espresso<span style="font-weight: normal;"> (version: 6.7)</span>
|
||||
</h2>
|
||||
</th></tr>
|
||||
<tr><td style="padding: 10 3 3 3; background: #ffffff; color: #222222; ">
|
||||
|
@ -58,7 +58,7 @@
|
|||
<p><a href="#idm3">INTRODUCTION</a></p>
|
||||
<p><a href="#idm8">&INPUTHP</a></p>
|
||||
<blockquote>
|
||||
<a href="#idm9">prefix</a> | <a href="#idm12">outdir</a> | <a href="#idm17">iverbosity</a> | <a href="#idm20">max_seconds</a> | <a href="#idm24">nq1</a> | <a href="#idm25">nq2</a> | <a href="#idm26">nq3</a> | <a href="#idm29">skip_equivalence_q</a> | <a href="#idm32">determine_num_pert_only</a> | <a href="#idm36">find_atpert</a> | <a href="#idm39">docc_thr</a> | <a href="#idm42">skip_type</a> | <a href="#idm46">equiv_type</a> | <a href="#idm50">perturb_only_atom</a> | <a href="#idm54">start_q</a> | <a href="#idm58">last_q</a> | <a href="#idm62">sum_pertq</a> | <a href="#idm66">compute_hp</a> | <a href="#idm70">conv_thr_chi</a> | <a href="#idm73">thresh_init</a> | <a href="#idm76">ethr_nscf</a> | <a href="#idm79">niter_max</a> | <a href="#idm82">alpha_mix(i)</a> | <a href="#idm86">nmix</a> | <a href="#idm90">num_neigh</a> | <a href="#idm93">lmin</a> | <a href="#idm96">rmax</a>
|
||||
<a href="#idm9">prefix</a> | <a href="#idm12">outdir</a> | <a href="#idm17">iverbosity</a> | <a href="#idm20">max_seconds</a> | <a href="#idm24">nq1</a> | <a href="#idm25">nq2</a> | <a href="#idm26">nq3</a> | <a href="#idm29">skip_equivalence_q</a> | <a href="#idm32">determine_num_pert_only</a> | <a href="#idm36">find_atpert</a> | <a href="#idm39">docc_thr</a> | <a href="#idm43">skip_type</a> | <a href="#idm51">equiv_type</a> | <a href="#idm58">perturb_only_atom</a> | <a href="#idm65">start_q</a> | <a href="#idm73">last_q</a> | <a href="#idm81">sum_pertq</a> | <a href="#idm88">compute_hp</a> | <a href="#idm93">conv_thr_chi</a> | <a href="#idm96">thresh_init</a> | <a href="#idm99">ethr_nscf</a> | <a href="#idm102">niter_max</a> | <a href="#idm105">alpha_mix(i)</a> | <a href="#idm109">nmix</a> | <a href="#idm113">num_neigh</a> | <a href="#idm116">lmin</a> | <a href="#idm122">rmax</a>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
@ -204,7 +204,8 @@ calculations only for inequivalent q points.
|
|||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
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.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
|
@ -248,18 +249,18 @@ Method for searching of atoms which must be perturbed.
|
|||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
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 <a href="#find_atpert">find_atpert</a> = 1.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm42"></a><a name="skip_type"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm43"></a><a name="skip_type"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">skip_type</th>
|
||||
<th width="20%" style="white-space: nowrap; text-align: left; vertical-align: top; background: #ffff99; padding: 2 2 2 10; ">skip_type(i), i=1,ntyp</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: right; vertical-align: top; background: #ffffc3; padding: 2 10 2 10; "><i>Default:</i></td>
|
||||
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "> .false.
|
||||
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "> skip_type(i) = .false.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -267,25 +268,25 @@ be perturbed. Can be used only when find_atpert = 1.
|
|||
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "><a href="#equiv_type">equiv_type</a></td>
|
||||
</tr>
|
||||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
skip_type(i), where i runs over types of atoms.
|
||||
If skip_type(i)=.true. then no linear-response
|
||||
<a href="#skip_type">skip_type</a>(i), where i runs over types of atoms.
|
||||
If <a href="#skip_type">skip_type</a>(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 <a href="#equiv_type">equiv_type</a>(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 <a href="#find_atpert">find_atpert</a> = 1.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm46"></a><a name="equiv_type"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm51"></a><a name="equiv_type"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">equiv_type</th>
|
||||
<th width="20%" style="white-space: nowrap; text-align: left; vertical-align: top; background: #ffff99; padding: 2 2 2 10; ">equiv_type(i), i=1,ntyp</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: right; vertical-align: top; background: #ffffc3; padding: 2 10 2 10; "><i>Default:</i></td>
|
||||
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "> 0
|
||||
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "> equiv_type(i) = 0
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -293,22 +294,22 @@ This keyword cannot be used when find_atpert = 1.
|
|||
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "><a href="#skip_type">skip_type</a></td>
|
||||
</tr>
|
||||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
equiv_type(i), where i runs over types of atoms.
|
||||
equiv_type(i)=j, will make type i equivalent to type j
|
||||
<a href="#equiv_type">equiv_type</a>(i), where i runs over types of atoms.
|
||||
<a href="#equiv_type">equiv_type</a>(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 <a href="#find_atpert">find_atpert</a> = 1.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm50"></a><a name="perturb_only_atom"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm58"></a><a name="perturb_only_atom"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">perturb_only_atom</th>
|
||||
<th width="20%" style="white-space: nowrap; text-align: left; vertical-align: top; background: #ffff99; padding: 2 2 2 10; ">perturb_only_atom(i), i=1,ntyp</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: right; vertical-align: top; background: #ffffc3; padding: 2 10 2 10; "><i>Default:</i></td>
|
||||
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "> .false.
|
||||
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "> perturb_only_atom(i) = .false.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -316,15 +317,16 @@ This keyword cannot be used when find_atpert = 1.
|
|||
<td style="text-align: left; vertical-align: top; background: #fff3d9; padding: 2 2 2 5; "><a href="#compute_hp">compute_hp</a></td>
|
||||
</tr>
|
||||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
If perturb_only_atom(i)=.true. then only the i-th
|
||||
If <a href="#perturb_only_atom">perturb_only_atom</a>(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:</b> this variable has a higher priority than <a href="#skip_type">skip_type</a>.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm54"></a><a name="start_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm65"></a><a name="start_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">start_q</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -341,13 +343,14 @@ has a higher priority than skip_type.
|
|||
</td>
|
||||
</tr>
|
||||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
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 <a href="#start_q">start_q</a> to <a href="#last_q">last_q</a>.
|
||||
|
||||
<b>IMPORTANT:</b> <a href="#start_q">start_q</a> must be smaller or equal to
|
||||
the total number of q points found.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm58"></a><a name="last_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm73"></a><a name="last_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">last_q</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -364,13 +367,14 @@ the total number of q points found.
|
|||
</td>
|
||||
</tr>
|
||||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
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 <a href="#start_q">start_q</a> to <a href="#last_q">last_q</a>.
|
||||
|
||||
<b>IMPORTANT:</b> <a href="#last_q">last_q</a> must be smaller or equal to
|
||||
the total number of q points found.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm62"></a><a name="sum_pertq"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm81"></a><a name="sum_pertq"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">sum_pertq</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -390,11 +394,11 @@ the total number of q points found.
|
|||
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.
|
||||
<a href="#start_q">start_q</a>, <a href="#last_q">last_q</a> and <a href="#perturb_only_atom">perturb_only_atom</a> are used.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm66"></a><a name="compute_hp"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm88"></a><a name="compute_hp"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">compute_hp</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -416,12 +420,12 @@ Hubbard parameters. The HP code will look for files
|
|||
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
|
||||
<a href="#compute_hp">compute_hp</a>=.true. must be used only when the
|
||||
calculation was parallelized over perturbations.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm70"></a><a name="conv_thr_chi"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm93"></a><a name="conv_thr_chi"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">conv_thr_chi</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
|
@ -438,7 +442,7 @@ occupation matrix.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm73"></a><a name="thresh_init"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm96"></a><a name="thresh_init"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">thresh_init</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
|
@ -457,7 +461,7 @@ number of electrons in the system.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm76"></a><a name="ethr_nscf"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm99"></a><a name="ethr_nscf"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">ethr_nscf</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
|
@ -475,7 +479,7 @@ k and k+q points. Note, this quantity is NOT extensive.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm79"></a><a name="niter_max"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm102"></a><a name="niter_max"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">niter_max</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -491,7 +495,7 @@ solution of the linear-response Kohn-Sham equations.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm82"></a><a name="alpha_mix"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm105"></a><a name="alpha_mix"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">alpha_mix(i)</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
|
@ -504,11 +508,11 @@ solution of the linear-response Kohn-Sham equations.
|
|||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
Mixing parameter (for the i-th iteration) for updating
|
||||
the response SCF potential using the modified Broyden
|
||||
method: D.D. Johnson, <a href="https://journals.aps.org/prb/abstract/10.1103/PhysRevB.38.12807">PRB 38, 12807 (1988)</a>.
|
||||
method. See: D.D. Johnson, <a href="https://journals.aps.org/prb/abstract/10.1103/PhysRevB.38.12807">PRB 38, 12807 (1988)</a>.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm86"></a><a name="nmix"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm109"></a><a name="nmix"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">nmix</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -520,12 +524,12 @@ method: D.D. Johnson, <a href="https://journals.aps.org/prb/abstract/10.1103/Phy
|
|||
</tr>
|
||||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
Number of iterations used in potential mixing
|
||||
using the modified Broyden method
|
||||
using the modified Broyden method. See:
|
||||
D.D. Johnson, <a href="https://journals.aps.org/prb/abstract/10.1103/PhysRevB.38.12807">PRB 38, 12807 (1988)</a>.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm90"></a><a name="num_neigh"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm113"></a><a name="num_neigh"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">num_neigh</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -544,7 +548,7 @@ when lda_plus_u_kind = 2 (post-processing stage).
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm93"></a><a name="lmin"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm116"></a><a name="lmin"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">lmin</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -558,18 +562,18 @@ when lda_plus_u_kind = 2 (post-processing stage).
|
|||
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
|
||||
<a href="#lmin">lmin</a> 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: <a href="#lmin">lmin</a>=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 <a href="#lmin">lmin</a>=2 only the
|
||||
latter will be written to parameters.out.
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm96"></a><a name="rmax"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm122"></a><a name="rmax"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">rmax</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
|
@ -592,7 +596,7 @@ are e.g. defects in the system.
|
|||
</td></tr>
|
||||
</table>
|
||||
<small>
|
||||
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.
|
||||
</small>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
------------------------------------------------------------------------
|
||||
INPUT FILE DESCRIPTION
|
||||
|
||||
Program: hp.x / PWscf / Quantum Espresso (version: 6.6)
|
||||
Program: hp.x / PWscf / Quantum Espresso (version: 6.7)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -93,7 +93,8 @@ NAMELIST: &INPUTHP
|
|||
See: find_atpert
|
||||
Description: 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.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -123,49 +124,50 @@ NAMELIST: &INPUTHP
|
|||
Default: 5.D-5
|
||||
Description: 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.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
Variable: skip_type
|
||||
Variable: skip_type(i), i=1,ntyp
|
||||
|
||||
Type: LOGICAL
|
||||
Default: .false.
|
||||
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
|
||||
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
|
||||
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.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
Variable: equiv_type
|
||||
Variable: equiv_type(i), i=1,ntyp
|
||||
|
||||
Type: INTEGER
|
||||
Default: 0
|
||||
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
|
||||
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.
|
||||
This keyword cannot be used when "find_atpert" = 1.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
Variable: perturb_only_atom
|
||||
Variable: perturb_only_atom(i), i=1,ntyp
|
||||
|
||||
Type: LOGICAL
|
||||
Default: .false.
|
||||
Default: perturb_only_atom(i) = .false.
|
||||
See: compute_hp
|
||||
Description: If perturb_only_atom(i)=.true. then only the i-th
|
||||
Description: 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".
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -174,8 +176,9 @@ NAMELIST: &INPUTHP
|
|||
Type: INTEGER
|
||||
Default: 1
|
||||
See: last_q, sum_pertq
|
||||
Description: Computes only the q points from start_q to last_q.
|
||||
IMPORTANT: start_q must be smaller or equal to
|
||||
Description: 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.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -185,8 +188,9 @@ NAMELIST: &INPUTHP
|
|||
Type: INTEGER
|
||||
Default: number of q points
|
||||
See: start_q, sum_pertq
|
||||
Description: Computes only the q points from start_q to last_q.
|
||||
IMPORTANT: last_q must be smaller or equal to
|
||||
Description: 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.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -199,7 +203,7 @@ NAMELIST: &INPUTHP
|
|||
Description: 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.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -215,7 +219,7 @@ NAMELIST: &INPUTHP
|
|||
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.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -268,7 +272,7 @@ NAMELIST: &INPUTHP
|
|||
Default: alpha_mix(1)=0.3
|
||||
Description: 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).
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -277,7 +281,7 @@ NAMELIST: &INPUTHP
|
|||
Type: INTEGER
|
||||
Default: 4
|
||||
Description: 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).
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -301,13 +305,13 @@ NAMELIST: &INPUTHP
|
|||
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
|
||||
"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.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -325,4 +329,4 @@ NAMELIST: &INPUTHP
|
|||
===END OF NAMELIST======================================================
|
||||
|
||||
|
||||
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
|
||||
|
|
|
@ -89,7 +89,8 @@ calculations only for inequivalent q points.
|
|||
<info>
|
||||
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.
|
||||
</info>
|
||||
</var>
|
||||
<var name="find_atpert" type="INTEGER" >
|
||||
|
@ -117,59 +118,61 @@ Method for searching of atoms which must be perturbed.
|
|||
<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</ref> = 1.
|
||||
</info>
|
||||
</var>
|
||||
<var name="skip_type" type="LOGICAL" >
|
||||
<default> .false.
|
||||
<dimension name="skip_type" start="1" end="ntyp" type="LOGICAL" >
|
||||
<default> skip_type(i) = .false.
|
||||
</default>
|
||||
<see> equiv_type
|
||||
</see>
|
||||
<info>
|
||||
skip_type(i), where i runs over types of atoms.
|
||||
If skip_type(i)=.true. then no linear-response
|
||||
<ref>skip_type</ref>(i), where i runs over types of atoms.
|
||||
If <ref>skip_type</ref>(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</ref>(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</ref> = 1.
|
||||
</info>
|
||||
</var>
|
||||
<var name="equiv_type" type="INTEGER" >
|
||||
<default> 0
|
||||
</dimension>
|
||||
<dimension name="equiv_type" start="1" end="ntyp" type="INTEGER" >
|
||||
<default> equiv_type(i) = 0
|
||||
</default>
|
||||
<see> skip_type
|
||||
</see>
|
||||
<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</ref>(i), where i runs over types of atoms.
|
||||
<ref>equiv_type</ref>(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</ref> = 1.
|
||||
</info>
|
||||
</var>
|
||||
<var name="perturb_only_atom" type="LOGICAL" >
|
||||
<default> .false.
|
||||
</dimension>
|
||||
<dimension name="perturb_only_atom" start="1" end="ntyp" type="LOGICAL" >
|
||||
<default> perturb_only_atom(i) = .false.
|
||||
</default>
|
||||
<see> compute_hp
|
||||
</see>
|
||||
<info>
|
||||
If perturb_only_atom(i)=.true. then only the i-th
|
||||
If <ref>perturb_only_atom</ref>(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:</b> this variable has a higher priority than <ref>skip_type</ref>.
|
||||
</info>
|
||||
</var>
|
||||
</dimension>
|
||||
<var name="start_q" type="INTEGER" >
|
||||
<default> 1
|
||||
</default>
|
||||
<see> last_q, sum_pertq
|
||||
</see>
|
||||
<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</ref> to <ref>last_q</ref>.
|
||||
|
||||
<b>IMPORTANT:</b> <ref>start_q</ref> must be smaller or equal to
|
||||
the total number of q points found.
|
||||
</info>
|
||||
</var>
|
||||
|
@ -179,8 +182,9 @@ the total number of q points found.
|
|||
<see> start_q, sum_pertq
|
||||
</see>
|
||||
<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</ref> to <ref>last_q</ref>.
|
||||
|
||||
<b>IMPORTANT:</b> <ref>last_q</ref> must be smaller or equal to
|
||||
the total number of q points found.
|
||||
</info>
|
||||
</var>
|
||||
|
@ -193,7 +197,7 @@ the total number of q points found.
|
|||
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>, <ref>last_q</ref> and <ref>perturb_only_atom</ref> are used.
|
||||
</info>
|
||||
</var>
|
||||
<var name="compute_hp" type="LOGICAL" >
|
||||
|
@ -209,7 +213,7 @@ Hubbard parameters. The HP code will look for files
|
|||
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</ref>=.true. must be used only when the
|
||||
calculation was parallelized over perturbations.
|
||||
</info>
|
||||
</var>
|
||||
|
@ -257,7 +261,7 @@ solution of the linear-response Kohn-Sham equations.
|
|||
<info>
|
||||
Mixing parameter (for the i-th iteration) for updating
|
||||
the response SCF potential using the modified Broyden
|
||||
method: D.D. Johnson, <a href="https://journals.aps.org/prb/abstract/10.1103/PhysRevB.38.12807">PRB 38, 12807 (1988)</a>.
|
||||
method. See: D.D. Johnson, <a href="https://journals.aps.org/prb/abstract/10.1103/PhysRevB.38.12807">PRB 38, 12807 (1988)</a>.
|
||||
</info>
|
||||
</var>
|
||||
<var name="nmix" type="INTEGER" >
|
||||
|
@ -265,7 +269,7 @@ method: D.D. Johnson, <a href="https://journals.aps.org/prb/abstract/10.1103/Phy
|
|||
</default>
|
||||
<info>
|
||||
Number of iterations used in potential mixing
|
||||
using the modified Broyden method
|
||||
using the modified Broyden method. See:
|
||||
D.D. Johnson, <a href="https://journals.aps.org/prb/abstract/10.1103/PhysRevB.38.12807">PRB 38, 12807 (1988)</a>.
|
||||
</info>
|
||||
</var>
|
||||
|
@ -287,13 +291,13 @@ when lda_plus_u_kind = 2 (post-processing stage).
|
|||
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</ref> 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</ref>=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</ref>=2 only the
|
||||
latter will be written to parameters.out.
|
||||
</info>
|
||||
</var>
|
||||
|
|
|
@ -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)
|
||||
|
||||
doc: all
|
||||
|
|
|
@ -262,6 +262,12 @@ CONTAINS
|
|||
IF ( .NOT. conv_bfgs .AND. ( tr_min_hit > 1 ) ) CALL infomsg( 'bfgs',&
|
||||
'history already reset at previous step: stopping' )
|
||||
conv_bfgs = conv_bfgs .OR. ( tr_min_hit > 1 )
|
||||
!
|
||||
WRITE(stdout, '(5X,"Energy error",T30,"= ",1PE12.1)') energy_error
|
||||
WRITE(stdout, '(5X,"Gradient error",T30,"= ",1PE12.1)') grad_error
|
||||
IF( lmovecell ) WRITE(stdout, &
|
||||
'(5X,"Cell gradient error",T30,"= ",1PE12.1,/)') cell_error
|
||||
!
|
||||
IF ( conv_bfgs ) GOTO 1000
|
||||
!
|
||||
! ... some output is written
|
||||
|
@ -275,10 +281,6 @@ CONTAINS
|
|||
WRITE( UNIT = stdout, &
|
||||
& FMT = '(5X,A," new",T30,"= ",F18.10," Ry",/)' ) fname,energy
|
||||
!
|
||||
WRITE(stdout, '(5X,"Gradient error",T30,"= ",1PE12.1)') grad_error
|
||||
IF( lmovecell ) WRITE(stdout, &
|
||||
'(5X,"Cell gradient error",T30,"= ",1PE12.1,/)') cell_error
|
||||
!
|
||||
! ... the bfgs algorithm starts here
|
||||
!
|
||||
IF ( .NOT. energy_wolfe_condition( energy ) .AND. (scf_iter > 1) ) THEN
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -116,10 +116,12 @@ input_description -distribution {Quantum Espresso} -package PWscf -program ph.x
|
|||
|
||||
var fildrho -type CHARACTER {
|
||||
default { ' ' }
|
||||
info { 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 }
|
||||
info {
|
||||
File where the charge density responses are written. Note that the file
|
||||
will actually be saved as @b {${outdir}/_ph0/${prefix}.${fildrho}1}
|
||||
where @b ${outdir}, @b ${prefix} and @b ${fildrho} are the values of the
|
||||
corresponding input variables
|
||||
}
|
||||
}
|
||||
|
||||
var fildvscf -type CHARACTER {
|
||||
|
@ -138,8 +140,9 @@ input_description -distribution {Quantum Espresso} -package PWscf -program ph.x
|
|||
macroscopic dielectric constant of the system is
|
||||
computed. Do not set @ref 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,
|
||||
|
||||
Note: the input value of @ref epsil will be ignored if @ref ldisp=.true.
|
||||
(the code will automatically set @ref epsil to .false. for metals,
|
||||
to .true. for insulators: see routine PHonon/PH/prepare_q.f90).
|
||||
}
|
||||
}
|
||||
|
@ -792,11 +795,11 @@ is the number of the representation. These files contain the
|
|||
contribution to the dynamical matrix of the irr representation for the
|
||||
iq point.
|
||||
|
||||
If recover=.true. ph.x does not recalculate the
|
||||
If @ref recover=.true. ph.x does not recalculate the
|
||||
representations already saved in the tmp_dir/_ph0/{prefix}.phsave
|
||||
directory. Moreover ph.x writes on the files patterns.#iq.xml in the
|
||||
tmp_dir/_ph0/{prefix}.phsave directory the displacement patterns that it
|
||||
is using. If recover=.true. ph.x does not recalculate the
|
||||
is using. If @ref recover=.true. ph.x does not recalculate the
|
||||
displacement patterns found in the tmp_dir/_ph0/{prefix}.phsave directory.
|
||||
|
||||
This mechanism allows:
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
<tr><th style="margin: 3 3 3 10; background: #005789; background: linear-gradient(rgba(0,87,137,1),rgba(0,119,189,1)); color: #ffffee; ">
|
||||
<h1 style="margin: 10 10 10 15; text-align: left;"> Input File Description </h1>
|
||||
<h2 style="margin: 10 10 10 15; text-align: left;"> Program:
|
||||
ph.x / PWscf / Quantum Espresso<span style="font-weight: normal;"> (version: 6.6)</span>
|
||||
ph.x / PWscf / Quantum Espresso<span style="font-weight: normal;"> (version: 6.7)</span>
|
||||
</h2>
|
||||
</th></tr>
|
||||
<tr><td style="padding: 10 3 3 3; background: #ffffff; color: #222222; ">
|
||||
|
@ -59,17 +59,17 @@
|
|||
<p><a href="#idm15">Line-of-input:</a> <a href="#idm16">title_line</a></p>
|
||||
<p><a href="#idm18">&INPUTPH</a></p>
|
||||
<blockquote>
|
||||
<a href="#idm19">amass</a> | <a href="#idm22">outdir</a> | <a href="#idm27">prefix</a> | <a href="#idm30">niter_ph</a> | <a href="#idm33">tr2_ph</a> | <a href="#idm36">alpha_mix(niter)</a> | <a href="#idm39">nmix_ph</a> | <a href="#idm42">verbosity</a> | <a href="#idm48">reduce_io</a> | <a href="#idm51">max_seconds</a> | <a href="#idm54">fildyn</a> | <a href="#idm57">fildrho</a> | <a href="#idm60">fildvscf</a> | <a href="#idm63">epsil</a> | <a href="#idm67">lrpa</a> | <a href="#idm70">lnoloc</a> | <a href="#idm73">trans</a> | <a href="#idm78">lraman</a> | <a href="#idm84">eth_rps</a> | <a href="#idm87">eth_ns</a> | <a href="#idm90">dek</a> | <a href="#idm93">recover</a> | <a href="#idm96">low_directory_check</a> | <a href="#idm99">only_init</a> | <a href="#idm102">qplot</a> | <a href="#idm105">q2d</a> | <a href="#idm108">q_in_band_form</a> | <a href="#idm111">electron_phonon</a> | <a href="#idm130">el_ph_nsigma</a> | <a href="#idm133">el_ph_sigma</a> | <a href="#idm139">ahc_dir</a> | <a href="#idm142">ahc_nbnd</a> | <a href="#idm145">ahc_nbndskip</a> | <a href="#idm153">skip_upperfan</a> | <a href="#idm156">lshift_q</a> | <a href="#idm159">zeu</a> | <a href="#idm165">zue</a> | <a href="#idm170">elop</a> | <a href="#idm173">fpol</a> | <a href="#idm177">ldisp</a> | <a href="#idm183">nogg</a> | <a href="#idm186">asr</a> | <a href="#idm189">ldiag</a> | <a href="#idm194">lqdir</a> | <a href="#idm199">search_sym</a> | <a href="#idm203">nq1</a> | <a href="#idm204">nq2</a> | <a href="#idm205">nq3</a> | <a href="#idm210">nk1</a> | <a href="#idm211">nk2</a> | <a href="#idm212">nk3</a> | <a href="#idm213">k1</a> | <a href="#idm214">k2</a> | <a href="#idm215">k3</a> | <a href="#idm218">diagonalization</a> | <a href="#idm224">read_dns_bare</a> | <a href="#idm227">ldvscf_interpolate</a> | <a href="#idm233">wpot_dir</a> | <a href="#idm236">do_long_range</a> | <a href="#idm239">do_charge_neutral</a> | <a href="#idm245">start_irr</a> | <a href="#idm255">last_irr</a> | <a href="#idm265">nat_todo</a> | <a href="#idm270">modenum</a> | <a href="#idm275">start_q</a> | <a href="#idm286">last_q</a> | <a href="#idm298">dvscf_star</a> | <a href="#idm306">drho_star</a>
|
||||
<a href="#idm19">amass</a> | <a href="#idm22">outdir</a> | <a href="#idm27">prefix</a> | <a href="#idm30">niter_ph</a> | <a href="#idm33">tr2_ph</a> | <a href="#idm36">alpha_mix(niter)</a> | <a href="#idm39">nmix_ph</a> | <a href="#idm42">verbosity</a> | <a href="#idm48">reduce_io</a> | <a href="#idm51">max_seconds</a> | <a href="#idm54">fildyn</a> | <a href="#idm57">fildrho</a> | <a href="#idm64">fildvscf</a> | <a href="#idm67">epsil</a> | <a href="#idm74">lrpa</a> | <a href="#idm77">lnoloc</a> | <a href="#idm80">trans</a> | <a href="#idm85">lraman</a> | <a href="#idm91">eth_rps</a> | <a href="#idm94">eth_ns</a> | <a href="#idm97">dek</a> | <a href="#idm100">recover</a> | <a href="#idm103">low_directory_check</a> | <a href="#idm106">only_init</a> | <a href="#idm109">qplot</a> | <a href="#idm112">q2d</a> | <a href="#idm115">q_in_band_form</a> | <a href="#idm118">electron_phonon</a> | <a href="#idm137">el_ph_nsigma</a> | <a href="#idm140">el_ph_sigma</a> | <a href="#idm146">ahc_dir</a> | <a href="#idm149">ahc_nbnd</a> | <a href="#idm152">ahc_nbndskip</a> | <a href="#idm160">skip_upperfan</a> | <a href="#idm163">lshift_q</a> | <a href="#idm166">zeu</a> | <a href="#idm172">zue</a> | <a href="#idm177">elop</a> | <a href="#idm180">fpol</a> | <a href="#idm184">ldisp</a> | <a href="#idm190">nogg</a> | <a href="#idm193">asr</a> | <a href="#idm196">ldiag</a> | <a href="#idm201">lqdir</a> | <a href="#idm206">search_sym</a> | <a href="#idm210">nq1</a> | <a href="#idm211">nq2</a> | <a href="#idm212">nq3</a> | <a href="#idm217">nk1</a> | <a href="#idm218">nk2</a> | <a href="#idm219">nk3</a> | <a href="#idm220">k1</a> | <a href="#idm221">k2</a> | <a href="#idm222">k3</a> | <a href="#idm225">diagonalization</a> | <a href="#idm231">read_dns_bare</a> | <a href="#idm234">ldvscf_interpolate</a> | <a href="#idm240">wpot_dir</a> | <a href="#idm243">do_long_range</a> | <a href="#idm246">do_charge_neutral</a> | <a href="#idm252">start_irr</a> | <a href="#idm262">last_irr</a> | <a href="#idm272">nat_todo</a> | <a href="#idm277">modenum</a> | <a href="#idm282">start_q</a> | <a href="#idm293">last_q</a> | <a href="#idm305">dvscf_star</a> | <a href="#idm313">drho_star</a>
|
||||
</blockquote>
|
||||
<p><a href="#idm318">Line-of-input:</a> <a href="#idm319"> xq(1) xq(2) xq(3)
|
||||
<p><a href="#idm325">Line-of-input:</a> <a href="#idm326"> xq(1) xq(2) xq(3)
|
||||
</a></p>
|
||||
<p><a href="#idm327">qPointsSpecs</a></p>
|
||||
<p><a href="#idm334">qPointsSpecs</a></p>
|
||||
<blockquote>
|
||||
<a href="#idm330">nqs</a> | <a href="#idm338">xq1</a> | <a href="#idm339">xq2</a> | <a href="#idm340">xq3</a> | <a href="#idm341">nq</a>
|
||||
<a href="#idm337">nqs</a> | <a href="#idm345">xq1</a> | <a href="#idm346">xq2</a> | <a href="#idm347">xq3</a> | <a href="#idm348">nq</a>
|
||||
</blockquote>
|
||||
<p><a href="#idm345">Line-of-input:</a> <a href="#idm346"> atom(1) atom(2) ... atom(nat_todo)
|
||||
<p><a href="#idm352">Line-of-input:</a> <a href="#idm353"> atom(1) atom(2) ... atom(nat_todo)
|
||||
</a></p>
|
||||
<p><a href="#idm350"> ADDITIONAL INFORMATION </a></p>
|
||||
<p><a href="#idm357"> ADDITIONAL INFORMATION </a></p>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
|
@ -320,13 +320,13 @@ vnew(in) = alpha_mix*vold(out) + (1-alpha_mix)*vold(in)
|
|||
</tr>
|
||||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
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 <b>${outdir}/_ph0/${prefix}.${fildrho}1</b>
|
||||
where <b>${outdir},</b> <b>${prefix}</b> and <b>${fildrho}</b> are the values of the
|
||||
corresponding input variables
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm60"></a><a name="fildvscf"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm64"></a><a name="fildvscf"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">fildvscf</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
|
||||
|
@ -342,7 +342,7 @@ File where the the potential variation is written
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm63"></a><a name="epsil"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm67"></a><a name="epsil"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">epsil</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -357,13 +357,14 @@ If .true. in a q=0 calculation for a non metal the
|
|||
macroscopic dielectric constant of the system is
|
||||
computed. Do not set <a href="#epsil">epsil</a> 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,
|
||||
|
||||
Note: the input value of <a href="#epsil">epsil</a> will be ignored if <a href="#ldisp">ldisp</a>=.true.
|
||||
(the code will automatically set <a href="#epsil">epsil</a> to .false. for metals,
|
||||
to .true. for insulators: see routine PHonon/PH/prepare_q.f90).
|
||||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm67"></a><a name="lrpa"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm74"></a><a name="lrpa"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">lrpa</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -379,7 +380,7 @@ RPA level with DV_xc=0.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm70"></a><a name="lnoloc"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm77"></a><a name="lnoloc"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">lnoloc</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -395,7 +396,7 @@ local fields, i.e. by setting DV_H=0 and DV_xc=0.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm73"></a><a name="trans"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm80"></a><a name="trans"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">trans</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -412,7 +413,7 @@ calculated.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm78"></a><a name="lraman"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm85"></a><a name="lraman"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">lraman</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -432,7 +433,7 @@ M. Lazzeri and F. Mauri, <a href="https://journals.aps.org/prl/abstract/10.1103/
|
|||
<table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; background-color: #FFddbb; width: 100%; padding: 5 5 0 30"><tr><td>
|
||||
<p><b> Optional variables for Raman:
|
||||
</b></p>
|
||||
<a name="idm84"></a><a name="eth_rps"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm91"></a><a name="eth_rps"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">eth_rps</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
|
@ -446,7 +447,7 @@ M. Lazzeri and F. Mauri, <a href="https://journals.aps.org/prl/abstract/10.1103/
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm87"></a><a name="eth_ns"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm94"></a><a name="eth_ns"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">eth_ns</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
|
@ -460,7 +461,7 @@ M. Lazzeri and F. Mauri, <a href="https://journals.aps.org/prl/abstract/10.1103/
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm90"></a><a name="dek"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm97"></a><a name="dek"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">dek</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
|
@ -475,7 +476,7 @@ M. Lazzeri and F. Mauri, <a href="https://journals.aps.org/prl/abstract/10.1103/
|
|||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
</td></tr></table>
|
||||
<a name="idm93"></a><a name="recover"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm100"></a><a name="recover"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">recover</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -489,7 +490,7 @@ M. Lazzeri and F. Mauri, <a href="https://journals.aps.org/prl/abstract/10.1103/
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm96"></a><a name="low_directory_check"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm103"></a><a name="low_directory_check"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">low_directory_check</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -505,7 +506,7 @@ If .true. search in the phsave directory only the
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm99"></a><a name="only_init"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm106"></a><a name="only_init"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">only_init</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -521,7 +522,7 @@ If .true. only the bands and other initialization quantities are calculated.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm102"></a><a name="qplot"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm109"></a><a name="qplot"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">qplot</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -535,7 +536,7 @@ If .true. only the bands and other initialization quantities are calculated.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm105"></a><a name="q2d"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm112"></a><a name="q2d"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">q2d</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -554,7 +555,7 @@ and three are the number of points in the two directions.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm108"></a><a name="q_in_band_form"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm115"></a><a name="q_in_band_form"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">q_in_band_form</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -574,7 +575,7 @@ input is calculated. The weights are not used.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm111"></a><a name="electron_phonon"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm118"></a><a name="electron_phonon"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">electron_phonon</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
|
||||
|
@ -654,7 +655,7 @@ the use of a different (larger) k-point grid.
|
|||
</blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm130"></a><a name="el_ph_nsigma"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm137"></a><a name="el_ph_nsigma"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">el_ph_nsigma</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -670,7 +671,7 @@ electron-phonon coupling calculation.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm133"></a><a name="el_ph_sigma"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm140"></a><a name="el_ph_sigma"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">el_ph_sigma</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
|
@ -689,7 +690,7 @@ an electron-phonon coupling calculation.
|
|||
<table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; background-color: #FFddbb; width: 100%; padding: 5 5 0 30"><tr><td>
|
||||
<p><b> Variables for <a href="#electron_phonon">electron_phonon</a> = 'ahc':
|
||||
</b></p>
|
||||
<a name="idm139"></a><a name="ahc_dir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm146"></a><a name="ahc_dir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">ahc_dir</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
|
||||
|
@ -704,7 +705,7 @@ Directory where the output binary files are written.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm142"></a><a name="ahc_nbnd"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm149"></a><a name="ahc_nbnd"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">ahc_nbnd</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -719,7 +720,7 @@ Number of bands for which the electron self-energy is to be computed.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm145"></a><a name="ahc_nbndskip"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm152"></a><a name="ahc_nbndskip"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">ahc_nbndskip</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -737,7 +738,7 @@ exceed nbnd of the preceding SCF or NSCF calculation.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm153"></a><a name="skip_upperfan"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm160"></a><a name="skip_upperfan"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">skip_upperfan</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -754,7 +755,7 @@ involves solving the Sternheimer equation.
|
|||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
</td></tr></table>
|
||||
<a name="idm156"></a><a name="lshift_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm163"></a><a name="lshift_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">lshift_q</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -771,7 +772,7 @@ When this option is set, the q2r.x code cannot be used.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm159"></a><a name="zeu"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm166"></a><a name="zeu"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">zeu</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -789,7 +790,7 @@ and <a href="#zeu">zeu</a>=.false. only the dielectric tensor is calculated.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm165"></a><a name="zue"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm172"></a><a name="zue"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">zue</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -808,7 +809,7 @@ The results should be the same within numerical noise.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm170"></a><a name="elop"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm177"></a><a name="elop"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">elop</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -823,7 +824,7 @@ If .true. calculate electro-optic tensor.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm173"></a><a name="fpol"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm180"></a><a name="fpol"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">fpol</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -840,7 +841,7 @@ see example09 for calculation of methane ).
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm177"></a><a name="ldisp"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm184"></a><a name="ldisp"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">ldisp</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -857,7 +858,7 @@ calculation of the entire phonon dispersion.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm183"></a><a name="nogg"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm190"></a><a name="nogg"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">nogg</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -877,7 +878,7 @@ minimum, as it is done in code phcg.x.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm186"></a><a name="asr"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm193"></a><a name="asr"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">asr</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -893,7 +894,7 @@ Works only in conjunction with "gamma_gamma" tricks (see above)
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm189"></a><a name="ldiag"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm196"></a><a name="ldiag"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">ldiag</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -914,7 +915,7 @@ correct. The others are zero or wrong. Use with care.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm194"></a><a name="lqdir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm201"></a><a name="lqdir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">lqdir</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -933,7 +934,7 @@ separately for each q inside the subdirectories.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm199"></a><a name="search_sym"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm206"></a><a name="search_sym"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">search_sym</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -952,7 +953,7 @@ symmetry analysis.
|
|||
<table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="white-space: nowrap; background: #ffff99; padding: 2 2 2 10; ">
|
||||
<a name="idm203"></a><a name="nq1"></a>nq1, <a name="idm204"></a><a name="nq2"></a>nq2, <a name="idm205"></a><a name="nq3"></a>nq3</th>
|
||||
<a name="idm210"></a><a name="nq1"></a>nq1, <a name="idm211"></a><a name="nq2"></a>nq2, <a name="idm212"></a><a name="nq3"></a>nq3</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -970,7 +971,7 @@ in the input of pw.x.
|
|||
<table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="white-space: nowrap; background: #ffff99; padding: 2 2 2 10; ">
|
||||
<a name="idm210"></a><a name="nk1"></a>nk1, <a name="idm211"></a><a name="nk2"></a>nk2, <a name="idm212"></a><a name="nk3"></a>nk3, <a name="idm213"></a><a name="k1"></a>k1, <a name="idm214"></a><a name="k2"></a>k2, <a name="idm215"></a><a name="k3"></a>k3</th>
|
||||
<a name="idm217"></a><a name="nk1"></a>nk1, <a name="idm218"></a><a name="nk2"></a>nk2, <a name="idm219"></a><a name="nk3"></a>nk3, <a name="idm220"></a><a name="k1"></a>k1, <a name="idm221"></a><a name="k2"></a>k2, <a name="idm222"></a><a name="k3"></a>k3</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -988,7 +989,7 @@ with offset determined by k1,k2,k3.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm218"></a><a name="diagonalization"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm225"></a><a name="diagonalization"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">diagonalization</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
|
||||
|
@ -1020,7 +1021,7 @@ Slower than 'david' but uses less memory and is
|
|||
</blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm224"></a><a name="read_dns_bare"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm231"></a><a name="read_dns_bare"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">read_dns_bare</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -1043,7 +1044,7 @@ read (e.g. for restart) in order to save time.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm227"></a><a name="ldvscf_interpolate"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm234"></a><a name="ldvscf_interpolate"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">ldvscf_interpolate</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -1064,7 +1065,7 @@ Requires <a href="#trans">trans</a> = .false..
|
|||
<table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; background-color: #FFddbb; width: 100%; padding: 5 5 0 30"><tr><td>
|
||||
<p><b> Optional variables for dvscf interpolation:
|
||||
</b></p>
|
||||
<a name="idm233"></a><a name="wpot_dir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm240"></a><a name="wpot_dir"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">wpot_dir</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">CHARACTER</td>
|
||||
|
@ -1082,7 +1083,7 @@ with names ${prefix}.wpot.irc${irc}//"1".
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm236"></a><a name="do_long_range"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm243"></a><a name="do_long_range"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">do_long_range</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -1103,7 +1104,7 @@ The quadrupole part is not implemented.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm239"></a><a name="do_charge_neutral"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm246"></a><a name="do_charge_neutral"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">do_charge_neutral</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">LOGICAL</td>
|
||||
|
@ -1123,7 +1124,7 @@ charges. Used only if <a href="#do_long_range">do_long_range</a> = .true..
|
|||
<table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; background-color: #FFddbb; width: 100%; padding: 5 5 0 30"><tr><td>
|
||||
<p><b> Specification of irreducible representation
|
||||
</b></p>
|
||||
<a name="idm245"></a><a name="start_irr"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm252"></a><a name="start_irr"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">start_irr</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -1148,7 +1149,7 @@ IMPORTANT:
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm255"></a><a name="last_irr"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm262"></a><a name="last_irr"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">last_irr</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -1173,7 +1174,7 @@ IMPORTANT:
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm265"></a><a name="nat_todo"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm272"></a><a name="nat_todo"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">nat_todo</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -1198,7 +1199,7 @@ IMPORTANT:
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm270"></a><a name="modenum"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm277"></a><a name="modenum"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">modenum</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -1224,7 +1225,7 @@ a column of the dynamical matrix.
|
|||
<table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; background-color: #FFddbb; width: 100%; padding: 5 5 0 30"><tr><td>
|
||||
<p><b> q-point specification
|
||||
</b></p>
|
||||
<a name="idm275"></a><a name="start_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm282"></a><a name="start_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">start_q</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -1249,7 +1250,7 @@ IMPORTANT:
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm286"></a><a name="last_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm293"></a><a name="last_q"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">last_q</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -1274,7 +1275,7 @@ IMPORTANT
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm298"></a><a name="dvscf_star"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm305"></a><a name="dvscf_star"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">dvscf_star</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">STRUCTURE</td>
|
||||
|
@ -1319,7 +1320,7 @@ Note2: this feature is currently untested with image parallelisation.
|
|||
</pre></blockquote></td></tr>
|
||||
</table>
|
||||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<a name="idm306"></a><a name="drho_star"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm313"></a><a name="drho_star"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">drho_star</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">STRUCTURE</td>
|
||||
|
@ -1356,7 +1357,7 @@ Notice that the defaults are different.
|
|||
</table>
|
||||
<table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; width: 100%; padding: 5 5 0 5"><tr><td>
|
||||
<b>IF </b><tt><em>ldisp != .true. and qplot != .true.</em> :</tt><blockquote><table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; background-color: #FFddbb; width: 100%; padding: 5 5 0 30"><tr><td>
|
||||
<a name="idm318"></a><table border="0" width="100%" style="margin-bottom: 20; ">
|
||||
<a name="idm325"></a><table border="0" width="100%" style="margin-bottom: 20; ">
|
||||
<tr><th bgcolor="#ddcba6"><h3 style="margin: 10 10 10 15; text-align: left;">
|
||||
Line of input
|
||||
</h3></th></tr>
|
||||
|
@ -1364,13 +1365,13 @@ Notice that the defaults are different.
|
|||
<tr><td>
|
||||
<h3>Syntax:</h3>
|
||||
<blockquote>
|
||||
<i><a href="#idm319"> xq(1) xq(2) xq(3)
|
||||
<i><a href="#idm326"> xq(1) xq(2) xq(3)
|
||||
</a></i> </blockquote>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
<h3>Description of items:</h3>
|
||||
<blockquote>
|
||||
<a name="idm319"></a><a name="xq_list"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm326"></a><a name="xq_list"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th width="20%" style="white-space: nowrap; text-align: left; vertical-align: top; background: #ffff99; padding: 2 2 2 10; "> xq(1) xq(2) xq(3)
|
||||
</th>
|
||||
|
@ -1391,32 +1392,32 @@ Not used if <a href="#ldisp">ldisp</a>=.true. or <a href="#qplot">qplot</a>=.tru
|
|||
<b>ELSEIF </b><tt><em>qplot == .true.</em> :</tt><blockquote><table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; background-color: #FFddbb; width: 100%; padding: 5 5 0 30"><tr><td>
|
||||
<p><b> Specification of q points when <a href="#qplot">qplot</a> == .true.
|
||||
</b></p>
|
||||
<a name="idm327"></a><a name="qPointsSpecs"></a><table border="0" style="margin-bottom: 20; table-layout: auto; width: 100%;">
|
||||
<a name="idm334"></a><a name="qPointsSpecs"></a><table border="0" style="margin-bottom: 20; table-layout: auto; width: 100%;">
|
||||
<tr><th bgcolor="#ddcba6"><h2 style="margin: 10 10 10 15; text-align: left; white-space: nowrap;">
|
||||
Card: <span class="card">qPointsSpecs</span> </h2></th></tr>
|
||||
<tr><td style="text-align: left; background: #ffebc6; padding: 5 5 5 30; "><table style="border-color: #505087; border-style: solid; border-width: 0; margin-bottom: 10; table-layout: auto; width: 100%;"><tbody>
|
||||
<tr><td>
|
||||
<h3>Syntax:</h3>
|
||||
<blockquote><div class="syntax">
|
||||
<i><a href="#idm330">nqs</a></i> <br><a name="idm333"></a><table>
|
||||
<i><a href="#idm337">nqs</a></i> <br><a name="idm340"></a><table>
|
||||
<tr>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm338">xq1(1)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm339">xq2(1)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm340">xq3(1)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm341">nq(1)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm345">xq1(1)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm346">xq2(1)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm347">xq3(1)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm348">nq(1)</a></i> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm338">xq1(2)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm339">xq2(2)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm340">xq3(2)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm341">nq(2)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm345">xq1(2)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm346">xq2(2)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm347">xq3(2)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm348">nq(2)</a></i> </td>
|
||||
</tr>
|
||||
<tr><td colspan="2"> . . .</td></tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm338">xq1(nqs)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm339">xq2(nqs)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm340">xq3(nqs)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm341">nq(nqs)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm345">xq1(nqs)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm346">xq2(nqs)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm347">xq3(nqs)</a></i> </td>
|
||||
<td style="white-space:nowrap"> <i><a href="#idm348">nq(nqs)</a></i> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div></blockquote>
|
||||
|
@ -1424,7 +1425,7 @@ Not used if <a href="#ldisp">ldisp</a>=.true. or <a href="#qplot">qplot</a>=.tru
|
|||
<tr><td>
|
||||
<h3>Description of items:</h3>
|
||||
<blockquote>
|
||||
<a name="idm330"></a><a name="nqs"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm337"></a><a name="nqs"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; ">nqs</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
|
@ -1437,7 +1438,7 @@ Number of q points in the list. Used only if <a href="#qplot">qplot</a>=.true.
|
|||
<table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th width="20%" align="left" valign="top" style="background: #ffff99; padding: 2 2 2 10; ">
|
||||
<a name="xq1"><a name="idm338">xq1</a></a>, <a name="xq2"><a name="idm339">xq2</a></a>, <a name="xq3"><a name="idm340">xq3</a></a>
|
||||
<a name="xq1"><a name="idm345">xq1</a></a>, <a name="xq2"><a name="idm346">xq2</a></a>, <a name="xq3"><a name="idm347">xq3</a></a>
|
||||
</th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">REAL</td>
|
||||
</tr>
|
||||
|
@ -1451,7 +1452,7 @@ flags q2d and q_in_band_form. (NB: nq is integer)
|
|||
<div align="right" style="margin-bottom: 5;">[<a href="#__top__">Back to Top</a>]</div>
|
||||
<table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; "><a name="nq"><a name="idm341">nq</a></a></th>
|
||||
<th align="left" valign="top" width="20%" style="background: #ffff99; padding: 2 2 2 10; "><a name="nq"><a name="idm348">nq</a></a></th>
|
||||
<td style="text-align: left; vertical-align: top; background: #ffffc3; padding: 2 2 2 5; ">INTEGER</td>
|
||||
</tr>
|
||||
<tr><td align="left" valign="top" colspan="2"><blockquote><pre style="margin-bottom: -1em;">
|
||||
|
@ -1468,7 +1469,7 @@ on the flags q2d and q_in_band_form.
|
|||
</td></tr></table>
|
||||
<table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; width: 100%; padding: 5 5 0 5"><tr><td>
|
||||
<b>IF </b><tt><em>nat_todo was specified</em> :</tt><blockquote><table style="border-color: #bb9977; border-style: solid; border-width: 3; margin-bottom: 10; table-layout: auto; background-color: #FFddbb; width: 100%; padding: 5 5 0 30"><tr><td>
|
||||
<a name="idm345"></a><table border="0" width="100%" style="margin-bottom: 20; ">
|
||||
<a name="idm352"></a><table border="0" width="100%" style="margin-bottom: 20; ">
|
||||
<tr><th bgcolor="#ddcba6"><h3 style="margin: 10 10 10 15; text-align: left;">
|
||||
Line of input
|
||||
</h3></th></tr>
|
||||
|
@ -1476,13 +1477,13 @@ on the flags q2d and q_in_band_form.
|
|||
<tr><td>
|
||||
<h3>Syntax:</h3>
|
||||
<blockquote>
|
||||
<i><a href="#idm346"> atom(1) atom(2) ... atom(nat_todo)
|
||||
<i><a href="#idm353"> atom(1) atom(2) ... atom(nat_todo)
|
||||
</a></i> </blockquote>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
<h3>Description of items:</h3>
|
||||
<blockquote>
|
||||
<a name="idm346"></a><a name="nat_todo_list"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<a name="idm353"></a><a name="nat_todo_list"></a><table width="100%" style="border-color: #b5b500; border-style: solid; border-width: 2; margin-bottom: 10; table-layout: auto; background-color: #FFFFFF;">
|
||||
<tr>
|
||||
<th width="20%" style="white-space: nowrap; text-align: left; vertical-align: top; background: #ffff99; padding: 2 2 2 10; "> atom(1) atom(2) ... atom(nat_todo)
|
||||
</th>
|
||||
|
@ -1501,7 +1502,7 @@ calculation if <a href="#nat_todo">nat_todo</a> is specified.
|
|||
</td></tr></table></blockquote>
|
||||
</td></tr></table>
|
||||
<blockquote>
|
||||
<a name="idm350"><h3> ADDITIONAL INFORMATION </h3></a>
|
||||
<a name="idm357"><h3> ADDITIONAL INFORMATION </h3></a>
|
||||
<blockquote><pre>
|
||||
NB: The program ph.x writes on the tmp_dir/_ph0/{prefix}.phsave directory
|
||||
a file for each representation of each q point. This file is called
|
||||
|
@ -1510,11 +1511,11 @@ is the number of the representation. These files contain the
|
|||
contribution to the dynamical matrix of the irr representation for the
|
||||
iq point.
|
||||
|
||||
If recover=.true. ph.x does not recalculate the
|
||||
If <a href="#recover">recover</a>=.true. ph.x does not recalculate the
|
||||
representations already saved in the tmp_dir/_ph0/{prefix}.phsave
|
||||
directory. Moreover ph.x writes on the files patterns.#iq.xml in the
|
||||
tmp_dir/_ph0/{prefix}.phsave directory the displacement patterns that it
|
||||
is using. If recover=.true. ph.x does not recalculate the
|
||||
is using. If <a href="#recover">recover</a>=.true. ph.x does not recalculate the
|
||||
displacement patterns found in the tmp_dir/_ph0/{prefix}.phsave directory.
|
||||
|
||||
This mechanism allows:
|
||||
|
@ -1559,7 +1560,7 @@ information.
|
|||
</td></tr>
|
||||
</table>
|
||||
<small>
|
||||
This file has been created by helpdoc utility on Mon Nov 23 08:30:06 UTC 2020.
|
||||
This file has been created by helpdoc utility on Sun Nov 29 12:16:13 CET 2020.
|
||||
</small>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
------------------------------------------------------------------------
|
||||
INPUT FILE DESCRIPTION
|
||||
|
||||
Program: ph.x / PWscf / Quantum Espresso (version: 6.6)
|
||||
Program: ph.x / PWscf / Quantum Espresso (version: 6.7)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -160,9 +160,9 @@ NAMELIST: &INPUTPH
|
|||
Type: CHARACTER
|
||||
Default: ' '
|
||||
Description: 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
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -183,8 +183,9 @@ NAMELIST: &INPUTPH
|
|||
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,
|
||||
|
||||
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).
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -932,11 +933,11 @@ ________________________________________________________________________
|
|||
contribution to the dynamical matrix of the irr representation for the
|
||||
iq point.
|
||||
|
||||
If recover=.true. ph.x does not recalculate the
|
||||
If "recover"=.true. ph.x does not recalculate the
|
||||
representations already saved in the tmp_dir/_ph0/{prefix}.phsave
|
||||
directory. Moreover ph.x writes on the files patterns.#iq.xml in the
|
||||
tmp_dir/_ph0/{prefix}.phsave directory the displacement patterns that it
|
||||
is using. If recover=.true. ph.x does not recalculate the
|
||||
is using. If "recover"=.true. ph.x does not recalculate the
|
||||
displacement patterns found in the tmp_dir/_ph0/{prefix}.phsave directory.
|
||||
|
||||
This mechanism allows:
|
||||
|
@ -978,4 +979,4 @@ ________________________________________________________________________
|
|||
information.
|
||||
|
||||
|
||||
This file has been created by helpdoc utility on Mon Nov 23 08:30:06 UTC 2020
|
||||
This file has been created by helpdoc utility on Sun Nov 29 12:16:13 CET 2020
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -741,16 +741,18 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
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
|
||||
|
||||
@b {NOTE 1:} @ref 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
|
||||
@ref tot_magnetization, do not specify starting_magnetization.
|
||||
NOTE 3: In the noncollinear/spin-orbit case, starting with zero
|
||||
|
||||
@b {NOTE 2:} If you fix the magnetization with
|
||||
@ref tot_magnetization, do not specify @ref starting_magnetization.
|
||||
|
||||
@b {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 is
|
||||
set to zero (the internal variable domag is set to .FALSE.).
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1180,8 +1182,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
is not configured there.
|
||||
}
|
||||
info {
|
||||
Specify @ref lda_plus_u = .TRUE. to enable DFT+U, DFT+U+V, or
|
||||
DFT+U+J calculations.
|
||||
Specify @ref lda_plus_u = .TRUE. to enable @b DFT+U, @b DFT+U+V, or @b 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).
|
||||
|
@ -1193,17 +1194,24 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
}
|
||||
var lda_plus_u_kind -type INTEGER {
|
||||
default { 0 }
|
||||
info {
|
||||
Specifies the type of calculation:
|
||||
options {
|
||||
info { Specifies the type of calculation: }
|
||||
|
||||
0 DFT+U simplified version of Cococcioni and de Gironcoli,
|
||||
PRB 71, 035105 (2005), using @ref Hubbard_U
|
||||
|
||||
1 DFT+U rotationally invariant scheme of Liechtenstein et al.,
|
||||
using @ref Hubbard_U and @ref Hubbard_J
|
||||
|
||||
2 DFT+U+V simplified version of Campo Jr and Cococcioni,
|
||||
J. Phys.: Condens. Matter 22, 055602 (2010), using @ref Hubbard_V
|
||||
opt -val 0 {
|
||||
DFT+U simplified version of Cococcioni and de Gironcoli,
|
||||
PRB 71, 035105 (2005), using @ref Hubbard_U
|
||||
}
|
||||
|
||||
opt -val 1 {
|
||||
DFT+U rotationally invariant scheme of Liechtenstein et al.,
|
||||
using @ref Hubbard_U and @ref Hubbard_J
|
||||
}
|
||||
|
||||
opt -val 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 @ref Hubbard_V
|
||||
}
|
||||
}
|
||||
}
|
||||
dimension Hubbard_U -start 1 -end ntyp -type REAL {
|
||||
|
@ -1227,15 +1235,19 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
The atomic indices na and nb correspond to the atomic positions
|
||||
in the @ref ATOMIC_POSITIONS card (this is not the same as Hubbard_U
|
||||
which is specified for @ref ATOMIC_SPECIES).
|
||||
Wnen na=nb, then Hubbard_V(na,na,k) is the on-site Hubbard_U
|
||||
|
||||
When na=nb, then @ref Hubbard_V(na,na,k) is the on-site @ref Hubbard_U
|
||||
for the atom na.
|
||||
|
||||
natx=50 (if needed it can be changed in /Modules/parameters.f90)
|
||||
|
||||
The index k controls the "interaction type" (k=1 is used for the
|
||||
simplest DFT+U+V calculation):
|
||||
k=1 - interaction between standard orbitals (both on na and nb);
|
||||
k=2 - interaction between standard (on na) and background (on nb) orbitals;
|
||||
k=3 - interaction between background orbitals (both on na and nb);
|
||||
k=4 - interaction between background (on na) and standard (on nb) orbitals.
|
||||
@b k=1 - interaction between standard orbitals (both on na and nb);
|
||||
@b k=2 - interaction between standard (on na) and background (on nb) orbitals;
|
||||
@b k=3 - interaction between background orbitals (both on na and nb);
|
||||
@b k=4 - interaction between background (on na) and standard (on nb) orbitals.
|
||||
|
||||
Standard orbitals correspond to the main Hubbard channel (e.g. d electrons
|
||||
in transition metals) and background orbitals correspond to the secondary
|
||||
Hubbard channel (e.g. p electrons in transition metals).
|
||||
|
@ -1248,6 +1260,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
used to compute U (and V) with the linear-response method of
|
||||
Cococcioni and de Gironcoli, PRB 71, 035105 (2005)
|
||||
(only for @ref 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
|
||||
|
@ -1269,10 +1282,12 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
info {
|
||||
Hubbard_J(i,ityp): J parameters (eV) for species ityp,
|
||||
used in DFT+U calculations (only for @ref lda_plus_u_kind=1)
|
||||
|
||||
For p orbitals: J = Hubbard_J(1,ityp);
|
||||
For d orbitals: J = Hubbard_J(1,ityp), B = Hubbard_J(2,ityp);
|
||||
For f orbitals: J = Hubbard_J(1,ityp), E2 = Hubbard_J(2,ityp),
|
||||
E3= Hubbard_J(3,ityp).
|
||||
|
||||
If B or E2 or E3 are not specified or set to 0 they will be
|
||||
calculated from J using atomic ratios.
|
||||
}
|
||||
|
@ -1361,7 +1376,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
var ensemble_energies -type LOGICAL {
|
||||
default { .false. }
|
||||
info {
|
||||
If ensemble_energies = .true., an ensemble of xc energies
|
||||
If @ref ensemble_energies = .true., an ensemble of xc energies
|
||||
is calculated non-selfconsistently for perturbed
|
||||
exchange-enhancement factors and LDA vs. PBE correlation
|
||||
ratios after each converged electronic ground state
|
||||
|
@ -1371,7 +1386,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
included with libbeef.
|
||||
|
||||
Requires linking against libbeef.
|
||||
input_dft must be set to a BEEF-type functional
|
||||
@ref input_dft must be set to a BEEF-type functional
|
||||
(e.g. input_dft = 'BEEF-vdW')
|
||||
}
|
||||
}
|
||||
|
@ -1524,9 +1539,9 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
default { -1 }
|
||||
info {
|
||||
determines when atomic magnetic moments are printed on output:
|
||||
report = 0 never
|
||||
report =-1 at the beginning of the scf and at convergence
|
||||
report = N: as -1, plus every N scf iterations
|
||||
@b {report = 0} never
|
||||
@b {report =-1} at the beginning of the scf and at convergence
|
||||
@b {report = N} as -1, plus every N scf iterations
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1874,7 +1889,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
default { .FALSE. }
|
||||
info {
|
||||
Used only for monoclinic lattices. If .TRUE. the b
|
||||
unique ibrav (-12 or -13) are used, and symmetry
|
||||
unique @ref ibrav (-12 or -13) are used, and symmetry
|
||||
equivalent positions are chosen assuming that the
|
||||
twofold axis or the mirror normal is parallel to the
|
||||
b axis. If .FALSE. it is parallel to the c axis.
|
||||
|
@ -1885,8 +1900,8 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x
|
|||
default { 1 }
|
||||
info {
|
||||
Used only for space groups that in the ITA allow
|
||||
the use of two different origins. origin_choice=1,
|
||||
means the first origin, while origin_choice=2 is the
|
||||
the use of two different origins. @ref origin_choice=1,
|
||||
means the first origin, while @ref origin_choice=2 is the
|
||||
second origin.
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,7 +3,7 @@
|
|||
------------------------------------------------------------------------
|
||||
INPUT FILE DESCRIPTION
|
||||
|
||||
Program: pw.x / PWscf / Quantum Espresso (version: 6.6)
|
||||
Program: pw.x / PWscf / Quantum Espresso (version: 6.7)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -321,7 +321,9 @@ NAMELIST: &CONTROL
|
|||
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")
|
||||
|
||||
'medium' :
|
||||
save charge to disk at each SCF step,
|
||||
|
@ -343,10 +345,7 @@ NAMELIST: &CONTROL
|
|||
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
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -749,11 +748,14 @@ NAMELIST: &SYSTEM
|
|||
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
|
||||
|
||||
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.
|
||||
"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 is
|
||||
|
@ -1215,8 +1217,7 @@ NAMELIST: &SYSTEM
|
|||
a few selected elements. Modify Modules/set_hubbard_l.f90 and
|
||||
PW/src/tabd.f90 if you plan to use DFT+U with an element that
|
||||
is not configured there.
|
||||
Description: Specify "lda_plus_u" = .TRUE. to enable DFT+U, DFT+U+V, or
|
||||
DFT+U+J calculations.
|
||||
Description: 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).
|
||||
|
@ -1231,16 +1232,21 @@ NAMELIST: &SYSTEM
|
|||
|
||||
Type: INTEGER
|
||||
Default: 0
|
||||
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"
|
||||
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), doi:10.1088/0953-8984/22/5/055602,
|
||||
using "Hubbard_V"
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -1270,15 +1276,19 @@ NAMELIST: &SYSTEM
|
|||
The atomic indices na and nb correspond to the atomic positions
|
||||
in the "ATOMIC_POSITIONS" card (this is not the same as Hubbard_U
|
||||
which is specified for "ATOMIC_SPECIES").
|
||||
Wnen na=nb, then Hubbard_V(na,na,k) is the on-site Hubbard_U
|
||||
|
||||
When na=nb, then "Hubbard_V"(na,na,k) is the on-site "Hubbard_U"
|
||||
for the atom na.
|
||||
|
||||
natx=50 (if needed it can be changed in /Modules/parameters.f90)
|
||||
|
||||
The index k controls the "interaction type" (k=1 is used for the
|
||||
simplest DFT+U+V calculation):
|
||||
k=1 - interaction between standard orbitals (both on na and nb);
|
||||
k=2 - interaction between standard (on na) and background (on nb) orbitals;
|
||||
k=3 - interaction between background orbitlas (both on na and nb);
|
||||
k=3 - interaction between background orbitals (both on na and nb);
|
||||
k=4 - interaction between background (on na) and standard (on nb) orbitals.
|
||||
|
||||
Standard orbitals correspond to the main Hubbard channel (e.g. d electrons
|
||||
in transition metals) and background orbitals correspond to the secondary
|
||||
Hubbard channel (e.g. p electrons in transition metals).
|
||||
|
@ -1293,6 +1303,7 @@ NAMELIST: &SYSTEM
|
|||
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 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
|
||||
|
@ -1318,10 +1329,12 @@ NAMELIST: &SYSTEM
|
|||
Default: 0.D0 for all species
|
||||
Description: Hubbard_J(i,ityp): J parameters (eV) for species ityp,
|
||||
used in DFT+U calculations (only for "lda_plus_u_kind"=1)
|
||||
|
||||
For p orbitals: J = Hubbard_J(1,ityp);
|
||||
For d orbitals: J = Hubbard_J(1,ityp), B = Hubbard_J(2,ityp);
|
||||
For f orbitals: J = Hubbard_J(1,ityp), E2 = Hubbard_J(2,ityp),
|
||||
E3= Hubbard_J(3,ityp).
|
||||
|
||||
If B or E2 or E3 are not specified or set to 0 they will be
|
||||
calculated from J using atomic ratios.
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -1410,7 +1423,7 @@ NAMELIST: &SYSTEM
|
|||
|
||||
Type: LOGICAL
|
||||
Default: .false.
|
||||
Description: If ensemble_energies = .true., an ensemble of xc energies
|
||||
Description: If "ensemble_energies" = .true., an ensemble of xc energies
|
||||
is calculated non-selfconsistently for perturbed
|
||||
exchange-enhancement factors and LDA vs. PBE correlation
|
||||
ratios after each converged electronic ground state
|
||||
|
@ -1420,7 +1433,7 @@ NAMELIST: &SYSTEM
|
|||
included with libbeef.
|
||||
|
||||
Requires linking against libbeef.
|
||||
input_dft must be set to a BEEF-type functional
|
||||
"input_dft" must be set to a BEEF-type functional
|
||||
(e.g. input_dft = 'BEEF-vdW')
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -1581,7 +1594,7 @@ NAMELIST: &SYSTEM
|
|||
Description: determines when atomic magnetic moments are printed on output:
|
||||
report = 0 never
|
||||
report =-1 at the beginning of the scf and at convergence
|
||||
report = N: as -1, plus every N scf iterations
|
||||
report = N as -1, plus every N scf iterations
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -1947,7 +1960,7 @@ NAMELIST: &SYSTEM
|
|||
Type: LOGICAL
|
||||
Default: .FALSE.
|
||||
Description: Used only for monoclinic lattices. If .TRUE. the b
|
||||
unique ibrav (-12 or -13) are used, and symmetry
|
||||
unique "ibrav" (-12 or -13) are used, and symmetry
|
||||
equivalent positions are chosen assuming that the
|
||||
twofold axis or the mirror normal is parallel to the
|
||||
b axis. If .FALSE. it is parallel to the c axis.
|
||||
|
@ -1959,8 +1972,8 @@ NAMELIST: &SYSTEM
|
|||
Type: INTEGER
|
||||
Default: 1
|
||||
Description: Used only for space groups that in the ITA allow
|
||||
the use of two different origins. origin_choice=1,
|
||||
means the first origin, while origin_choice=2 is the
|
||||
the use of two different origins. "origin_choice"=1,
|
||||
means the first origin, while "origin_choice"=2 is the
|
||||
second origin.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -3536,4 +3549,4 @@ CARD: ATOMIC_FORCES
|
|||
===END OF CARD==========================================================
|
||||
|
||||
|
||||
This file has been created by helpdoc utility on Tue Sep 29 12:44:54 CEST 2020
|
||||
This file has been created by helpdoc utility on Sat Nov 28 21:53:08 CET 2020
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -53,7 +53,6 @@ SUBROUTINE summary()
|
|||
USE fcp_variables, ONLY : lfcpopt, lfcpdyn
|
||||
USE fcp, ONLY : fcp_summary
|
||||
USE relax, ONLY : epse, epsf, epsp
|
||||
USE force_mod, ONLY : lforce
|
||||
!
|
||||
IMPLICIT NONE
|
||||
!
|
||||
|
@ -96,7 +95,7 @@ SUBROUTINE summary()
|
|||
WRITE( stdout, 103) nbnd, ecutwfc, ecutrho
|
||||
IF ( dft_is_hybrid () ) WRITE( stdout, 104) ecutfock
|
||||
IF ( lscf) WRITE( stdout, 105) tr2, mixing_beta, nmix, mixing_style
|
||||
IF ( lforce ) WRITE (stdout, 106) epse, epsf
|
||||
IF ( lmd .OR. lbfgs ) WRITE (stdout, 106) epse, epsf
|
||||
IF ( lmovecell ) WRITE (stdout, 107) epsp
|
||||
!
|
||||
100 FORMAT( /,/,5X, &
|
||||
|
|
|
@ -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)
|
||||
|
||||
doc: all
|
||||
|
|
|
@ -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)
|
||||
|
||||
HTMLS = INPUT_Lanczos.html \
|
||||
|
|
|
@ -181,7 +181,7 @@ input_description -distribution {Quantum Espresso} -program ld1.x {
|
|||
1 ... spin-polarized calculation
|
||||
|
||||
@b BEWARE:
|
||||
not allowed if iswitch=3 (PP generation) or with full
|
||||
not allowed if @ref iswitch=3 (PP generation) or with full
|
||||
relativistic calculation
|
||||
}
|
||||
default { 0 }
|
||||
|
@ -268,7 +268,7 @@ input_description -distribution {Quantum Espresso} -program ld1.x {
|
|||
info {
|
||||
@b 'low' or @b 'high'
|
||||
|
||||
if @b 'high' with iswitch=2,3 prints separately core and
|
||||
if @b 'high' with @ref iswitch=2,3 prints separately core and
|
||||
valence contributions to the energies. Print the
|
||||
frozen-core energy.
|
||||
}
|
||||
|
@ -425,12 +425,12 @@ input_description -distribution {Quantum Espresso} -program ld1.x {
|
|||
var pseudotype -type INTEGER {
|
||||
info {
|
||||
1 ... norm-conserving, single-projector PP
|
||||
IMPORTANT: if pseudotype=1 all calculations are done
|
||||
@b 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
|
||||
@b IMPORTANT: multiple projectors allowed but not properly
|
||||
implemented, use only if you know what you are doing
|
||||
|
||||
3 ... ultrasoft PP or PAW
|
||||
|
@ -746,15 +746,15 @@ input_description -distribution {Quantum Espresso} -program ld1.x {
|
|||
}
|
||||
|
||||
namelist TEST {
|
||||
label { needed only if iswitch=2 or iswitch=4, optional if iswitch=3 }
|
||||
label { needed only if @ref iswitch=2 or @ref iswitch=4, optional if @ref iswitch=3 }
|
||||
|
||||
var nconf -type INTEGER {
|
||||
info { the number of configurations to be tested. For iswitch = 4 nconf=2 }
|
||||
info { the number of configurations to be tested. For @ref iswitch=4 nconf=2 }
|
||||
default { 1 }
|
||||
}
|
||||
|
||||
var file_pseudo -type CHARACTER {
|
||||
status { ignored if iswitch=3 }
|
||||
status { ignored if @ref iswitch=3 }
|
||||
info {
|
||||
File containing the PP.
|
||||
|
||||
|
@ -766,7 +766,7 @@ input_description -distribution {Quantum Espresso} -program ld1.x {
|
|||
|
||||
* otherwise, the old NC format is read.
|
||||
|
||||
IMPORTANT: in the latter case, all calculations are done
|
||||
@b 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!
|
||||
}
|
||||
|
@ -800,9 +800,9 @@ input_description -distribution {Quantum Espresso} -program ld1.x {
|
|||
dimension configts -start 1 -end nconf -type CHARACTER {
|
||||
info {
|
||||
A string array containing the test electronic configuration.
|
||||
configts(nc), nc=1,nconf, has the same syntax as for "config"
|
||||
@ref configts(nc), nc=1,@ref nconf, has the same syntax as for @ref config
|
||||
but only VALENCE states must be included.
|
||||
If configts(i) is not set, the electron configuration
|
||||
If @ref configts(i) is not set, the electron configuration
|
||||
is read from the cards following the namelist.
|
||||
}
|
||||
}
|
||||
|
@ -829,8 +829,10 @@ input_description -distribution {Quantum Espresso} -program ld1.x {
|
|||
}
|
||||
|
||||
var rcutv -type REAL {
|
||||
info { Cutoff distance (CUT) for the inclusion of LDA-1/2 potential.
|
||||
Needed (mandatory) only if iswitch = 4 }
|
||||
info {
|
||||
Cutoff distance (CUT) for the inclusion of LDA-1/2 potential.
|
||||
Needed (mandatory) only if @ref iswitch = 4
|
||||
}
|
||||
default { -1.0 }
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,7 +3,7 @@
|
|||
------------------------------------------------------------------------
|
||||
INPUT FILE DESCRIPTION
|
||||
|
||||
Program: ld1.x / / Quantum Espresso (version: 6.6)
|
||||
Program: ld1.x / / Quantum Espresso (version: 6.7)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -217,7 +217,7 @@ NAMELIST: &INPUT
|
|||
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
|
||||
Default: 0
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -306,7 +306,7 @@ NAMELIST: &INPUT
|
|||
Default: 'low'
|
||||
Description: '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.
|
||||
+--------------------------------------------------------------------
|
||||
|
@ -928,13 +928,13 @@ CARD:
|
|||
========================================================================
|
||||
NAMELIST: &TEST
|
||||
|
||||
NEEDED ONLY IF ISWITCH=2 OR ISWITCH=4, OPTIONAL IF ISWITCH=3
|
||||
NEEDED ONLY IF "ISWITCH"=2 OR "ISWITCH"=4, OPTIONAL IF "ISWITCH"=3
|
||||
|
||||
+--------------------------------------------------------------------
|
||||
Variable: nconf
|
||||
|
||||
Type: INTEGER
|
||||
Description: the number of configurations to be tested. For iswitch = 4 nconf=2
|
||||
Description: the number of configurations to be tested. For "iswitch"=4 nconf=2
|
||||
Default: 1
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -942,7 +942,7 @@ NAMELIST: &TEST
|
|||
Variable: file_pseudo
|
||||
|
||||
Type: CHARACTER
|
||||
Status: ignored if iswitch=3
|
||||
Status: ignored if "iswitch"=3
|
||||
Description: File containing the PP.
|
||||
|
||||
* If the file name contains ".upf" or ".UPF",
|
||||
|
@ -987,9 +987,9 @@ NAMELIST: &TEST
|
|||
|
||||
Type: CHARACTER
|
||||
Description: A string array containing the test electronic configuration.
|
||||
configts(nc), nc=1,nconf, has the same syntax as for "config"
|
||||
"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
|
||||
If "configts"(i) is not set, the electron configuration
|
||||
is read from the cards following the namelist.
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -1021,7 +1021,7 @@ NAMELIST: &TEST
|
|||
|
||||
Type: REAL
|
||||
Description: Cutoff distance (CUT) for the inclusion of LDA-1/2 potential.
|
||||
Needed (mandatory) only if iswitch = 4
|
||||
Needed (mandatory) only if "iswitch" = 4
|
||||
Default: -1.0
|
||||
+--------------------------------------------------------------------
|
||||
|
||||
|
@ -1266,4 +1266,4 @@ CARD:
|
|||
|
||||
|
||||
|
||||
This file has been created by helpdoc utility on Mon Nov 23 08:30:07 UTC 2020
|
||||
This file has been created by helpdoc utility on Sun Nov 29 12:43:43 CET 2020
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -25,6 +25,9 @@ dos: makedoc
|
|||
atomic: makedoc
|
||||
./check_gui atomic
|
||||
|
||||
hp: makedoc
|
||||
./check_gui hp
|
||||
|
||||
makedoc:
|
||||
(cd ..; $(MAKE) doc)
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ exec tclsh "$0" "$@"
|
|||
|
||||
#
|
||||
# Usage: check_gui module
|
||||
# ( module = pw, ph, pp, projwfc, atomic, or d3 )
|
||||
# ( module = pw, neb, ph, pp, projwfc, bands, dos, atomic )
|
||||
#
|
||||
# Purpose: check the PWgui modules wrt corresponding INPUT_*.def
|
||||
# files and create a PWgui help files.
|
||||
|
|
|
@ -4,7 +4,7 @@ exec tclsh "$0" "$@"
|
|||
|
||||
#
|
||||
# Usage: diff_gui_help module
|
||||
# ( module = pw, ph, pp, neb, projwfc, bands, dos, atomic, or d3 )
|
||||
# ( module = pw, ph, pp, neb, projwfc, bands, dos, or atomic )
|
||||
#
|
||||
# Requirements: execute the check_gui first !!!
|
||||
#
|
||||
|
|
|
@ -157,20 +157,14 @@ proc ::helpdoc::checkGui_makeHelpFile {deffile modulefile} {
|
|||
::tclu::ERROR "can't find useable xsltproc, gui help file creation skipped"
|
||||
}
|
||||
|
||||
# help file will be written to $helpfile
|
||||
|
||||
set helpfile [file tail [file rootname $modulefile]]-help.tcl
|
||||
set orig_helpfile [file rootname $modulefile]-help.tcl
|
||||
|
||||
if { "$helpfile" == "$orig_helpfile" } {
|
||||
puts stderr [::tclu::labelMsg WARNING "file \"$orig_helpfile\" exists.\nMaking a $orig_helpfile.bak backup copy."]
|
||||
file copy -force $orig_helpfile $orig_helpfile.bak
|
||||
}
|
||||
|
||||
|
||||
# open/create a temporaty xml file ...
|
||||
|
||||
set orig_xmlfile [file rootname $deffile].xml
|
||||
if { ! [file exists $orig_xmlfile] } {
|
||||
::tclu::ERROR "file $orig_xmlfile does not exists, remake the documentation first!
|
||||
|
||||
Gui help file creation skipped."
|
||||
}
|
||||
set xml_prefix [file tail [file rootname $deffile]]
|
||||
|
||||
if { "$xml_prefix.xml" == "$orig_xmlfile" } {
|
||||
|
@ -181,6 +175,16 @@ proc ::helpdoc::checkGui_makeHelpFile {deffile modulefile} {
|
|||
}
|
||||
set xml_fid [open $xml_temp w]
|
||||
|
||||
# help file will be written to $helpfile
|
||||
|
||||
set helpfile [file tail [file rootname $modulefile]]-help.tcl
|
||||
set orig_helpfile [file rootname $modulefile]-help.tcl
|
||||
|
||||
if { "$helpfile" == "$orig_helpfile" } {
|
||||
puts stderr [::tclu::labelMsg WARNING "file \"$orig_helpfile\" exists.\nMaking a $orig_helpfile.bak backup copy."]
|
||||
file copy -force $orig_helpfile $orig_helpfile.bak
|
||||
}
|
||||
|
||||
|
||||
# copy $orig_xmlfile to $xml_temp, but replace the stylesheet input_xx.xsl by guihelp.xsl
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ proc ::helpdoc::core_modules {} {
|
|||
bands PP/Doc INPUT_BANDS
|
||||
dos PP/Doc INPUT_DOS
|
||||
atomic atomic/Doc INPUT_LD1
|
||||
d3 PHonon/Doc INPUT_D3
|
||||
hp HP/Doc INPUT_HP
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ exec tclsh "$0" "$@"
|
|||
|
||||
#
|
||||
# Usage: update_gui_help module
|
||||
# ( module = pw, ph, pp, neb, projwfc, dos, bands, atomic, or d3 )
|
||||
# ( module = pw, ph, pp, neb, projwfc, dos, bands, or atomic )
|
||||
#
|
||||
# Requirements: execute the check_gui first !!!
|
||||
#
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This script allows to compile FoX with PGI v.19.10 Community Edition
|
||||
# on Windows 10 - configure works in general but fails for FoX
|
||||
|
||||
set -x
|
||||
|
||||
rm -rf FoX
|
||||
|
|
|
@ -107,8 +107,10 @@ libcuda_devxlib :
|
|||
--disable-parallel \
|
||||
--enable-cuda-env-check=no; \
|
||||
make all
|
||||
touch ../install/libcuda_devxlib # do not download and configure again
|
||||
|
||||
libcuda_devxlib_clean:
|
||||
rm libcuda_devxlib
|
||||
cd ../external/devxlib; \
|
||||
if test -f make.inc; then ($(MAKE) clean); fi
|
||||
libcuda_devxlib_veryclean:
|
||||
|
|
Loading…
Reference in New Issue