计算化学公社

标题: 简单运行脚本gamess [打印本页]

作者
Author:
zhanfei    时间: 2016-7-2 22:50
标题: 简单运行脚本gamess
本帖最后由 zhanfei 于 2016-7-3 03:57 编辑

gms那么长运行脚本(只有前面一部分是soclets模式的,hostlist还弄了六个小例子),感觉这种事事包含的脚本还不如直接说明特殊情况做什么,平常需要做什么
这个是简化的脚本,运行通常计算应该没问题,因为脚本里有些处理还是有些特殊计算要加些部分的。
#!/bin/cshset NCPU=4#设置核数量
set JOB=exam01
set SCR=/home/zhanfei/tmp
set GMSPATH=/home/zhanfei/gamess
set USERSCR=/home/zhanfei/tmp
#以上四个变量必须定义否则报错,比如GMSPATH看来不只是定义gms主程序和内置数据的位置
source /home/zhanfei/gamess/gms-files.csh#这个设置文件别忘了source
cp ./${JOB}.inp ${SCR}/${JOB}.F05#考输入文件到临时文件夹 上面定义的JOB不含.inp后缀的
${GMSPATH}/ddikick.x ${GMSPATH}/gamess.00.x $JOB -ddi 1 ${NCPU} ·hostname·:cpus=3 -scr $SCR#·hostname·如果是单机默认设置一般是localhost.localdomain,这里因为是单机-ddi 1 4 是用4核
#rm $SCR/*.dat #清空临时文件
rm $SCR/*.F*

简单test#!/bin/csh
foreach var (exam01 exam02 exam03 exam04 exam05 exam06 exam07 exam08 exam09 exam10 exam11 exam12 exam13 exam14 exam15 exam16 exam17 exam18 exam19 exam20 exam21 exam22 exam23 exam24 exam25 exam26 exam27 exam28 exam29 exam30 exam31 exam32 exam33 exam34 exam35 exam36 exam37 exam38 exam39 exam40 exam41 exam42 exam43 exam44 exam45 exam46 exam47)

set NCPU=1
set JOB=$var
set SCR=/home/zhanfei/tmp
set GMSPATH=/home/zhanfei/gamess
set USERSCR=/home/zhanfei/tmp
source /home/zhanfei/gamess/gms-files.csh
cp ./${JOB}.inp ${SCR}/${JOB}.F05
${GMSPATH}/ddikick.x ${GMSPATH}/gamess.00.x $JOB -ddi 1 ${NCPU} localhost.localdomain:cpus=$NCPU -scr $SCR > ${JOB}.log
rm $SCR/*.dat
rm $SCR/*.F*

rm $SCR/*.trj
rm $SCR/*.rst
end
简单建立basname的Octave脚本
clear;clc;
basis=[];
bsele={'Os','C','N','H'};
bstr={'Ossvp','Csvp','Nsvp','Hsvp'};
ecpMap=containers.Map(bsele,bstr);
folder=pwd;
fidxyz=fopen([folder,'/','Osgamess.inp']);
xyzcell={};
while ~(feof(fidxyz))
line=fgetl(fidxyz);
xyzcell{end+1}=line;
end
splitcell=regexp(xyzcell,'\s+','split');
for i=1:1:length(splitcell)
    flag==0;
    for j=1:1:length(bsele)
        if splitcell{i}{1}==bsele{j}
            flag=1;
        end
    end
    if flag==0
        error('no defined element');
    end
    if flag==1
        basis=[basis,ecpMap(splitcell{i}{1}),','];
    end
end%end for

建立自定义赝势一串字符串的脚本 不过只是Os-ecp 或者Os-ecp none这种字符串 第一个定义手动复制。。。
当然也推荐去看看firefly网页上的工具,虽然firefly自定义基组改方便了,但是赝势定义还是gamess样式的
clear;clc;
folder=pwd;
%用来整理中心原子坐标到中心位置
fgjf='Osgamess.inp';
% ecpf={'Os.txt','C.txt','N.txt'};
% ecpele={'Os','C','N'};
ecpf={'Os.txt'};
ecpele={'Os'};
ecpMap=containers.Map(ecpele,ecpf);
folder=pwd;
myfid=fopen([folder,'\',fgjf]);
linecell={};
while(~feof(myfid))
cline=fgetl(myfid);
cline=strtrim(cline);%去掉前后空格方便处理
linecell{end+1}=cline;
end
fclose(myfid);
splitcell=regexp(linecell,'\s+','split');
for i=1:1:length(linecell)
    ecpflag=0;
    for j=1:1:length(ecpele)
        if splitcell{i}{1}==ecpele{j};
            ecpflag=1;
        end%end if
    end
    if ecpflag==1
        fprintf('%s-ecp\n',splitcell{i}{1});
    end
    if ecpflag==0
    fprintf('%s-ecp none\n',splitcell{i}{1});
    end
end










欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3