Destio небольшой блог

Запуск Gaussian

Небольшой перлоскрипт для запуска расчетов в Gaussian. Свойства:
1. Ест входные файлы с расширением .inp и выдает .out файлы. Оба типа можно изменить прямо в теле скрипта. Можно запускать по маске, удобнее всего *.
2. При запуске с параметром chk выдаст готовые Formatted Checkpoint файлы .fchk с названием входных файлов. Для корректной работы необходимо наличие во входном файле строки %Chk=tmpdir/1.chk
Например:

g chk *

3. Дописывает в конец выходного файла время проведения расчета

Собственно, сам скрипт:

#!/usr/bin/perl
$in_type = "gjf";  #filetype for input
$out_type = "out"; #output filetype
$gauss_path = "/opt/q/g09"; #gaussian path
$tmpdir = "/opt/q/tmp/g09";  #tmp path
if ($ARGV[0] =~ m/chk/)
  { foreach $file (@ARGV)
    { if ($file =~ m/chk/)
      {next}
    if ($file =~ m/$in_type/)
      { $file =~ s/.$in_type//;
      print "processing $file\t";
      open INP, "$file.$in_type";
      @inp = <INP>;
      close INP;
      $gauss = "$gauss_path/g09 $file.$in_type $file.$out_type";
      `/usr/bin/time -a -f %E --output=$file.$out_type $gauss $file.$in_type`;  
      `mv -f $tmpdir/1.chk $file.chk`;
      `$gauss_path/formchk -3 $file.chk $file.fchk`;
      `rm -f $tmpdir/*`;
      unlink "$file.chk";
      open (INPEND,"> $file.gjf");
      print INPEND @inp;
      close INPEND;
      print "done\n"
      }
    }
  }
else
  { foreach $file (@ARGV)
    { if ($file =~ m/$in_type/)
      { $file =~ s/.$in_type//;
      print "processing $file\t";
      open INP, "$file.$in_type";
      @inp = <INP>;
      close INP;
      $gauss = "$gauss_path/g09 $file.$in_type $file.$out_type";
      `/usr/bin/time -a -f %E --output=$file.$out_type $gauss $file.$in_type`;
      `rm -f $tmpdir/*`;
      open (INPEND,"> $file.gjf");
      print INPEND @inp;
      close INPEND;
      print "done\n";
      }
    }
  }

Ярлыки: ,


Ближайшие сообщения:

Похожие сообщения:

Комментарии к этой записи отключены.