mirror of https://gitlab.com/QEF/q-e.git
658 lines
19 KiB
Tcl
658 lines
19 KiB
Tcl
source commands.tcl
|
|
|
|
set ::guib::settings(filename_only_tail) 1
|
|
|
|
module PH\#auto -title "PWSCF GUI: module PH.x" -script {
|
|
|
|
readfilter ::pwscf::phReadFilter
|
|
#writefilter ::pwscf::phWriteFilter
|
|
|
|
line job_title -name "Job Title" {
|
|
var title_line {
|
|
-label "Job title:"
|
|
-fmt %S
|
|
}
|
|
}
|
|
|
|
page inputph -name "INPUTPH" {
|
|
|
|
namelist inputpp -name "INPUTPH" {
|
|
|
|
page files -name "Files/Diretories" {
|
|
var outdir {
|
|
-label "Temporary directory where punch file resides (outdir):"
|
|
-widget entrydirselectquote
|
|
-fmt %S -validate string
|
|
}
|
|
|
|
var prefix -label "Prefix of data file saved by PW.X (prefix):" \
|
|
-widget [list entrybutton "Prefix ..." [list ::pwscf::phSelectPunchFile $this prefix]] \
|
|
-fmt %S -validate string
|
|
|
|
var dftd3_hess {
|
|
-label "File containing D3 dispersion Hessian matrix (dftd3_hess):"
|
|
-widget entryfileselectquote
|
|
-fmt %S
|
|
-validate string
|
|
}
|
|
|
|
separator -label "--- Output Data Files ---"
|
|
|
|
var fildyn {
|
|
-label "File containing the dynamical matrix (fildyn):"
|
|
-widget entryfileselectquote
|
|
-fmt %S -validate string
|
|
}
|
|
var fildrho {
|
|
-label "File containing the charge density variations (fildrho):"
|
|
-widget entryfileselectquote
|
|
-fmt %S -validate string
|
|
}
|
|
var fildvscf {
|
|
-label "File containing the potential variation (fildvscf):"
|
|
-widget entryfileselectquote
|
|
-fmt %S -validate string
|
|
}
|
|
}
|
|
|
|
page calcs -name "What to Compute" {
|
|
|
|
var ldisp {
|
|
-label "Compute phonon dispersions (ldisp):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
|
|
var nogg {
|
|
-label "Disable gamma_gamma tricks (nogg):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
|
|
var asr {
|
|
-label "Apply acoustic sum rule for \"gamma_gamma\" (asr):"
|
|
-widget radiobox
|
|
-textvalue { Yes No }
|
|
-value { .true. .false. }
|
|
}
|
|
|
|
var ldiag {
|
|
-label "Force diagonalization of the incomplete dynamical matrix (ldiag):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
|
|
#group nq -name q-grid {
|
|
# group nq_grid {
|
|
# packwidgets left
|
|
# var nq1 {
|
|
# -label "nq\#1:"
|
|
# -validate posint
|
|
# }
|
|
# var nq2 {
|
|
# -label "nq\#2:"
|
|
# -validate posint
|
|
# }
|
|
# var nq3 {
|
|
# -label "nq\#3:"
|
|
# -validate posint
|
|
# }
|
|
# }
|
|
# group iq_grid {
|
|
# packwidgets left
|
|
# var iq1 {
|
|
# -label "iq\#1:"
|
|
# -validate posint
|
|
# }
|
|
# var iq2 {
|
|
# -label "iq\#2:"
|
|
# -validate posint
|
|
# }
|
|
# var iq3 {
|
|
# -label "iq\#3:"
|
|
# -validate posint
|
|
# }
|
|
# }
|
|
#}
|
|
|
|
var trans {
|
|
-label "Compute phonons for a single q vector (trans):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
|
|
var epsil {
|
|
-label "Compute the macroscopic dielectric constant for q=0 (epsil):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
|
|
var electron_phonon {
|
|
-label "Compute electron-phonon (electron_phonon):"
|
|
-textvalue {
|
|
"electron-phonon lambda coefficients <simple>"
|
|
"electron-phonon by interpolation <interpolated>"
|
|
"el.-phon. lambda coeff. via opt.tetrahedron <lambda_tetra>"
|
|
"phonon linewidth via opt.tetrahedron <gamma_tetra>"
|
|
"write electron-phonon coupling matrix elements for epa.x <epa>"
|
|
"write quantities required for postahc.x calculation <ahc>"
|
|
}
|
|
-value {'simple' 'interpolated' 'lambda_tetra' 'gamma_tetra' 'epa' 'ahc'}
|
|
-widget optionmenu
|
|
}
|
|
|
|
group el_ph_group -name "Electron-phonon variables:" -decor normal {
|
|
var el_ph_nsigma {
|
|
-label "The number of double-delta smearing values (el_ph_nsigma):"
|
|
-validate int
|
|
}
|
|
|
|
var el_ph_sigma {
|
|
-label "The spacing between double-delta smearing values (el_ph_sigma):"
|
|
-validate fortranposreal
|
|
}
|
|
|
|
group ahc_group -name "Variables for electron_phonon = 'ahc': " {
|
|
var ahc_dir {
|
|
-label "Directory for the output ahc files (ahc_dir):"
|
|
-widget entrydirselectquote
|
|
-fmt %S
|
|
-validate string
|
|
}
|
|
|
|
var ahc_nbnd {
|
|
-label "Number of bands for the electron self-energy (ahc_nbnd):"
|
|
-validate int
|
|
}
|
|
|
|
var ahc_nbndskip {
|
|
-label "Number of bands to exclude from self-energy (ahc_nbndskip):"
|
|
-validate int
|
|
}
|
|
|
|
var skip_upperfan {
|
|
-label "Skip calculation of the upper Fan self-energy (skip_upperfan):"
|
|
-widget radiobox
|
|
-textvalue { Yes No }
|
|
-value { .true. .false. }
|
|
}
|
|
}
|
|
}
|
|
var lrpa {
|
|
-label "Compute dielectric constant with RPA and dV_xc=0 (lrpa):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
var lnoloc {
|
|
-label "Compute dielectric constant with dV_H=0 and dV_xc=0 (lnoloc):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
var fpol {
|
|
-label "Compute dynamic polarizabilities (fpol):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
var lshift_q {
|
|
-label "Use a wave-vector half-step grid displaced (lshift_q):"
|
|
-widget radiobox
|
|
-textvalue { Yes No }
|
|
-value { .true. .false. }
|
|
}
|
|
|
|
var zeu {
|
|
-label "Compute effective charges from the dielectric responses (zeu):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
|
|
var zue {
|
|
-label "Compute effective charges from the phonon density responses (zue):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
|
|
var elop {
|
|
-label "Compute electro-optic coefficients (elop):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
|
|
var lraman {
|
|
-label "Compute Raman coefficients (lraman):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
|
|
var search_sym {
|
|
-label "Perform mode symmetry analysis (search_sym):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
group ramanthreshold -name "Thresholds for Raman" -decor normal {
|
|
var eth_rps {
|
|
-label "Threshold for calculation of x|Psi> (eth_rps):"
|
|
-validate fortranreal
|
|
}
|
|
var eth_ns {
|
|
-label "Threshold for non-scf wavefunction calculation (eth_ns):"
|
|
-validate fortranreal
|
|
}
|
|
var dek {
|
|
-label "Delta k used for wavefunction derivation wtr k (dek)::"
|
|
-validate fortranreal
|
|
}
|
|
}
|
|
|
|
##separator -label "--- Potential variations ---"
|
|
|
|
group dvscf -name "Potential variations" -decor normal {
|
|
# to trick the chek_gui only
|
|
var dvscf_star
|
|
#/
|
|
var dvscf_star_open {
|
|
-variable dvscf_star%open
|
|
-label "Compute potential variations at all q-points in the star (dvscf_star%open):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
group dvscf_star_specs -decor none {
|
|
var dvscf_star_dir {
|
|
-variable dvscf_star%dir
|
|
-label "Directory where to store rotated dvscf files (dvscf_star%dir):"
|
|
-widget entrydirselectquote
|
|
-fmt %S -validate string
|
|
}
|
|
var dvscf_star_ext {
|
|
-variable dvscf_star%ext
|
|
-label "Extension to use for the name of dvscf files (dvscf_star%ext):"
|
|
-fmt %S -validate string
|
|
}
|
|
var dvscf_star_basis {
|
|
-variable dvscf_star%basis
|
|
-label "Basis used for the dvscf files (dvscf_star%basis):"
|
|
-widget radiobox
|
|
-fmt %s
|
|
-value {
|
|
'cartesian'
|
|
'modes'
|
|
}
|
|
-textvalue {
|
|
"basis of cartesian 1-atom displacements <cartesian>"
|
|
"basis of the modes at the rotated q-point <modes>"
|
|
}
|
|
}
|
|
var dvscf_star_pat {
|
|
-variable dvscf_star%pat
|
|
-label "Save displacement patterns and q vector (dvscf_star%pat):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
}
|
|
}
|
|
|
|
##separator -label "--- Perturbation of the charge density ---"
|
|
|
|
group drho -name "Perturbation of the charge density" -decor normal {
|
|
# to trich the chek_gui only
|
|
var drho_star
|
|
#/
|
|
var drho_star_open {
|
|
-variable drho_star%open
|
|
-label "Compute charge density perturbation at all q-points in the star (drho_star%open):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
group drho_star_specs -decor none {
|
|
var drho_star_dir {
|
|
-variable drho_star%dir
|
|
-label "Directory where to store rotated drho files (drho_star%dir):"
|
|
-widget entrydirselectquote
|
|
-fmt %S -validate string
|
|
}
|
|
var drho_star_ext {
|
|
-variable drho_star%ext
|
|
-label "Extension to use for the name of drho files (drho_star%ext):"
|
|
-fmt %S -validate string
|
|
}
|
|
var drho_star_basis {
|
|
-variable drho_star%basis
|
|
-label "Basis used for the drho files (drho_star%basis):"
|
|
-widget radiobox
|
|
-fmt %s
|
|
-value {
|
|
'cartesian'
|
|
'modes'
|
|
}
|
|
-textvalue {
|
|
"basis of cartesian 1-atom displacements <cartesian>"
|
|
"basis of the modes at the rotated q-point <modes>"
|
|
}
|
|
}
|
|
var drho_star_pat {
|
|
-variable drho_star%pat
|
|
-label "Save displacement patterns and q vector (drho_star%pat):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
page misc -name "Control options" {
|
|
|
|
var recover {
|
|
-label "Restart from an interrupted run (recover):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
var low_directory_check {
|
|
-label "(low_directory_check):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
var only_init {
|
|
-label "Calculate only bands and other initialization quantities (only_init):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
var qplot {
|
|
-label "Read a list of q-points from input (qplot):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
var q2d {
|
|
-label "(q2d):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
var q_in_band_form {
|
|
-label "(q_in_band_form):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
var lqdir {
|
|
-label "Creates inside outdir a separate subdirectory for each q vector (lqdir):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
}
|
|
|
|
auxilvar reps_type {
|
|
-label "How to specify irreducible representations:"
|
|
-textvalue {"with start_irr/last_irr" "with nat_todo"}
|
|
-value { start_last_irr nat_todo }
|
|
-widget radiobox
|
|
}
|
|
|
|
group irrep_spec -name "Specification of irreducible representation(s)" -decor normal {
|
|
|
|
group start_last_irr -name "Range of irreducible representations" -decor normal {
|
|
var start_irr {
|
|
-validate posint
|
|
-label "First irreducible representations in range (first_irr):"
|
|
}
|
|
var last_irr {
|
|
-validate posint
|
|
-label "Last irreducible representations in range (last_irr):"
|
|
}
|
|
}
|
|
|
|
var nat_todo {
|
|
-label "Number of atom to be displaced (nat_todo):"
|
|
-validate nonnegint
|
|
-widget spinint
|
|
}
|
|
|
|
var modenum {
|
|
-validate nonnegint
|
|
-label "Index of the irreducible representation for single-mode calculation (modenum):"
|
|
}
|
|
}
|
|
|
|
group q_spec -name "q-point specification" -decor normal {
|
|
var start_q {
|
|
-validate posint
|
|
-label "First q-point in range (start_q):"
|
|
}
|
|
var last_q {
|
|
-validate posint
|
|
-label "Last q-point in range (last_q):"
|
|
}
|
|
}
|
|
|
|
separator -label "--- Atomic Masses ---"
|
|
|
|
auxilvar ntyp {
|
|
-label "Number of types of atoms in the unit cell (ntyp):"
|
|
-validate posint
|
|
-fmt %d
|
|
-default 1
|
|
-widget spinint
|
|
}
|
|
|
|
dimension amass {
|
|
-label "Atomic mass [amu] of each atomic type"
|
|
-validate fortranreal
|
|
-start 1
|
|
-end 1
|
|
}
|
|
|
|
separator -label "--- Misc control options ---"
|
|
|
|
var verbosity {
|
|
-label "Verbosity of output (verbosity):"
|
|
-textvalue {"low" "high"}
|
|
-value {'low' 'high'}
|
|
-widget optionmenu
|
|
}
|
|
var reduce_io {
|
|
-label "Reduce I/O to the strict minimum (reduce_io):"
|
|
-textvalue {Yes No}
|
|
-value {.true. .false.}
|
|
-widget radiobox
|
|
-fmt %s
|
|
}
|
|
var max_seconds {
|
|
-label "Maximum allowed CPU run-time [in seconds] (max_seconds):"
|
|
-validate posint
|
|
-widget spinint
|
|
-fmt %d
|
|
}
|
|
|
|
separator -label "--- SCF settings ---"
|
|
|
|
var niter_ph {
|
|
-label "Maximum number of iterations in an SCF step (niter_ph):"
|
|
-widget spinint
|
|
-fmt %d
|
|
}
|
|
var tr2_ph {
|
|
-label "Threshold for selfconsistency (tr2_ph):"
|
|
-validate fortranreal
|
|
}
|
|
var alpha_mix {
|
|
-variable alpha_mix(1)
|
|
-label "Mixing factor for updating the SCF potential (alpha_mix(1)):"
|
|
-validate fortranreal
|
|
}
|
|
var nmix_ph {
|
|
-label "Number of iterations used in mixing of potential (nmix_ph):"
|
|
-widget spinint
|
|
-fmt %d
|
|
}
|
|
|
|
separator -label "--- Miscellaneous ---"
|
|
|
|
var diagonalization {
|
|
-label "Diagonalization method for the non-SCF (diagonalization):"
|
|
-validate string
|
|
-textvalue {
|
|
"Davidson with overlap matrix <david>"
|
|
"Conjugate-gradient band-by-band <cg>"
|
|
}
|
|
-value {
|
|
'david'
|
|
'cg'
|
|
}
|
|
-widget radiobox
|
|
}
|
|
|
|
var read_dns_bare {
|
|
-label "For DFPT+U: read the dns_* files (read_dns_bare):"
|
|
-widget radiobox
|
|
-textvalue { Yes No }
|
|
-value { .true. .false. }
|
|
}
|
|
|
|
var ldvscf_interpolate {
|
|
-label "Use Fourier interpolation of phonon potential (ldvscf_interpolate):"
|
|
-widget radiobox
|
|
-textvalue { Yes No }
|
|
-value { .true. .false. }
|
|
}
|
|
group dvscf_group -name "Variables for dvscf interpolation:" {
|
|
var wpot_dir {
|
|
-label "Directory for the w_pot binary files (wpot_dir):"
|
|
-widget entrydirselectquote
|
|
-validate string
|
|
}
|
|
|
|
var do_long_range {
|
|
-label "Add the long-range part of the potential (do_long_range):"
|
|
-widget radiobox
|
|
-textvalue { Yes No }
|
|
-value { .true. .false. }
|
|
}
|
|
|
|
var do_charge_neutral {
|
|
-label "Impose charge neutrality on the Born effective charges (do_charge_neutral):"
|
|
-widget radiobox
|
|
-textvalue { Yes No }
|
|
-value { .true. .false. }
|
|
}
|
|
}
|
|
}
|
|
|
|
page q_k_points -name "q- and k-points" {
|
|
|
|
separator -label "--- K-point mesh + shift ---"
|
|
|
|
group k_points {
|
|
packwidgets left
|
|
var nk1 -label "nk1:" -widget spinint -validate posint
|
|
var nk2 -label "nk2:" -widget spinint -validate posint
|
|
var nk3 -label "nk3:" -widget spinint -validate posint
|
|
}
|
|
group k_shift {
|
|
packwidgets left
|
|
var k1 -label "k1:" -widget spinint -validate binary
|
|
var k2 -label "k2:" -widget spinint -validate binary
|
|
var k3 -label "k3:" -widget spinint -validate binary
|
|
}
|
|
|
|
separator -label "--- Q-point mesh ---"
|
|
|
|
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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
page suffixCards -name "Suffix cards" {
|
|
line xq_list -name "The phonon wavevector" {
|
|
packwidgets left
|
|
var xq1 {
|
|
-variable xq(1)
|
|
-label "xq(1):"
|
|
-validate fortranreal
|
|
}
|
|
var xq2 {
|
|
-variable xq(2)
|
|
-label "xq(2):"
|
|
-validate fortranreal
|
|
}
|
|
var xq3 {
|
|
-variable xq(3)
|
|
-label "xq(3):"
|
|
-validate fortranreal
|
|
}
|
|
}
|
|
|
|
group qPointsSpec -name "q-points specification" -decor normal {
|
|
line nqs_line -decor none {
|
|
var nqs -label "Number of q-points:" -validate posint -widget spinint -default 1 -outfmt %3d
|
|
}
|
|
table qPoints {
|
|
-caption "Enter q-points coordinates and weights:"
|
|
-head {xq1 xq2 xq3 nq}
|
|
-validate {fortranreal fortranreal fortranreal int}
|
|
-cols 4
|
|
-rows 1
|
|
-outfmt {%13.8f %13.8f %13.8f %3d}
|
|
}
|
|
}
|
|
|
|
line atom_disp_line -name "List of atoms to displace:" {
|
|
var nat_todo_list {
|
|
-label "Indices of atoms (comma or whitespace separated):"
|
|
}
|
|
}
|
|
}
|
|
# ----------------------------------------------------------------------
|
|
# take care of specialities
|
|
# ----------------------------------------------------------------------
|
|
source ph-event.tcl
|
|
|
|
# ------------------------------------------------------------------------
|
|
# source the HELP file
|
|
# ------------------------------------------------------------------------
|
|
source ph-help.tcl
|
|
}
|