xTB bug fix

Aditya Wibawa Sakti 2 years ago
parent 57d8339d20
commit 05684f9cf6
  1. 7
      bin/cmmde.py
  2. BIN
      lib/__pycache__/cmmde_xtb.cpython-39.pyc
  3. 26
      lib/cmmde_xtb.py

@ -32,7 +32,7 @@ parser.add_argument('-para','--parapath',type=str,default='/home/adit/opt/dftbpl
parser.add_argument('-iter','--iter',type=int,default=9999, help='Jumlah iterasi dalam optimasi geometri dan jenis perhitungan lainnya') parser.add_argument('-iter','--iter',type=int,default=9999, help='Jumlah iterasi dalam optimasi geometri dan jenis perhitungan lainnya')
parser.add_argument('-ens','--ensembel',type=str,default='NVE', help='Ensembel yang digunakan dalam simulasi dinamika molekul. Pilihan: NVE, NVT, dan NPT.') parser.add_argument('-ens','--ensembel',type=str,default='NVE', help='Ensembel yang digunakan dalam simulasi dinamika molekul. Pilihan: NVE, NVT, dan NPT.')
parser.add_argument('-tstat','--thermostat',type=str,default='andersen', help='Termostat yang digunakan dalam simulasi NVT. Pilihan: andersen,berendsen,dan nose') parser.add_argument('-tstat','--thermostat',type=str,default='andersen', help='Termostat yang digunakan dalam simulasi NVT. Pilihan: andersen,berendsen,dan nose')
parser.add_argument('-t','--temp', type=float, default=298.15,help='Suhu yang digunakan dalam perhitungan frekuensi maupun simulasi MD dalam satuan Kelvin.') parser.add_argument('-t','--temp', type=str, default='298.15',help='Suhu yang digunakan dalam perhitungan frekuensi maupun simulasi MD dan perhitungan frekuensi dalam satuan Kelvin.')
parser.add_argument('-dt','--deltat',type=float, default=1.0, help='Selang waktu integrasi dalam simulasi dinamika molekul dalam satuan femtodetik.') parser.add_argument('-dt','--deltat',type=float, default=1.0, help='Selang waktu integrasi dalam simulasi dinamika molekul dalam satuan femtodetik.')
parser.add_argument('-mdprint','--mdprint',type=int,default=10, help='Berapa step sekali struktur dicetak. Default=10.') parser.add_argument('-mdprint','--mdprint',type=int,default=10, help='Berapa step sekali struktur dicetak. Default=10.')
parser.add_argument('-rest','--restart',type=str,default='false',help='Apakah dilakukan restart simulasi MD?') parser.add_argument('-rest','--restart',type=str,default='false',help='Apakah dilakukan restart simulasi MD?')
@ -128,6 +128,9 @@ parser.add_argument('-ang','--angle',type=str,default='None',help='Sudut antara
parser.add_argument('-dih','--dihedral',type=str, default='None',help='Sudut dihedral antara empat buah atom dalam format: Serial1,Serial2,Serial4,Dihedral. Contoh: 4,1,3,2,120.') parser.add_argument('-dih','--dihedral',type=str, default='None',help='Sudut dihedral antara empat buah atom dalam format: Serial1,Serial2,Serial4,Dihedral. Contoh: 4,1,3,2,120.')
parser.add_argument('-scanmode','--scanmode',type=str,default='None',help='Mode scan geometri yang diinginkan. Pilihan: concerted, sequential.') parser.add_argument('-scanmode','--scanmode',type=str,default='None',help='Mode scan geometri yang diinginkan. Pilihan: concerted, sequential.')
parser.add_argument('-scan','--scan',type=str,default='None',help='Rentang Scanning dalam format: Titik1,Titik2,JumlahTitik. Contoh:2.5,1.0,100.') parser.add_argument('-scan','--scan',type=str,default='None',help='Rentang Scanning dalam format: Titik1,Titik2,JumlahTitik. Contoh:2.5,1.0,100.')
# Konstrain dan Fixing Atom pada Program XTB Standalone
parser.add_argument('-fixatm','--fixedatoms',type=str,default='None',help='Label atom-atom yang dibuat fix.')
parser.add_argument('-fixele','--fixedelements',type=str,default='None',help='Simbol unsur atom yang dibuat fix.')
# Input untuk perhitungan NEB # 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('-produk','--produk',type=str,help='Struktur produk yang digunakan dalam interpolasi NEB dalam format koordinat Cartesian.')
parser.add_argument('-trans','--transitionstate',default='None',type=str,help='Struktur perkiraan keadaan transisi yang digunakan dalam format koordinat Cartesian.') parser.add_argument('-trans','--transitionstate',default='None',type=str,help='Struktur perkiraan keadaan transisi yang digunakan dalam format koordinat Cartesian.')
@ -400,4 +403,4 @@ if opt.job == 'ligprep' and opt.software == 'gmx':
# Program XTB Standalone # Program XTB Standalone
if opt.software == 'xtb': if opt.software == 'xtb':
xtb(opt.job,geom,opt.nproc,opt.produk,opt.temp,opt.nrun,opt.npoint,opt.anopt,opt.kpush,opt.kpull,opt.ppull,opt.alp,opt.distance,opt.angle,opt.dihedral,opt.scanmode,opt.iter,opt.scan,opt.solvent,opt.charge,opt.mult,opt.method) xtb(opt.job,geom,opt.nproc,opt.produk,opt.temp,opt.nrun,opt.npoint,opt.anopt,opt.kpush,opt.kpull,opt.ppull,opt.alp,opt.distance,opt.angle,opt.dihedral,opt.scanmode,opt.iter,opt.scan,opt.solvent,opt.charge,opt.mult,opt.method,opt.fixedatoms,opt.fixedelements)

@ -1,6 +1,6 @@
# CMMDE function for xTB standalone program # CMMDE function for xTB standalone program
import os import os
def xtb(job,geom,nproc,product,temperature,nrun,npoint,anopt,kpush,kpull,ppull,alp,distance,angle,dihedral,scanmode,maxiter,scan,solvent,charge,mult,method): def xtb(job,geom,nproc,product,temperature,nrun,npoint,anopt,kpush,kpull,ppull,alp,distance,angle,dihedral,scanmode,maxiter,scan,solvent,charge,mult,method,fixedatoms,fixedelements):
with open('run.sh','w') as fout: with open('run.sh','w') as fout:
print("""#!/bin/bash print("""#!/bin/bash
#SBATCH --nodes=1 #SBATCH --nodes=1
@ -23,6 +23,11 @@ cd $PWD""".format(nproc),file=fout)
print("$XTB_COMMAND {} --opt -P {} --alpb {} --chrg {} --uhf {} {} > xtb.out".format(geom,nproc,solvent,charge,mult-1,meth),file=fout) print("$XTB_COMMAND {} --opt -P {} --alpb {} --chrg {} --uhf {} {} > xtb.out".format(geom,nproc,solvent,charge,mult-1,meth),file=fout)
else: else:
print("$XTB_COMMAND {} --opt -P {} --chrg {} --uhf {} {} > xtb.out".format(geom,nproc,charge,mult-1,meth),file=fout) print("$XTB_COMMAND {} --opt -P {} --chrg {} --uhf {} {} > xtb.out".format(geom,nproc,charge,mult-1,meth),file=fout)
if 'fix' in job:
if solvent != 'none':
print("$XTB_COMMAND {} --opt -P {} --alpb {} --chrg {} --uhf {} {} --input cmmd.in > xtb.out".format(geom,nproc,solvent,charge,mult-1,meth),file=fout)
else:
print("$XTB_COMMAND {} --opt -P {} --chrg {} --uhf {} {} --input cmmd.in > xtb.out".format(geom,nproc,charge,mult-1,meth),file=fout)
if 'freq' in job: if 'freq' in job:
if solvent != 'none': if solvent != 'none':
print("$XTB_COMMAND {} --hess -P {} --input cmmd.in --alpb {} --chrg {} --uhf {} {} > xtb.out".format(geom,nproc,solvent,charge,mult-1,meth), file=fout) print("$XTB_COMMAND {} --hess -P {} --input cmmd.in --alpb {} --chrg {} --uhf {} {} > xtb.out".format(geom,nproc,solvent,charge,mult-1,meth), file=fout)
@ -59,6 +64,25 @@ nrun={}
ppull={} ppull={}
alp={} alp={}
$end""".format(nrun,npoint,anopt,kpush,kpull,ppull,alp),file=f) $end""".format(nrun,npoint,anopt,kpush,kpull,ppull,alp),file=f)
if 'optfix' in job:
with open("cmmd.in",'w') as f:
print("$fix",file=f)
if distance != 'None':
distance = distance.split(";")
for index, i in enumerate(distance):
print("distance: {}".format(i),file=f)
if angle != 'None':
angle = angle.split(";")
for index, i in enumerate(angle):
print("angle: {}".format(i),file=f)
if dihedral != 'None':
dihedral = dihedral.split(";")
for index, i in enumerate(dihedral):
print("dihedral: {}".format(i),file=f)
if fixedatoms != 'None':
print("atoms: {}".format(fixedatoms),file=f)
if fixedelements != 'None':
print("elements: {}".format(fixedelements),file=f)
if 'scan' in job: if 'scan' in job:
with open("cmmd.in",'w') as f: with open("cmmd.in",'w') as f:

Loading…
Cancel
Save