Aditya Wibawa Sakti 2 years ago
parent 3f3b0c7ed3
commit 4fb3a00ab6
  1. 13
      bin/cmmde.py
  2. BIN
      lib/__pycache__/cmmde_orca.cpython-39.pyc
  3. 28
      lib/cmmde_orca.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.') parser.add_argument('-solvent','--solvent',type=str,default='none',help='Pelarut yang digunakan dalam perhitungan.')
# Input untuk simulasi MD sistem protein # Input untuk simulasi MD sistem protein
parser.add_argument('-protein','--protein',type=str,help='Struktur protein dalam format pdb') 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 # 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('-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.') 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' geom = 'geom.xyz'
### ORCA ### ORCA
if opt.software == '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 ### NWChem
if opt.software == 'nwchem': if opt.software == 'nwchem':

@ -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): 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: if 'opt' in job or 'Opt' in job or 'OPT' in job and not 'ts' in job:
method += ' opt' method += ' opt'
if 'freq' in job and ('XTB2' in method or 'XTB' in method): if 'freq' in job and ('XTB2' in method or 'XTB' in method):
method += ' Numfreq' method += ' Numfreq'
if 'irc' in job:
method += ' IRC'
if 'ts' in job: if 'ts' in job:
method += ' OptTS' 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): if 'freq' in job and ('XTB2' not in method and 'XTB' not in method and 'XTBFF' not in method):
method += ' freq' method += ' freq'
if disp != 'None': if disp != 'None':
@ -61,6 +65,24 @@ end""".format(scalfreq,temperature,pressure),file=f)
print("""%tddft print("""%tddft
nroots {} nroots {}
tda {} 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 return

Loading…
Cancel
Save