示例#1
0
文件: Tools.py 项目: bingao/bnlego
def get_basis_data(basis_name, atom_number):
    """Gets the data of a given basis set name and element."""
    # Imports basis data at runtime
    from BioNanoLEGO.Tools import import_name

    basis_map_name = basis_name.lower()
    if basis_map_name in BASIS_MAP:
        basis_file = "BioNanoLEGO.GaussBasis." + BASIS_MAP[basis_map_name]
        try:
            basis_data = import_name(basis_file, BASIS_ATTR)
            try:
                return basis_data[atom_number]
            except:
                print_avail_basis(basis_name, basis_data)
                raise LookupError("Failed to import '%s' basis set for No. '%d' element!" % (basis_name, atom_number))
        except:
            raise ImportError("Failed to import '%s' basis set file!" % basis_file)
    else:
        raise LookupError("Unknown basis set '%s'!" % basis_name)
示例#2
0
文件: Tools.py 项目: bingao/bnlego
            except:
                print_avail_basis(basis_name, basis_data)
                raise LookupError("Failed to import '%s' basis set for No. '%d' element!" % (basis_name, atom_number))
        except:
            raise ImportError("Failed to import '%s' basis set file!" % basis_file)
    else:
        raise LookupError("Unknown basis set '%s'!" % basis_name)


def print_avail_basis(basis_name="GTO", basis_data=None):
    """Prints the available elements for a given basis set."""
    from BioNanoLEGO.Element import get_atomic_symbol

    if basis_data:
        print " Available elements of basis set " + basis_name
        valid_elements = ""
        for atomic_number in basis_data.keys():
            valid_elements = valid_elements + ", " + get_atomic_symbol(atomic_number)
        print valid_elements


if __name__ == "__main__":
    # Prints the available elements for all the basis sets in BioNanoLEGO
    for basis_name in BASIS_MAP.values():
        basis_file = "BioNanoLEGO.GaussBasis." + BASIS_MAP[basis_map_name]
        try:
            basis_data = import_name(basis_file, BASIS_ATTR)
            print_avail_basis(basis_name, basis_data)
        except:
            raise ImportError("Failed to import '%s' basis set!" % basis_name)