Freq.s

From Wiki
Revision as of 11:41, 13 March 2008 by 10.0.7.30 (talk) (New page: # # Gerard Novell Leruth # Conversion archivos OUTCAR de frecuencias VASP 4.6 a molden format # Uso: freq46 OUTCAR # file=$1 echo [MOLDEN FORMAT] > MOLCAR echo [FREQ] >> MOLCAR declare -...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
  1. Gerard Novell Leruth
  2. Conversion archivos OUTCAR de frecuencias VASP 4.6 a molden format
  3. Uso: freq46 OUTCAR

file=$1 echo [MOLDEN FORMAT] > MOLCAR

echo [FREQ] >> MOLCAR declare -a typ_freq declare -a list_freq declare -a num_ions_type

num_freq=$(grep cm-1 $file | awk '{print $1}' | tail -1) list_freq=($(grep cm-1 $file | cut -b 10- | awk '{print $5}' | tail -$num_freq)) typ_freq=($(grep cm-1 $file | awk '{print $2}' ))

let k=$num_freq-1 for i in $(seq 0 $k); do

   if [[ ${typ_freq[$i]} = "f/i=" ]];then
       list_freq[$i]=-${list_freq[$i]}
   fi
   echo ${list_freq[$i]} >> MOLCAR 

done

num_ions_type=($(grep "ions per type" $file | cut -b 20- )) let j=$(grep -c POTCAR $file)/2 for i in $(seq 1 $j); do

  let k=$i-1
  ions_type[$k]=$(grep POTCAR $file | awk '{print $3}' | head -$i | tail -1  )

done num_ions=$(grep IONS $file | awk '{print $12}')

echo [FR-COORD] >> MOLCAR let k=$num_ions p=0 j=${num_ions_type[$p]} cap=0 for i in $(seq 1 $k); do

   atom=${ions_type[$p]}
   if $j = $i && $j != $k ; then
       let p=$p+1
       let j=$j+${num_ions_type[$p]}
   fi
   let cap=$i+1
   b=1.8897
   X=$(echo "sacale=5; $(grep -$cap cm-1 $file | tail -1 | awk '{print $1}')*$b " | bc)
   Y=$(echo "sacale=5;  $(grep -$cap cm-1 $file | tail -1 | awk '{print $2}')*$b " | bc)
   Z=$(echo "sacale=5;  $(grep -$cap cm-1 $file | tail -1 | awk '{print $3}')*$b " | bc)
   echo $atom $X $Y $Z >> MOLCAR

done

echo [FR-NORM-COORD] >> MOLCAR

for i in $(seq 1 $num_freq); do

   echo vibration  $i >> MOLCAR
   cap=1
   txt=$i" f" 
   for t in $(seq 1 $num_ions); do
       let cap=$cap+1
        b=1.8897
        dX=$(echo "sacale=5; $(grep -$cap "$txt" $file | tail -1 | awk '{print $4}')*$b " | bc)
        dY=$(echo "sacale=5;  $(grep -$cap "$txt" $file | tail -1 | awk '{print $5}')*$b " | bc)
        dZ=$(echo "sacale=5;  $(grep -$cap "$txt" $file | tail -1 | awk '{print $6}')*$b " | bc)
        echo $dX $dY $dZ >> MOLCAR
   done

done

molden MOLCAR

  1. rm MOLCAR