diff --git a/bin/cmmde.py b/bin/cmmde.py index 58e1a43..35850ae 100755 --- a/bin/cmmde.py +++ b/bin/cmmde.py @@ -111,6 +111,17 @@ parser.add_argument('-nlig','--nligands',type=int,help='Jumlah ligan yang akan d parser.add_argument('-solvent','--solvent',type=str,default='none',help='Pelarut yang digunakan dalam perhitungan.') # Input untuk simulasi MD sistem protein parser.add_argument('-protein','--protein',type=str,help='Struktur protein dalam format pdb') +# Input untuk perhitungan NEB +parser.add_argument('-produk','--produk',type=str,help='Struktur produk yang digunakan dalam interpolasi NEB dalam format koordinat Cartesian.') +parser.add_argument('-trans','--transitionstate',type=str,help='Struktur perkiraan keadaan transisi yang digunakan dalam format koordinat Cartesian.') +# Input untuk IRC +parser.add_argument('-irciter','--irciter',type=int,default=20,help='Iterasi maksimum IRC Orca.') +parser.add_argument('-printlevel','--printlevel',type=str,default='1',help='Print level dalam IRC Orca. Default=1') +parser.add_argument('-inithess','--inithess',type=str,default='Read',help='Cara menginisiasi Hessian. Default: Read.') +parser.add_argument('-grid','--grid',type=int,default=2,help='Ukuran grid dalam integrasi Orca.') +parser.add_argument('-finalgrid','--finalgrid',type=int,default=4,help='Ukuran final grid dalam integrasi Orca.') + + # Input untuk perhitungan bergantung waktu parser.add_argument('-nr','--nroots',type=int,default=5,help='Jumlah orbital aktif yang diperhitungkan dalam perhitungan bergantung waktu.') parser.add_argument('-tda','--tda',type=str,default='false',help='Apakah akan digunakan pendekatan Tamm-Dancoff. Default = false.') @@ -184,7 +195,7 @@ obabel geom.smi -O geom.xyz --gen3d""".format(opt.nproc),file=fout) geom = 'geom.xyz' ### ORCA if opt.software == 'orca': - orca(opt.job,opt.method,opt.nproc,geom,opt.charge,opt.mult,opt.scalefreq,opt.temp,opt.pressure,opt.nroots,opt.tda,opt.solvent,opt.constraints,opt.qmatoms,opt.totalcharge,opt.totalmult,opt.qm2method,opt.qm2basis,opt.activeatoms,opt.hessfile,opt.dispersion,opt.aim) + orca(opt.job,opt.method,opt.nproc,geom,opt.charge,opt.mult,opt.scalefreq,opt.temp,opt.pressure,opt.nroots,opt.tda,opt.solvent,opt.constraints,opt.qmatoms,opt.totalcharge,opt.totalmult,opt.qm2method,opt.qm2basis,opt.activeatoms,opt.hessfile,opt.dispersion,opt.aim,opt.produk,opt.transitionstate,opt.irciter,opt.printlevel, opt.inithess,opt.grid, opt.finalgrid) ### NWChem if opt.software == 'nwchem': diff --git a/lib/__pycache__/cmmde_orca.cpython-39.pyc b/lib/__pycache__/cmmde_orca.cpython-39.pyc index 526b1a0..ffa2e7c 100644 Binary files a/lib/__pycache__/cmmde_orca.cpython-39.pyc and b/lib/__pycache__/cmmde_orca.cpython-39.pyc differ diff --git a/lib/cmmde_orca.py b/lib/cmmde_orca.py index c522d2c..b517b26 100644 --- a/lib/cmmde_orca.py +++ b/lib/cmmde_orca.py @@ -1,10 +1,14 @@ -def orca(job,method,nproc,geom,charge,mult,scalfreq,temperature,pressure,nroots,tda,solvent,constraints,qmatoms,totalcharge,totalmult,qm2method,qm2basis,activeatoms,hessfile,disp,aim): - if 'opt' in job or 'Opt' in job or 'OPT' in job: +def orca(job,method,nproc,geom,charge,mult,scalfreq,temperature,pressure,nroots,tda,solvent,constraints,qmatoms,totalcharge,totalmult,qm2method,qm2basis,activeatoms,hessfile,disp,aim,product,ts,irciter, printlevel, inithess,grid, finalgrid): + if 'opt' in job or 'Opt' in job or 'OPT' in job and not 'ts' in job: method += ' opt' if 'freq' in job and ('XTB2' in method or 'XTB' in method): method += ' Numfreq' + if 'irc' in job: + method += ' IRC' if 'ts' in job: method += ' OptTS' + if 'NEB-TS' in job: + method += ' NEB-TS' if 'freq' in job and ('XTB2' not in method and 'XTB' not in method and 'XTBFF' not in method): method += ' freq' if disp != 'None': @@ -61,6 +65,24 @@ end""".format(scalfreq,temperature,pressure),file=f) print("""%tddft nroots {} tda {} -end""".format(nroots,tda),file=f) +end""".format(nroots,tda),file=f) + if 'NEB' in job: + print("""%NEB +NEB_END_XYZFILE {} +NEB_TS_XYZFILE {} +END""".format(product,ts),file=f) + if 'irc' in job: + print("""%irc + MaxIter {} + PrintLevel {} + InitHess {} + Hess_filename "{}" +end + +%method + Grid {} + FinalGrid {} +end +""".format(irciter, printlevel, inithess, hessfile, grid, finalgrid),file=f) return