mirror of https://gitlab.com/QEF/q-e.git
several new features:
- executables can now be specified by path only - making ld1.x runable - new xcrysden versions don't need XCRYSDEN_TOPDIR, but pwgui needs it to run xcrysden (for some specific reasons), Making a notification to the user is such case occurs git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5701 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
37a3f8861b
commit
4f4decafaa
|
@ -19,7 +19,7 @@
|
|||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
#
|
||||
# $Id: menustate.itcl,v 1.3 2008-02-15 17:29:58 kokalj Exp $
|
||||
# $Id: menustate.itcl,v 1.4 2009-07-16 16:58:45 kokalj Exp $
|
||||
#
|
||||
|
||||
proc ::pwscf::menustate::editable {obj moduleIdent} {
|
||||
|
@ -37,8 +37,10 @@ proc ::pwscf::menustate::xcrysden {obj moduleIdent} {
|
|||
global env
|
||||
|
||||
::tclu::DEBUG xcrysden: moduleIdent = $moduleIdent
|
||||
|
||||
if { ! [info exists env(XCRYSDEN_TOPDIR)] || ! [string match *pw $moduleIdent] } {
|
||||
if { [auto_execok xcrysden] != "" && ! [info exists env(XCRYSDEN_TOPDIR)] } {
|
||||
}
|
||||
|
||||
if { ( ! [info exists env(XCRYSDEN_TOPDIR)] && [auto_execok xcrysden] == "" ) || ! [string match *pw $moduleIdent] } {
|
||||
return disabled
|
||||
} else {
|
||||
return normal
|
||||
|
@ -50,7 +52,7 @@ proc ::pwscf::menustate::runnable {obj moduleIdent} {
|
|||
|
||||
::tclu::DEBUG runnable: moduleIdent = $moduleIdent
|
||||
|
||||
if { [regexp {(pw|ph|pp|pr|d3)} $moduleIdent] } {
|
||||
if { [regexp {(pw|ph|pp|pr|d3|atomic)} $moduleIdent] } {
|
||||
return normal
|
||||
} else {
|
||||
return disabled
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
#
|
||||
# $Id: run.itcl,v 1.7 2008-11-26 14:44:41 kokalj Exp $
|
||||
# $Id: run.itcl,v 1.8 2009-07-16 16:58:45 kokalj Exp $
|
||||
#
|
||||
|
||||
proc ::pwscf::run::run {guiObj {init 1} {use_defaults 1}} {
|
||||
|
@ -41,9 +41,9 @@ proc ::pwscf::run::run {guiObj {init 1} {use_defaults 1}} {
|
|||
set _run(PW,$moduleObj) $::pwscf::settings(PW)
|
||||
set _run(PH,$moduleObj) $::pwscf::settings(PH)
|
||||
set _run(PP,$moduleObj) $::pwscf::settings(PP)
|
||||
#set _run(CHDENS,$moduleObj) $::pwscf::settings(CHDENS)
|
||||
set _run(PROJWFC,$moduleObj) $::pwscf::settings(PROJWFC)
|
||||
set _run(D3,$moduleObj) $::pwscf::settings(D3)
|
||||
set _run(LD1,$moduleObj) $::pwscf::settings(LD1)
|
||||
} else {
|
||||
# use values as specified in the current configuration
|
||||
set _run(RUN.prefix,$moduleObj) $run(RUN.prefix,$moduleObj)
|
||||
|
@ -51,9 +51,9 @@ proc ::pwscf::run::run {guiObj {init 1} {use_defaults 1}} {
|
|||
set _run(PW,$moduleObj) $run(PW,$moduleObj)
|
||||
set _run(PH,$moduleObj) $run(PH,$moduleObj)
|
||||
set _run(PP,$moduleObj) $run(PP,$moduleObj)
|
||||
#set _run(CHDENS,$moduleObj) $run(CHDENS,$moduleObj)
|
||||
set _run(PROJWFC,$moduleObj) $run(PROJWFC,$moduleObj)
|
||||
set _run(D3,$moduleObj) $run(D3,$moduleObj)
|
||||
set _run(LD1,$moduleObj) $run(LD1,$moduleObj)
|
||||
}
|
||||
|
||||
#
|
||||
|
@ -91,6 +91,12 @@ proc ::pwscf::run::run {guiObj {init 1} {use_defaults 1}} {
|
|||
# find out the outdir and create it !!!
|
||||
_mkdirOutdir $moduleObj
|
||||
}
|
||||
*ld1 {
|
||||
set runCmd "$_run(RUN.prefix,$moduleObj) $_run(LD1,$moduleObj) $_run(RUN.postfix,$moduleObj)"
|
||||
|
||||
# find out the outdir and create it !!!
|
||||
_mkdirOutdir $moduleObj
|
||||
}
|
||||
default {
|
||||
# module not yet supported ...
|
||||
return 0
|
||||
|
@ -238,9 +244,9 @@ proc ::pwscf::run::_init {guiObj} {
|
|||
::tclu::newset run(PW,$moduleObj) $::pwscf::settings(PW)
|
||||
::tclu::newset run(PH,$moduleObj) $::pwscf::settings(PH)
|
||||
::tclu::newset run(PP,$moduleObj) $::pwscf::settings(PP)
|
||||
#::tclu::newset run(CHDENS,$moduleObj) $::pwscf::settings(CHDENS)
|
||||
::tclu::newset run(PROJWFC,$moduleObj) $::pwscf::settings(PROJWFC)
|
||||
::tclu::newset run(D3,$moduleObj) $::pwscf::settings(D3)
|
||||
::tclu::newset run(LD1,$moduleObj) $::pwscf::settings(LD1)
|
||||
|
||||
#
|
||||
# determine what are the IO-files
|
||||
|
@ -273,11 +279,12 @@ proc ::pwscf::run::_init {guiObj} {
|
|||
|
||||
proc ::pwscf::run::getProg {moduleIdent} {
|
||||
switch -glob -- $moduleIdent {
|
||||
*pw { return pw.x }
|
||||
*ph { return ph.x }
|
||||
*pp { return pp.x }
|
||||
*pr { return projwfc.x }
|
||||
*d3 { return d3.x }
|
||||
*pw { return pw.x }
|
||||
*ph { return ph.x }
|
||||
*pp { return pp.x }
|
||||
*pr { return projwfc.x }
|
||||
*d3 { return d3.x }
|
||||
*atomic { return ld1.x }
|
||||
default {
|
||||
# module not yet supported ...
|
||||
return ""
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
#
|
||||
# $Id: settings.itcl,v 1.6 2008-02-15 17:30:00 kokalj Exp $
|
||||
# $Id: settings.itcl,v 1.7 2009-07-16 16:58:45 kokalj Exp $
|
||||
#
|
||||
proc ::pwscf::settings {gui} {
|
||||
|
||||
|
@ -51,6 +51,18 @@ proc ::pwscf::_settingsOK {t obj} {
|
|||
|
||||
proc ::pwscf::_settingsApply {obj} {
|
||||
$obj saveToVar ::pwscf
|
||||
|
||||
puts stderr [array get ::pwscf::settings]
|
||||
puts stderr "::pwscf::settings_how_exe = $::pwscf::settings_how_exe"
|
||||
|
||||
if { $::pwscf::settings_how_exe == "path" } {
|
||||
set ::pwscf::settings(PW) $::pwscf::settings(BINDIR)/pw.x
|
||||
set ::pwscf::settings(PH) $::pwscf::settings(BINDIR)/ph.x
|
||||
set ::pwscf::settings(PP) $::pwscf::settings(BINDIR)/pp.x
|
||||
set ::pwscf::settings(PROJWFC) $::pwscf::settings(BINDIR)/projwfc.x
|
||||
set ::pwscf::settings(D3) $::pwscf::settings(BINDIR)/d3.x
|
||||
set ::pwscf::settings(LD1) $::pwscf::settings(BINDIR)/ld1.x
|
||||
}
|
||||
}
|
||||
|
||||
proc ::pwscf::_settingsSave {obj} {
|
||||
|
@ -118,11 +130,28 @@ proc ::pwscf::_settingsModule {} {
|
|||
var RUN.postfix -variable ::pwscf::settings(RUN.postfix) -label "Postfix:"
|
||||
}
|
||||
line pwscf_exe -name "Specify executables (i.e. /usr/local/bin/pw.x)" {
|
||||
var PW -variable ::pwscf::settings(PW) -label "Executable \"pw.x\":" -widget entryfileselect
|
||||
var PH -variable ::pwscf::settings(PH) -label "Executable \"ph.x\":" -widget entryfileselect
|
||||
var PP -variable ::pwscf::settings(PP) -label "Executable \"pp.x\":" -widget entryfileselect
|
||||
var PROJWFC -variable ::pwscf::settings(PROJWFC) -label "Executable \"projwfc.x\":" -widget entryfileselect
|
||||
var D3 -variable ::pwscf::settings(D3) -label "Executable \"d3.x\":" -widget entryfileselect
|
||||
auxilvar HOW_EXE {
|
||||
-label "How to specify executables:"
|
||||
-widget radiobox
|
||||
-textvalue {
|
||||
"by specifying the path"
|
||||
"each executable separately"
|
||||
}
|
||||
-value { path binaries }
|
||||
}
|
||||
|
||||
group path -decor normal {
|
||||
var BINDIR -variable ::pwscf::settings(BINDIR) -label "Specify the path for QE binaries:" -widget entrydirselect
|
||||
}
|
||||
|
||||
group binaries -decor normal {
|
||||
var PW -variable ::pwscf::settings(PW) -label "Executable \"pw.x\":" -widget entryfileselect
|
||||
var PH -variable ::pwscf::settings(PH) -label "Executable \"ph.x\":" -widget entryfileselect
|
||||
var PP -variable ::pwscf::settings(PP) -label "Executable \"pp.x\":" -widget entryfileselect
|
||||
var PROJWFC -variable ::pwscf::settings(PROJWFC) -label "Executable \"projwfc.x\":" -widget entryfileselect
|
||||
var D3 -variable ::pwscf::settings(D3) -label "Executable \"d3.x\":" -widget entryfileselect
|
||||
var LD1 -variable ::pwscf::settings(LD1) -label "Executable \"ld1.x\":" -widget entryfileselect
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -212,6 +241,20 @@ proc ::pwscf::_settingsModule {} {
|
|||
}
|
||||
}
|
||||
|
||||
tracevar HOW_EXE w {
|
||||
set how [varvalue HOW_EXE]
|
||||
if { $how == "path" } {
|
||||
varset HOW_EXE -value path
|
||||
set ::pwscf::settings_how_exe path
|
||||
groupwidget path enable
|
||||
groupwidget binaries disable
|
||||
} else {
|
||||
set ::pwscf::settings_how_exe binaries
|
||||
groupwidget path disable
|
||||
groupwidget binaries enable
|
||||
}
|
||||
}
|
||||
|
||||
postprocess {
|
||||
loadFromVar
|
||||
|
||||
|
@ -226,6 +269,12 @@ proc ::pwscf::_settingsModule {} {
|
|||
widgetconfigure $elem -editable true -textvalues $::pwscf::settings($elem.list)
|
||||
}
|
||||
widgetconfigure PW -width 50
|
||||
|
||||
set how [varvalue HOW_EXE]
|
||||
if { $how == {} } {
|
||||
varset HOW_EXE -value path
|
||||
}
|
||||
puts stderr "how=$how"
|
||||
}
|
||||
}]
|
||||
return $obj
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
#
|
||||
# $Id: view.itcl,v 1.5 2008-02-29 08:27:04 kokalj Exp $
|
||||
# $Id: view.itcl,v 1.6 2009-07-16 16:58:45 kokalj Exp $
|
||||
#
|
||||
|
||||
proc ::pwscf::view::inputByPager {guiObj} {
|
||||
|
@ -45,6 +45,12 @@ proc ::pwscf::view::inputByPager {guiObj} {
|
|||
proc ::pwscf::view::structByXcrysden {guiObj} {
|
||||
variable ::pwscf::settings
|
||||
global env
|
||||
|
||||
if { ! [info exists env(XCRYSDEN_TOPDIR)] && [auto_execok xcrysden] != "" } {
|
||||
tk_messageBox -title Notification -type ok -icon info \
|
||||
-message "To view the structure by xcrysden, the XCRYSDEN_TOPDIR\nenviromental variable has to be defined !!!"
|
||||
return
|
||||
}
|
||||
|
||||
set moduleObj [$guiObj getSelected moduleObj]
|
||||
set moduleIdent [$guiObj getSelected moduleIdent]
|
||||
|
|
Loading…
Reference in New Issue