main
Aditya Wibawa Sakti 1 year ago
parent 4d6984f885
commit 0564066980
  1. 2
      bin/cmmde.py
  2. 2
      bin/cmmdepre.py
  3. BIN
      lib/__pycache__/cmmde_array.cpython-310.pyc
  4. BIN
      lib/__pycache__/cmmde_atoms.cpython-310.pyc
  5. BIN
      lib/__pycache__/cmmde_bravais.cpython-310.pyc
  6. BIN
      lib/__pycache__/cmmde_bulk.cpython-310.pyc
  7. BIN
      lib/__pycache__/cmmde_cell.cpython-310.pyc
  8. BIN
      lib/__pycache__/cmmde_clusterutil.cpython-310.pyc
  9. BIN
      lib/__pycache__/cmmde_cubic.cpython-310.pyc
  10. BIN
      lib/__pycache__/cmmde_data.cpython-310.pyc
  11. BIN
      lib/__pycache__/cmmde_dcdftb.cpython-310.pyc
  12. BIN
      lib/__pycache__/cmmde_decahedron.cpython-310.pyc
  13. BIN
      lib/__pycache__/cmmde_dftb.cpython-310.pyc
  14. BIN
      lib/__pycache__/cmmde_formats.cpython-310.pyc
  15. BIN
      lib/__pycache__/cmmde_gen2poscar.cpython-310.pyc
  16. BIN
      lib/__pycache__/cmmde_icosahedron.cpython-310.pyc
  17. BIN
      lib/__pycache__/cmmde_parallel.cpython-310.pyc
  18. BIN
      lib/__pycache__/cmmde_stress.cpython-310.pyc
  19. BIN
      lib/__pycache__/cmmde_surface.cpython-310.pyc
  20. BIN
      lib/__pycache__/cmmde_symbols.cpython-310.pyc
  21. BIN
      lib/__pycache__/cmmde_tetrahedron.cpython-310.pyc
  22. BIN
      lib/__pycache__/cmmde_tools.cpython-310.pyc
  23. BIN
      lib/__pycache__/cmmde_unit.cpython-310.pyc
  24. BIN
      lib/__pycache__/cmmde_units.cpython-310.pyc
  25. BIN
      lib/__pycache__/cmmde_utils.cpython-310.pyc
  26. 5
      lib/cmmde_dcdftb.py
  27. 16
      lib/cmmde_dftb.py
  28. 2
      lib/cmmde_solution.py

@ -70,7 +70,7 @@ parser.add_argument('-ctype','--charge_type',type=str, default='gas', help='Tipe
parser.add_argument('-Nump','--NumPelarut', type=int, default=100, help='Jumlah molekul pelarut maksimum dalam sistem larutan. Default = 100.') parser.add_argument('-Nump','--NumPelarut', type=int, default=100, help='Jumlah molekul pelarut maksimum dalam sistem larutan. Default = 100.')
parser.add_argument('-cat','--cation',type=str, default='none',help='Kation yang digunakan untuk menetralkan muatan sistem larutan.') parser.add_argument('-cat','--cation',type=str, default='none',help='Kation yang digunakan untuk menetralkan muatan sistem larutan.')
parser.add_argument('-p', '--pressure', default=1.0, type=float, help='Tekanan dalam satuan bar') parser.add_argument('-p', '--pressure', default=1.0, type=float, help='Tekanan dalam satuan bar')
parser.add_argument('--packmol', type=str, default='packmol') parser.add_argument('--packmol', type=str, default='/Users/adit/opt/packmol/packmol')
# Opsi untuk melakukan restart simulasi MD # Opsi untuk melakukan restart simulasi MD
parser.add_argument('-traj','--traject',type=str, default='../NVT/traject',help='File trayektori dari simulasi sebelumnya') parser.add_argument('-traj','--traject',type=str, default='../NVT/traject',help='File trayektori dari simulasi sebelumnya')
parser.add_argument('-vel','--velocity',type=str, default='../NVT/velocity',help='File kecepatan atom dari simulasi sebelumnya') parser.add_argument('-vel','--velocity',type=str, default='../NVT/velocity',help='File kecepatan atom dari simulasi sebelumnya')

@ -30,7 +30,7 @@ parser.add_argument('-n', '--layer', type=int, help='Jumlah lapisan permukaan at
parser.add_argument('-ads','--ads',type=str, help='File koordinat Cartesian berisikan molekul adsorbat') parser.add_argument('-ads','--ads',type=str, help='File koordinat Cartesian berisikan molekul adsorbat')
parser.add_argument('-d','--distance',type=float,default=1.5,help='Jarak adsorbat dari lapisan teratas permukaan (Angstrom). Default: 1.5 Angstrom.') parser.add_argument('-d','--distance',type=float,default=1.5,help='Jarak adsorbat dari lapisan teratas permukaan (Angstrom). Default: 1.5 Angstrom.')
parser.add_argument('-height','--height',type=float,default=2.0, help='Tebal lapisan sisi aktif (Angstrom). Default: 2.0.') parser.add_argument('-height','--height',type=float,default=2.0, help='Tebal lapisan sisi aktif (Angstrom). Default: 2.0.')
parser.add_argument('-dyn','--dyn',type=float,default=3.0, help='Tebal lapisan bawah permukaan yang dibuat kaku (Angstrom). Default: 3.0.') parser.add_argument('-dyn','--dyn',type=float,default=3.5, help='Tebal lapisan bawah permukaan yang dibuat kaku (Angstrom). Default: 3.0.')
parser.add_argument('-e', '--element', type=str, help='Unsur yang akan dibuat klaster' ) parser.add_argument('-e', '--element', type=str, help='Unsur yang akan dibuat klaster' )
parser.add_argument('-t', '--type', type=str, help='Tipe klaster yang akan dibuat. Pilihan: decahedron dan icosahedron') parser.add_argument('-t', '--type', type=str, help='Tipe klaster yang akan dibuat. Pilihan: decahedron dan icosahedron')
parser.add_argument('-lc', '--lc', type=float, help='Panjang sel satuan kristal ruah jika dianggap kubus.' ) parser.add_argument('-lc', '--lc', type=float, help='Panjang sel satuan kristal ruah jika dianggap kubus.' )

@ -96,6 +96,9 @@ def dcdftb(job,method,geom,charge,mult,dispersion,para_path,temp,pressure,ensemb
if "opt" in job: if "opt" in job:
opt_type={'bfgs':'1','sd':'2','cg':'3','qm':'4','fire':'5'} opt_type={'bfgs':'1','sd':'2','cg':'3','qm':'4','fire':'5'}
print("OPT=(MAXITER=1000 OPTTYPE={})".format(opt_type[opttype]),file=f) print("OPT=(MAXITER=1000 OPTTYPE={})".format(opt_type[opttype]),file=f)
if "cell" in job:
opt_type={'bfgs':'1','sd':'2','cg':'3','qm':'4','fire':'5'}
print("OPT=(MAXITER=1000 OPTTYPE={} LATTICEOPT=TRUE)".format(opt_type[opttype]),file=f)
if "freq" in job: if "freq" in job:
print("FREQ=(THERMOTEMP={} THERMOPRES={} FREQTYPE={})".format(temp,pressure,freqtype),file=f) print("FREQ=(THERMOTEMP={} THERMOPRES={} FREQTYPE={})".format(temp,pressure,freqtype),file=f)
if ensembel == 'NVE': if ensembel == 'NVE':
@ -116,7 +119,7 @@ def dcdftb(job,method,geom,charge,mult,dispersion,para_path,temp,pressure,ensemb
print('MD=(NVT={} NVTTYPE={} BATHTEMP={} ERRORTEMP=100)'.format(nvt,thermo,temp),file=f) print('MD=(NVT={} NVTTYPE={} BATHTEMP={} ERRORTEMP=100)'.format(nvt,thermo,temp),file=f)
print('MD=(DELTAT={} NSTEP={} PRINT={})'.format(deltat*1e-15,step,mdprint),file=f) print('MD=(DELTAT={} NSTEP={} PRINT={})'.format(deltat*1e-15,step,mdprint),file=f)
if softpot == 'true': if softpot == 'true':
print('MD=(SOFT=TRUE SOFTSHAPETYPE={} SOFTRANGE={} SOFTCENTERTYPE={})'.format(softtype,softrange,softcenter)) print('MD=(SOFT=TRUE SOFTSHAPETYPE={} SOFTRANGE={} SOFTCENTERTYPE={})'.format(softtype,softrange,softcenter),file=f)
if restart == 'true': if restart == 'true':
print('MD=(READVELOCITY=TRUE)',file=f) print('MD=(READVELOCITY=TRUE)',file=f)
if job == "mtd": if job == "mtd":

@ -125,7 +125,7 @@ def vasp2gen(geom):
c.append(ccell) c.append(ccell)
next(f) next(f)
next(f) next(f)
next(f) # next(f)
if 'direct' in next(f): if 'direct' in next(f):
coord_type.append("F") coord_type.append("F")
else: else:
@ -135,13 +135,19 @@ def vasp2gen(geom):
x.append(arr[0]) x.append(arr[0])
y.append(arr[1]) y.append(arr[1])
z.append(arr[2]) z.append(arr[2])
sym.append(arr[-1]) sym.append(arr[3])
with open('in.gen','w') as f: with open('in.gen','w') as f:
elements = [] elements = []
print("{} {}".format(len(sym),coord_type[-1]),file=f) print("{} {}".format(len(sym),coord_type[-1]),file=f)
if len(list(set(sym))) == 1:
for i in list(set(sym)):
elements.append(i)
else:
for index,element in enumerate(sym): for index,element in enumerate(sym):
if sym[index] != sym[index-1]: sym[index] != sym[index-1]
elements.append(element) elements.append(element)
for i in elements: for i in elements:
print(i, end=' ',file=f) print(i, end=' ',file=f)
print("",file=f) print("",file=f)
@ -149,6 +155,10 @@ def vasp2gen(geom):
sindx = 0 sindx = 0
sym_indx = [] sym_indx = []
for i,symbol in enumerate(sym): for i,symbol in enumerate(sym):
if len(set(sym)) == 1:
sindx=1
sym_indx.append(sindx)
else:
if sym[i] != sym[i-1]: if sym[i] != sym[i-1]:
sindx+=1 sindx+=1
sym_indx.append(sindx) sym_indx.append(sindx)

@ -26,7 +26,7 @@ parser.add_argument('-nnpt','--nnpt',type=int, default=50000, help='Jumlah step
parser.add_argument('-nprod','--nprod',type=int, default=400000, help='Jumlah step pada saat production.') parser.add_argument('-nprod','--nprod',type=int, default=400000, help='Jumlah step pada saat production.')
parser.add_argument('-dt','--dt',type=float, default=1, help='Step simulasi dinamika molekul yang dilakukan.') parser.add_argument('-dt','--dt',type=float, default=1, help='Step simulasi dinamika molekul yang dilakukan.')
parser.add_argument('-comp','--compress',type=float, default=4.5e-6, help='Nilai kompresibilitas. Default=4.5e-6.') parser.add_argument('-comp','--compress',type=float, default=4.5e-6, help='Nilai kompresibilitas. Default=4.5e-6.')
parser.add_argument('--packmol', type=str, default='packmol') parser.add_argument('--packmol', type=str, default='/Users/adit/opt/packmol/packmol')
parser.add_argument('-l','--lapang',type=float, default=5, help='Ruang lapang untuk atom-atom bergerak di dalam kotak larutan (angstrom).') parser.add_argument('-l','--lapang',type=float, default=5, help='Ruang lapang untuk atom-atom bergerak di dalam kotak larutan (angstrom).')
parser.add_argument('-gen','--generate_dftbinp',type=str,default='false',help='Apakah ingin mengkonversi ke dalam format koordinat xyz?') parser.add_argument('-gen','--generate_dftbinp',type=str,default='false',help='Apakah ingin mengkonversi ke dalam format koordinat xyz?')
parser.add_argument('-prod','--production',type=str,default='None',help='Jenis production run yang ingin dilakukan. Pilihan: NPT (recommended), NVE, dan NVT.') parser.add_argument('-prod','--production',type=str,default='None',help='Jenis production run yang ingin dilakukan. Pilihan: NPT (recommended), NVE, dan NVT.')

Loading…
Cancel
Save