示例#1
0
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