def handle_normal(mol_lst, args): """ Writes replaced input files""" inp = gaussian.Input() for mol in mol_lst: with open(mol, 'rb') as f: old_input = f.read() new_mol_name = atom_replace(mol, args) inp.provide_existing_input_file(old_input) inp.set_chk(fileutil.get_filename(new_mol_name)) inp.descript = atom_replace(inp.descript, args) inp.geom = atom_replace(inp.geom, args) inp.add_custom_basis_from_dic(CUSTOM_BASIS_LOCATION) with open(new_mol_name, 'wb') as f: inp.write(f)
def write_gau_min_file(folder_name, pymol, name, min_kwards, args): """Writes gaussian input min file""" inp = gaussian.Input() inp.provide_pymol(pymol) inp.set_proc(args.proc) inp.set_memory(args.memory) inp.set_chk(name) inp.set_kwards(min_kwards) inp.set_description(name) inp.set_charge(args.charge) inp.set_mult(args.mult) inp.add_custom_basis_from_dic(BASIS[args.basis]) with open(folder_name + '/' + name + '.com', 'wb') as f: inp.write(f)
def handle_normal(args, mol, name, output_dir): input_ = gaussian.Input() if args.kwards: kwards = args.kwards else: kwards = DEFAULT_KWRDS.format(args.solvent) if args.ECP: kwards += ' pseudo=read' input_.set_kwards(kwards) descrip = input_.descript + ' ' + args.descrip.format(args.solvent) input_.set_description(descrip) input_.set_chk(name) shutil.copy2(mol[:-4] + '.' + args.chk, output_dir + '/' + name + '.' + args.chk) with open(output_dir + '/' + name + ".com", 'wb') as f: input_.write(f)
def write_non_TS_mol(pymol, args, name): inp = gaussian.Input() inp.provide_pymol(pymol) inp.set_proc(8) inp.set_memory(4000) inp.set_chk(name) kwards = DEFAULT_KWRDS.format(args.solvent) if args.ECP: kwards += ' pseudo=read' inp.set_kwards(kwards) inp.set_description(name) inp.set_charge(0) inp.set_mult(args.mult) inp.add_custom_basis_from_dic(args.basis) with open(name + '.com', 'wb') as f: inp.write(f)
def handle_TS(mol_name, args): """Accepts path to gaussian input TS molecule.""" with open(mol_name, 'rb') as f: input = gaussian.Input() input.provide_existing_input_file(f.read()) new_name = fileutil.add_to_name_but_keep_ext(mol_name, args.name) input.set_chk(fileutil.get_filename(new_name)) if args.kwards: kwrds = args.kwards else: kwrds = TS_KWRDS.format(args.solvent) if args.ECP: kwrds += ' pseudo=read' input.set_kwards(kwrds) input.add_custom_basis_from_dic(args.basis) with open(os.path.realpath(args.dir) + '/' + new_name, 'wb') as f: input.write(f)
def create_new_normal_input(mol, args, name): """Returns new input file.""" inp = gaussian.Input() with open(mol, 'rb') as f: inp.provide_existing_input_file(f.read()) inp.kwards = replace(args, inp.kwards) if 'chkbas' not in inp.kwards: inp.kwards += " chkbas" if "geom=allcheck" not in inp.kwards: inp.kwards += " geom=allcheck" inp.kwards = stringutil.case_insensitive_replace(inp.kwards, ' gen ', ' genchk ') inp.set_chk(fileutil.get_filename(name)) inp.set_geometry('') inp.set_charge('') inp.set_mult('') inp.custom_basis = '' print inp.kwards return inp.write()
def main(argv): args = process_command_line(argv) gau_input = gaussian.Input() gau_input.set_proc(args.proc) gau_input.set_memory(args.memory) if args.functional in FUNCTIONAL: functional = FUNCTIONAL[args.functional] else: functional = args.functional kwards = DEFAULT_KWRDS.format(functional) + SOLVENT_MODEL.format( args.solvent) gau_input.set_kwards(kwards) for mol in args.input: name = mol[:-4] + '_' + args.functional + '_' + args.basis pymol = pybel.readfile(args.format, mol).next() gau_input.provide_pymol(pymol) gau_input.set_chk(name) gau_input.add_custom_basis_from_dic(BASIS[args.basis]) with open(name + '.com', 'wb') as f: gau_input.write(f)
def handle_mol(mol_name, args): """Accepts path to mol.""" if args.format != 'gau': pymol = pybel.readfile(args.format, mol_name).next() mol_txt = pymol.write('gau') else: with open(mol_name, 'rb') as f: mol_txt = f.read() mol_name_sans_ext = fileutil.get_filename(mol_name) new_name = mol_name_sans_ext + args.suffix std_input = gaussian.Input() std_input.provide_existing_input_file(mol_txt) std_input.set_chk(new_name) std_input.set_proc(args.proc) std_input.set_memory(args.memory) std_input.set_charge(1) kwards = create_kwards(pymol, args) std_input.set_kwards(kwards) #std_input.add_custom_basis_from_dic(BASIS[args.basis]) with open(new_name + '.com', 'wb') as f: std_input.write(f)
def handle_mol(mol_name, args): """Accepts path to mol.""" if args.format != 'gau': pymol = pybel.readfile(args.format, mol_name).next() mol_txt = pymol.write('gau') else: with open(mol_name, 'rb') as f: mol_txt = f.read() mol_name_sans_ext = fileutil.get_filename(mol_name) new_name = mol_name_sans_ext + args.name std_input = gaussian.Input() std_input.provide_existing_input_file(mol_txt) std_input.set_chk(new_name) if args.kwards: kwrds = args.kwards else: kwrds = DEFAULT_KWRDS.format(args.solvent) if args.ECP: kwrds += ' pseudo=read' std_input.set_kwards(kwrds) std_input.add_custom_basis_from_dic(args.basis) with open(os.path.realpath(args.dir) + '/' + new_name + '.com', 'wb') as f: std_input.write(f)
def setup_converter(kwards, basis_path): """Creates converter object, which is used to prepare gaussian input files""" converter = gaussian.Input(kwards) converter.set_custom_basis(basis_path) return converter