#!/usr/bin/env python import sys, commands from os import path, getcwd from os import chdir, system, mkdir from shutil import copy import numpy as np first = 1 last = 500 # Define calculation parameters ################# # this value will be used in the Job file ####### # JobName ='163v1_ET' # Just a general lable: "JobName_NumTraj" TimeLimit ='1' # in hours: "TimeLimit:00:00" NCores ='24' # # ################################################# here=getcwd() #workdir for i in range(first,(last+1)): traj= '%.4d' % i # define working directory newdir=path.join(here, traj) # updating mypath if not path.exists(newdir): print "folder", newdir, "not found. exiting..." quit() chdir(newdir) if not path.exists('EnergyTransfer'): mkdir('EnergyTransfer') if path.exists('EnergyTransfer/OSZICAR_initial') and path.exists('EnergyTransfer/OSZICAR_final'): continue chdir('EnergyTransfer') Initial_conf = open('POSCAR_initial', 'w') Final_conf = open('POSCAR_final', 'w') ### Initial POSCAR = open('../POSCAR_1').readlines() ### Header Initial_conf.write("C O H\n") for i in range(1, 5): Initial_conf.write(POSCAR[i]) Initial_conf.write("C O H\n") Initial_conf.write("1 1 4\n") for i in range(7, 9): Initial_conf.write(POSCAR[i]) ### POSCAR - Methane for i in range(57, 63): Initial_conf.write(POSCAR[i][0:-7]) Initial_conf.write(" T T T\n") Initial_conf.write('\n') for i in range(112, 118): Initial_conf.write(POSCAR[i]) ### Final check = 1 while path.exists('../CONTCAR_' + str(check)): check += 1 check -= 1 CONTCAR = open('../CONTCAR_' + str(check)).readlines() ### Header Final_conf.write("C O H\n") for i in range(1, 5): Final_conf.write(CONTCAR[i]) Final_conf.write("C O H\n") Final_conf.write("1 1 4\n") for i in range(7, 9): Final_conf.write(CONTCAR[i]) ### POSCAR - Methane for i in range(57, 63): Final_conf.write(CONTCAR[i][0:-13]) Final_conf.write(" T T T\n") Final_conf.write('\n') for i in range(112, 118): Final_conf.write(CONTCAR[i]) if not path.exists('Job-ET'): # otherwise the calculation has already been started sometimes copy('%s/INPUTS/Job-ET' % here , 'Job-ET') # system('cp %s/INPUTS/ET_INCAR INCAR' % here ) # system('cp %s/INPUTS/POTCAR_methanol POTCAR' % here ) system('cp %s/INPUTS/KPOINTS .' % here ) system('cp %s/INPUTS/vdw_kernel.bindat .' % here ) lable = traj + '_' + JobName modify = 'sed -e \"s|_JOBNAME_|%s|g\" Job-ET > Job' % lable # modify the Jobfile system(modify) # modify = 'sed -i \"s|_TIMELIMIT_|%s|g\" Job' % TimeLimit # system(modify) # modify = 'sed -i \"s|_NCORES_|%s|g\" Job' % NCores # system(modify) # system('sbatch Job > ID.job') # RUN JOB ####################################### system('cat ID.job')