def run_phonon(task_type,jdata,mdata): user= ('user_incar' in jdata.keys()) work_path=util.make_work_path(jdata,'06.phonon',False,False,user) all_task = glob.glob(os.path.join(work_path,'.')) #vasp if task_type == "vasp": mdata=decide_fp_machine(mdata) machine,resources,command,group_size=util.get_machine_info(mdata,task_type) run_tasks = util.collect_task(all_task,task_type) forward_files = ['INCAR', 'POTCAR','KPOINTS','KPOINTS'] backward_files = ['OUTCAR', task_type+'.out' , 'OSZICAR','vasprun.xml'] common_files=['POSCAR'] if ('cvasp' in jdata) and (jdata['cvasp'] == True): mdata['fp_resources']['cvasp'] = True forward_files.append('cvasp.py') disp = make_dispatcher(machine, resources, work_path, run_tasks, group_size) disp.run_jobs(resources, command, work_path, run_tasks, group_size, common_files, forward_files, backward_files, outlog=task_type+'.out', errlog=task_type+'.err') #lammps elif task_type in lammps_task_type: None else: raise RuntimeError ("unknown task %s, something wrong" % task_type)
def run_phonon(task_type, jdata, mdata): user = ('user_incar' in jdata.keys()) work_path = util.make_work_path(jdata, '06.phonon', False, False, user) all_task = glob.glob(os.path.join(work_path, '.')) #vasp if task_type == "vasp": mdata = decide_fp_machine(mdata) machine, machine_type, ssh_sess, resources, command, group_size = util.get_machine_info( mdata, task_type) run_tasks = util.collect_task(all_task, task_type) forward_files = ['INCAR', 'POTCAR', 'KPOINTS'] backward_files = ['OUTCAR', 'OSZICAR', 'vasprun.xml'] common_files = ['POSCAR'] _run(machine, machine_type, ssh_sess, resources, command, work_path, run_tasks, group_size, common_files, forward_files, backward_files) #lammps elif task_type in lammps_task_type: None else: raise RuntimeError("unknow task %s, something wrong" % task_type)
def run_equi(task_type,jdata,mdata): #rmprint("This module has been run !") work_path=util.make_work_path(jdata,'00.equi',False,False,False) all_task = glob.glob(os.path.join(work_path,'.')) #vasp if task_type=="vasp": mdata=decide_fp_machine(mdata) forward_files = ['INCAR', 'POTCAR', 'KPOINTS'] if ('cvasp' in jdata) and (jdata['cvasp'] == True): mdata['fp_resources']['cvasp'] = True forward_files.append('cvasp.py') backward_files = ['OUTCAR', task_type+'.out' , 'CONTCAR','OSZICAR'] common_files=['POSCAR'] #lammps elif task_type in lammps_task_type: mdata = decide_model_devi_machine(mdata) forward_files = ['conf.lmp', 'lammps.in'] backward_files = ['dump.relax','log.lammps', task_type+'.out'] fp_params = jdata['lammps_params'] model_dir = fp_params['model_dir'] model_dir = os.path.abspath(model_dir) model_name =fp_params['model_name'] if not model_name : models = glob.glob(os.path.join(model_dir, '*pb')) model_name = [os.path.basename(ii) for ii in models] else: models = [os.path.join(model_dir,ii) for ii in model_name] common_files = model_name if len(model_name)>1 and task_type == 'deepmd': backward_files = backward_files + ['model_devi.out'] else: raise RuntimeError ("unknow task %s, something wrong" % task_type) run_tasks = util.collect_task(all_task,task_type) if len(run_tasks)==0: return machine,resources,command,group_size=util.get_machine_info(mdata,task_type) disp = make_dispatcher(machine, resources, work_path, run_tasks, group_size) #debug# #print(' '.join(common_files)) #print(' '.join(forward_files)) #print(' '.join(backward_files)) disp.run_jobs(resources, command, work_path, run_tasks, group_size, common_files, forward_files, backward_files, outlog=task_type+'.out', errlog=task_type+'.err')
def run_surf(task_type,jdata,mdata): static=jdata['static-opt'] work_path=util.make_work_path(jdata,'05.surf',False,static,False) all_task = glob.glob(os.path.join(work_path,'struct-*')) #vasp if task_type == "vasp": mdata=decide_fp_machine(mdata) forward_files = ['INCAR', 'POSCAR','POTCAR','KPOINTS'] backward_files = ['OUTCAR', task_type+'.out' , 'OSZICAR'] common_files=['INCAR','POTCAR'] if ('cvasp' in jdata) and (jdata['cvasp'] == True): mdata['fp_resources']['cvasp'] = True forward_files.append('cvasp.py') #lammps elif task_type in lammps_task_type: mdata = decide_model_devi_machine(mdata) fp_params = jdata['lammps_params'] model_dir = fp_params['model_dir'] model_dir = os.path.abspath(model_dir) model_name =fp_params['model_name'] if not model_name : models = glob.glob(os.path.join(model_dir, '*pb')) model_name = [os.path.basename(ii) for ii in models] else: models = [os.path.join(model_dir,ii) for ii in model_name] forward_files = ['conf.lmp', 'lammps.in']+model_name backward_files = ['log.lammps',task_type+'.out'] common_files=['lammps.in']+model_name if len(model_name)>1 and task_type == 'deepmd': backward_files = backward_files + ['model_devi.out'] else: raise RuntimeError ("unknow task %s, something wrong" % task_type) run_tasks = util.collect_task(all_task,task_type) if len(run_tasks)==0: return else: run_tasks = [os.path.basename(ii) for ii in all_task] machine,resources,command,group_size=util.get_machine_info(mdata,task_type) disp = make_dispatcher(machine, resources, work_path, run_tasks, group_size) disp.run_jobs(resources, command, work_path, run_tasks, group_size, common_files, forward_files, backward_files, outlog=task_type+'.out', errlog=task_type+'.err')
def run_vacancy(task_type,jdata,mdata): work_path=util.make_work_path(jdata,'03.vacancy',False,False,False) all_task = glob.glob(os.path.join(work_path,'struct-*')) #vasp if task_type == "vasp": mdata=decide_fp_machine(mdata) forward_files = ['INCAR', 'POSCAR','POTCAR'] backward_files = ['OUTCAR', 'autotest.out' , 'OSZICAR'] common_files=['INCAR','POTCAR'] #lammps elif task_type in lammps_task_type: mdata = decide_model_devi_machine(mdata) fp_params = jdata['lammps_params'] model_dir = fp_params['model_dir'] model_dir = os.path.abspath(model_dir) model_name =fp_params['model_name'] if not model_name : models = glob.glob(os.path.join(model_dir, '*pb')) model_name = [os.path.basename(ii) for ii in models] else: models = [os.path.join(model_dir,ii) for ii in model_name] common_files = model_name forward_files = ['conf.lmp', 'lammps.in']+model_name backward_files = ['log.lammps','autotest.out'] common_files=['lammps.in']+model_name if len(model_name)>1 and task_type == 'deepmd': backward_files = backward_files + ['model_devi.out'] else: raise RuntimeError ("unknow task %s, something wrong" % task_type) run_tasks = util.collect_task(all_task,task_type) if len(run_tasks)==0: return machine,machine_type,ssh_sess,resources,command,group_size=util.get_machine_info(mdata,task_type) disp = make_dispatcher(machine) disp.run_jobs(resources, command, work_path, run_tasks, group_size, common_files, forward_files, backward_files, outlog='autotest.out', errlog='autotest.err')
def run_equi(task_type, jdata, mdata): #rmprint("This module has been run !") work_path = util.make_work_path(jdata, '00.equi', False, False, False) all_task = glob.glob(os.path.join(work_path, '.')) #vasp if task_type == "vasp": mdata = decide_fp_machine(mdata) forward_files = ['INCAR', 'POTCAR'] backward_files = ['OUTCAR', 'CONTCAR', 'OSZICAR'] common_files = ['POSCAR'] #lammps elif task_type in lammps_task_type: mdata = decide_model_devi_machine(mdata) forward_files = ['conf.lmp', 'lammps.in'] backward_files = ['dump.relax', 'log.lammps', 'model_devi.log'] fp_params = jdata['lammps_params'] model_dir = fp_params['model_dir'] model_dir = os.path.abspath(model_dir) model_name = fp_params['model_name'] if not model_name: models = glob.glob(os.path.join(model_dir, '*pb')) model_name = [os.path.basename(ii) for ii in models] else: models = [os.path.join(model_dir, ii) for ii in model_name] common_files = model_name if len(model_name) > 1 and task_type == 'deepmd': backward_files = backward_files + ['model_devi.out'] else: raise RuntimeError("unknow task %s, something wrong" % task_type) run_tasks = util.collect_task(all_task, task_type) machine, machine_type, ssh_sess, resources, command, group_size = util.get_machine_info( mdata, task_type) _run(machine, machine_type, ssh_sess, resources, command, work_path, run_tasks, group_size, common_files, forward_files, backward_files)
def run_interstitial(task_type,jdata,mdata): reprod_opt=jdata['reprod-opt'] work_path=util.make_work_path(jdata,'04.interstitial',reprod_opt,False,False) all_task = glob.glob(os.path.join(work_path,'struct-*')) #vasp if task_type == "vasp": mdata=decide_fp_machine(mdata) forward_files = ['INCAR', 'POSCAR','POTCAR',"KPOINTS"] backward_files = ['OUTCAR', task_type+'.out' , 'XDATCAR','OSZICAR'] common_files=['INCAR'] if ('cvasp' in jdata) and (jdata['cvasp'] == True): mdata['fp_resources']['cvasp'] = True forward_files.append('cvasp.py') #lammps elif task_type in lammps_task_type: mdata = decide_model_devi_machine(mdata) if reprod_opt: all_frame=[] for ii in all_task: all_frame+=(glob.glob(os.path.join(ii,'frame.*'))) work_path = all_task all_task = all_frame run_tasks_ = [] for ii in all_task: # fres = os.path.join(ii, 'log.lammps') # if os.path.isfile(fres) : # if not lammps.check_finished(fres): # run_tasks_.append(ii) # else : # run_tasks_.append(ii) run_tasks_.append(ii) fp_params = jdata['lammps_params'] model_dir = fp_params['model_dir'] model_dir = os.path.abspath(model_dir) model_name =fp_params['model_name'] if not model_name : models = glob.glob(os.path.join(model_dir, '*pb')) model_name = [os.path.basename(ii) for ii in models] else: models = [os.path.join(model_dir,ii) for ii in model_name] forward_files = ['conf.lmp', 'lammps.in']+model_name backward_files = ['log.lammps', task_type+'.out'] common_files=['lammps.in']+model_name if len(model_name)>1 and task_type == 'deepmd': backward_files = backward_files + ['model_devi.out'] else: raise RuntimeError ("unknow task %s, something wrong" % task_type) machine,resources,command,group_size=util.get_machine_info(mdata,task_type) if reprod_opt: for ii in work_path: run_tasks=[] for jj in run_tasks_: if ii in jj: run_tasks.append(os.path.basename(jj)) disp = make_dispatcher(machine, resources, work_path, run_tasks, group_size) disp.run_jobs(resources, command, ii, run_tasks, group_size, common_files, forward_files, backward_files, outlog=task_type+'.out', errlog=task_type+'.err') else: run_tasks = util.collect_task(all_task,task_type) if len(run_tasks)==0: return else: run_tasks = [os.path.basename(ii) for ii in all_task] disp = make_dispatcher(machine, resources, work_path, run_tasks, group_size) disp.run_jobs(resources, command, work_path, run_tasks, group_size, common_files, forward_files, backward_files, outlog=task_type+'.out', errlog=task_type+'.err')