Thank you so much sir. Now it is working fine. Best Regards
On Sun, Feb 16, 2020 at 12:33 AM Peeyush kumar kamlesh < peeyush.physik....@gmail.com> wrote: > Dear Sir, > Last time when I was calculation optical properties using hf potential > then i got some error. Then Peter Blaha sir suggested to remove that /. And > problem was solved by doing this. Thats why this / is not here. > > Best Regards > > On Sat, Feb 15, 2020 at 11:52 PM Peeyush kumar kamlesh < > peeyush.physik....@gmail.com> wrote: > >> Dear Gavin Sir, >> opticpara_lapw file is as follows: >> >> #!/bin/tcsh -f >> # >> # Run optic in parallel mode >> # >> # $Author: M.Lee $ >> # >> >> touch .lock_ >> foreach i (.lock_*) >> rm $i >> end >> >> onintr exit >> set name = $0 >> set bin = $name:h #default directory for WIEN-executables >> if !(-d $bin) set bin = . >> set name = $name:t >> >> unalias rm >> alias testinput 'if (! -e \!:1 || -z \!:1) goto \!:2' >> alias testerror 'if (! -z \!:1.error) goto error' >> >> set t = time >> set cmplx >> set log = :parallel >> set defmach = `hostname` >> set updn # spinpolarization switch >> set dnup = 'dn' # spinpolarization switch >> set sc # semicore-switch >> set hf # hybrid-switch >> set so # spinorbit-switch >> set remote = ssh >> set tmp_dir = /tmp >> set init = init: >> set res = residue: >> set taskset0 >> set taskset='no' >> >> set scratch = >> >> if ( $?SCRATCH && $SCRATCH != '') then >> set scratch=`echo $SCRATCH | sed -e 's/\/$//'` # we are afraid >> # different settings in different >> # computing centers >> #use global variable for scratch if set >> endif >> >> >> >> ############################################################################ >> # 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 >> 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 ( $?TASKSET ) then >> set taskset="$TASKSET" >> endif >> if ( $?USE_REMOTE ) then >> set useremote = $USE_REMOTE >> endif >> >> ############################################################################ >> >> set tmp = $tmp_dir/opticpara.$user.$$ >> set tmp2 = $tmp_dir/opticpara.$user.$$_2 >> >> if ($#argv < 1) then >> echo usage: $0 deffile >> exit >> endif >> >> while ($#argv) >> switch ($1) >> case -h: >> case -H: >> set help >> shift; breaksw >> case -c: >> set cmplx = c >> shift; breaksw >> case -up: >> set updn = 'up' >> set dnup = 'dn' >> shift; breaksw >> case -dn: >> set updn = 'dn' >> set dnup = 'up' >> shift; breaksw >> case -hf: >> set hf = 'hf' >> shift; breaksw >> case -so: >> set so = 'so' >> shift; breaksw >> case -sc: >> set sc = 's' >> shift; breaksw >> default: >> set def = $1:r >> shift; breaksw >> endsw >> end >> >> set exe = $bin/optic$cmplx >> set exe = optic$cmplx >> >> #are we running parallel? >> testinput .processes single >> echo "running OPTIC in parallel mode" >> echo "RUNNING" >.opticpara >> >> #before we start, we wipe away all parallel error files >> if ( -e optic_1.error ) rm *optic_*.error >> if ( -e .timeop_1) rm .timeop_* >> >> 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` >> set machine = `grep -v $init .processes |grep : | grep -v $res | cut -f2 >> -d: | xargs` >> >> 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 OPTIC >$def.error >> #bounding cpus >> set p_cpu_bound = ($machine) >> set i=1 >> set cpu=0 >> set old=old >> while ($i <= $#p_cpu_bound) >> if($old != $p_cpu_bound[$i]) then >> set cpu=0 >> endif >> set old=$p_cpu_bound[$i] >> set p_cpu_bound[$i] = $cpu >> @ cpu ++ >> @ i ++ >> end >> #echo $machine >> #echo $p_cpu_bound >> >> #get name of case >> setenv PWD `pwd|sed "s/tmp_mnt\///"` >> #echo $PWD >> setenv PWD $cwd >> set case = $PWD >> set case = $case:t >> if ($case == "") then >> echo "ERROR: cannot detect working directory $cwd -> exit" >> exit 1 >> endif >> ####set case = $case:r #head of file-names >> if ($debug > 0) echo Setting up case $case for parallel execution >> if ($debug > 0) echo of OPTIC >> if ($debug > 0) echo " " >> # >> >> #creating def files >> if ($debug > 0) echo " " >> if ($debug > 0) echo -n "creating "$def"_*.def: " >> set i = 1 >> while ($i <= $maxproc) >> if ($debug > 0) echo -n "$i " >> cp $def.def .tmp >> #subsituting in files: >> cat <<theend >.script >> s/vector$hf$so$dnup/&_$i/w .mist >> s/vector$hf$so$updn/&_$i/w .mist >> s/outputop/&_$i/w .mist >> s/symmat/&_$i/w .mist >> s/symma1/&_$i/w .mist >> s/symma2/&_$i/w .mist >> s/mommat2/&_$i/w .mist >> s/mat_diag/&_$i/w .mist >> s/mme/&_$i/w .mist >> s/symop/&_$i/w .mist >> >> theend >> >> sed -f .script .tmp > .tmp1 >> sed "s/vector_${i}_$i\&dn/vectordn_$i/" .tmp1>.tmp2 >> sed "s/vector_${i}_$i\&up/vectorup_$i/" .tmp2>.tmp1 >> sed "s/vector_${i}dn_$i/vectordn_$i/" .tmp1>.tmp2 >> sed "s/vector_${i}_$i/vector_$i/" .tmp2>.tmp1 >> sed "s/vectorhf_${i}dn_$i/vectorhfdn_$i/" .tmp1> .tmp2 >> sed "s/vectorso_${i}dn_$i/vectorsodn_$i/" .tmp2> "$def"_$i.def >> #similar fix for SO necessary >> >> @ i ++ >> end >> if ($debug > 0) echo " " >> >> >> #starting processes >> if ($debug > 0) echo " " >> if ($debug > 0) echo "starting process: " >> >> echo "-> "starting parallel optic at `date` >>$log >> >> set loop = 0 >> set endloop = 0 >> set runmach = "" >> echo "files:$maxproc" >.processes2 >> # change working dir because of problems with automounted directories >> # cd $cwd >> while ($loop < $maxproc) >> set p = 1 >> if ($?residue && $?resok) set p = 2 >> while ($p <= $#machine) >> if ($loop < $maxproc) then >> if !(-e .lock_$lockfile[$p]) then >> @ loop ++ >> echo "${loop}:${maxproc} : $p_cpu_bound[$p]" >.processes2 >> if ($debug > 0) echo prepare $loop on $machine[$p] >> set runmach = ($runmach $machine[$p]) >> echo $runmach >>.processes2 >> if ($debug > 1) echo " > $exe ${def}_${loop}.def on $machine[$p]" >> if ($debug > 1) echo " > $exe ${def}_${loop}.def on >> $machine[$p]">>$log >> if ($useremote == 1) then >> if ($debug > 1) echo use remote >> touch .lock_$lockfile[$p] >> echo -n "$runmach[$loop] ">.timeop_$loop >> if("$taskset" != 'no') set taskset0="$taskset >> $p_cpu_bound[$p]" >> ($remote $machine[$p] "cd $PWD;$t $taskset0 $exe ${def}_${loop}.def;rm -f >> .lock_$lockfile[$p]") >>.timeop_$loop & >> else >> if ($debug > 1) echo not using remote shell >> touch .lock_$lockfile[$p] >> echo -n "$runmach[$loop] " >.timeop_$loop >> (cd $PWD;$t $exe ${def}_${loop}.def;rm -f .lock_$lockfile[$p]) >> >>.timeop_$loop & >> endif >> endif >> if ($debug > 1) echo sleeping for $DELAY seconds >> sleep $DELAY >> jobs -l >.optic${cmplx}para.$$.`hostname` >> endif >> @ p ++ >> end >> end >> >> #wait for execution to be completed >> if ($debug > 0) echo " " >> if ($debug > 0) echo "waiting for processes: " >> wait >> >> >> set i = 1 >> while ($i <= $maxproc) >> testerror "$def"_$i >> @ i ++ >> end >> >> #cpu summary: >> set i = 1 >> while ($i <= $maxproc) >> # echo " "`cat .timeop_$i` >> #fix for bash timing >> bashtime2csh.pl_lapw .timeop_$i > .time_tmp >> mv .time_tmp .timeop_$i >> echo " "`cat .timeop_$i` >>$log >> @ i ++ >> end >> >> # postanalysis >> echo " Summary of opticpara:" >$tmp >> set p = 1 >> while ($p <= $#machine) >> set m = $runmach[$p] >> cat .timeop_* | grep $m | tr "():" " " | \ >> awk '{u += $2; cl += 60*$4+$5} \ >> END {print " '$m'\t user=" u "\t wallclock=" cl}' >>$tmp >> @ p ++ >> end >> >> uniq < $tmp |tee -a $log >> >> echo "<- "done at `date` >>$log >> >> # concatenating the case.symmat files and case.mommat files >> >> if (-e $case.symop) rm $case.symop >> if (-e ${scratch}$case.mme$updn) rm ${scratch}$case.mme$updn >> if (-e ${scratch}$case.symmat$updn) rm ${scratch}$case.symmat$updn >> if (-e ${scratch}$case.mommat2$updn) rm ${scratch}$case.mommat2$updn >> if (-e ${scratch}$case.mat_diag$updn) rm ${scratch}$case.mat_diag$updn >> touch ${scratch}$case.symmat$updn >> touch ${scratch}$case.mommat2$updn >> touch ${scratch}$case.mat_diag$updn >> touch ${scratch}$case.mme$updn >> >> mv $case.symop_1 $case.symop >> rm $case.symop_* >> if( "$hf" != "hf" ) then >> opticcopy_lapw >> endif >> >> set i = 1 >> while ($i <= $maxproc) >> if ( $i == 1 ) then >> # testinput $case.symmat_$i$updn scratchwarning >> cat ${scratch}$case.symmat_$i$updn > ${scratch}$case.symmat$updn >> cat ${scratch}$case.symma1_${i}$updn > ${scratch}$case.symma1$updn >> cat ${scratch}$case.symma2_${i}$updn > ${scratch}$case.symma2$updn >> if (-e ${scratch}$case.mommat2_$i$updn) then >> cat ${scratch}$case.mommat2_$i$updn > >> ${scratch}$case.mommat2$updn >> endif >> cat ${scratch}$case.mat_diag_$i$updn > ${scratch}$case.mat_diag$updn >> cat ${scratch}$case.mme_$i$updn > ${scratch}$case.mme$updn >> else >> tail -n +2 ${scratch}$case.symmat_$i$updn >> >> ${scratch}$case.symmat$updn >> tail -n +2 ${scratch}$case.symma1_${i}$updn >> >> ${scratch}$case.symma1$updn >> tail -n +2 ${scratch}$case.symma2_${i}$updn >> >> ${scratch}$case.symma2$updn >> if (-e ${scratch}$case.mommat2_$i$updn) then >> tail -n +2 ${scratch}$case.mommat2_$i$updn >> >> ${scratch}$case.mommat2$updn >> endif >> tail -n +2 ${scratch}$case.mat_diag_$i$updn >> >> ${scratch}$case.mat_diag$updn >> tail -n +2 ${scratch}$case.mme_$i$updn >> ${scratch}$case.mme$updn >> endif >> rm ${scratch}$case.symmat_$i$updn >> rm -f ${scratch}$case.mommat2_$i$updn >> rm ${scratch}$case.mat_diag_$i$updn >> rm ${scratch}$case.mme_$i$updn >> @ i ++ >> end >> >> echo "<- "done at `date` >>$log >> echo >> "-----------------------------------------------------------------">>$log >> rm $def.error >> #rm .in.tmp .in.tmp1 >> touch $def.error >> rm $tmp* >&/dev/null >> rm .optic${cmplx}para.$$.`hostname` >&/dev/null >> echo "DONE" >.opticpara >> exit 0 >> >> single: >> echo "running in single mode" >> $exe $def.def >> rm $tmp* >&/dev/null >> rm .optic${cmplx}para.$$.`hostname` >&/dev/null >> exit 0 >> >> scratchwarning: >> echo "Could not find $case.symmat_$i$updn , which is probably because you >> used a scratch directory $SCRATCH" >> echo "Copy these files from the remote machines and concatenate them >> yourself" >> echo "with commands like (for all your parallel calculations i):" >> echo " cat $case.symmat_"'$i'"$updn >> $case.symmat$updn when >> $i =1a " >> echo " tail -n +2 $case.symmat_"'$i'"$updn >> $case.symmat$updn else" >> exit 1 >> >> error: >> echo "** " OPTIC crashed! >> echo "** " OPTIC crashed at `date`>>$log >> echo "** " check ERROR FILES! >>$log >> echo >> "-----------------------------------------------------------------">>$log >> echo "** " Error in Parallel OPTIC >>$def.error >> rm $tmp* >&/dev/null >> rm .optic${cmplx}para.$$.`hostname` >&/dev/null >> echo "ERROR" >.opticpara >> exit 1 >> >
_______________________________________________ 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