Log In | Get Help   
Home My Page Projects Code Snippets Project Openings transition state search using dynamics
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files Wiki
[tsscds] View of /branches/vdw/scripts/sel_mol.sh
[tsscds] / branches / vdw / scripts / sel_mol.sh Repository:
ViewVC logotype

View of /branches/vdw/scripts/sel_mol.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 300 - (download) (as text) (annotate)
Wed Dec 12 20:55:18 2018 UTC (5 years, 5 months ago) by tsscds
File size: 3597 byte(s)
multiple_minima option added
#!/bin/bash
echo ""
echo "+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"
echo "Selecting starting structure in sel_mol"
###EMN. seed for srand. 
seed=$(basename $PWD | awk '/batch/{print $0}' | sed 's@batch@@' | awk '{print $1+100}')
###EMN
inputfile=$1
mm=$2
rate=` awk '/Rate/{if ($2=="canonical") print "0";if($2=="microcanonical") print "1" }' $inputfile `
energy=` awk 'BEGIN{e=0};/EKMC/{e=$2};END{print e}'  $inputfile `
en=`awk 'BEGIN{if('$rate'==0) en=100;if('$rate'==1) en='$energy'};{if($1=="MaxEn") en=$2};END{print en}' $inputfile `
molecule=` awk '/molecule/{print $2}'  $inputfile `
tsdirll=`awk '{if($1 == "tsdirll") {print $2;nend=1}};END{if(nend==0) print "'$PWD'/tsdirLL_'$molecule'"}' $inputfile` 
#tsdirhl=`awk '{if($1 == "tsdirhl") {print $2;nend=1}};END{if(nend==0) print "'$PWD'/tsdirHL_'$molecule'"}' $inputfile` 
#kmcfilehl=$tsdirhl/KMC/RXNet_long.cg_groupedprods
#minfilehl=$tsdirhl/MINs/SORTED/MINlist_sorted
#mindirhl=$tsdirhl/MINs/SORTED
kmcfilell=$tsdirll/KMC/RXNet_long.cg_groupedprods
minfilell=$tsdirll/MINs/SORTED/MINlist_sorted
mindirll=$tsdirll/MINs/SORTED
confilell=$tsdirll/working/conf_isomer.out
#confilehl=$tsdirhl/working/conf_isomer.out
factor=1.5
#if [ -f $minfilehl ] && [ -f $kmcfilehl ]; then
#   echo "itsscds with minima from tsdirhl"
#   if [ $2 -gt 0 ]; then
#      minn=$2
#   else 
#      minn=`awk '/min0/{print $2}' $minfilehl`
#   fi
###
#   minok=`awk 'BEGIN{min='$minn'}
#   {for(i=1;i<=NF;i++) {m[NR,i]=$i;iso[NR]=NF}
#   j=1
#   while(j<=iso[NR]){
#      if('$minn'==m[NR,j]) min=m[NR,1]
#      j++
#      }
#   }
#   END{print min}' $confilehl `
###
#   get_minn.sh $kmcfilehl $minok $en $factor
#   selm=`awk 'BEGIN{srand('$seed');rn=rand()};{n[NR]=$1};
#   END{
#   for(i=1;i<=NR;i++) den+='$factor'^(NR-i)
#   p[NR]=1/den
#   i=1
#   ptot=0
#   while(i<=NR){
#     p[i]='$factor'^(NR-i)*p[NR]
#     ptot+=p[i]
#     if(rn<ptot) {print n[i];exit}
#     i++ 
#     }
#   }' minn`
#   echo "selected minimum: $selm" 
#   names="MIN"$selm
#   sqlite3 $mindirhl/minshl.db "select natom,geom from minshl where name='$names'" | sed 's@|@\n\n@' > ${molecule}.xyz
#   sqlite3 $mindirhl/minshl.db "select geom from minshl where name='$names'" 
#   awk '{if(NR==1) print $0"\n"};{if(NF==4) print $0}' $mindirhl/MIN$selm"_"*.rxyz > $molecule.xyz
#elif [ -f $minfilell ] && [ -f $kmcfilell ]; then
if [ -f $minfilell ] && [ -f $kmcfilell ] && [ $mm -eq 1 ]; then
   echo "itsscds with minima from tsdirll"
#   if [ $2 -gt 0 ]; then
#      minn=$2
#   else
      minn=`awk '/min0/{print $2}' $minfilell`
#   fi
##
   minok=`awk 'BEGIN{min='$minn'}
   {for(i=1;i<=NF;i++) {m[NR,i]=$i;iso[NR]=NF}
   j=1
   while(j<=iso[NR]){
      if('$minn'==m[NR,j]) min=m[NR,1]
      j++
      }
   }
   END{print min}' $confilell `
##
###
   get_minn.sh $kmcfilell $minok $en $factor
   selm=`awk 'BEGIN{srand('$seed');rn=rand()};{n[NR]=$1};
   END{
   for(i=1;i<=NR;i++) den+='$factor'^(NR-i)
   p[NR]=1/den
   i=1
   ptot=0
   while(i<=NR){
     p[i]='$factor'^(NR-i)*p[NR]
     ptot+=p[i]
     if(rn<ptot) {print n[i];exit}
     i++
     }
   }' minn`
   echo "selected minimum: $selm" 
   names="MIN"$selm
   sqlite3 $mindirll/mins.db "select natom,geom from mins where name='$names'" | sed 's@|@\n\n@g' > ${molecule}.xyz
   sqlite3 $mindirll/mins.db "select geom from mins where name='$names'" 
#   awk '{if(NR==1) print $0"\n"};{if(NF==4) print $0}' $mindirll/MIN$selm"_"*.rxyz > $molecule.xyz
else
   echo "tsscds with only one minimum"
   cp $molecule".xyz" $molecule"_ref.xyz"
fi
echo "Exiting sel_mol"
echo "+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"
echo ""

root@forge.cesga.es
ViewVC Help
Powered by ViewVC 1.0.0  

Powered By FusionForge