Ejemplo n.º 1
0
def set_model_filesys(spc_dct_i, level,
                      run_prefix, save_prefix, saddle, name=None, rings='all'):
    """ Gets filesystem objects for reading many calculations
    """

    # Set the spc_info
    if saddle:
        rxn_info = spc_dct_i['rxn_info']
        spc_info = rinfo.ts_info(rxn_info)
    else:
        spc_info = sinfo.from_dct(spc_dct_i)

    print('level', level)
    levelp = tinfo.modify_orb_label(level, spc_info)

    _root = root_locs(spc_dct_i, saddle=saddle, name=name)
    cnf_run_fs, cnf_save_fs = build_fs(
        run_prefix, save_prefix, 'CONFORMER',
        thy_locs=levelp[1:],
        **_root)

    if rings == 'min':
        min_rngs_locs, min_rngs_path = mincnf.min_energy_conformer_locators(
            cnf_save_fs, levelp)
        cnf_run_fs[-1].create(min_rngs_locs)
    else:
        min_rngs_locs, min_rngs_path = mincnf.conformer_locators(
             cnf_save_fs, levelp, cnf_range='r100')
        for min_locs in min_rngs_locs:
            cnf_run_fs[-1].create(min_locs)

    print('model filesys', min_rngs_locs, min_rngs_path)
    # Create run fs if that directory has been deleted to run the jobs

    return [cnf_save_fs, min_rngs_path, min_rngs_locs, '', cnf_run_fs]
Ejemplo n.º 2
0
def set_model_filesys(spc_dct_i,
                      level,
                      run_prefix,
                      save_prefix,
                      saddle,
                      name=None,
                      cnf_range='min',
                      spc_locs=None,
                      nprocs=1):
    """ Gets filesystem objects for reading many calculations
    """

    # Set the spc_info
    if saddle:
        rxn_info = spc_dct_i['rxn_info']
        spc_info = rinfo.ts_info(rxn_info)
    else:
        spc_info = sinfo.from_dct(spc_dct_i)

    levelp = tinfo.modify_orb_label(level, spc_info)

    _root = root_locs(spc_dct_i, saddle=saddle, name=name)
    cnf_run_fs, cnf_save_fs = build_fs(run_prefix,
                                       save_prefix,
                                       'CONFORMER',
                                       thy_locs=levelp[1:],
                                       **_root)

    hbond_cutoffs = spc_dct_i['hbond_cutoffs']
    if cnf_range == 'specified':
        min_rngs_locs = spc_locs
        min_rngs_path = cnf_save_fs[-1].path(min_rngs_locs)
        cnf_run_fs[-1].create(min_rngs_locs)
    elif cnf_range == 'min':
        min_rngs_locs, min_rngs_path = min_energy_conformer_locators(
            cnf_save_fs, levelp, hbond_cutoffs=hbond_cutoffs)
        cnf_run_fs[-1].create(min_rngs_locs)
    else:
        min_rngs_locs_lst, min_rngs_path_lst = conformer_locators(
            cnf_save_fs,
            levelp,
            cnf_range=cnf_range,
            hbond_cutoffs=hbond_cutoffs,
            nprocs=nprocs)
        for min_locs in min_rngs_locs_lst:
            cnf_run_fs[-1].create(min_locs)
        min_rngs_locs = min_rngs_locs_lst[0]
        min_rngs_path = min_rngs_path_lst[0]
        ioprinter.warning_message('Only returning first location in this list')
    # Create run fs if that directory has been deleted to run the jobs

    return [cnf_save_fs, min_rngs_path, min_rngs_locs, '', cnf_run_fs]
Ejemplo n.º 3
0
def get_spc_locs_lst(spc_dct_i,
                     spc_model_dct_i,
                     run_prefix,
                     save_prefix,
                     saddle,
                     cnf_range='min',
                     sort_info_lst=None,
                     name=None,
                     nprocs=1):
    """ return the locations for a pf level
    """

    # Use the locs from the dict
    user_conf_ids = spc_dct_i.get('conf_id')
    if user_conf_ids is None:
        # Set the spc_info
        cnf_run_fs, cnf_save_fs, levelp, mod_info_lst = _get_prop_fs(
            spc_model_dct_i,
            spc_dct_i,
            'vib',
            sort_info_lst,
            run_prefix,
            save_prefix,
            saddle=saddle,
            name=name)

        hbond_cutoffs = spc_dct_i['hbond_cutoffs']
        min_locs_lst, _ = conformer_locators(cnf_save_fs,
                                             levelp,
                                             cnf_range=cnf_range,
                                             sort_info_lst=mod_info_lst,
                                             print_enes=True,
                                             hbond_cutoffs=hbond_cutoffs,
                                             nprocs=nprocs)
        for min_locs in min_locs_lst:
            cnf_run_fs[-1].create(min_locs)
    else:
        print('Using user specified conformer IDs')
        min_locs_lst = (user_conf_ids, )

    return min_locs_lst
Ejemplo n.º 4
0
def get_all_tors_locs_lst(spc_dct_i,
                          spc_model_dct_i,
                          run_prefix,
                          save_prefix,
                          saddle,
                          nprocs=1):
    """get all conformer locations for the torsion method
    """
    tors_run_fs, tors_save_fs, levelp, _ = _get_prop_fs(spc_model_dct_i,
                                                        spc_dct_i,
                                                        'tors',
                                                        None,
                                                        run_prefix,
                                                        save_prefix,
                                                        saddle=saddle)
    hbond_cutoffs = spc_dct_i['hbond_cutoffs']
    tors_locs_lst, _ = conformer_locators(tors_save_fs,
                                          levelp,
                                          cnf_range='all',
                                          hbond_cutoffs=hbond_cutoffs,
                                          nprocs=nprocs)

    return tors_run_fs, tors_save_fs, tors_locs_lst