mirror of
https://github.com/pfloos/quack
synced 2025-03-31 22:11:48 +02:00
remove unnecessary files
This commit is contained in:
parent
7e1ea324b7
commit
65a84fcb5b
13
GoHu
13
GoHu
@ -1,13 +0,0 @@
|
|||||||
#! /bin/bash
|
|
||||||
|
|
||||||
cp input/molecule.Hu input/molecule
|
|
||||||
cp input/basis.Hu input/basis
|
|
||||||
cp int/nBas.Hu.dat int/nBas.dat
|
|
||||||
cp int/ERI.Hu.dat int/ERI.dat
|
|
||||||
cp int/Kin.Hu.dat int/Kin.dat
|
|
||||||
cp int/Nuc.Hu.dat int/Nuc.dat
|
|
||||||
cp int/Ov.Hu.dat int/Ov.dat
|
|
||||||
cp int/x.Hu.dat int/x.dat
|
|
||||||
cp int/y.Hu.dat int/y.dat
|
|
||||||
cp int/z.Hu.dat int/z.dat
|
|
||||||
./bin/QuAcK
|
|
@ -1,6 +0,0 @@
|
|||||||
1 1
|
|
||||||
S 1
|
|
||||||
1 1.0000000000e+00 1.0000000000e+00
|
|
||||||
2 1
|
|
||||||
S 1
|
|
||||||
1 1.0000000000e+00 1.0000000000e+00
|
|
@ -1,5 +0,0 @@
|
|||||||
# nAt nEla nElb nCore nRyd
|
|
||||||
2 1 1 0 0
|
|
||||||
# Znuc x y z
|
|
||||||
X 0.0000000000 0.0000000000 0.0000000000
|
|
||||||
X 0.0000000000 0.0000000000 1.0000000000
|
|
321
scripts/PyDuck
321
scripts/PyDuck
@ -1,321 +0,0 @@
|
|||||||
#!/usr/bin/env python2
|
|
||||||
import sys
|
|
||||||
from termcolor import colored
|
|
||||||
import shlex
|
|
||||||
from subprocess import Popen, PIPE
|
|
||||||
import itertools
|
|
||||||
import re
|
|
||||||
import numpy as np
|
|
||||||
import os
|
|
||||||
from shutil import copy2
|
|
||||||
import matplotlib.pyplot as plt
|
|
||||||
import json
|
|
||||||
from math import *
|
|
||||||
from collections import OrderedDict
|
|
||||||
import csv
|
|
||||||
import argparse
|
|
||||||
def GetDuckDir():
|
|
||||||
return os.path.dirname(os.path.realpath(__file__))
|
|
||||||
|
|
||||||
def nNucl(molbaselines):
|
|
||||||
return float(molbaselines[1].split()[0])
|
|
||||||
|
|
||||||
def isMononucle(molbaselines):
|
|
||||||
return nNucl(molbaselines)==1
|
|
||||||
|
|
||||||
def openfileindir(path,readwrite):
|
|
||||||
mydir=os.path.dirname(path)
|
|
||||||
if not os.path.exists(mydir) and mydir!="":
|
|
||||||
os.makedirs(mydir)
|
|
||||||
return open(path,readwrite)
|
|
||||||
def outfile(Outdic,item,index=None):
|
|
||||||
itemdata=Outdic[item]
|
|
||||||
if itemdata["Enabled"]:
|
|
||||||
fmt=itemdata["Format"]
|
|
||||||
if index is not None:
|
|
||||||
filename=fmt.format(index)
|
|
||||||
else:
|
|
||||||
filename=fmt
|
|
||||||
if "Parent" in Outdic:
|
|
||||||
path=os.path.join(Outdic["Parent"],filename)
|
|
||||||
else:
|
|
||||||
path=filename
|
|
||||||
return openfileindir(path,'w')
|
|
||||||
else:
|
|
||||||
return
|
|
||||||
|
|
||||||
def runDuck(mol,basis,x,molbaselines,molbase,basisbase):
|
|
||||||
#gennerate molecule file
|
|
||||||
currdir=os.getcwd()
|
|
||||||
os.chdir(GetDuckDir())
|
|
||||||
molname='.'.join([mol,str(x)])
|
|
||||||
lstw=list()
|
|
||||||
for i,line in enumerate(molbaselines):
|
|
||||||
if i<3:
|
|
||||||
lstw.append(line)
|
|
||||||
else:
|
|
||||||
if isMononucle(molbaselines):
|
|
||||||
if i==3:
|
|
||||||
lstw.append(' '.join([str(x)]+line.split()[1:]))
|
|
||||||
else:
|
|
||||||
v=[float(abs(x))/float(2),float(-abs(x)/float(2))]
|
|
||||||
val=v[i-3]
|
|
||||||
lstw.append(' '.join([line.split()[0],'0.','0.',str(val)]))
|
|
||||||
junkfiles=list()
|
|
||||||
with open(molbase+molname,'w') as n:
|
|
||||||
junkfiles.append(n.name)
|
|
||||||
n.write(os.linesep.join(lstw))
|
|
||||||
#Copy basis
|
|
||||||
basisfile=basisbase+'.'.join([mol,basis])
|
|
||||||
newbasisfile=basisbase+'.'.join([molname,basis])
|
|
||||||
copy2(basisfile,newbasisfile)
|
|
||||||
junkfiles.append(newbasisfile)
|
|
||||||
#start child process Goduck
|
|
||||||
cmd=" ".join(["./GoDuck",molname, basis])
|
|
||||||
Duck=Popen(shlex.split(cmd),stdout=PIPE)
|
|
||||||
(DuckOut, DuckErr) = Duck.communicate()
|
|
||||||
excode=Duck.wait()
|
|
||||||
for junk in junkfiles:
|
|
||||||
os.remove(junk)
|
|
||||||
os.chdir(currdir)
|
|
||||||
return (excode,DuckOut,DuckErr)
|
|
||||||
|
|
||||||
def addvalue(dic,key,x,y):
|
|
||||||
if key not in dic:
|
|
||||||
dic[key]=list()
|
|
||||||
dic[key].append(y)
|
|
||||||
print(key)
|
|
||||||
print(x,y)
|
|
||||||
|
|
||||||
def main(mol):
|
|
||||||
#get basepath for files
|
|
||||||
molbase='examples/molecule.'
|
|
||||||
basisbase=molbase.replace('molecule','basis')
|
|
||||||
with open('PyOptions.json','r') as jfile:
|
|
||||||
options=json.loads(jfile.read())
|
|
||||||
basis=str(options['Basis'])
|
|
||||||
#Get mehtod to analyse
|
|
||||||
methodsdic=options['Methods']
|
|
||||||
#Get datas to analyse in this method
|
|
||||||
scandic=options['Scan']
|
|
||||||
scan=np.arange(scandic['Start'],scandic['Stop']+scandic['Step'],scandic['Step'])
|
|
||||||
print(scan)
|
|
||||||
mymethods=dict()
|
|
||||||
alllabels=list()
|
|
||||||
for method,methoddatas in methodsdic.iteritems():
|
|
||||||
if methoddatas['Enabled']:
|
|
||||||
mymethods[method]=methoddatas
|
|
||||||
for label,labeldatas in methoddatas['Labels'].iteritems():
|
|
||||||
if type(labeldatas) is dict:
|
|
||||||
enabled=labeldatas['Enabled']
|
|
||||||
else:
|
|
||||||
enabled=labeldatas
|
|
||||||
if enabled and label not in alllabels:
|
|
||||||
alllabels.append(label)
|
|
||||||
graphdic=dict()
|
|
||||||
errorconvstring="Convergence failed"
|
|
||||||
with open(os.path.join(GetDuckDir(),molbase+mol),'r') as b:
|
|
||||||
molbaselines=b.read().splitlines()
|
|
||||||
if isMononucle(molbaselines):
|
|
||||||
print('monoatomic system: variation of the nuclear charge')
|
|
||||||
else:
|
|
||||||
print('polyatomic system: variation is on the distance')
|
|
||||||
for x in scan:
|
|
||||||
(DuckExit,DuckOut,DuckErr)=runDuck(mol,basis,x,molbaselines,molbase,basisbase)
|
|
||||||
#print DuckOut on file or not
|
|
||||||
if "Outputs" in options:
|
|
||||||
outdat=options["Outputs"]
|
|
||||||
if 'DuckOutput' in outdat:
|
|
||||||
outopt=outdat["DuckOutput"]
|
|
||||||
if outopt['Enabled']:
|
|
||||||
if outopt['Multiple']:
|
|
||||||
duckoutf=outfile(outopt,"DuckOutput",x)
|
|
||||||
else:
|
|
||||||
if x==scan[0]:
|
|
||||||
duckoutf=outfile(outdat,"DuckOutput")
|
|
||||||
duckoutf.write('Z' if isMononucle(molbaselines) else 'Distance'+' '+str(x)+os.linesep+os.linesep)
|
|
||||||
duckoutf.write(DuckOut)
|
|
||||||
if outopt['Multiple']:
|
|
||||||
duckoutf.close()
|
|
||||||
print("GoDuk exit code " + str(DuckExit))
|
|
||||||
if DuckExit !=0:
|
|
||||||
#if GoDuck is not happy
|
|
||||||
print(DuckErr)
|
|
||||||
sys.exit(-1)
|
|
||||||
#get all data for the method
|
|
||||||
for method,methoddatas in mymethods.iteritems():
|
|
||||||
isnan=False
|
|
||||||
if '{0}' in method:
|
|
||||||
if "index" in methoddatas:
|
|
||||||
methodheaders=[method.format(str(x)) for x in methoddatas['Index']]
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
print(method)
|
|
||||||
reglist=re.findall('(\d+)'.join([re.escape(s) for s in method.split('{0}')]),DuckOut)
|
|
||||||
print(reglist)
|
|
||||||
final=max([(int(i[0]) if type(i) is tuple else int(i)) for i in reglist])
|
|
||||||
print(final)
|
|
||||||
methodheaders=[method.format(str(final))]
|
|
||||||
except:
|
|
||||||
isnan=True
|
|
||||||
methodheaders=[None]
|
|
||||||
method=method.replace('{0}','')
|
|
||||||
else:
|
|
||||||
methodheaders=list([method])
|
|
||||||
for methodheader in methodheaders:
|
|
||||||
if len(methodheaders)!=1:
|
|
||||||
method=methodheader
|
|
||||||
lbldic=methoddatas['Labels']
|
|
||||||
print(methodheader)
|
|
||||||
if methodheader is None:
|
|
||||||
methodtxt=''
|
|
||||||
else:
|
|
||||||
it=itertools.dropwhile(lambda line: methodheader + ' calculation' not in line , DuckOut.splitlines())
|
|
||||||
it=itertools.takewhile(lambda line: 'Total CPU time for ' not in line, it)
|
|
||||||
methodtxt=os.linesep.join(it)
|
|
||||||
if errorconvstring in methodtxt:
|
|
||||||
print(colored(' '.join([method, errorconvstring, '!!!!!']),'red'))
|
|
||||||
isnan=True
|
|
||||||
if methodtxt=='':
|
|
||||||
print(colored('No data' +os.linesep+ 'RHF scf not converged or method not enabled','red'))
|
|
||||||
isnan=True
|
|
||||||
#find the expected values
|
|
||||||
for label,labeldatas in lbldic.iteritems():
|
|
||||||
if type(labeldatas) is dict:
|
|
||||||
indexed=('Index' in labeldatas)
|
|
||||||
enabled=labeldatas['Enabled']
|
|
||||||
graph=labeldatas['Graph'] if 'Graph' in labeldatas else 1
|
|
||||||
else:
|
|
||||||
enabled=labeldatas
|
|
||||||
graph=1
|
|
||||||
indexed=False
|
|
||||||
if enabled:
|
|
||||||
if graph not in graphdic:
|
|
||||||
graphdic[graph]=OrderedDict()
|
|
||||||
y=graphdic[graph]
|
|
||||||
if not indexed:
|
|
||||||
v=np.nan
|
|
||||||
print(method)
|
|
||||||
print(label)
|
|
||||||
if not isnan:
|
|
||||||
try:
|
|
||||||
m=re.search('\s+'.join([re.escape(w) for w in label.split()]) + "\s+(?:"+re.escape("(eV):")+"\s+)?(?:=\s+)?(-?\d+.?\d*)",methodtxt)
|
|
||||||
v=m.group(1)
|
|
||||||
except:
|
|
||||||
v=np.nan
|
|
||||||
addvalue(y,(method,label),x,v)
|
|
||||||
else:
|
|
||||||
startindex=-1
|
|
||||||
columnindex=-1
|
|
||||||
linedtxt=methodtxt.split(os.linesep)
|
|
||||||
for n,line in enumerate(linedtxt):
|
|
||||||
if all(x in line for x in ['|',' '+label+' ','#']):
|
|
||||||
startindex=n+2
|
|
||||||
columnindex=[s.strip() for s in line.split('|')].index(label)
|
|
||||||
break
|
|
||||||
with open(os.path.join(GetDuckDir(),'input','molecule'),'r') as molfile:
|
|
||||||
molfile.readline()
|
|
||||||
line=molfile.readline()
|
|
||||||
nel=int(line.split()[1])
|
|
||||||
print(nel)
|
|
||||||
HOMO=int(nel/2)
|
|
||||||
HO=HOMO
|
|
||||||
LUMO=HOMO+1
|
|
||||||
BV=LUMO
|
|
||||||
for i in labeldatas['Index']:
|
|
||||||
v=np.nan
|
|
||||||
if type(i) is str or type(i) is unicode:
|
|
||||||
ival=eval(i)
|
|
||||||
if type(ival) is not int:
|
|
||||||
print('Index '+ str(i) + 'must be integer')
|
|
||||||
sys.exit(-2)
|
|
||||||
else:
|
|
||||||
ival=i
|
|
||||||
v=np.nan
|
|
||||||
if not isnan:
|
|
||||||
try:
|
|
||||||
if startindex!=-1 and columnindex!=-1:
|
|
||||||
line=linedtxt[startindex+ival-1]
|
|
||||||
v=float(line.split('|')[columnindex].split()[0])
|
|
||||||
print(method)
|
|
||||||
print(label)
|
|
||||||
print(i)
|
|
||||||
else:
|
|
||||||
v=np.nan
|
|
||||||
except:
|
|
||||||
v=np.nan
|
|
||||||
key=(method,label,i)
|
|
||||||
addvalue(y,key,x,v)
|
|
||||||
tpl=(x,scan.tolist().index(x)+1,len(y[key]))
|
|
||||||
print(tpl)
|
|
||||||
if tpl[1]-tpl[2]:
|
|
||||||
sys.exit()
|
|
||||||
#define graph grid
|
|
||||||
maxgraph=max(graphdic.keys())
|
|
||||||
maxrow=int(round(sqrt(maxgraph)))
|
|
||||||
maxcol=int(ceil(float(maxgraph)/float(maxrow)))
|
|
||||||
#define label ls
|
|
||||||
for graph,y in graphdic.iteritems():
|
|
||||||
datas=list()
|
|
||||||
datas.append(["#x"]+scan.tolist())
|
|
||||||
if len(y.keys())!=0:
|
|
||||||
plt.subplot(maxrow,maxcol,graph)
|
|
||||||
plt.xlabel('Z' if isMononucle(molbaselines) else 'Distance '+mol)
|
|
||||||
ylbls=list([basis])
|
|
||||||
for i in range(0,2):
|
|
||||||
lst=list(set([key[i] for key in y.keys()]))
|
|
||||||
if len(lst)==1:
|
|
||||||
ylbls.append(lst[0])
|
|
||||||
plt.ylabel(' '.join(ylbls))
|
|
||||||
print('Legend')
|
|
||||||
print(list(y.keys()))
|
|
||||||
for key,values in y.iteritems():
|
|
||||||
legend=list()
|
|
||||||
for el in key[0:2]:
|
|
||||||
if el not in ylbls:
|
|
||||||
legend.append(el)
|
|
||||||
if len(key)>2:
|
|
||||||
legend.append(str(key[2]))
|
|
||||||
#plot curves
|
|
||||||
lbl=' '.join(legend)
|
|
||||||
plt.plot(scan,y[key],'-o',label=lbl)
|
|
||||||
#print("min",x[y.index(min(y))]/2)
|
|
||||||
#generate legends
|
|
||||||
plt.legend()
|
|
||||||
dataout=False
|
|
||||||
if "Outputs" in options:
|
|
||||||
outputs=options['Outputs']
|
|
||||||
if "DataOutput" in outputs:
|
|
||||||
DataOutput=outputs['DataOutput']
|
|
||||||
dataout=DataOutput['Enabled']
|
|
||||||
if dataout:
|
|
||||||
fmtlegendf='{0}({1})'
|
|
||||||
datas.append([fmtlegendf.format("y",lbl)]+y[key])
|
|
||||||
if dataout:
|
|
||||||
csvdatas=zip(*datas)
|
|
||||||
with outfile(outputs,"DataOutput",graph) as csvf:
|
|
||||||
writer = csv.writer(csvf, delimiter=' ')
|
|
||||||
writer.writerow(['#']+ylbls)
|
|
||||||
writer.writerows(csvdatas)
|
|
||||||
#show graph
|
|
||||||
if "Outputs" in options:
|
|
||||||
outputs=options['Outputs']
|
|
||||||
if "FigureOutput" in outputs:
|
|
||||||
figout=outputs["FigureOutput"]
|
|
||||||
if figout["Enabled"]:
|
|
||||||
plt.savefig(figout['Path'])
|
|
||||||
plt.show()
|
|
||||||
if __name__ == '__main__':
|
|
||||||
parser=argparse.ArgumentParser()
|
|
||||||
parser.add_argument("mol",nargs='?', help="molecule to compute",type=str)
|
|
||||||
parser.add_argument("-c,--copy", help="Copy sample option file",action="store_true",dest="copy")
|
|
||||||
args = parser.parse_args()
|
|
||||||
if len(sys.argv)==1:
|
|
||||||
parser.print_help()
|
|
||||||
else:
|
|
||||||
if args.copy:
|
|
||||||
copy2(os.path.join(GetDuckDir(),"PyOptions.template.json"),"PyOptions.json")
|
|
||||||
if args.mol is not None:
|
|
||||||
os.system("vim PyOptions.json")
|
|
||||||
if args.mol is not None:
|
|
||||||
main(args.mol)
|
|
@ -1,145 +0,0 @@
|
|||||||
{
|
|
||||||
"Scan": {
|
|
||||||
"Start":1.8,
|
|
||||||
"Stop":1.9,
|
|
||||||
"Step":0.1
|
|
||||||
},
|
|
||||||
"Basis":"VDZ",
|
|
||||||
"Outputs": {
|
|
||||||
"DataOutput": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Format":"Duck{0}.dat"
|
|
||||||
},
|
|
||||||
"DuckOutput": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Multiple":false,
|
|
||||||
"Format":"DuckOut.out"
|
|
||||||
},
|
|
||||||
"FigureOutput":{
|
|
||||||
"Enabled":false,
|
|
||||||
"Path":"Figure.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Methods": {
|
|
||||||
"RHF":{
|
|
||||||
"Enabled": true,
|
|
||||||
"Labels": {
|
|
||||||
"One-electron energy":false,
|
|
||||||
"Kinetic energy":false,
|
|
||||||
"Potential energy":false,
|
|
||||||
"Two-electron energy":false,
|
|
||||||
"Coulomb energy":false,
|
|
||||||
"Exchange energy":false,
|
|
||||||
"Electronic energy":false,
|
|
||||||
"Nuclear repulsion":false,
|
|
||||||
"Hartree-Fock energy":true,
|
|
||||||
"HF HOMO energy":false,
|
|
||||||
"HF LUMO energy":false,
|
|
||||||
"HF HOMO-LUMO gap":false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"One-shot G0W0": {
|
|
||||||
"Enabled": true,
|
|
||||||
"Labels": {
|
|
||||||
"G0W0 HOMO energy":true,
|
|
||||||
"G0W0 LUMO energy":true,
|
|
||||||
"G0W0 HOMO-LUMO gap":false,
|
|
||||||
"G0W0 total energy":false,
|
|
||||||
"RPA correlation energy" :false,
|
|
||||||
"Z": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":1
|
|
||||||
},
|
|
||||||
"Sigma_c (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":2
|
|
||||||
},
|
|
||||||
"e_QP (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":3
|
|
||||||
},
|
|
||||||
"e_HF (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Self-consistent evG{0}W{0}": {
|
|
||||||
"Enabled":false,
|
|
||||||
"Labels": {
|
|
||||||
"evGW HOMO energy":false,
|
|
||||||
"evGW LUMO energy":false,
|
|
||||||
"evGW HOMO-LUMO gap":false,
|
|
||||||
"evGW total energy":false,
|
|
||||||
"RPA correlation energy" :false,
|
|
||||||
"Z": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":1
|
|
||||||
},
|
|
||||||
"Sigma_c (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":2
|
|
||||||
},
|
|
||||||
"e_QP (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":3
|
|
||||||
},
|
|
||||||
"e_HF (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Self-consistent qsG{0}W{0}": {
|
|
||||||
"Enabled": false,
|
|
||||||
"Labels": {
|
|
||||||
"qsGW HOMO energy":false,
|
|
||||||
"qsGW LUMO energy":false,
|
|
||||||
"qsGW HOMO-LUMO gap":false,
|
|
||||||
"qsGW total energy":false,
|
|
||||||
"qsGW exchange energy":false,
|
|
||||||
"qsGW correlation energy":false,
|
|
||||||
"RPA correlation energy":{
|
|
||||||
"Enabled":false,
|
|
||||||
"Graph":2
|
|
||||||
},
|
|
||||||
"Z": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":4
|
|
||||||
},
|
|
||||||
"e_QP-e_HF (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":5
|
|
||||||
},
|
|
||||||
"e_QP (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":6
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"MP2": {
|
|
||||||
"Enabled": false,
|
|
||||||
"Labels": {
|
|
||||||
"MP2 correlation energy": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Graph":4
|
|
||||||
},
|
|
||||||
"Direct part":false,
|
|
||||||
"Exchange part":false,
|
|
||||||
"MP2 total energy":true,
|
|
||||||
"MP2 energy":false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,145 +0,0 @@
|
|||||||
{
|
|
||||||
"Scan": {
|
|
||||||
"Start":1.8,
|
|
||||||
"Stop":1.9,
|
|
||||||
"Step":0.1
|
|
||||||
},
|
|
||||||
"Basis":"VDZ",
|
|
||||||
"Outputs": {
|
|
||||||
"DataOutput": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Format":"Duck{0}.dat"
|
|
||||||
},
|
|
||||||
"DuckOutput": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Multiple":false,
|
|
||||||
"Format":"DuckOut.out"
|
|
||||||
},
|
|
||||||
"FigureOutput":{
|
|
||||||
"Enabled":false,
|
|
||||||
"Path":"Figure.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Methods": {
|
|
||||||
"RHF":{
|
|
||||||
"Enabled": true,
|
|
||||||
"Labels": {
|
|
||||||
"One-electron energy":false,
|
|
||||||
"Kinetic energy":false,
|
|
||||||
"Potential energy":false,
|
|
||||||
"Two-electron energy":false,
|
|
||||||
"Coulomb energy":false,
|
|
||||||
"Exchange energy":false,
|
|
||||||
"Electronic energy":false,
|
|
||||||
"Nuclear repulsion":false,
|
|
||||||
"Hartree-Fock energy":true,
|
|
||||||
"HF HOMO energy":false,
|
|
||||||
"HF LUMO energy":false,
|
|
||||||
"HF HOMO-LUMO gap":false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"One-shot G0W0": {
|
|
||||||
"Enabled": true,
|
|
||||||
"Labels": {
|
|
||||||
"G0W0 HOMO energy":true,
|
|
||||||
"G0W0 LUMO energy":true,
|
|
||||||
"G0W0 HOMO-LUMO gap":false,
|
|
||||||
"G0W0 total energy":false,
|
|
||||||
"RPA correlation energy" :false,
|
|
||||||
"Z": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":1
|
|
||||||
},
|
|
||||||
"Sigma_c (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":2
|
|
||||||
},
|
|
||||||
"e_QP (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":3
|
|
||||||
},
|
|
||||||
"e_HF (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Self-consistent evG{0}W{0}": {
|
|
||||||
"Enabled":false,
|
|
||||||
"Labels": {
|
|
||||||
"evGW HOMO energy":false,
|
|
||||||
"evGW LUMO energy":false,
|
|
||||||
"evGW HOMO-LUMO gap":false,
|
|
||||||
"evGW total energy":false,
|
|
||||||
"RPA correlation energy" :false,
|
|
||||||
"Z": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":1
|
|
||||||
},
|
|
||||||
"Sigma_c (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":2
|
|
||||||
},
|
|
||||||
"e_QP (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":3
|
|
||||||
},
|
|
||||||
"e_HF (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Self-consistent qsG{0}W{0}": {
|
|
||||||
"Enabled": false,
|
|
||||||
"Labels": {
|
|
||||||
"qsGW HOMO energy":false,
|
|
||||||
"qsGW LUMO energy":false,
|
|
||||||
"qsGW HOMO-LUMO gap":false,
|
|
||||||
"qsGW total energy":false,
|
|
||||||
"qsGW exchange energy":false,
|
|
||||||
"qsGW correlation energy":false,
|
|
||||||
"RPA correlation energy":{
|
|
||||||
"Enabled":false,
|
|
||||||
"Graph":2
|
|
||||||
},
|
|
||||||
"Z": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":4
|
|
||||||
},
|
|
||||||
"e_QP-e_HF (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":5
|
|
||||||
},
|
|
||||||
"e_QP (eV)" : {
|
|
||||||
"Enabled":true,
|
|
||||||
"Index":["HOMO","LUMO","LUMO+1","LUMO+2"],
|
|
||||||
"Graph":6
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"MP2": {
|
|
||||||
"Enabled": false,
|
|
||||||
"Labels": {
|
|
||||||
"MP2 correlation energy": {
|
|
||||||
"Enabled":true,
|
|
||||||
"Graph":4
|
|
||||||
},
|
|
||||||
"Direct part":false,
|
|
||||||
"Exchange part":false,
|
|
||||||
"MP2 total energy":true,
|
|
||||||
"MP2 energy":false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,229 +0,0 @@
|
|||||||
#! /bin/bash
|
|
||||||
|
|
||||||
INPUT=$1
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '******************************************'
|
|
||||||
echo '*** Extracting information of' $INPUT ' ***'
|
|
||||||
echo '******************************************'
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** WFT information ***'
|
|
||||||
echo
|
|
||||||
grep "Hartree-Fock energy" $INPUT
|
|
||||||
EHF=`grep "Hartree-Fock energy" $INPUT | cut -f2 -d"="`
|
|
||||||
grep "MP2 correlation energy" $INPUT
|
|
||||||
EcMP2=`grep "MP2 correlation energy" $INPUT | cut -f2 -d"="`
|
|
||||||
grep "Ec(MP2) =" $INPUT
|
|
||||||
grep "Ec(CCD) =" $INPUT
|
|
||||||
grep "Ec(CCSD) =" $INPUT
|
|
||||||
grep "Ec(CCSD(T)) =" $INPUT
|
|
||||||
|
|
||||||
# echo
|
|
||||||
# echo '*** Gap information: HF, G0F2, GF2, G0W0 & evGW ***'
|
|
||||||
# HF=`grep "HF HOMO-LUMO gap (eV):" $INPUT | cut -f2 -d":"`
|
|
||||||
# G0F2=`grep "GF2 HOMO-LUMO gap (eV):" $INPUT | head -1 | cut -f2 -d":"`
|
|
||||||
# GF2=`grep "GF2 HOMO-LUMO gap (eV):" $INPUT | tail -1 | cut -f2 -d":"`
|
|
||||||
# G0W0=`grep "G0W0 HOMO-LUMO gap (eV):" $INPUT | cut -f2 -d":"`
|
|
||||||
# evGW=`grep "evGW HOMO-LUMO gap (eV):" $INPUT | tail -1 | cut -f2 -d":"`
|
|
||||||
|
|
||||||
# echo -e "\t" $HF "\t" $G0F2 "\t" $GF2 "\t" $G0W0 "\t" $evGW
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** RPA information: Tr@RPA (singlet), Tr@RPA (triplet), AC@RPA (singlet), AC@RPA (triplet) ***'
|
|
||||||
echo
|
|
||||||
Tr_RPA_1=`grep "Tr@RPA correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_RPA_3=`grep "Tr@RPA correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_RPA_1=`grep "AC@RPA correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_RPA_3=`grep "AC@RPA correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
|
|
||||||
echo -e "\t" $Tr_RPA_1 "\t" $Tr_RPA_3 "\t" $AC_RPA_1 "\t" $AC_RPA_3
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** RPAx information: Tr@RPAx (singlet), Tr@RPAx (triplet), AC@RPAx (singlet), AC@RPAx (triplet) ***'
|
|
||||||
echo
|
|
||||||
Tr_RPAx_1=`grep "Tr@RPAx correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_RPAx_3=`grep "Tr@RPAx correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_RPAx_1=`grep "AC@RPAx correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_RPAx_3=`grep "AC@RPAx correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
|
|
||||||
echo -e "\t" $Tr_RPAx_1 "\t" $Tr_RPAx_3 "\t" $AC_RPAx_1 "\t" $AC_RPAx_3
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** G0W0 information: Tr@RPA (singlet), Tr@RPA (triplet), Tr@BSE (singlet), Tr@BSE (triplet), AC@BSE (singlet), AC@BSE (triplet) ***'
|
|
||||||
echo
|
|
||||||
Tr_RPA_G0W0_1=`grep "Tr@RPA@G0W0 correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_RPA_G0W0_3=`grep "Tr@RPA@G0W0 correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_BSE_G0W0_1=`grep "Tr@BSE@G0W0 correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_BSE_G0W0_3=`grep "Tr@BSE@G0W0 correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_BSE_G0W0_1=`grep "AC@BSE@G0W0 correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_BSE_G0W0_3=`grep "AC@BSE@G0W0 correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
|
|
||||||
echo -e "\t" $Tr_RPA_G0W0_1 "\t" $Tr_RPA_G0W0_3 "\t" $Tr_BSE_G0W0_1 "\t" $Tr_BSE_G0W0_3 "\t" $AC_BSE_G0W0_1 "\t" $AC_BSE_G0W0_3
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** evGW information: Tr@RPA (singlet), Tr@RPA (triplet), Tr@BSE (singlet), Tr@BSE (triplet), AC@BSE (singlet), AC@BSE (triplet) ***'
|
|
||||||
echo
|
|
||||||
Tr_RPA_evGW_1=`grep "Tr@RPA@evGW correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_RPA_evGW_3=`grep "Tr@RPA@evGW correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_BSE_evGW_1=`grep "Tr@BSE@evGW correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_BSE_evGW_3=`grep "Tr@BSE@evGW correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_BSE_evGW_1=`grep "AC@BSE@evGW correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_BSE_evGW_3=`grep "AC@BSE@evGW correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
|
|
||||||
echo -e "\t" $Tr_RPA_evGW_1 "\t" $Tr_RPA_evGW_3 "\t" $Tr_BSE_evGW_1 "\t" $Tr_BSE_evGW_3 "\t" $AC_BSE_evGW_1 "\t" $AC_BSE_evGW_3
|
|
||||||
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** qsGW information: Tr@RPA (singlet), Tr@RPA (triplet), Tr@BSE (singlet), Tr@BSE (triplet), AC@BSE (singlet), AC@BSE (triplet) ***'
|
|
||||||
echo
|
|
||||||
Tr_RPA_qsGW_1=`grep "Tr@RPA@qsGW correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_RPA_qsGW_3=`grep "Tr@RPA@qsGW correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_BSE_qsGW_1=`grep "Tr@BSE@qsGW correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
Tr_BSE_qsGW_3=`grep "Tr@BSE@qsGW correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_BSE_qsGW_1=`grep "AC@BSE@qsGW correlation energy (singlet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
AC_BSE_qsGW_3=`grep "AC@BSE@qsGW correlation energy (triplet) =" $INPUT| cut -f2 -d"="`
|
|
||||||
|
|
||||||
echo -e "\t" $Tr_RPA_qsGW_1 "\t" $Tr_RPA_qsGW_3 "\t" $Tr_BSE_qsGW_1 "\t" $Tr_BSE_qsGW_3 "\t" $AC_BSE_qsGW_1 "\t" $AC_BSE_qsGW_3
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** CIS excitation energy (singlet & triplet) ***'
|
|
||||||
echo
|
|
||||||
|
|
||||||
CIS_1_1=`grep "| 1 |" $INPUT | head -1 | cut -f3 -d"|"`
|
|
||||||
CIS_1_2=`grep "| 2 |" $INPUT | head -1 | cut -f3 -d"|"`
|
|
||||||
CIS_1_3=`grep "| 3 |" $INPUT | head -1 | cut -f3 -d"|"`
|
|
||||||
CIS_1_4=`grep "| 4 |" $INPUT | head -1 | cut -f3 -d"|"`
|
|
||||||
CIS_1_5=`grep "| 5 |" $INPUT | head -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
CIS_3_1=`grep "| 1 |" $INPUT | head -2 | tail -1 | cut -f3 -d"|"`
|
|
||||||
CIS_3_2=`grep "| 2 |" $INPUT | head -2 | tail -1 | cut -f3 -d"|"`
|
|
||||||
CIS_3_3=`grep "| 3 |" $INPUT | head -2 | tail -1 | cut -f3 -d"|"`
|
|
||||||
CIS_3_4=`grep "| 4 |" $INPUT | head -2 | tail -1 | cut -f3 -d"|"`
|
|
||||||
CIS_3_5=`grep "| 5 |" $INPUT | head -2 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
echo -e "\t" $CIS_1_1 "\t" $CIS_3_1
|
|
||||||
echo -e "\t" $CIS_1_2 "\t" $CIS_3_2
|
|
||||||
echo -e "\t" $CIS_1_3 "\t" $CIS_3_3
|
|
||||||
echo -e "\t" $CIS_1_4 "\t" $CIS_3_4
|
|
||||||
echo -e "\t" $CIS_1_5 "\t" $CIS_3_5
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** RPA excitation energy (singlet & triplet) ***'
|
|
||||||
echo
|
|
||||||
|
|
||||||
RPA_1_1=`grep "| 1 |" $INPUT | head -3 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPA_1_2=`grep "| 2 |" $INPUT | head -3 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPA_1_3=`grep "| 3 |" $INPUT | head -3 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPA_1_4=`grep "| 4 |" $INPUT | head -3 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPA_1_5=`grep "| 5 |" $INPUT | head -3 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
RPA_3_1=`grep "| 1 |" $INPUT | head -4 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPA_3_2=`grep "| 2 |" $INPUT | head -4 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPA_3_3=`grep "| 3 |" $INPUT | head -4 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPA_3_4=`grep "| 4 |" $INPUT | head -4 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPA_3_5=`grep "| 5 |" $INPUT | head -4 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
echo -e "\t" $RPA_1_1 "\t" $RPA_3_1
|
|
||||||
echo -e "\t" $RPA_1_2 "\t" $RPA_3_2
|
|
||||||
echo -e "\t" $RPA_1_3 "\t" $RPA_3_3
|
|
||||||
echo -e "\t" $RPA_1_4 "\t" $RPA_3_4
|
|
||||||
echo -e "\t" $RPA_1_5 "\t" $RPA_3_5
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** RPAx excitation energy (singlet & triplet) ***'
|
|
||||||
echo
|
|
||||||
|
|
||||||
RPAx_1_1=`grep "| 1 |" $INPUT | head -5 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPAx_1_2=`grep "| 2 |" $INPUT | head -5 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPAx_1_3=`grep "| 3 |" $INPUT | head -5 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPAx_1_4=`grep "| 4 |" $INPUT | head -5 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPAx_1_5=`grep "| 5 |" $INPUT | head -5 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
RPAx_3_1=`grep "| 1 |" $INPUT | head -6 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPAx_3_2=`grep "| 2 |" $INPUT | head -6 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPAx_3_3=`grep "| 3 |" $INPUT | head -6 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPAx_3_4=`grep "| 4 |" $INPUT | head -6 | tail -1 | cut -f3 -d"|"`
|
|
||||||
RPAx_3_5=`grep "| 5 |" $INPUT | head -6 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
echo -e "\t" $RPAx_1_1 "\t" $RPAx_3_1
|
|
||||||
echo -e "\t" $RPAx_1_2 "\t" $RPAx_3_2
|
|
||||||
echo -e "\t" $RPAx_1_3 "\t" $RPAx_3_3
|
|
||||||
echo -e "\t" $RPAx_1_4 "\t" $RPAx_3_4
|
|
||||||
echo -e "\t" $RPAx_1_5 "\t" $RPAx_3_5
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** BSE@G0W0 excitation energy (singlet & triplet) ***'
|
|
||||||
echo
|
|
||||||
|
|
||||||
G0W0_1_1=`grep "| 1 |" $INPUT | head -7 | tail -1 | cut -f3 -d"|"`
|
|
||||||
G0W0_1_2=`grep "| 2 |" $INPUT | head -7 | tail -1 | cut -f3 -d"|"`
|
|
||||||
G0W0_1_3=`grep "| 3 |" $INPUT | head -7 | tail -1 | cut -f3 -d"|"`
|
|
||||||
G0W0_1_4=`grep "| 4 |" $INPUT | head -7 | tail -1 | cut -f3 -d"|"`
|
|
||||||
G0W0_1_5=`grep "| 5 |" $INPUT | head -7 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
G0W0_3_1=`grep "| 1 |" $INPUT | head -8 | tail -1 | cut -f3 -d"|"`
|
|
||||||
G0W0_3_2=`grep "| 2 |" $INPUT | head -8 | tail -1 | cut -f3 -d"|"`
|
|
||||||
G0W0_3_3=`grep "| 3 |" $INPUT | head -8 | tail -1 | cut -f3 -d"|"`
|
|
||||||
G0W0_3_4=`grep "| 4 |" $INPUT | head -8 | tail -1 | cut -f3 -d"|"`
|
|
||||||
G0W0_3_5=`grep "| 5 |" $INPUT | head -8 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
echo -e "\t" $G0W0_1_1 "\t" $G0W0_3_1
|
|
||||||
echo -e "\t" $G0W0_1_2 "\t" $G0W0_3_2
|
|
||||||
echo -e "\t" $G0W0_1_3 "\t" $G0W0_3_3
|
|
||||||
echo -e "\t" $G0W0_1_4 "\t" $G0W0_3_4
|
|
||||||
echo -e "\t" $G0W0_1_5 "\t" $G0W0_3_5
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** BSE@evGW excitation energy (singlet & triplet) ***'
|
|
||||||
echo
|
|
||||||
|
|
||||||
evGW_1_1=`grep "| 1 |" $INPUT | head -9 | tail -1 | cut -f3 -d"|"`
|
|
||||||
evGW_1_2=`grep "| 2 |" $INPUT | head -9 | tail -1 | cut -f3 -d"|"`
|
|
||||||
evGW_1_3=`grep "| 3 |" $INPUT | head -9 | tail -1 | cut -f3 -d"|"`
|
|
||||||
evGW_1_4=`grep "| 4 |" $INPUT | head -9 | tail -1 | cut -f3 -d"|"`
|
|
||||||
evGW_1_5=`grep "| 5 |" $INPUT | head -9 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
evGW_3_1=`grep "| 1 |" $INPUT | head -10 | tail -1 | cut -f3 -d"|"`
|
|
||||||
evGW_3_2=`grep "| 2 |" $INPUT | head -10 | tail -1 | cut -f3 -d"|"`
|
|
||||||
evGW_3_3=`grep "| 3 |" $INPUT | head -10 | tail -1 | cut -f3 -d"|"`
|
|
||||||
evGW_3_4=`grep "| 4 |" $INPUT | head -10 | tail -1 | cut -f3 -d"|"`
|
|
||||||
evGW_3_5=`grep "| 5 |" $INPUT | head -10 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
echo -e "\t" $evGW_1_1 "\t" $evGW_3_1
|
|
||||||
echo -e "\t" $evGW_1_2 "\t" $evGW_3_2
|
|
||||||
echo -e "\t" $evGW_1_3 "\t" $evGW_3_3
|
|
||||||
echo -e "\t" $evGW_1_4 "\t" $evGW_3_4
|
|
||||||
echo -e "\t" $evGW_1_5 "\t" $evGW_3_5
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** BSE@qsGW excitation energy (singlet & triplet) ***'
|
|
||||||
echo
|
|
||||||
|
|
||||||
qsGW_1_1=`grep "| 1 |" $INPUT | head -11 | tail -1 | cut -f3 -d"|"`
|
|
||||||
qsGW_1_2=`grep "| 2 |" $INPUT | head -11 | tail -1 | cut -f3 -d"|"`
|
|
||||||
qsGW_1_3=`grep "| 3 |" $INPUT | head -11 | tail -1 | cut -f3 -d"|"`
|
|
||||||
qsGW_1_4=`grep "| 4 |" $INPUT | head -11 | tail -1 | cut -f3 -d"|"`
|
|
||||||
qsGW_1_5=`grep "| 5 |" $INPUT | head -11 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
qsGW_3_1=`grep "| 1 |" $INPUT | head -12 | tail -1 | cut -f3 -d"|"`
|
|
||||||
qsGW_3_2=`grep "| 2 |" $INPUT | head -12 | tail -1 | cut -f3 -d"|"`
|
|
||||||
qsGW_3_3=`grep "| 3 |" $INPUT | head -12 | tail -1 | cut -f3 -d"|"`
|
|
||||||
qsGW_3_4=`grep "| 4 |" $INPUT | head -12 | tail -1 | cut -f3 -d"|"`
|
|
||||||
qsGW_3_5=`grep "| 5 |" $INPUT | head -12 | tail -1 | cut -f3 -d"|"`
|
|
||||||
|
|
||||||
echo -e "\t" $qsGW_1_1 "\t" $qsGW_3_1
|
|
||||||
echo -e "\t" $qsGW_1_2 "\t" $qsGW_3_2
|
|
||||||
echo -e "\t" $qsGW_1_3 "\t" $qsGW_3_3
|
|
||||||
echo -e "\t" $qsGW_1_4 "\t" $qsGW_3_4
|
|
||||||
echo -e "\t" $qsGW_1_5 "\t" $qsGW_3_5
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo '*** MATHEMATICA OUTPUT ***'
|
|
||||||
echo
|
|
||||||
echo -e "\t" $EHF "\t" $EcMP2 "\t" $Tr_RPA_1 "\t" $Tr_RPA_3 "\t" $AC_RPA_1 "\t" $AC_RPA_3 "\t" $Tr_RPAx_1 "\t" $Tr_RPAx_3 "\t" $AC_RPAx_1 "\t" $AC_RPAx_3 "\t" $Tr_RPA_G0W0_1 "\t" $Tr_RPA_G0W0_3 "\t" $Tr_BSE_G0W0_1 "\t" $Tr_BSE_G0W0_3 "\t" $AC_BSE_G0W0_1 "\t" $AC_BSE_G0W0_3 "\t" $CIS_1_1 "\t" $CIS_1_2 "\t" $CIS_1_3 "\t" $CIS_1_4 "\t" $CIS_1_5 "\t" $CIS_3_1 "\t" $CIS_3_2 "\t" $CIS_3_3 "\t" $CIS_3_4 "\t" $CIS_3_5 "\t" $RPA_1_1 "\t" $RPA_1_2 "\t" $RPA_1_3 "\t" $RPA_1_4 "\t" $RPA_1_5 "\t" $RPA_3_1 "\t" $RPA_3_2 "\t" $RPA_3_3 "\t" $RPA_3_4 "\t" $RPA_3_5 "\t" $RPAx_1_1 "\t" $RPAx_1_2 "\t" $RPAx_1_3 "\t" $RPAx_1_4 "\t" $RPAx_1_5 "\t" $RPAx_3_1 "\t" $RPAx_3_2 "\t" $RPAx_3_3 "\t" $RPAx_3_4 "\t" $RPAx_3_5 "\t" $G0W0_1_1 "\t" $G0W0_1_2 "\t" $G0W0_1_3 "\t" $G0W0_1_4 "\t" $G0W0_1_5 "\t" $G0W0_3_1 "\t" $G0W0_3_2 "\t" $G0W0_3_3 "\t" $G0W0_3_4 "\t" $G0W0_3_5 "\t" $Tr_RPA_evGW_1 "\t" $Tr_RPA_evGW_3 "\t" $Tr_BSE_evGW_1 "\t" $Tr_BSE_evGW_3 "\t" $AC_BSE_evGW_1 "\t" $AC_BSE_evGW_3 "\t" $evGW_1_1 "\t" $evGW_1_2 "\t" $evGW_1_3 "\t" $evGW_1_4 "\t" $evGW_1_5 "\t" $evGW_3_1 "\t" $evGW_3_2 "\t" $evGW_3_3 "\t" $evGW_3_4 "\t" $evGW_3_5 "\t" $Tr_RPA_qsGW_1 "\t" $Tr_RPA_qsGW_3 "\t" $Tr_BSE_qsGW_1 "\t" $Tr_BSE_qsGW_3 "\t" $AC_BSE_qsGW_1 "\t" $AC_BSE_qsGW_3 "\t" $qsGW_1_1 "\t" $qsGW_1_2 "\t" $qsGW_1_3 "\t" $qsGW_1_4 "\t" $qsGW_1_5 "\t" $qsGW_3_1 "\t" $qsGW_3_2 "\t" $qsGW_3_3 "\t" $qsGW_3_4 "\t" $qsGW_3_5
|
|
||||||
echo
|
|
||||||
echo '*** DONE ***'
|
|
||||||
echo
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
#! /bin/bash
|
|
||||||
|
|
||||||
Lmin=1
|
|
||||||
Lmax=1
|
|
||||||
Mmax=10
|
|
||||||
rs=$1
|
|
||||||
|
|
||||||
if [ $# != 1 ]
|
|
||||||
then
|
|
||||||
echo "Please, specify rs value"
|
|
||||||
else
|
|
||||||
|
|
||||||
echo "------------------------"
|
|
||||||
echo "Maxmium L value = " $Lmax
|
|
||||||
echo "Maxmium M value = " $Mmax
|
|
||||||
echo "------------------------"
|
|
||||||
echo
|
|
||||||
|
|
||||||
for (( L=$Lmin ; L<=$Lmax ; L++ )) ; do
|
|
||||||
|
|
||||||
ne=$(bc -l <<< "(2*($L+1)*($L+1))")
|
|
||||||
echo
|
|
||||||
echo "------------------------"
|
|
||||||
echo "Number of electrons = " $ne
|
|
||||||
echo "------------------------"
|
|
||||||
echo
|
|
||||||
|
|
||||||
for (( M=$L+1 ; M<=$Mmax ; M++ )) ; do
|
|
||||||
|
|
||||||
nb=$(bc -l <<< "(($M+1)*($M+1))")
|
|
||||||
echo "Number of basis functions = " $nb
|
|
||||||
echo -e "# rs \n" $rs > input/sph
|
|
||||||
./GoSph $ne $M > out/Sph_${ne}_${nb}.out
|
|
||||||
grep "Total CPU time for QuAcK =" out/Sph_${ne}_${nb}.out
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
@ -1,119 +0,0 @@
|
|||||||
#! /bin/bash
|
|
||||||
|
|
||||||
MOL=$1
|
|
||||||
BASIS=$2
|
|
||||||
|
|
||||||
w_start=0.00
|
|
||||||
w_end=1.05
|
|
||||||
dw=0.05
|
|
||||||
|
|
||||||
w1=0.00
|
|
||||||
|
|
||||||
XF=$3
|
|
||||||
CF=$4
|
|
||||||
|
|
||||||
# for H
|
|
||||||
#aw1="1.49852 7.79815 25.1445"
|
|
||||||
#aw2="0.424545 -0.0382349 -0.32472"
|
|
||||||
|
|
||||||
|
|
||||||
# for He
|
|
||||||
#aw1="0.429447 0.053506 -0.339391"
|
|
||||||
#aw2="0.254939 -0.0893396 0.00765453"
|
|
||||||
|
|
||||||
# for H2
|
|
||||||
aw1="0.445525 0.0901503 -0.286898"
|
|
||||||
aw2="0.191734 -0.0364788 -0.017035"
|
|
||||||
|
|
||||||
# for Li
|
|
||||||
#aw1="0.055105 -0.00943825 -0.0267771"
|
|
||||||
#aw2="0.0359827 0.0096623 -0.0173542"
|
|
||||||
|
|
||||||
# for Li+
|
|
||||||
#aw1="0.503566, 0.137076, -0.348529"
|
|
||||||
#aw2="0.0553828, 0.00830375, -0.0234602"
|
|
||||||
|
|
||||||
|
|
||||||
# for B
|
|
||||||
#aw1="0.052676 -0.00624118 -0.000368825"
|
|
||||||
#aw2="0.0385558 -0.0015764 -0.000894297"
|
|
||||||
|
|
||||||
# for O
|
|
||||||
#aw1="-0.0187067 -0.0141017 -0.0100849"
|
|
||||||
#aw2="0.00544868 -0.0000118236 -0.000163245"
|
|
||||||
|
|
||||||
# for Al
|
|
||||||
#aw1="-0.00201219 -0.00371002 -0.00212719"
|
|
||||||
#aw2="-0.00117715 0.00188738 -0.000414761"
|
|
||||||
|
|
||||||
# for Be
|
|
||||||
#aw1="0.0663282, -0.0117682, -0.0335909"
|
|
||||||
#aw2="0.0479262, 0.00966351, -0.0208712"
|
|
||||||
|
|
||||||
|
|
||||||
DATA=${MOL}_${BASIS}_${XF}_${CF}_${w2}.dat
|
|
||||||
rm $DATA
|
|
||||||
touch $DATA
|
|
||||||
|
|
||||||
for w2 in $(seq $w_start $dw $w_end)
|
|
||||||
do
|
|
||||||
## w2=${w1}
|
|
||||||
echo "# Restricted or unrestricted KS calculation" > input/dft
|
|
||||||
echo " eDFT-UKS" >> input/dft
|
|
||||||
echo "# exchange rung:" >> input/dft
|
|
||||||
echo "# Hartree = 0" >> input/dft
|
|
||||||
echo "# LDA = 1: RS51,RMFL20" >> input/dft
|
|
||||||
echo "# GGA = 2: RB88" >> input/dft
|
|
||||||
echo "# Hybrid = 4" >> input/dft
|
|
||||||
echo "# Hartree-Fock = 666" >> input/dft
|
|
||||||
echo " 1 $XF " >> input/dft
|
|
||||||
echo "# correlation rung: " >> input/dft
|
|
||||||
echo "# Hartree = 0" >> input/dft
|
|
||||||
echo "# LDA = 1: RVWN5,RMFL20" >> input/dft
|
|
||||||
echo "# GGA = 2: " >> input/dft
|
|
||||||
echo "# Hybrid = 4: " >> input/dft
|
|
||||||
echo "# Hartree-Fock = 666" >> input/dft
|
|
||||||
echo " 0 $CF " >> input/dft
|
|
||||||
echo "# quadrature grid SG-n" >> input/dft
|
|
||||||
echo " 1" >> input/dft
|
|
||||||
echo "# Number of states in ensemble (nEns)" >> input/dft
|
|
||||||
echo " 3" >> input/dft
|
|
||||||
echo "# occupation numbers of orbitals nO and nO+1" >> input/dft
|
|
||||||
echo " 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " >> input/dft
|
|
||||||
echo " 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " >> input/dft
|
|
||||||
echo " " >> input/dft
|
|
||||||
echo " 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " >> input/dft
|
|
||||||
echo " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " >> input/dft
|
|
||||||
echo " " >> input/dft
|
|
||||||
echo " 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 " >> input/dft
|
|
||||||
echo " 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " >> input/dft
|
|
||||||
echo "# Ensemble weights: wEns(1),...,wEns(nEns-1)" >> input/dft
|
|
||||||
echo " ${w1} ${w2} " >> input/dft
|
|
||||||
echo "# Ncentered ? 0 for NO " >> input/dft
|
|
||||||
echo " 0 " >> input/dft
|
|
||||||
echo "# Parameters for CC weight-dependent exchange functional" >> input/dft
|
|
||||||
echo ${aw1} >> input/dft
|
|
||||||
echo ${aw2} >> input/dft
|
|
||||||
echo "# choice of UCC exchange coefficient : 1 for Cx1, 2 for Cx2, 3 for Cx1*Cx2" >> input/dft
|
|
||||||
echo "2" >> input/dft
|
|
||||||
echo "# GOK-DFT: maxSCF thresh DIIS n_diis guess_type ortho_type" >> input/dft
|
|
||||||
echo " 1000 0.00001 T 5 1 1" >> input/dft
|
|
||||||
OUTPUT=${MOL}_${BASIS}_${XF}_${CF}_${w2}.out
|
|
||||||
./GoXC $MOL $BASIS > ${OUTPUT}
|
|
||||||
Ew=`grep "Ensemble energy:" ${OUTPUT} | cut -d":" -f 2 | sed 's/au//'`
|
|
||||||
E0=`grep "Individual energy state 1:" ${OUTPUT} | cut -d":" -f 2 | sed 's/au//'`
|
|
||||||
E1=`grep "Individual energy state 2:" ${OUTPUT} | cut -d":" -f 2 | sed 's/au//'`
|
|
||||||
E2=`grep "Individual energy state 3:" ${OUTPUT} | cut -d":" -f 2 | sed 's/au//'`
|
|
||||||
IP=`grep "Ionization Potential" ${OUTPUT} | grep " au" | tail -1 | cut -d":" -f 2 | sed 's/au//'`
|
|
||||||
EA=`grep "Electronic Affinity" ${OUTPUT} | grep " au" | tail -1 | cut -d":" -f 2 | sed 's/au//'`
|
|
||||||
FG=`grep "Fundamental Gap" ${OUTPUT} | grep " au" | tail -1 | cut -d":" -f 2 | sed 's/au//'`
|
|
||||||
Ex=`grep "Exchange energy:" ${OUTPUT} | cut -d":" -f 2 | sed 's/au//'`
|
|
||||||
HOMOa=`grep "HOMO a energy:" ${OUTPUT} | cut -d":" -f 2 | sed 's/eV//'`
|
|
||||||
LUMOa=`grep "LUMO a energy:" ${OUTPUT} | cut -d":" -f 2 | sed 's/eV//'`
|
|
||||||
HOMOb=`grep "HOMO a energy:" ${OUTPUT} | cut -d":" -f 2 | sed 's/eV//'`
|
|
||||||
LUMOb=`grep "LUMO b energy:" ${OUTPUT} | cut -d":" -f 2 | sed 's/eV//'`
|
|
||||||
|
|
||||||
echo $w1 $w2 $Ew $E0 $E1 $E2 $IP $EA $FG $Ex $HOMOa $LUMOa $HOMOb $LUMOb
|
|
||||||
echo $w1 $w2 $Ew $E0 $E1 $E2 $IP $EA $FG $Ex $HOMOa $LUMOa $HOMOb $LUMOb >> ${DATA}
|
|
||||||
done
|
|
||||||
|
|
BIN
utils/fsplit
BIN
utils/fsplit
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user