[Wien] Error in parabolfit_lapw for 4D optimization of monoclinic structure

Peter Blaha peter.blaha at tuwien.ac.at
Sat Nov 26 16:48:09 CET 2022


The files you send are much too large.

Anyway, case.ene and case.latparam must look like:

        -12035.77743100
        -12035.75697968
        -12035.79115863
   ....
and
  12.44102  9.30176 15.97764   1.277
  12.44102  9.30176 15.81786   1.277
  12.56668  9.30176 15.97764   1.277
  12.69235  9.30176 15.97764   1.277
...

The attached parabolfit_lapw should do this (the wien2k_21 script 
produces wrong ene and latparam files for 4D case.

In addition, since your monoclinic angle is   gamma, you need to specify 
-g  (otherwise you will always get angle alpha, which is always the same).

PS: I saw that you did not optimize the internal positions in the scf 
files, so these energies are probably not very good since they were done 
with fixed positions. You should optimize positions with   run -min ....




-- 
--------------------------------------------------------------------------
Peter BLAHA, Inst.f. Materials Chemistry, TU Vienna, A-1060 Vienna
Phone: +43-1-58801-165300
Email: peter.blaha at tuwien.ac.at    WIEN2k: http://www.wien2k.at
WWW:   http://www.imc.tuwien.ac.at
-------------------------------------------------------------------------
-------------- next part --------------
#!/bin/tcsh -f

set file    = `pwd`
set file    = $file:t           #tail of file-names
unset help
unset type
unset scf
set angle

while ($#argv)
  switch ($1)
  case -h:
    set help
    shift; breaksw
  case -t:
    shift
    set type = $1
    shift; breaksw
  case -p:
#    shift
    set terminal = png
    shift; breaksw
  case -f:
    shift; set file = $1
    shift; breaksw
  case -scf:
    shift; set scf=`/bin/ls $1`
#    shift; set scf="$1"
    shift; breaksw
  case -a:
    set angle = a
    shift; breaksw
  case -b:
    set angle = b
    shift; breaksw
  case -g:
    set angle = g
    shift; breaksw
  default:
    shift; breaksw
  endsw
end
if ($?help) goto help

if !($?type) then
echo 'enter dimensionality (2-4) of fit:'
    set type=$<
endif

if( $type == '2' ) then
  if( ! $?scf ) set scf='*a+c*.scf'
  #  grepline :ene "$scf" 1 -s| cut -c40- >$file.ene              
  #  grepline :lat "$scf" 1 -s| cut -c36->$file.latparam          
  grepline :ene "$scf" 1 -s| cut -d = -f 2|grep -v files >$file.ene
  grepline :lat "$scf" 1 -s| cut -d = -f 2|grep -v files|cut -c10- >$file.latparam
else if( $type == '3' ) then
  if( ! $?scf ) set scf='*abc*.scf'
#  grepline :ene "$scf" 1 -s| cut -c40- >$file.ene
#  grepline :lat "$scf" 1 -s| cut -c27->$file.latparam
  grepline :ene "$scf" 1 -s| cut -d = -f 2|grep -v files >$file.ene
  grepline :lat "$scf" 1 -s| cut -d = -f 2|grep -v files >$file.latparam
else if( $type == '4' ) then
  if( ! $?scf ) set scf='*mon*.scf'
  #  grepline :ene "$scf" 1 -s| cut -c40- >$file.ene              
  #  grepline :lat "$scf" 1 -s| cut -c27->$file.latparam          
  grepline :ene "$scf" 1 -s| cut -d = -f 2|grep -v files >$file.ene
  grepline :lat "$scf" 1 -s| cut -d = -f 2|grep -v files >$file.latparam
  if($angle == 'b') then
  grepline :lat "$scf" 1 -s|cut -d = -f 2|grep -v files| cut -c1-30,40- >$file.latparam          
  endif
  if($angle == 'g') then
  grepline :lat "$scf" 1 -s| cut -d = -f 2|grep -v files | cut -c1-30,50- >$file.latparam          
  endif 
endif

echo The following scf files were used for analysis: 
foreach i ($scf)
  echo $i
end
echo " "

echo "$file.ene and $file.latparam generated"
echo " "

echo $type | x_lapw -f $file eosfit6

exit(0)

help:
cat <<EOF
parabolfit_lapw is an interface for fitting E vs. 2-4-dim lattice parameters  
by a non-linear least squares fit (eosfit6) using PORT routines.
Once you have several scf calculations at different volumes (usually generated
with "optimize.job" or "optimize_abc_lapw") it generates the required 
"$file.ene" and "$file.latparam"

parabolfit_lapw [ -t 2/3/4 ]  [ -f FILEHEAD ] [ -scf '*xxx*.scf' ] [-a/b/g]

-a/b/g allows to specify alpha,beta or gamma in 4D fit.

EOF



More information about the Wien mailing list