Main User API
Basis Set Exchange Python library
This package contains utilities for obtaining, reading, writing, and converting basis set information
- basis_set_exchange.convert_formatted_basis_file(file_path_in, file_path_out, in_fmt=None, out_fmt=None, encoding='utf-8-sig', make_gen=False)
Convert a formatted basis set file to another format
- Parameters:
file_path_in (str) – Path to the file to be read
file_path_out (str) – Path to the file to be written.
in_fmt (str) – The format of the basis to be read. If None, it is detected from the file name
out_fmt (str) – The format of the basis to be written. If None, it is detected from the file name
encoding (str) – The encoding of the input file
- Returns:
The basis set as a str with the new format
- Return type:
str
- basis_set_exchange.convert_formatted_basis_str(basis_in, in_fmt, out_fmt)
Convert a formatted basis set to another format
- Parameters:
basis_in (str) – String representing the formatted input basis set input
in_fmt (str) – The format of the basis set stored in basis_in
out_fmt (str) – The desired output format
- Returns:
The basis set as a str with the new format
- Return type:
str
- basis_set_exchange.create_bundle(outfile, fmt, reffmt, archive_type=None, data_dir=None)
Create a single archive file containing all basis sets in a given format
- Parameters:
outfile (str) – Path to the file to create. Existing files will be overwritten
fmt (str) – Format of the basis set to archive (nwchem, turbomole, …)
reffmt (str) – Format of the basis set references to archive (nwchem, turbomole, …)
archive_type (str) – Type of archive to create. Can be ‘zip’ or ‘tbz’. Default is None, which will autodetect based on the outfile name
data_dir (str) – Data directory with all the basis set information. By default, it is in the ‘data’ subdirectory of this project.
- Return type:
None
- basis_set_exchange.filter_basis_sets(substr=None, family=None, role=None, elements=None, data_dir=None)
Filter basis sets by some criteria
All parameters are ANDed together and are not case sensitive.
- Parameters:
substr (str) – Substring to search for in the basis set name
family (str) – Family the basis set belongs to
role (str) – Role of the basis set
elements (str or list) – List of elements that the basis set must include. Elements can be specified by Z-number (int or str) or by symbol (str). If this argument is a str (ie, ‘1-3,7-10’), it is expanded into a list. Z numbers and symbols (case insensitive) can be used interchangeably (see
basis_set_exchange.misc.expand_elements()
)data_dir (str) – Data directory with all the basis set information. By default, it is in the ‘data’ subdirectory of this project.
- Returns:
Basis set metadata that matches the search criteria
- Return type:
dict
- basis_set_exchange.get_all_basis_names(data_dir=None)
Obtain a list of all basis set names
The returned list is the internal representation of the basis set name.
The data is read from the METADATA.json file in the data directory.
- Parameters:
data_dir (str) – Data directory with all the basis set information. By default, it is in the ‘data’ subdirectory of this project.
- basis_set_exchange.get_archive_types()
Return information related to the types of archives available
- basis_set_exchange.get_basis(name, elements=None, version=None, fmt=None, uncontract_general=False, uncontract_spdf=False, uncontract_segmented=False, remove_free_primitives=False, make_general=False, optimize_general=False, augment_diffuse=0, augment_steep=0, get_aux=0, data_dir=None, header=True)
Obtain a basis set
This is the main function for getting basis set information. This function reads in all the basis data and returns it either as a string or as a python dictionary.
- Parameters:
name (str) – Name of the basis set. This is not case sensitive.
elements (str or list) –
List of elements that you want the basis set for. Elements can be specified by Z-number (int or str) or by symbol (str). If this argument is a str (ie, ‘1-3,7-10’), it is expanded into a list. Z numbers and symbols (case insensitive) can be used interchangeably (see
basis_set_exchange.misc.expand_elements()
)If an empty string or list is passed, or if None is passed (the default), all elements for which the basis set is defined are included.
version (int or str) – Obtain a specific version of this basis set. By default, the latest version is returned.
fmt (str) –
The desired output format of the basis set. By default, basis set information is returned as a python dictionary. Otherwise, if a format is specified, a string is returned. Use
basis_set_exchange.api.get_formats()
to programmatically obtain the available formats. The fmt argument is not case sensitive.Available formats are
bdf
gamess_us
gaussian94
json
nwchem
psi4
turbomole
uncontract_general (bool) – If True, remove general contractions by duplicating the set of primitive exponents with each vector of coefficients. Primitives with zero coefficient are removed, as are duplicate shells.
uncontract_spdf (bool) – If True, remove general contractions with combined angular momentum (sp, spd, etc) by duplicating the set of primitive exponents with each vector of coefficients. Primitives with zero coefficient are removed, as are duplicate shells.
uncontract_segmented (bool) – If True, remove segmented contractions by duplicating each primitive into new shells. Each coefficient is set to 1.0
make_general (bool) – If True, make the basis set as generally-contracted as possible. There will be one shell per angular momentum (for each element)
optimize_general (bool) – Optimize by removing general contractions that contain uncontracted functions (see
basis_set_exchange.manip.optimize_general()
)augment_diffuse (int) – Add n diffuse functions by even-tempered extrapolation
augment_steep (int) – Add n steep functions by even-tempered extrapolation
get_aux (int) – Instead of the orbital basis, get an auxiliary basis set. Options 0 (return orbital basis), 1 (return AutoAux basis), 2 (return Auto-ABS Coulomb fitting basis)
data_dir (str) – Data directory with all the basis set information. By default, it is in the ‘data’ subdirectory of this project.
- Returns:
The basis set in the desired format. If fmt is None, this will be a python dictionary. Otherwise, it will be a string.
- Return type:
str or dict
- basis_set_exchange.get_basis_family(basis_name, data_dir=None)
Lookup a family by a basis set name
- basis_set_exchange.get_data_dir()
Get the default data directory of this installation
- basis_set_exchange.get_formats(function_types=None)
Return information about the basis set formats available
The returned data is a map of format to display name. The format can be passed as the fmt argument to
get_basis()
If a list is specified for function_types, only those formats supporting the given function types will be returned.
- basis_set_exchange.get_reader_formats()
Returns the basis set formats that can be read by this library.
This is returned as an ordered dictionary of key to display name.
- basis_set_exchange.get_reference_formats()
Return information about the reference/citation formats available
The returned data is a map of format to display name. The format can be passed as the fmt argument to
get_references()
- basis_set_exchange.get_references(basis_name, elements=None, version=None, fmt=None, data_dir=None)
Get the references/citations for a basis set
- Parameters:
basis_name (str) – Name of the basis set. This is not case sensitive.
elements (list) – List of element numbers that you want the basis set for. By default, all elements for which the basis set is defined are included.
version (int) – Obtain a specific version of this basis set. By default, the latest version is returned.
fmt (str) –
The desired output format of the basis set references. By default, basis set information is returned as a list of dictionaries. Use get_reference_formats() to programmatically obtain the available formats. The fmt argument is not case sensitive.
Available reference formats are
bib
txt
json
data_dir (str) – Data directory with all the basis set information. By default, it is in the ‘data’ subdirectory of this project.
- Returns:
The references for the given basis set in the desired format. If fmt is None, this will be a python dictionary. Otherwise, it will be a string.
- Return type:
str or dict
- basis_set_exchange.get_roles()
Return information about the available basis set roles available
The returned data is a map of role to display name. The format can be passed as the role argument to fmt argument to
lookup_basis_by_role()
- basis_set_exchange.get_writer_formats(function_types=None)
Return information about the basis set formats available for writing
The returned data is a map of format to display name. The format can be passed as the fmt argument to
write_formatted_basis_str()
orwrite_formatted_basis_file()
If a list is specified for function_types, only those formats supporting the given function types will be returned.
- basis_set_exchange.lookup_basis_by_role(primary_basis, role, data_dir=None)
Lookup the name of an auxiliary basis set given a primary basis set and role
- Parameters:
primary_basis (str) – The primary (orbital) basis set that we want the auxiliary basis set for. This is not case sensitive.
role (str) –
Desired role/type of auxiliary basis set. Use
get_roles()
to programmatically obtain the available roles. The role argument is not case sensitive.Available roles are
jfit
jkfit
rifit
optri
admmfit
dftxfit
dftjfit
guess
data_dir (str) – Data directory with all the basis set information. By default, it is in the ‘data’ subdirectory of this project.
- Returns:
The name of the auxiliary basis set for the given primary basis and role.
- Return type:
str
- basis_set_exchange.validate_data(file_type, bs_data)
Validates json basis set data against a schema
- Parameters:
file_type (str) – Type of the data to validate. May be ‘component’, ‘element’, ‘table’, ‘complete’, ‘minimal’, or ‘references’
bs_data – Data to be validated
- Raises:
RuntimeError – If the file_type is not valid (and/or a schema doesn’t exist)
ValidationError – If the given file does not pass validation
FileNotFoundError – If the file given by file_path doesn’t exist
- basis_set_exchange.validate_file(file_type, file_path)
Validates a file against a schema
- Parameters:
file_type (str) – Type of file to read. May be ‘component’, ‘element’, ‘table’, ‘complete’, ‘minimal’, or ‘references’
file_path – Full path to the file to be validated
- Raises:
RuntimeError – If the file_type is not valid (and/or a schema doesn’t exist)
ValidationError – If the given file does not pass validation
FileNotFoundError – If the file given by file_path doesn’t exist
- basis_set_exchange.version(distribution_name)
Get the version string for the named package.
- Parameters:
distribution_name – The name of the distribution package to query.
- Returns:
The version string for the package as defined in the package’s “Version” metadata key.
- basis_set_exchange.write_formatted_basis_str(basis_dict, fmt, header=None)
Returns the basis set data as a string representing the data in the specified output format