I can confirm the problems with x qtl -p. Actually, there are several problems:
set so was missing in qtlpara_lapw, as already found.As Laurence Marks suspected, the setting of "-1" in qtl.def for some files with "unknown" presence causes errors (-1 forces a "read-only" open statement, but this requires that the file is present.)
The qtl program requires the presence of case.scf2 und case.weight, which are produced by lapw2. Thus it is mandatory to run x lapw2 -fermi (-p) when you execute lapw1 with a new k-mesh).
I changed the x_lapw script and include this lapw2 step before the qtl program is executed.
I attach the modified qtlpara_lapw and x_lapwPlease let me know if it works that way in all cases (I have not tested -so, spin-polarization or -hf, but in principle the fix includes these options).
Am 29.05.2021 um 18:15 schrieb Hamza Bouafia:
Dear Prof. Gavin,indeed, the addition of "set so" solves the problem of the error "undefined variable" but gives a new error:############## running QTL in parallel mode calculating QTL's from parallel vectors QTL - Error 0.057u 0.043s 0:00.08 112.5% 0+0k 0+48io 0pf+0w ############## In attached files you find error and def files sincerelyLe sam. 29 mai 2021 à 17:02, Abo, Gavin Sky <gs...@crimson.ua.edu <mailto:gs...@crimson.ua.edu>> a écrit :When I implemented Prof. Blaha's fix put into WIEN2k 21.1, I took it as given at: https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg20660.html <https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg20660.html> The "so: Undefined variable" suggests I may have been missing something which Prof. Blaha may have had his personal file when he tested the change to qtlpara_lapw that never made it into WIEN2k 21.1. It might be that "set so" needs added, similar to lapw2para_lapw, near the top of the qtlpara_lapw file like: set sc set so # semicore-switch set cmplx You could maybe give that a try to see if it fixes the "so: Undefined variable" error. Though, it is also possible another error will reveal itself after that. On 5/29/2021 9:02 AM, Laurence Marks wrote:This might be a recent addition if "-1" in the def, I will leave it to Peter..
-- -------------------------------------------------------------------------- Peter BLAHA, Inst.f. Materials Chemistry, TU Vienna, A-1060 Vienna Phone: +43-1-58801-165300 FAX: +43-1-58801-165982 Email: bl...@theochem.tuwien.ac.at WIEN2k: http://www.wien2k.at WWW: http://www.imc.tuwien.ac.at -------------------------------------------------------------------------
#!/bin/tcsh -f # set tmp = .tmp_qtlpara.$$ set tmp2 = .tmp_qtlpara.$$_2 onintr exit set name = $0 set bin = $name:h #default directory for WIEN-executables if !(-d $bin) set bin = . unalias rm alias testinput 'if (! -e \!:1 || -z \!:1) goto \!:2' alias testerror 'if (! -z \!:1.error) goto error' set t = time set log = :parallel set defmach = `hostname` set updn # spinpolarization switch set dnup = 'dn' # spinpolarization switch set sc # semicore-switch set so set cmplx set remote = ssh set init = init: set res = residue: ############################################################################ # In this section use 0 to turn of an option, 1 to turn it on, # respectively choose a value set useremote = 1 # using remote shell to launch processes setenv DELAY 0.1 # delay launching of processes by n seconds setenv SLEEPY 1 # additional sleep before checking set debug = 0 # set verbosity of debugging output ############################################################################ ############################################################################ # and now we look if we should override the defaults if (-e $bin/parallel_options) then source $bin/parallel_options endif if ( $?USE_REMOTE ) then set useremote = $USE_REMOTE endif ############################################################################ if ($#argv < 1) then echo usage: $0 deffile exit endif while ($#argv) switch ($1) case -h: case -H: set help shift; breaksw case -up: set updn = '-up' set dnup = '-dn' shift; breaksw case -dn: set updn = '-dn' set dnup = '-up' shift; breaksw case -so: set so = 'so' shift; breaksw default: set def = $1:r shift; breaksw endsw end set exe = $bin/qtl set exe = qtl #are we running parallel? testinput .processes single echo "running QTL in parallel mode" echo "RUNNING" >.qtlpara #before we start, we wipe away all parallel error files if ( -e qtl.error ) rm *qtl*.error if ( -e upqtl.error ) rm *qtl*.error if ( -e dnqtl.error ) rm *qtl*.error if ( -e qtl_1.error ) rm *qtl_*.error if ( -e upqtl_1.error ) rm *qtl_*.error if ( -e dnqtl_1.error ) rm *qtl_*.error if ( -e .timeq_1) rm .timeq_* if (-e .machines.help) rm .machines.help grep -v $init .processes|grep : | grep -v $res >$tmp2 set mist = `wc $tmp2 ` set maxproc = $mist[1] set machine = `grep $init .processes | cut -f2 -d: | xargs` if ($#machine > $maxproc) then set machine = `grep $init .processes |head -$maxproc| cut -f2 -d: | xargs` endif set lockfile = `cut -f2 -d: $tmp2 | awk '{print $1 NR}'|xargs` set residue = `grep $res .processes|cut -f2 -d:` if ($residue == "") unset residue if ($debug > 0) echo machines: $machine echo "** " Error in Parallel QTL >$def.error #get name of case setenv PWD `pwd|sed "s/tmp_mnt\///"` setenv PWD $cwd set case = $PWD set case = $case:t if ($case == "") then echo "ERROR: cannot detect working directory $cwd -> exit" exit 1 endif if ($debug > 0) echo Setting up case $case for parallel execution if ($debug > 0) echo of QTL if ($debug > 0) echo " " # echo "calculating QTL's from parallel vectors" vec2old_lapw -p -local $so $updn $exe $def.def $maxproc rm $tmp* >&/dev/null echo "DONE" >.qtlpara exit 0 error: echo "** " QTL crashed! echo "** " QTL crashed at `date`>>$log echo "** " check ERROR FILES! >>$log echo "-----------------------------------------------------------------">>$log echo "** " Error in Parallel QTL >>$def.error rm $tmp* >&/dev/null echo "ERROR" >.qtlpara exit 1
x_lapw.gz
Description: GNU Zip compressed data
_______________________________________________ Wien mailing list Wien@zeus.theochem.tuwien.ac.at http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien SEARCH the MAILING-LIST at: http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html