[Wien] about write_in1_lapw
huelsen at fhi-berlin.mpg.de
Thu Nov 9 09:47:05 CET 2006
Dear Wien2k developers,
a few days ago I encountered some problems with large differences of the
hyper fine field for the same input files on different platforms. (
The reason for the strange behavior could be tracked down to a different
functionality of the program "bc" that is used in the write_in1 script.
According to the support team of the Rechenzentrum Garching the current
version of the script relies on enhanced features of "bc" that are only
available in the GNU version but that are not compliant with the
standard "bc" on the AIX system (and Solaris, IRIX, maybe others).
if ( `echo "$es < $etest" | bc` == 1 ) then
uses the fact that the GNU "bc" answers with a 1 or 0, respectively.
With the general "bc" this gives a syntax error that does not lead to a
crash but also does not switch on the search for the low lying local
orbitals. So this new feature does not work on the AIX.
A more general version of this query is
if ( `echo "if ( $es < $etest ) 1" | bc` == 1 ) then
which works with both the general and the GNU "bc". So I suggest to
include the more general version in the next release of Wien2k.
By the way, when I looked into write_in1, I made a change that if the
energy of a local orbital is below -3 Ryd and the search for this state
is switched on, then the CONT is replaced with a STOP like in
case.in1_orig. Since these local orbitals are really important for the
scf cycle, I don't see the reason why there should not be a warning if
they could not be found while using -in1new. The altered script is
attached for the case you like the idea and want to have a look at it.
phone: +49 30 8413-4863
email: huelsen at fhi-berlin.mpg.de
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
More information about the Wien