Re: [Wien] Exit code "0" for LAPW1 with an error

2020-09-08 Thread Rubel, Oleg
Thank you for the suggestions! Below is the end solution in python. The pattern 
search is "*lapw1*.error" or "*lapwso*.error", etc. I hope it will work with 
different spins or/and parallel error files. Also "*lapw1*.error" files get 
cleaned up before executing LAPW1. This prevents any leftovers from previous 
runs. Do you see any potentials problems with this implementation?

Thank you
Oleg

testerror('lapw1')

def testerror(corename):
pattern = '*'+corename+'*.error'
for errfilename in glob.glob(pattern):
errfilesize = os.path.getsize(errfilename)
if errfilesize != 0:
print("ERROR detected in", corename)
print("Please check the error file:",errfilename)
sys.exit(1)


From: Wien  on behalf of Peter Blaha 

Sent: Tuesday, September 8, 2020 16:01
To: wien@zeus.theochem.tuwien.ac.at
Subject: Re: [Wien] Exit code "0" for LAPW1 with an error

Exactly.
In run_lapw we define an alias (tcsh syntax, in bash it is slightly
different) like:

alias   testerror   'if (! -z \!:1.error) goto error'

and with
x lapw1
testerror lapw1

you can catch a problem.
Instead of "goto error" you could also do something else.

PS: Most of our shell scripts exit with an error code when a real error
came up. This can be catched with echo $status


Am 08.09.2020 um 20:38 schrieb Yundi Quan:
> The simplest way that I can think of is to check whether the lawp1.error
> file is empty or not after executing x lapw1. If it is empty after
> executing 'x lapw1', then lapw1 terminates without any errors. If it is
> not, then lapw1 terminates with error(s).
>
> On Tue, Sep 8, 2020 at 2:23 PM Rubel, Oleg  <mailto:rub...@mcmaster.ca>> wrote:
>
> Dear WIEN2k community,
>
> suppose we have a code that includes a sequence of commands. Before
> running the next command, I would like to check if the previous one
> completed successfully. It is convenient to use exit codes for that
> purpose. Here is a small example in bash (looking for a file that
> does not exist):
>
> [rubel@gra-login3 lambda1]$ ls oleg
> ls: cannot access 'oleg': No such file or directory
> [rubel@gra-login3 lambda1]$ echo $?
> 2
>
> Here "echo $?" returns the exit code of a previous command. If it is
> not "0", there is a problem (like in this case, there is no "oleg"
> file).
>
> Now I try to apply the same strategy to WIEN2k:
>
> [rubel@gra-login3 lambda1]$ x lapw1
> LAPW1 - Error
> 0.001u 0.018s 0:00.06 16.6% 0+0k 23592+16io 67pf+0w
> [rubel@gra-login3 lambda1]$ echo $?
> 0
>
> This is an unexpected result. The exist status is OK in spite of the
> fact that LAPW1 exited with an error. Of course, there are error
> files created for each program + spin up/dn (even process for
> parallel calculations). But it can be quite elaborate to search
> through them, and it depends on whether you run lapw1 or lapw2, etc.
>
> I wonder if there is a _simple_ alternative way for sensing an
> error? Also message is not always "X - Error". It can be
> different (e.g., segmentation fault).
>
> Thank you in advance
> Oleg
>
> --
> Oleg Rubel (PhD, PEng)
> Department of Materials Science and Engineering
> McMaster University
> JHE 359, 1280 Main Street West, Hamilton, Ontario L8S 4L8, Canada
> Email: rub...@mcmaster.ca <mailto:rub...@mcmaster.ca>
> Tel: +1-905-525-9140, ext. 24094
> Web: http://olegrubel.mcmaster
>
>
> ___
> Wien mailing list
> Wien@zeus.theochem.tuwien.ac.at <mailto: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
>
>
> ___
> 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
>

--
--
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.atWIEN2k: http://www.wien2k.at
WWW:
http://www.imc.tuwien.ac.at/tc_blaha-

___
Wien mailing list
Wien@zeus.theochem.tuwien.ac.at
http

Re: [Wien] Exit code "0" for LAPW1 with an error

2020-09-08 Thread Rubel, Oleg
It is a possibility. In case of LAPW1 it can be lapw1.error, but it can also be 
uplapw1.error, or uplapw1_1.error, or uplapw1_2.error, etc. Some error files 
could be in place from a previous run. Maybe there is a more elegant solution?


From: Wien  on behalf of Yundi Quan 

Sent: Tuesday, September 8, 2020 14:38
To: A Mailing list for WIEN2k users
Subject: Re: [Wien] Exit code "0" for LAPW1 with an error

The simplest way that I can think of is to check whether the lawp1.error file 
is empty or not after executing x lapw1. If it is empty after executing 'x 
lapw1', then lapw1 terminates without any errors. If it is not, then lapw1 
terminates with error(s).

On Tue, Sep 8, 2020 at 2:23 PM Rubel, Oleg 
mailto:rub...@mcmaster.ca>> wrote:
Dear WIEN2k community,

suppose we have a code that includes a sequence of commands. Before running the 
next command, I would like to check if the previous one completed successfully. 
It is convenient to use exit codes for that purpose. Here is a small example in 
bash (looking for a file that does not exist):

[rubel@gra-login3 lambda1]$ ls oleg
ls: cannot access 'oleg': No such file or directory
[rubel@gra-login3 lambda1]$ echo $?
2

Here "echo $?" returns the exit code of a previous command. If it is not "0", 
there is a problem (like in this case, there is no "oleg" file).

Now I try to apply the same strategy to WIEN2k:

[rubel@gra-login3 lambda1]$ x lapw1
LAPW1 - Error
0.001u 0.018s 0:00.06 16.6% 0+0k 23592+16io 67pf+0w
[rubel@gra-login3 lambda1]$ echo $?
0

This is an unexpected result. The exist status is OK in spite of the fact that 
LAPW1 exited with an error. Of course, there are error files created for each 
program + spin up/dn (even process for parallel calculations). But it can be 
quite elaborate to search through them, and it depends on whether you run lapw1 
or lapw2, etc.

I wonder if there is a _simple_ alternative way for sensing an error? Also 
message is not always "X - Error". It can be different (e.g., segmentation 
fault).

Thank you in advance
Oleg

--
Oleg Rubel (PhD, PEng)
Department of Materials Science and Engineering
McMaster University
JHE 359, 1280 Main Street West, Hamilton, Ontario L8S 4L8, Canada
Email: rub...@mcmaster.ca<mailto:rub...@mcmaster.ca>
Tel: +1-905-525-9140, ext. 24094
Web: http://olegrubel.mcmaster


___
Wien mailing list
Wien@zeus.theochem.tuwien.ac.at<mailto: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
___
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


Re: [Wien] Exit code "0" for LAPW1 with an error

2020-09-08 Thread Peter Blaha

Exactly.
In run_lapw we define an alias (tcsh syntax, in bash it is slightly 
different) like:


alias   testerror   'if (! -z \!:1.error) goto error'

and with
x lapw1
testerror lapw1

you can catch a problem.
Instead of "goto error" you could also do something else.

PS: Most of our shell scripts exit with an error code when a real error 
came up. This can be catched with echo $status



Am 08.09.2020 um 20:38 schrieb Yundi Quan:
The simplest way that I can think of is to check whether the lawp1.error 
file is empty or not after executing x lapw1. If it is empty after 
executing 'x lapw1', then lapw1 terminates without any errors. If it is 
not, then lapw1 terminates with error(s).


On Tue, Sep 8, 2020 at 2:23 PM Rubel, Oleg > wrote:


Dear WIEN2k community,

suppose we have a code that includes a sequence of commands. Before
running the next command, I would like to check if the previous one
completed successfully. It is convenient to use exit codes for that
purpose. Here is a small example in bash (looking for a file that
does not exist):

[rubel@gra-login3 lambda1]$ ls oleg
ls: cannot access 'oleg': No such file or directory
[rubel@gra-login3 lambda1]$ echo $?
2

Here "echo $?" returns the exit code of a previous command. If it is
not "0", there is a problem (like in this case, there is no "oleg"
file).

Now I try to apply the same strategy to WIEN2k:

[rubel@gra-login3 lambda1]$ x lapw1
LAPW1 - Error
0.001u 0.018s 0:00.06 16.6%     0+0k 23592+16io 67pf+0w
[rubel@gra-login3 lambda1]$ echo $?
0

This is an unexpected result. The exist status is OK in spite of the
fact that LAPW1 exited with an error. Of course, there are error
files created for each program + spin up/dn (even process for
parallel calculations). But it can be quite elaborate to search
through them, and it depends on whether you run lapw1 or lapw2, etc.

I wonder if there is a _simple_ alternative way for sensing an
error? Also message is not always "X - Error". It can be
different (e.g., segmentation fault).

Thank you in advance
Oleg

--
Oleg Rubel (PhD, PEng)
Department of Materials Science and Engineering
McMaster University
JHE 359, 1280 Main Street West, Hamilton, Ontario L8S 4L8, Canada
Email: rub...@mcmaster.ca 
Tel: +1-905-525-9140, ext. 24094
Web: http://olegrubel.mcmaster


___
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


___
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



--
--
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.atWIEN2k: http://www.wien2k.at
WWW: 
http://www.imc.tuwien.ac.at/tc_blaha- 


___
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


Re: [Wien] Exit code "0" for LAPW1 with an error

2020-09-08 Thread Yundi Quan
The simplest way that I can think of is to check whether the lawp1.error
file is empty or not after executing x lapw1. If it is empty after
executing 'x lapw1', then lapw1 terminates without any errors. If it is
not, then lapw1 terminates with error(s).

On Tue, Sep 8, 2020 at 2:23 PM Rubel, Oleg  wrote:

> Dear WIEN2k community,
>
> suppose we have a code that includes a sequence of commands. Before
> running the next command, I would like to check if the previous one
> completed successfully. It is convenient to use exit codes for that
> purpose. Here is a small example in bash (looking for a file that does not
> exist):
>
> [rubel@gra-login3 lambda1]$ ls oleg
> ls: cannot access 'oleg': No such file or directory
> [rubel@gra-login3 lambda1]$ echo $?
> 2
>
> Here "echo $?" returns the exit code of a previous command. If it is not
> "0", there is a problem (like in this case, there is no "oleg" file).
>
> Now I try to apply the same strategy to WIEN2k:
>
> [rubel@gra-login3 lambda1]$ x lapw1
> LAPW1 - Error
> 0.001u 0.018s 0:00.06 16.6% 0+0k 23592+16io 67pf+0w
> [rubel@gra-login3 lambda1]$ echo $?
> 0
>
> This is an unexpected result. The exist status is OK in spite of the fact
> that LAPW1 exited with an error. Of course, there are error files created
> for each program + spin up/dn (even process for parallel calculations). But
> it can be quite elaborate to search through them, and it depends on whether
> you run lapw1 or lapw2, etc.
>
> I wonder if there is a _simple_ alternative way for sensing an error? Also
> message is not always "X - Error". It can be different (e.g.,
> segmentation fault).
>
> Thank you in advance
> Oleg
>
> --
> Oleg Rubel (PhD, PEng)
> Department of Materials Science and Engineering
> McMaster University
> JHE 359, 1280 Main Street West, Hamilton, Ontario L8S 4L8, Canada
> Email: rub...@mcmaster.ca
> Tel: +1-905-525-9140, ext. 24094
> Web: http://olegrubel.mcmaster
>
>
> ___
> 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
>
___
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


[Wien] Exit code "0" for LAPW1 with an error

2020-09-08 Thread Rubel, Oleg
Dear WIEN2k community,

suppose we have a code that includes a sequence of commands. Before running the 
next command, I would like to check if the previous one completed successfully. 
It is convenient to use exit codes for that purpose. Here is a small example in 
bash (looking for a file that does not exist):

[rubel@gra-login3 lambda1]$ ls oleg
ls: cannot access 'oleg': No such file or directory
[rubel@gra-login3 lambda1]$ echo $?
2

Here "echo $?" returns the exit code of a previous command. If it is not "0", 
there is a problem (like in this case, there is no "oleg" file).

Now I try to apply the same strategy to WIEN2k:

[rubel@gra-login3 lambda1]$ x lapw1
LAPW1 - Error
0.001u 0.018s 0:00.06 16.6% 0+0k 23592+16io 67pf+0w
[rubel@gra-login3 lambda1]$ echo $?
0

This is an unexpected result. The exist status is OK in spite of the fact that 
LAPW1 exited with an error. Of course, there are error files created for each 
program + spin up/dn (even process for parallel calculations). But it can be 
quite elaborate to search through them, and it depends on whether you run lapw1 
or lapw2, etc.

I wonder if there is a _simple_ alternative way for sensing an error? Also 
message is not always "X - Error". It can be different (e.g., segmentation 
fault).

Thank you in advance
Oleg

--
Oleg Rubel (PhD, PEng)
Department of Materials Science and Engineering
McMaster University
JHE 359, 1280 Main Street West, Hamilton, Ontario L8S 4L8, Canada
Email: rub...@mcmaster.ca
Tel: +1-905-525-9140, ext. 24094
Web: http://olegrubel.mcmaster


___
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